Можно использовать анализ адреса хранимый Drupal в $_GET[‘q’] и/или анализ частей адреса, получаемых функцией arg(N).
Оба варианта по сути делают одно и тоже — анализ внутреннего адреса, который для публикации имеет вид: node/%NID%.
Я использую функцию вида:
|
|
function currentNid() { if (arg(0) == 'node' && is_numeric(arg(1)) && arg(2) == '') { return arg(1) + 0; } return 0; } |
Она вернет код текущей публикации или ноль, если страница не является публикацией (или вы находитесь в редакторе публикации и т.п.).
Дальше можно загрузить объект ноды для работы с ним:
|
|
if ($nid = currentNid() && $node = node_load($nid)) { //в nid - код публикации //в node - объект публикации //... } |
Drupal 7
Данная запись опубликована в 08.11.2016 19:33 и размещена в рубрике Drupal.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Май 15, 2018 г.
Друпал не позволяет менять длину текстового поля после создания. Функция field_update_field также нам не поможет - будет сгенерирована соответствующая ошибка, что поле уже содержит данные и изменить его длину нельзя.
Это можно проделать вручную, зная ...
Читать
Ноябрь 15, 2019 г.
Типичная проблема при использовании модуля views - как вывести результат группировки, т.е. столбец вроде COUNT(*).
Это можно сделать штатными средствами ...
Читать
Март 25, 2019 г.
Блок меню core модуля menu позволяет вывести всю иерархию меню полностью, но иногда требуется показать только 1-2 верхних уровня. Посмотрим как организовать такой вывод.
Drupal в модуле menu использует функцию menu_tree('ИМЯ МЕНЮ'), чтобы рендерить ...
Читать
Май 28, 2021 г.
Небольшой сниппет (snippet) по удалению сущностей nodequeue из кода. Может быть полезно при миграции данных.
Удобно оперировать с машинным именем нод-кью, но функция удаления требует ID, потому код обычно обретает следующие формы:
[crayon-6abd473962876468117589/] ...
Читать