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

Статус
В этой теме нельзя размещать новые ответы.

vilyaban

Постоялец
Регистрация
8 Май 2008
Сообщения
111
Реакции
2
: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] = "";
- это выпадающий список.


добавить в таблицу «Раздел» ненаследуемое поле (например, Sublink); в нужном месте макета (хедера или футера) внести примерно следующее выражение:
".opt($current_sub[Sublink], "<a href=".
$current_sub[Sublink].">Далее</a>")."
- это вывод в определенных разделах
 
Вот частичное решение:
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] = "";


Осталось только вместо номера раздела вывести родительский раздел по отношению к текущему
 
В нужном месте макета прописываем:
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'] и есть идентификатор родительского раздела.
 
отлично. спс
значит я делаю так:
PHP:
".opt($current_sub[Sublist], "".s_browse_sub($parent_sub_tree[1]['Subdivision_ID'], $browse_parent_sub)."")."
и смогу указывать, в каких разделах этот список выводить.
 
Тогда лучше сделать так:
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" => ""
    )
);
Тогда эту настройку можно будет изменять в форме редактирования настроек раздела, для которого будет определен данный макет.
Никаких других проверок выполнять не нужно, т.к. вы заведомо определите, в каких разделах это поле необходимо выводить.
Шаблон вывода навигации остается таким же, как я показывал ранее.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху