В чем разница между MENU_NORMAL_ITEM и MENU_CALLBACK? - PullRequest
8 голосов
/ 21 июля 2010

В чем разница между MENU_NORMAL_ITEM и MENU_CALLBACK?

Ответы [ 4 ]

13 голосов
/ 21 июля 2010

Более точный ответ: hook_menu() создает элементы маршрутизатора, а также генерируются ссылки меню.MENU_NORMAL_ITEM генерирует ссылку меню, которая появится в меню навигации, в то время как MENU_CALLBACK не добавляет ссылку меню, поэтому она не появится в меню.

7 голосов
/ 21 июля 2010

MENU_NORMAL_ITEM создает пункт меню, а MENU_CALLBACK - нет. Это единственная разница.

3 голосов
/ 25 июля 2010

В дополнение к вышеупомянутому комментарию, MENU_CALLBACK может использоваться в некоторых сценариях, таких как AJAX.Пример: example.com/ajax/country_list представляет собой MENU_CALLBACK, который возвращает список стран в формате HTML, JSON или XML ... Это меню не отображается в браузере.Вы можете посетить http://api.drupal.org/api/group/menu/6 для получения дополнительной информации.

2 голосов
/ 13 декабря 2013

Drupal отображает ссылки на функции.
Означает, что вам нужна функция для каждого URL. Функция в основном присутствует в модуле.
ex mysite / add будет отображать функцию в модуле.* Во многих случаях мы не хотим, чтобы URL-адрес использовался как пункт меню, но намереваемся использовать его для других целей.Лучший пример - обратный вызов Ajax.
Пример: у вас есть форма автоматического предложения, которая вызывает функцию предложения на сервере. Для запуска запроса Ajax потребуется URL-адрес. Пусть URL-адрес будет www.mysite /предложить
Это тот случай, когда вам нужно MENU_CALLBACK

 function example_menu() {
      $items['suggest'] = array(
      'page callback' => 'example_suggest',
      'access callback' => TRUE,
      'type' => MENU_CALLBACK,
     );
     return $items;
   }
   function example_suggest() {
     //you can return the autosuggested items to the page
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...