Есть ли лучший способ создать вкладку профиля пользователя с помощью представления?
Я создал тип узла вопросов с помощью CCK и хотел бы показать все вопросы, которые пользователи создают на вкладке на странице своего профиля.
То, как я это сделал, кажется немного косвенным. У меня есть:
- Создал представление, в котором перечислены все вопросы пользователя, и создал блок для его отображения.
- Настроил блок так, чтобы он отображался только по правильному пути ("пользователь/*/вопросы").
- Создал запись в hook_menu для этого пути. Используется обратный вызов страницы, который вызывает функцию, создающую пустую страницу (см. Ниже).
Есть ли более прямой способ сделать это, например, прикрепив представление непосредственно к странице профиля?
Код в hook_menu()
таков:
$items['user/%/questions'] = array(
'title' => 'Your Questions',
'description' => 'User Questions',
'page callback' => 'answers_blank_page',
'access arguments' => array('create question content'),
'type' => MENU_LOCAL_TASK,
'weight' => 9,
);
Обратный вызов страницы просто:
function answers_blank_page () {
return '';
}
3 answers
Для этого нет необходимости использовать пользовательский модуль: модуль представлений уже позволяет связать URL-адрес с представлением и сделать представление отображаемым в виде вкладки меню.
Следующие скриншоты предназначены для представлений 7.x-3.x-dev, но настройки присутствуют также в предыдущих версиях модуля.
В разделе "Настройки страницы" есть два параметра: "Путь" и "Меню". На скриншотах показаны настройки, используемые для представления, реализованного сторонним модулем (модуль Флаг ), чей вид отображается в виде вкладки меню.
Создайте новое представление страницы, а затем настройте его для предоставления пункта меню, в частности вкладки, по пути пользователь/%/вопросы.
Это должно работать, просто создав отображение страницы, установив соответствующий путь; не нужно выполнять сложные шаги, которые вы использовали.
Изменить: вы также должны указать пункт меню для отображения.