Как изменить вкладки ссылок, найденные на странице профиля пользователя по умолчанию в drupal? - PullRequest
4 голосов
/ 02 августа 2010

Как мне отредактировать вкладки ссылок, найденные на странице профиля пользователя по умолчанию в drupal? Я пытаюсь избежать создания файла user_profile.tpl.php и перестроить весь профиль с нуля. Если есть более простой способ сделать это, я бы предпочел сделать это. Но если я вынужден создать собственный шаблон, как я могу управлять вкладками меню для профиля? Я не нашел никакой документации, которая объясняет эту часть.

Ответы [ 2 ]

2 голосов
/ 03 августа 2010

Редактировать

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

Редактировать 2

Убрана проверка user_access() для unset, поскольку она будет проверяться только при перестройке меню. Вместо этого добавлен access callback пример.


Вы можете сделать это в пользовательском модуле с hook_menu_alter() и unset():

function mymodule_menu_alter(&$items) {
  // If you have the Devel module installed, uncomment to retrieve list
  // of registered menu items to figure out what to unset.
  // kpr($items);

  // Change the name of the Edit tab
  $items['user/%user_category/edit']['title'] = t('Awesome edit!');

  // Disable the user edit tab, but don't disable the page if you go navigate 
  // directly to it
  // @see http://api.drupal.org/api/function/hook_menu/6 for other types
  $items['user/%user_category/edit']['type'] = MENU_CALLBACK;

  // Only allow people with administer site configuration permissions to
  // access the user edit and user edit account tabs.
  $items['user/%user_category/edit']['access callback'] = 'user_access';
  $items['user/%user_category/edit']['access arguments'] = array('administer site configuration');
  $items['user/%user_category/edit/account']['access callback'] = 'user_access';
  $items['user/%user_category/edit/account']['access arguments'] = array('administer site configuration');

  // Completely disable the user edit tab, even if you go directly to it
  // This affects all users, including user 1.
  unset($items['user/%user_category/edit']);
  unset($items['user/%user_category/edit/account']);
}

Каждый элемент меню регистрируется в Drupal с использованием массива $items. После включения этого модуля перестройте кеш, и вкладки должны быть изменены.

1 голос
/ 25 марта 2014

Вы можете использовать модуль Tab Tamer для редактирования стандартных вкладок Drupal, которые появляются на страницах профиля пользователя.

...