Какие переменные находятся в переменной Drupal $ primary_nav - PullRequest
0 голосов
/ 08 ноября 2018

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

1 Ответ

0 голосов
/ 08 ноября 2018

Вы можете просто использовать php's print_r(). Или используйте специальный модуль, такой как devel : он предоставляет помощники, которые красиво печатают переменные, включая массивы и объекты. Он также предоставляет кнопку очистки кэша, может генерировать случайные узлы и т. Д.

Я думаю, что devel's dprint_r() и dpm() являются наиболее часто используемыми функциями и наиболее полезными для разработчиков Drupal, когда дело доходит до печати и отладки переменных.

В вашем случае $primary_nav - это обработанная переменная: сначала она создается функциями из зарегистрированной темы, затем ее можно изменить в process или препроцесс hooks , предоставляемый темами и / или модулями.

Зная это, вы можете распечатать его прямо из шаблона, над которым вы работаете, например 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());

...