Вывод списка подразделов родительского раздела

Тема в разделе "NetCat", создана пользователем vilyaban, 10 ноя 2009.

Статус темы:
Закрыта.
  1. vilyaban

    vilyaban Постоялец

    Регистр.:
    8 май 2008
    Сообщения:
    111
    Симпатии:
    1
    :thenks:
    Как организовать вывод списка подразделов родительского раздела в макете?
    Этот список нужно сделать выпадающим списком и только на выбранных страницах.
    Вывод подразделов текущего раздела делается просто с помощью компонента "Базовые.Список подразделов" функцией
    PHP:
    ".s_browse_sub($nc_sub,$browse_sub)."
    Вот, что нарыл на данный момент:
    PHP:
    $browse_sub[prefix] = "<form action='' name=navigat
    method=get
    onsubmit='this.document.location.href=this.navigation.value;
    return false;'><select size=1 name=navigation>"
    ;
    $browse_sub[suffix] = "</select><input type=submit
    value=Перейти></form>"
    ;
    $browse_sub[active] = "<option value=%URL selected>
    %NAME</option>"
    ;
    $browse_sub[unactive] = "<option value=%URL> %NAME</option>";
    $browse_sub[divider] = "";
    - это выпадающий список.


    - это вывод в определенных разделах
     
  2. vilyaban

    vilyaban Постоялец

    Регистр.:
    8 май 2008
    Сообщения:
    111
    Симпатии:
    1
    Вот частичное решение:
    PHP:
    ".opt($current_sub[Sublist], "".s_browse_level(0,$browse_sub_list)."")."
    Где "Sublist" - поле в "Системные таблицы => Разделы"


    Шаблон навигации:
    PHP:
    $browse_sub_list[prefix] = "<select onchange=\\\"window.open(this.value,'_top');\\\">";
    $browse_sub_list[suffix] = "</select>";
    $browse_sub_list[unactive] = "<option value='%URL'>%NAME";
    $browse_sub_list[active] = "<option value='%URL' selected>%NAME";
    $browse_sub_list[divider] = "";

    Осталось только вместо номера раздела вывести родительский раздел по отношению к текущему
     
  3. andrex74

    andrex74 Создатель

    Регистр.:
    27 июн 2009
    Сообщения:
    32
    Симпатии:
    5
    В нужном месте макета прописываем:
    PHP:
    ".s_browse_sub($parent_sub_tree[1]['Subdivision_ID'], $browse_parent_sub)."
    В шаблон вывода навигации добавляем:
    PHP:
    $browse_parent_sub['prefix'] = "<select onchange=\\\"document.location=this.value;\\\">
    <option value='#'>-Выберите раздел для перехода-</option>\n"
    ;
    $browse_parent_sub['suffix'] = "</select>";
    $browse_parent_sub['unactive'] = "<option value='%URL'>%NAME</option>";
    $browse_parent_sub['active'] = "<option value='%URL' selected>%NAME</option>";
    $browse_parent_sub['divider'] = "\n"
    В данном случае $parent_sub_tree[1]['Subdivision_ID'] и есть идентификатор родительского раздела.
     
    vilyaban нравится это.
  4. vilyaban

    vilyaban Постоялец

    Регистр.:
    8 май 2008
    Сообщения:
    111
    Симпатии:
    1
    отлично. спс
    значит я делаю так:
    PHP:
    ".opt($current_sub[Sublist], "".s_browse_sub($parent_sub_tree[1]['Subdivision_ID'], $browse_parent_sub)."")."
    и смогу указывать, в каких разделах этот список выводить.
     
  5. andrex74

    andrex74 Создатель

    Регистр.:
    27 июн 2009
    Сообщения:
    32
    Симпатии:
    5
    Тогда лучше сделать так:
    PHP:
    ".opt(".$template_settings['show_parent_sub_list'].", s_browse_sub($parent_sub_tree[1]['Subdivision_ID'], $browse_parent_sub))."
    А в поле "Настройки отображения макета дизайна в разделе" прописать следующее:
    PHP:
    $settings_array = array(
        
    "show_parent_sub_list" => array(
            
    "type" => "checkbox",
            
    "default_value" => "",
            
    "caption" => "Выводить выпадающий список родительских подразделов",
            
    "validate_regexp" => "",
            
    "validate_error" => ""
        
    )
    );
    Тогда эту настройку можно будет изменять в форме редактирования настроек раздела, для которого будет определен данный макет.
    Никаких других проверок выполнять не нужно, т.к. вы заведомо определите, в каких разделах это поле необходимо выводить.
    Шаблон вывода навигации остается таким же, как я показывал ранее.
     
    r00ft1h и vilyaban нравится это.
Статус темы:
Закрыта.