Views и Меню (решено)

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

Аватар пользователя Alex_R Alex_R 31 августа 2010 в 21:41

Создал представление в котором аргументом передается uid текущего пользователя. Как сделать ссылку в меню, по которой будет показываться данное представление? Т.е. для каждого пользователя адрес ссылки свой, типа xxxxxx/uid.

Комментарии

Аватар пользователя t3hk0d3 t3hk0d3 31 августа 2010 в 21:59

Никак. И насамом деле пихать пользователей без особой надобности в меню нету смысла. Я например тоже ломал над этим голову, написал патч для menu.inc для поддержки хуков изменения дерева меню, но потом пришлось вывести все блоке через view и стилизировать под меню.

Аватар пользователя Alex_R Alex_R 31 августа 2010 в 22:07

t3hk0d3 wrote:
Никак. И насамом деле пихать пользователей без особой надобности в меню нету смысла. Я например тоже ломал над этим голову, написал патч для menu.inc для поддержки хуков изменения дерева меню, но потом пришлось вывести все блоке через view и стилизировать под меню.

т.е. Ссылки типа user/[uid], которая присутствует в друпале в меню и показывает профиль текущего пользователя ("мои учетные данные") самому не сделать? Как то в это не верится...

Аватар пользователя Alex_R Alex_R 1 сентября 2010 в 13:07

Сделал через переадресацию.

Чем такой вариант может быть плох со всех точек зрения???

Создал пункт меню, в параметре 'page callback' указал название функуии, которая не формирует страницу, а делает перенаправление с нужными аргументами на представление Views.
Примерный текст функции:

<?php
  
global $user;
  
drupal_goto('my_path/'.$user->uid);
?>

Чем такой вариант плох?

Аватар пользователя MaNaX MaNaX 1 сентября 2010 в 13:32

Временем загрузки страницы для пользователя + небольшая дополнителаная нагрузка на сервер - ведь в 2 раза больше приходится генерировать страницу...

Аватар пользователя Alex_R Alex_R 1 сентября 2010 в 13:51

MaNaX wrote:
??? при помощи аргументов во вьюхе. сам не делал но наверн мона..

С помошью views с аргументами уже делается страница, доступная по пути в конце которого uid пользователя.
Вопрос был как ее к меню прикрутить и показать каждому пользователю именно его выборку.

MaNaX wrote:
Временем загрузки страницы для пользователя + небольшая дополнителаная нагрузка на сервер - ведь в 2 раза больше приходится генерировать страницу...

Не уловил, почему в два раза? "первая" же страница состоит только из перехода. Имхо как Друпал в других случаях использует ресурсы, данным увеличением нагрузки явно можно пренебречь.
Мне самому мой вариант не нравится, но как лучше я пока не понял Sad Вот выше народ вообще говорит, что подобное никак не сделать, а у меня работает...

Аватар пользователя MaNaX MaNaX 1 сентября 2010 в 14:07

трррр... в если добавить в представление отображение страница, появляется блок настройки страницы где можно выбрать путь(аргумент заменяется Wacko страницы и меню, где отображать эту страницу,

Аватар пользователя Alex_R Alex_R 1 сентября 2010 в 14:19

MaNaX wrote:
трррр... в если добавить в представление отображение страница, появляется блок настройки страницы где можно выбрать путь(аргумент заменяется Wacko страницы и меню, где отображать эту страницу,

"Views cannot create normal menu items for paths with a % in them."

Сейчас разбираюсь с функцией _to_arg но как я понимаю для данного случая без переадресации она тоже не сильно поможет.

Аватар пользователя annya@drupal.org annya@drupal.org 1 сентября 2010 в 14:32

А зачем Вам аргумент в пути? Делаете путь одинаковый для всех и настраиваете аргумент.
http://screencast.com/t/MmEzMzQ0ZWI
Так как Вы хотите сделать нельзя так как в базе данных должно быть однозначное соответствие mlid(id пункта меню) - путь. Как вариант если Вам очень хочется чтобы был путь xxxx/[uid], создайте свой блок и выведите там такое меню как Вам нужно.