Ваш сайт сильно структурирован и имеет много фолдеров?
Если так, то Вы по-любому каждому фолдеру папки ./data/content/ дали по собственному файлику меню. Там описаны три панельки- верхняя менюшка, левая и правая.
С левой менюшкой всё предельно просто- там Вы ссылаетесь на документы этого раздела. Ведь именно с такой целью документы и выделяются в обособленный раздел, чтобы дать им собственную навигацию. С верхней менюшкой тоже мороки никакой- она шаблонна, и открывает быстрый доступ к важным документам сайта. А вот в правой панели навигации традиционно перечисляются разделы сайта, куда посетитель может перейти.
Когда таких разделов всего ничего, никаких эмоций не возникает.
Но вот если разделов у Вас немало, Вы можете возроптать.
В чём причина протеста?
Недовольство вызвано тем, что сайт напоминает живой организм: в нём непрерывно что-то рождается, множится и отмирает. Меняются названия разделов, варьируется их номенклатура. Это происходит постоянно, и, вообще-то говоря, вызывает необходимость корректировки файлика меню каждого из разделов.
Когда разделов не один десяток, произносится матерное слово.
Можно как-нибудь без него обойтись?
Да.
Мы уже оговаривали в разделе про меню, что в каждой из панелек, хоть в левой, хоть в правой, можно насобирать по большому стаду кнопочек, структурировав их в несколько упорядоченных отар. Но весь прикол состоит в том, что любую из переменных $left_menu $right_menu $top_menu можно не только вообще выбросить (и тогда соответствующая менюшка исчезнет), но и определить в другом месте, видимом для всех фолдеров.
Так, если всю конструкцию
# Правая менюха навигации. Может отсутствовать. $right_menu=array( 'Важные кнопки:' => array( array('','Базовая nano-CMS','Базовая Нана'), array('simple/','Simple nano-CMS','Крошечная Нана'), /* ну и прочий код других кнопок */ ), 'Явно полезное:' => array( array('blog.htm','','Новости нашего блога'), ), );
из файла _menu.php каждого фолдера изъять, и перенести внутрь контейнера
И Вы теперь можете управлять ими из одного места.
Что и требовалось.
Далее могут возникнуть три-четыре закономерных вопроса.
Что делать, когда нужно какому-то фолдеру дать свою панельку кнопок?
В файле меню этого фолдера оставить переменную с описанием таких кнопок. Она отменит всё то, что велено в файле сеттингов, и запустит для данного фолдера в работу собственное стадо кнопочек.
А если к общим для всех фолдеров кнопкам снизу хочется дописать свои?
В файле _menu.php этого фолдера употребите такой изыск:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # Правая менюха навигации. Может отсутствовать. $right_menu=array_merge( $right_menu, # Это общие кнопки всего сайта array( 'Нижние кнопки:' => array( array('file1.htm','alt','Кнопка 1'), array('file2.htm','alt','Кнопка 2'), ), 'Ещё кнопки:' => array( array('file3.htm','alt','Кнопка 3'), array('file4.htm','alt','Кнопка 4'), ), ) ); |
Как Вы понимаете, мы слили два массива кнопок (заданный ранее и определённый здесь) в один стандартным оператором PHP.
А если наоборот, надо разместить свои кнопки фолдера выше общих?
Тогда сливаете массивы в обратном порядке:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # Правая менюха навигации. Может отсутствовать. $right_menu=array_merge( array( 'Верхние кнопки:' => array( array('file1.htm','alt','Кнопка 1'), array('file2.htm','alt','Кнопка 2'), ), 'Чуть пониже:' => array( array('file3.htm','alt','Кнопка 3'), array('file4.htm','alt','Кнопка 4'), ), ), $right_menu # Это общие кнопки всего сайта ); |
А если охота сверху и снизу общих кнопок нарисовать для фолдера свои?
Ничего концептуально нового - сливаем теперь уже три массива:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | # Правая менюха навигации. Может отсутствовать. $right_menu=array_merge( array( 'Верхние кнопки:' => array( array('file1.htm','alt','Кнопка 1'), array('file2.htm','alt','Кнопка 2'), ) ), $right_menu, # Это общие кнопки всего сайта array( 'Нижние кнопки:' => array( array('file3.htm','alt','Кнопка 3'), array('file4.htm','alt','Кнопка 4'), ), ) ); |