Как мне вытащить массив всех меток и ссылок для каждого пункта меню в переменной $ primary_nav?
Вы описали, что хотите делать. Что ты уже испробовал ? В чем проблема, это о переменных темы Drupal, о том, как перебирать массив / объекты в PHP?
У вас всегда будет лучшее представление о том, как достичь того, чего вы хотите, отлаживая свои переменные, чтобы понять, как они структурированы (например, это вложенный массив объектов или плоский список целых чисел?), Прежде чем в конечном итоге использовать его, перебирая элементы и хватая то, что вам нужно. Никто не может сделать это за вас, но вы можете в конечном итоге публиковать результаты отладки, журналы ошибок или образцы кода, чтобы получить более специализированную помощь, но не забывайте оставаться универсальным, чтобы другие пользователи могли получить пользу от вашего сообщения и его ответов.



Вы можете просто использовать php print_r(). Или используйте специальный модуль, такой как развиваться: он предоставляет помощники, которые хорошо печатают переменные, включая массивы и объекты. Он также предоставляет кнопку очистки кеша, может генерировать случайные узлы и т. д.
Я думаю, что devel dprint_r() и dpm() являются наиболее часто используемыми функциями и, как мне кажется, наиболее полезными для разработчиков Drupal, когда дело доходит до печати и отладки переменных.
В вашем случае $primary_nav - это переменная обработанный: она сначала подготавливается функциями из зарегистрированной темы, затем ее можно изменить в процесс или предварительная обработкахуки, предоставляемых темами и / или модулями.
Зная это, вы можете либо распечатать его прямо из шаблона, над которым работаете, например page.tpl.php:
<?php if (!empty($primary_nav)): ?>
<!--<?php print render($primary_nav); ?>-->
<?php dpm($primary_nav); ?>
<?php endif; ?>
.. или отладить его «раньше» в функции процесс или предварительная обработка, например:
function some_preprocess_page(&$variables) {
dpm($variables['primary_nav']);
}
Кроме того, если вы не знаете, что происходит или какие переменные доступны в шаблоне, сочетание php get_defined_vars() с красивой функцией печати может быть очень полезным: dpm(get_defined_vars());
Я должен был вытащить основную переменную навигации, а затем перебрать все элементы в этой переменной. Из этих элементов я хочу извлечь список всех ярлыков навигации вместе со всеми связанными с ними ссылками.