Как скрыть тип контента на странице добавления узла?


Мне нужен способ скрыть тип контента на странице добавления узла или, еще лучше, сделать так, чтобы два отдельных узла добавляли страницы, которые разделяют мои типы контента. Я нахожусь на Drupal 7 и у меня есть четыре разных типа контента. Я бы хотел, чтобы три из них были на странице добавления узла по умолчанию, а четвертый был отдельным. Как бы я это сделал? Спасибо

 11
Author: oobie11, 2011-12-16

3 answers

Две возможности:

  • admin/structure/menu/manage/navigation переместить/удалить пункт меню, который вам не нужен.
  • Самый чистый способ: используйте роли и разрешения. Если пользователь не может создать тип контента, ссылка не появится ни в одном меню.
 12
Author: nourcy, 2016-03-25 00:32:41

Поместите это в пользовательский модуль:

function yourcustommodule_menu_alter(&$items) {
  if (isset($items['node/add/your-content-type'])) {
    $items['node/add/your-content-type']['type'] = MENU_DEFAULT_LOCAL_TASK;
  }
}
 4
Author: Jancis, 2016-03-25 00:25:28

ОБНОВЛЕНИЕ

MENU_CALLBACK, как предлагалось в других ответах, здесь у меня ничего не получилось. Они по-прежнему отображаются на странице node/add.

Этот код сработал:

function MYMODULE_menu_alter(&$items) {
  if (isset($items['node/add/your-content-type'])) {
    unset($items['node/add/your-content-type']);
  }
}

Конечно, предполагается, что вы хотите отключить (а не скрыть) ссылку node/add для этого типа.


ОРИГИНАЛЬНЫЙ ОТВЕТ

Страница node/add предоставляется модулем узла. Вы можете сделать то, что хотите, отключив пункт меню в меню навигации, согласно этому сообщению: http://data.agaric.com/disabling-or-moving-nodeaddcontent-type-links-from-beneath-add-content-navigation-menu-also-removes

Это небольшая ошибка, так что это может быть ненадежным способом сделать это. Лично я бы создал пользовательскую версию страницы node/add в модуле, скопировав существующую и внеся свои конкретные изменения. Тогда я бы использовал hook_menu_alter чтобы заставить node/add перейти к моей версии.

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

 3
Author: wizonesolutions, 2016-03-25 00:25:25