Решил попробовать сделать первый сайт на Drupal 5.1. И наткнулся на проблему с меню.
Само меню реализовано при помощи стандартного меню Drupal + сделан словарь с набором терминов. Каждый пункт меню ссылается на отделный термин, например taxonomy/term/34 и т.д. (на эти сслыки также сделаны aliases). Проблема следующая - если захожу в любой пункт меню (http://www.goa.lv/beach/anjuna), то он сам становиться выделеным и в основной части окна отображаются все статьи по данному пункту меню. Но как только я нажимаю просмотреть люую статью уже никакой пункт меню не выбран (http://www.goa.lv/node/38)
Может это архитектурно не верно, но как сделать чтобы при просмотре конкретной статьи был выбран соответствующий пункт меню или есть какой-то другиой подход для реализации такой функциональности?
Сам сайт находиться в стадии разработки, дизайн еще не прикручен, так что строго не судите
Комментарии
Надо, чтобы статьи были привязаны к пункту меню у которого адрес taxonomy/term/34.
Не совсем понял о какой привязке идет речь. Где можно указать к какому пункту привязана статья?
Пробовал при редактировании истории в блоке Меню указать в поле "Parent item:" необходимое меню, но это не помогло
Например такая конфигурация.
Меню:
-- Информация (путь - taxonomy/term/13/all, родительский пункт - корень меню)
-- -- Заметка1 (путь - node/11, родительский пункт - "Информация")
-- -- Заметка2 (путь - node/12, родительский пункт - "Информация")
-- -- Статьи (путь - taxonomy/term/14/all, родительский пункт - "Информация")
Если идём в меню "информация", получаем список: "Заметка1", "Заметка2" и все статьи, привязанные к термину 14.
Если идём в меню "информация/Статьи", получаем все статьи, привязанные к термину 14.
Если читаем статью, привязанную к термину 14, меню "информация" и меню "Статьи" развёрнуты, статья активна.
Все равно что-то не работает Похоже я что-то недопонимаю.
Специально для упрощения понимания убрал для двух пунктов aliases. Получается такая конфигурация:
Меню:
-- Пляжи (путь taxonomy/term/5/all) родительский пункт корень меню.
--- Anjuna beach (taxonomy/term/34/all) родительский пункт корень меню "Пляжи".
Если идем в меню "Пляжи" видим все заметки (истории) о всех пляжах (см. http://www.goa.lv/taxonomy/term/5/all).
Если идем в подменю "Anjuna beach" видим все заметки (истории) о пляжах по категории "Anjuna beach" (см. http://www.goa.lv/taxonomy/term/34/all). Меню раскрыто и отображается как надо!
Из этого списка идем в конкретную статью (историю), которая принадлежит категории Anjuna beach (http://www.goa.lv/node/38) меню закрывается!
Что все-таки я делаю не так?
Пожалуйста помогите советом - горю!
Сделал уже тестовый вариант, совершенно простой: только меню два пункта, в каждом два подпункта и столько же терминов.
И все это также не корректно работает - при выборе статьи меню закрывается хоть ты тресни :E
Прошу прощения, забыл упомянуть, что каждая статья в категории "Anjuna beach" должна быть "привязана" к меню "Anjuna beach". Попробуй.
Опять не удача
Я уже пробовал указать для статьи поля "Title" и "Parent Item" в блоке "Menu". Получается следующее: В меню появляется еще один пункт "Anjuna beach" который ссылается напрямую на эту статью node/38/
Получается теперь два пункта меню "Anjuna beach", один ссылается на определенную статью (статью node/38/), а второй на все статьи, относящиеся к категории "Anjuna beach" (taxonomy/term/34/all).
См. http://www.goa.lv/taxonomy/term/5/all
Заведи пользователя с правами править меню и пришли мне имя/пароль в личку. Может что сделаю
Sent
Готово.
Спасибо!!!!
Значит, резюмируя, решение проблемы следующее:
При добавлении статьи необходимо указать Название пункта меню для этой статьи, и установить Parenta тот пункт, под которым она должна отображаться.
Правда в этом случае я вижу один Side Effect:
Кол-во подпунктов = кол-ву статей для данного пункта, что может быть несколько не удобно если планируется большое кол-во материалов.
Интересно возможно ли как-то ограничить глубину при отображении меню
p.s. Я еще не достал своими вопросами?
Да, ты прав - этот вариант подходит только для небольшого количества материалов и, к тому же, имеет другой существенный минус: если редакторов много, то объяснить всем, что статью надо привязывать дважды - к категории и пункту меню, будет проблематично.
Если статей много, эту проблему надо решать по другому. Самый простой - в теме анализировать принадлежность материла к терму, и смотреть есть ли пункты меню с адресом, равным этому терму. Другой способ - искать модуль, например присмотрись к book, чем чёрт не шутит
Чтож будем пробовать, спасибо за help
Ты пишешь "Самый простой - в теме анализировать принадлежность материла к терму, и смотреть есть ли пункты меню с адресом, равным этому терму.".
Я не очень разбираюсь в архитектуре Drupala, почему данный анализ необходимо делать в теме? Может есть похожие примеры, PHP вроде знаю нормально, так что если дашь наводку думаю размерусь.
Ну, в смысле для меня простой И в лоб.
Почему в теме? Ну тема собственно нужна как раз для этого - формирование информации для отображения. Потому и в теме.
Есть ещё вариант самому писать модуль, но думаю этот вопрос уже решён и ответ имеется на drupal.org. Попробуй поискать.
Да я уже рыл, даже вопрос на форумме задал (http://drupal.org/node/123414). Никто не откликается, может не ясно выражаюсь.
Придумал забавное решение:
При добавлении статьи мы присваиваем ей отдельный пункт меню (так как ты сделал), потом идем в настройки меню и делаем этот пункт меню disabled. После этой манипуляции он не отображается в меню, но при выборе статьи меню остается открытым
мда. столкнулся с такой же проблемой. отдельные пункты в моем случае - не вариант, так как статей будут тысячи...
похоже, единственное решение вот это:
--------
"Если статей много, эту проблему надо решать по другому. Самый простой - в теме анализировать принадлежность материла к терму, и смотреть есть ли пункты меню с адресом, равным этому терму."
--------
Кто бы сформулировал на аглицком для drupal.org?
Не, это не единственное решение
Надо просмотреть (ибо писать с нуля - лень) все модули, работающие с меню и таксономией. Нужный кусок кода в них обязательно найдётся.
Если ничего не найдёшь - пиши, помогу если смогу.
пересмотрел кучу модулей, ничего похожего не нашел
Ладно, давай попробем описать задачу.
Как тебе такое:
- есть блок со писком терминов определённого(ых) словаря(ей)
- если выведен список нодов одного из терминов - термин в блоке подсвечен
- также он подсвечен, если отображается документ ему принадлежащий
Блин, не понимаю, чем это поможет, Давайте на кокретном примере, см. http://dev.internews.kz/:
идем в раздел "Юридическая поддержка", затем в secondary - "Комментарии", после грузим материал - все, меню потеряно.
некропост
Проблема решается модулем http://drupal.org/project/menutrails