Элемент меню модуля Drupal не отображается в первичных ссылках меню - PullRequest
1 голос
/ 25 октября 2010

Я пытаюсь получить пункт меню для отображения в «первичных ссылках».

Я прочитал это , но это не работает. Что я делаю не так?

/**
 * Implementation of hook_menu().
 */
function modulename_menu() {
    $items = array();

    $items['test'] = array(
            'title' => t('test'),
            'description' => 'some description',
            'page callback' => 'modulename_function',
            'access callback' => TRUE,
            'type' => MENU_NORMAL_ITEM,
            'menu_name' => 'primary-links',
    );

    return $items;
}

Так что я ожидаю, что рядом с моими первичными ссылками появится надпись "test".

Я добавил блок «primary-links» в заголовок и вошел как user / 1, но ссылка «test» по-прежнему не отображается в меню или строке заголовка.

Использование Drupal 6.x с темой Garland.

Ответы [ 2 ]

2 голосов
/ 25 октября 2010

При добавлении меню модулей вы должны либо вручную запустить функцию menu_rebuild (), либо перейти на страницу модулей в admin-> build-> modules (посещение этой страницы запускает функцию menu_rebuild), а затем очистить кеш.Кажется, что Drupal должен просто показывать пункты меню по мере их добавления, но даже при отключенном кэшировании они кэшируются: кэширование применяется только к контенту.Это необходимо делать каждый раз, когда элемент меню добавляется или изменяется.

Для суммирования:

  1. Жесткое обновление на странице модулей
  2. Очистить кеш.

Этот парень тоже написал об этом: http://data.agaric.com/node/1818

1 голос
/ 26 октября 2010

Как сказано в комментарии на ссылке Эндрюса.

Использование модуля devel и использование ссылки «Перестроить меню» - это еще более простой способ. Он делает то же самое, но теперь вам требуется только одна мышьщелкните;)

Если у вас не установлен devel, перейдите и установите его!Это удобный (или обязательный) инструмент, если вы разрабатываете модули.

...