Drupal - Изменить вкладки, добавленные на страницу пользователя с помощью Views - PullRequest
0 голосов
/ 28 февраля 2011

Я добавил несколько новых вкладок на страницу пользователя, используя «Виды» (как страницу с настройками вкладок меню и т. Д.). Теперь я хочу удалить их, если просматриваемый пользователь является текущим, вошедшим в систему пользователем.

Прежде чем добавить пользовательскую фильтрацию, моя первая проблема в том, что я просто не могу изменить эти вкладки вообще. Я знаю, что общая процедура заключается в использовании HOOK_MENU_ALTER и (например):

$items['user/%user/view']['type'] = MENU_CALLBACK;

Это прекрасно работает для исходных вкладок, но не для вкладок, добавленных в представления, например. для вкладки «Статьи»:

$items['user/%user/articles']['type'] = MENU_CALLBACK;

Обрабатываются ли вкладки в представлениях иначе, чем "обычные" вкладки?

Cheers, Джеймс

Ответы [ 2 ]

2 голосов
/ 28 февраля 2011

Прежде всего, вы не сможете скрыть их динамически, сделав их MENU_CALLBACK. Что вы должны сделать, это изменить функцию обратного вызова доступа на функцию, в которой вы будете проверять текущего пользователя.

Почему вы не можете найти вкладки, проверьте:

  • Нет пункта меню с % views_arg вместо% user
  • вес вашего модуля (в системной таблице) больше веса просмотров. Поскольку представления используют один и тот же хук, возможно, ваш модуль вызывается перед представлениями.
1 голос
/ 28 февраля 2011

Я думаю, что view добавляет все свои вещи в hook_menu_alter ().Чтобы изменить его, вам нужно придать вашему модулю больший вес в таблице {system}, чем представлениям.

...