Проверьте, является ли страница узлом, используя аргументы в D7


В Drupal 6, чтобы проверить, является ли текущая страница узлом, мы используем следующий фрагмент кода:

if (arg(0)=='node' && is_numeric(arg(1))) { /* Do stuff. */ }

Поскольку это часто используемое утверждение, мне интересно, есть ли более короткий способ сделать это в Drupal 7, например, что-то похожее на следующее:

if (is_node()) { /* Do stuff. */ }
 6
Author: kiamlaluno, 2011-08-29

1 answers

На самом деле, есть функция, которая доступна и в Drupal 6: menu_get_object(). Со значениями по умолчанию он вернет объект узла, если URL-адрес текущей страницы начинается с узла/[идентификатор узла] (где [идентификатор узла] является идентификатором узла), и FALSE в других случаях; функция особенно полезна, если после проверки того, что текущая страница является страницей узла, вам также необходимо получить доступ к объекту узла, связанному со страницей, и вызывающая функция menu_get_object() не получает объект узла. объект узла между его аргументами.

В Drupal 7 есть также другая функция, но ее цель - просто проверить, является ли текущая просматриваемая страница полным представлением страницы узла, переданного в качестве аргумента: node_is_page().

 15
Author: kiamlaluno, 2017-05-08 03:45:44