Какие переменные находятся в переменной $ primary_nav в Drupal

Как мне вытащить массив всех меток и ссылок для каждого пункта меню в переменной $ primary_nav?

Я должен был вытащить основную переменную навигации, а затем перебрать все элементы в этой переменной. Из этих элементов я хочу извлечь список всех ярлыков навигации вместе со всеми связанными с ними ссылками.

user3784458 09.11.2018 13:04

Вы описали, что хотите делать. Что ты уже испробовал ? В чем проблема, это о переменных темы Drupal, о том, как перебирать массив / объекты в PHP?

EricLavault 10.11.2018 11:14

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

EricLavault 10.11.2018 11:20
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Разработка Drupal и AngularJS: Идеальное сочетание для вашей веб-стратегии
Разработка Drupal и AngularJS: Идеальное сочетание для вашей веб-стратегии
Один опытный веб-разработчик назвал комбинацию Drupal и AngularJS "сочетанием, созданным на небесах". Почему так? Потому что вместе они могут создать...
0
3
73
1

Ответы 1

Вы можете просто использовать 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());

Другие вопросы по теме