Есть ли лучший способ создать вкладку профиля пользователя с помощью представления?


Я создал тип узла вопросов с помощью CCK и хотел бы показать все вопросы, которые пользователи создают на вкладке на странице своего профиля.

То, как я это сделал, кажется немного косвенным. У меня есть:

  1. Создал представление, в котором перечислены все вопросы пользователя, и создал блок для его отображения.
  2. Настроил блок так, чтобы он отображался только по правильному пути ("пользователь/*/вопросы").
  3. Создал запись в 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 '';
}
Author: kiamlaluno, 2011-05-29

3 answers

Для этого нет необходимости использовать пользовательский модуль: модуль представлений уже позволяет связать URL-адрес с представлением и сделать представление отображаемым в виде вкладки меню.

Следующие скриншоты предназначены для представлений 7.x-3.x-dev, но настройки присутствуют также в предыдущих версиях модуля.
В разделе "Настройки страницы" есть два параметра: "Путь" и "Меню". На скриншотах показаны настройки, используемые для представления, реализованного сторонним модулем (модуль Флаг ), чей вид отображается в виде вкладки меню.

path settings

menu settings

 4
Author: kiamlaluno, 2017-09-25 04:48:39

Создайте новое представление страницы, а затем настройте его для предоставления пункта меню, в частности вкладки, по пути пользователь/%/вопросы.

 3
Author: ulmas, 2011-05-30 02:14:22

Это должно работать, просто создав отображение страницы, установив соответствующий путь; не нужно выполнять сложные шаги, которые вы использовали.

Изменить: вы также должны указать пункт меню для отображения.

 1
Author: Jedihe, 2011-05-30 01:49:35