Есть вьюха со ссылкой типа user/%/posts выводит материалы пользователя. Как сделать пункт меню, ведущий на эту ссылку? Во вьюхе можно только вкладку на странице пользователя сделать.
Чтобы не вводил в Гугл - меня перекидывает на модуль me. Он делает ссылку на "свои" посты. А мне нужно на посты каждого юзера.
Я конечно могу "своими" методами тот блок со ссылкой сделать, но интересно знать а возможно ли через пункт меню Друпала?
Комментарии
Нужен список пунктов всех юзеров сайта?
Или должна быть все же вкладка на странице юзера со списком его постов?
"Нужен список пунктов всех юзеров сайта?"
Не знаю. Не понял если честно.
"Или должна быть все же вкладка на странице юзера со списком его постов?"
Если вкладка - я знаю как - через views. Т.е. если она будет ничего страшного, но мне пункт меню нужен больше а не вкладка.
Делаешь ссылку типа /myposts, без контекстных фильтров, но добавляешь простой фильтр по автору, равному текущему пользователю.
Я думал текущий это тот кто зашел. Не?
Да, именно. Или нужно вывести ссылку на каждого юзера? А если юзеров 100?
Хоть 10000 - нужно вывести пункт меню как вкладку
Вернее как 10000 вкладок? Или всё же одну? А если одну, то кто тот юзер? Ибо если он избранный, то просто добавляется ссылка в меню с одним захардкоженным айдишником. Если нужен текущий юзер, то выше я уже писал, как это делается.
https://www.drupal.org/project/maximenu можно формировать меню вьюхами
Menu token
И вообще непонятно, в чём загвоздка добавить в меню пункт вручную?
maximenu - дажже не знаю подойдет ли.
Menu token - я то поставил путь user/[user:uid]/posts в пункт меню, а как Друпал будет определять на какого именно пользователя ставить ссылку?
Я имею ввиду вывести эту вкладку в виде пункта меню:
Это скорее всего LOCAL_TASK в hook_menu, но я не уверен))
ууууууу не для моего ума такое. мне проще или вьюхой ссылкку вывести или вкладки на странице профиля темизировать
user:uid - ID пользователя, для которого отображается страница
можно через Menu token,
можно сделать например вьюсом роут /myposts который добавить в меню, а id юзера брать из аргумента вьюса по умолчанию, в этом случае можно будет закешировать блок с меню, т.к. ссылка для всех юзеров будет одинаковой
"можно через Menu token" - как я реально не понял, хоть модуль смотрел?
"можно сделать например вьюсом роут /myposts который добавить в меню" - мне не принципиально, чтобы ссылка была одинаковой для всех. Собственно у меня она для всех разная по ИД. Роут это что?
Воспользуйтесь контекстным фильтром.
под "роутом" понимается поле 'Path' страницы вьюхи
Смотрите на картинки (лучше один раз увидеть...
Настройки контекстного фильтра
Как вьюху сделать я понял. А как вы предлагаете поместить путь на эту вьюху в меню пользователя? Т.е. например я хочу посмотреть посты одного пользователя, потом другого.
Пока что я могу подобные ссылки создать без системы меню Друпала.
прибил коммент, так как неправильно понял задачу.
Можно сделать следующим образом:
1 Создаём вью с дисплеем Page, которая выводит список пользователей в виде ссылок на вьюхи с их постами.
Для этого добавляем два поля, одно скрытое с 'User: Uid' пользователя, а второе с 'User: Name'.
В настройках второго поля на вкладке 'REWRITE RESULTS' выставляем опцию 'Output this field as a link'
и в поле 'Link path' вписываем адрес: user/[uid]/posts
(так как предыдущее поле получает Uid пользователя, то можно использовать токен [uid] который подставит айди пользователя в ссылку).
2 Добавляем ссылку на вью в меню, настроив свойство 'Menu' на страничке 'Page details'.
Если нужно чтобы меню было выпадающим, то можно использовать модуль maximenu, который посоветовал Алексей (в этом случае нужно будет создать блок для вью).