Primary и secondary links в Drupal 5.1

Главные вкладки

Аватар пользователя Toologic Toologic 12 февраля 2007 в 0:59

В процессе переноса (адаптации) новой темы под drupal 5 столкнулся с совершенно непонятной проблемой.

суть задачи достаточно простая.
- Создать древовидное меню (2х уровневое), например:
Новости (- Политика, - Экономика, - Спорт,...)
Статьи ( - Обзоры, -Аналитика, - Прогнозы...)

-Обспечить вывод этого меню в 2 блока
Блок 1: Новости, Статьи
Блок 2: Список определяется активным элементом Блока 1. (т.е. если Новости, то Политика, Экономика....)

Настроив в администраторе вывод главных и дочерних элементов меню в Primary menu, ожидал что:

 print theme('links', $primary_links);

и

 print theme('links', $secondary_links);

обеспечат требуемый функционал. Но не тут-то было... Secondary link не выводятся. Тестирование показало, $secondary_links - не определена = null

Посмотрел код menu.inc - практических отличий от реализации drupal 4.7.x не нашел в части отдачи вторичного меню (функция menu_secondary_links()). Однако на 4.7 работает (проверить можно зайля на сайт в подписи, выбрав пункт меню Статьи и посмотреть в самый низ страницы - там как раз (для теста) выводится $secondary_links) а в Пятой версии - нет.

В чем дело, может упустил что?

И в дополнение вопрос по развитию:

Можно ли к структуре меню добавить пользовательсткий атрибут - какой нибудь ['img-id']?

Сразу скажу - я полный профан в php - но научиться очень хочется. Жалею об упущенном времени..

Комментарии

Аватар пользователя Dan Dan 12 февраля 2007 в 1:19

Только что проверил - работает ожидаемо. Содержимое переменных ($primary_links, $secondary_links) не проверял.
Тема стандартная - Garland. У тебя на стандартной с нулЁвым Drupal'ом работает?

Аватар пользователя Dan Dan 12 февраля 2007 в 1:18

В движке вообще тупо: 'secondary_links' => menu_secondary_links()
Точно не забыл проставить вторичные ссылки в админке? Smile

Аватар пользователя Toologic Toologic 12 февраля 2007 в 1:40

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
Если вы выберите то же меню, что и для основных ссылок, тогда ссылки будут отображаться соответственно второму уровню в иерархии навигации.

 print var_dump($secondary_links);

выдает NULL

Мой сайт на drupal - www.travelweekly.ru

Аватар пользователя Dan Dan 12 февраля 2007 в 1:49

Привет!
Никак встать не могу, да ещё твой пост прочитал... Smile
....
Когда ссылка из первичного меню не выбрана, var_dump($secondary_links) будет выдавать ноль. Если выбрана - должно быть с содержимым (не ноль).
Если не так - установка drupal с нуля и всё заново Smile

Аватар пользователя Toologic Toologic 12 февраля 2007 в 2:05

Поставил с 0.

Создаю Menu-1 , (в primary) к нему Sub-1, Sub-2

Тема Garland. к ней приписал заплатку - --- print var_dump($secondary_links);

menu-1 сразу видно в прав.верх углу. Кликаю - никаких Sub-ов не видно. Заплатка пишет NULL

Я в шоке - 2 ночи топчесь на месте...

Мой сайт на drupal - www.travelweekly.ru

Аватар пользователя Toologic Toologic 12 февраля 2007 в 3:00

Кажется - начинаю разбираться... хотя непонятности присутствуют.

В Sub 1 у меня был прописан урл - node/1. Но такого материала не было в природе))). Как только создал 1-й материал - Ссылка стала появляться, НО только тогда, когда я находится на этой статье (в смысле открыл для прочтения)??? Ни в каких других режимах (например при просмотре главной страницы) она не появлется.

!?

Мой сайт на drupal - www.travelweekly.ru

Аватар пользователя Dan Dan 12 февраля 2007 в 7:41

Она должна отображаться:
- когда ты находишься по адресу Menu-1
- когда ты находишься по адресу Sub-1

Аватар пользователя Toologic Toologic 12 февраля 2007 в 11:19

Вот опять непонятка....

Делаю :
МЕНЮ 1 (путь )
- О проекте (node/89)
- Контакты (contact)

По логике при заходе на сайт www.my_site.ru

МЕНЮ 1 - должно быть активным и соответственно в secondary отражаться Опроекте и Контакты.

А вот и нет такого... Что-то здесь не так...

Мой сайт на drupal - www.travelweekly.ru

Аватар пользователя Dan Dan 12 февраля 2007 в 15:04

Почему это МЕНЮ1 должно быть активно?
Если путь по умолчанию (например node), совпадает с путём МЕНЮ1 (тоже должно быть node), то да, должно быть активным, но у тебя-то скорее всего не так?

Аватар пользователя Toologic Toologic 12 февраля 2007 в 19:13

Да все никак не привыкну к местным фильтрам

Выше по тексту было введено МЕНЮ1 (путь front - в угловых скобках) - фильтр сожрал - хад.

Дык вот это меню с путем front -должно становиться активным по умолчанию (как я это понимаю) сразу по заходу юзера на сайт.
Пути то совпадают. И ессно - должны показываться и вторичные ссылки - уж коль они привязаны к нему. Ан нет...

Вы уж простите за навязчивость - но хочется разобраться - да думаю и другим будет потом понятно, чего ожидать.

Решение найдено - опытным путем.

Есил прописать путь в пункте меню не front (со скобками) а node - все работает!

Den - персональное спасибо! За помощь и долготерпение....

Аватар пользователя Dan Dan 12 февраля 2007 в 22:41

-- Есил прописать путь в пункте меню не front (со скобками) а node - все работает!
front - это, похоже, фича только для задания главной страницы, в остальных случаях, надо использовать назавание модуля(модулей)

--Den - персональное спасибо! За помощь и долготерпение....
Всегда пожалуйста Lol

Аватар пользователя kiev1 kiev1 27 февраля 2007 в 16:11

а можно как-то вставить в шапочку не все меню а по номеру например его каждой ссылки - одну ссылку в одно место, вторую в другое?

Аватар пользователя Dan Dan 28 февраля 2007 в 9:33

Непонятно. Шапочка это primary? А разные места - это порядок следования пунктов меню? Если порядок, то настраивается весом.

Аватар пользователя kiev1 kiev1 1 марта 2007 в 2:50

шапочка это например как на этом сайте "новости документация форум" - каждый пункт меню стоит в своей ячейке, так вот и я так хочу что-б не изобретать циклы и форматирования где-то внутри а просто и наглядно написать output .= $пункт1 и что-бы он появился точно там где я хочу, вопрос - какой функцией получить $пункт1?

Аватар пользователя ola90 ola90 1 марта 2007 в 11:06

немного другой вопрос, но из той же темы: можно ли не выводить пункт меню "create content", заменив его пунктом, например "create blog post". на моем сайте юзеры смогут постить только один вид контента, поэтому заставлять их дважды кликать в меню нехорошо, а меню вида
create content
create blog post
выглядит некрасиво.