Использование функций темы в пользовательском модуле - PullRequest
0 голосов
/ 10 марта 2011

Это довольно специфическая проблема, которая может не дать элегантного ответа. Я хочу поделиться меню на двух сайтах, один Drupal и один нет. Я использую пользовательский модуль для реализации hook_menu_link_alter и хочу вывести тематическое меню в файл. Там нет обсуждения по этому вопросу, нам нужно просто предоставить HTML-файл для другого сайта. Я знаю способ грубой силы сделать это, просто выполняя цикл и просто воссоздавая то, что функция теминга уже делает, но я подумал, что, может быть, есть способ действительно использовать функцию теминга напрямую.

Прямо сейчас я пытаюсь ...

theme('links', theme('navigation-links', 'menu-name'), array('id' => 'menu-id'));

но я не получаю вывод. Я также не получаю ошибок, что является обломом. (Примечание: я не на 100% уверен, что тематическая функция для навигационных ссылок на самом деле является темой («навигационные ссылки»)).

Есть идеи?

(Примечание: я также разместил этот вопрос на новом сайте Drupal StackExchange, но могу удалить его, так как сообщества еще нет)

1 Ответ

0 голосов
/ 10 марта 2011

Тематическая функция для ссылок нуждается в массиве ссылок на тему.

вы можете использовать что-то вроде:

theme('links', menu_navigation_links('menu-name'));

Функция menu_navigation_links () существует в include / menu.inc и использует функцию menu_tree_page_data (), которая возвращает данные дерева меню в соответствии с текущей просматриваемой страницей. .

Вы можете использовать аналогичную функцию с именем menu_tree_all_data (), но вам придется делать те же манипуляции, что и menu_navigation_links () с данными, которые она возвращает. в противном случае вы все равно получите пустое меню.

...