В процессе переноса (адаптации) новой темы под drupal 5 столкнулся с совершенно непонятной проблемой.
суть задачи достаточно простая.
- Создать древовидное меню (2х уровневое), например:
Новости (- Политика, - Экономика, - Спорт,...)
Статьи ( - Обзоры, -Аналитика, - Прогнозы...)
-Обспечить вывод этого меню в 2 блока
Блок 1: Новости, Статьи
Блок 2: Список определяется активным элементом Блока 1. (т.е. если Новости, то Политика, Экономика....)
Настроив в администраторе вывод главных и дочерних элементов меню в Primary menu, ожидал что:
и
обеспечат требуемый функционал. Но не тут-то было... Secondary link не выводятся. Тестирование показало, $secondary_links - не определена = null
Посмотрел код menu.inc - практических отличий от реализации drupal 4.7.x не нашел в части отдачи вторичного меню (функция menu_secondary_links()). Однако на 4.7 работает (проверить можно зайля на сайт в подписи, выбрав пункт меню Статьи и посмотреть в самый низ страницы - там как раз (для теста) выводится $secondary_links) а в Пятой версии - нет.
В чем дело, может упустил что?
И в дополнение вопрос по развитию:
Можно ли к структуре меню добавить пользовательсткий атрибут - какой нибудь ['img-id']?
Сразу скажу - я полный профан в php - но научиться очень хочется. Жалею об упущенном времени..
Комментарии
Только что проверил - работает ожидаемо. Содержимое переменных ($primary_links, $secondary_links) не проверял.
Тема стандартная - Garland. У тебя на стандартной с нулЁвым Drupal'ом работает?
В движке вообще тупо: 'secondary_links' => menu_secondary_links()
Точно не забыл проставить вторичные ссылки в админке?
Dan привет! - не ожидал тебя так поздно застать!)))
переставился на garland - сторичных не видно...
Настройки первичных и вторичных ссылок
Primary and secondary links provide a navigational menu system which usually (depending on your theme) appears at the top-right of the browser window. The links displayed can be generated either from a custom list created via the menu administration page or from a built-in list of menu items such as the navigation menu links.
Меню, содержащее основные ссылки:
-Primary links
Меню, содержащее дополнительные ссылки:
-Primary links
Если вы выберите то же меню, что и для основных ссылок, тогда ссылки будут отображаться соответственно второму уровню в иерархии навигации.
выдает NULL
Мой сайт на drupal - www.travelweekly.ru
Привет!
Никак встать не могу, да ещё твой пост прочитал...
....
Когда ссылка из первичного меню не выбрана, var_dump($secondary_links) будет выдавать ноль. Если выбрана - должно быть с содержимым (не ноль).
Если не так - установка drupal с нуля и всё заново
Поставил с 0.
Создаю Menu-1 , (в primary) к нему Sub-1, Sub-2
Тема Garland. к ней приписал заплатку - --- print var_dump($secondary_links);
menu-1 сразу видно в прав.верх углу. Кликаю - никаких Sub-ов не видно. Заплатка пишет NULL
Я в шоке - 2 ночи топчесь на месте...
Мой сайт на drupal - www.travelweekly.ru
Похоже, пора спать!
Утро вечера - сам знаешь.
Завтра разберёмся
Кажется - начинаю разбираться... хотя непонятности присутствуют.
В Sub 1 у меня был прописан урл - node/1. Но такого материала не было в природе))). Как только создал 1-й материал - Ссылка стала появляться, НО только тогда, когда я находится на этой статье (в смысле открыл для прочтения)??? Ни в каких других режимах (например при просмотре главной страницы) она не появлется.
!?
Мой сайт на drupal - www.travelweekly.ru
Она должна отображаться:
- когда ты находишься по адресу Menu-1
- когда ты находишься по адресу Sub-1
Вот опять непонятка....
Делаю :
МЕНЮ 1 (путь )
- О проекте (node/89)
- Контакты (contact)
По логике при заходе на сайт www.my_site.ru
МЕНЮ 1 - должно быть активным и соответственно в secondary отражаться Опроекте и Контакты.
А вот и нет такого... Что-то здесь не так...
Мой сайт на drupal - www.travelweekly.ru
Почему это МЕНЮ1 должно быть активно?
Если путь по умолчанию (например node), совпадает с путём МЕНЮ1 (тоже должно быть node), то да, должно быть активным, но у тебя-то скорее всего не так?
Да все никак не привыкну к местным фильтрам
Выше по тексту было введено МЕНЮ1 (путь front - в угловых скобках) - фильтр сожрал - хад.
Дык вот это меню с путем front -должно становиться активным по умолчанию (как я это понимаю) сразу по заходу юзера на сайт.
Пути то совпадают. И ессно - должны показываться и вторичные ссылки - уж коль они привязаны к нему. Ан нет...
Вы уж простите за навязчивость - но хочется разобраться - да думаю и другим будет потом понятно, чего ожидать.
Решение найдено - опытным путем.
Есил прописать путь в пункте меню не front (со скобками) а node - все работает!
Den - персональное спасибо! За помощь и долготерпение....
-- Есил прописать путь в пункте меню не front (со скобками) а node - все работает!
front - это, похоже, фича только для задания главной страницы, в остальных случаях, надо использовать назавание модуля(модулей)
--Den - персональное спасибо! За помощь и долготерпение....
Всегда пожалуйста
а можно как-то вставить в шапочку не все меню а по номеру например его каждой ссылки - одну ссылку в одно место, вторую в другое?
Непонятно. Шапочка это primary? А разные места - это порядок следования пунктов меню? Если порядок, то настраивается весом.
шапочка это например как на этом сайте "новости документация форум" - каждый пункт меню стоит в своей ячейке, так вот и я так хочу что-б не изобретать циклы и форматирования где-то внутри а просто и наглядно написать output .= $пункт1 и что-бы он появился точно там где я хочу, вопрос - какой функцией получить $пункт1?
http://api.drupal.org/api/5/function/menu_primary_links
немного другой вопрос, но из той же темы: можно ли не выводить пункт меню "create content", заменив его пунктом, например "create blog post". на моем сайте юзеры смогут постить только один вид контента, поэтому заставлять их дважды кликать в меню нехорошо, а меню вида
create content
create blog post
выглядит некрасиво.
В настройках меню пункт "create content" скрой