Пользовательские темы Drupal 6 Меню - PullRequest
0 голосов
/ 09 августа 2011

Есть ли функция ловушки или предварительной обработки, к которой я могу обратиться, чтобы написать свою собственную функцию создания тем для меню drupal (в данном случае, для первичных ссылок)?

У меня довольно сложная структура меню, которая требует немного дополнительной разметки, чем я сейчас получаю, просто отображая элементы меню в блоке (включая подменю с небольшой пользовательской разметкой), и мне действительно нужно получить доступ к сборке переменная содержимого меню сама, в идеале из массива, который имеет все первичные ссылки и их дочерние области.

1 Ответ

0 голосов
/ 09 августа 2011

Хотя это может быть и не лучшее решение, оно работает довольно быстро и безболезненно:

Drupal хранит кэшированную версию всех ваших меню в таблице cache_menu. Я запустил этот запрос, чтобы получить сериализованную строку, содержащую все содержимое меню:

SELECT data FROM menu_cache WHERE serialized = 1 AND cid LIKE 'links:primary_links:%';

Замените primary_links на любое имя вашего меню и вызовите unserialize для $ row-> data, чтобы получить структурированный массив всего, что вам нужно для создания пользовательского меню.

Я вызываю функцию в hook_preprocess_block, которая заменяет содержимое блока меню своим собственным, и все, кажется, работает нормально.

...