Як приховати тип вмісту на сторінці додавання вузла?


11

Мені потрібен спосіб приховати тип вмісту на сторінці додавання вузла, а ще краще - зробити два відокремлених вузла, щоб додати сторінки, що розділяють мої типи вмісту. Я на Drupal 7 і маю чотири різних типи вмісту. Я хотів би, щоб три з них знаходилися на сторінці додавання вузлів за замовчуванням, а четверта була окремою. Як би я це зробив? Дякую

Відповіді:


11

Дві можливості:

  • admin/structure/menu/manage/navigation перемістити / видалити пункт меню, який ви не хочете.
  • Найпростіший спосіб: використовувати ролі та дозволи. Якщо користувач не може створити тип вмісту, посилання не з’явиться в жодному меню.

Дякую за вашу відповідь. Ваш перший можливий спосіб - це той, який я б використовував, тому що мені все ще потрібні користувачі, щоб вони могли створювати вузли мого четвертого типу вмісту. Мені просто потрібно його відокремити від інших трьох.
oobie11

Гаразд, просто перенесіть пункт меню в інше меню або прихойте його та створіть ще одне це те саме посилання на меню (вузол / додати / <ваш_контент_типу>)
підготуйте

Це найкраща відповідь.
Крістен

4

Помістіть це у спеціальний модуль:

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

2
MENU_DEFAULT_LOCAL_TASK перетворює посилання на вкладки. Я використав MENU_CALLBACK замість цього.
Фріман

3

ОНОВЛЕННЯ

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Сторінка забезпечується модулем Node. Ви можете зробити все, що завгодно, відключивши пункт меню в Навігаційному меню відповідно до цього допису: http://data.agaric.com/disabling-or-moving-nodeaddcontent-type-links-from-beneath- додавання-вміст-навігація-меню-також-видаляє

Це трохи помилка, тому це може бути не надійним способом це зробити. Особисто я створив власну версію node/addсторінки в модулі, скопіювавши існуючу та внісши мої конкретні модифікації. Тоді я хотів би використовувати , hook_menu_alterщоб node/addперейти до моєї версії.

Можливо, ви зможете замінити його на подання чи панель (на "Менеджер сторінки"), але я цього не пробував, і ви, ймовірно, втратили автоматизацію.


Дякую! Де розміщена node/addсторінка для копіювання? І як би ви запропонували роздрукувати різні типи вмісту?
oobie11

Це повинно бути в node.pages.inc. Якщо вам потрібні інші типи для відображення під час їх створення та у них немає статичного списку, зробіть це в коді.
wizonesolutions

Самостійне спостереження: мені не подобається моя власна відповідь від 4,5 років тому. Скористайтеся одним із наведених вище :)
wizonesolutions
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.