Получение в текущем узле неудобной боли в задней части. Стандартная практика, чтобы сделать что-то вроде этого:
if (arg(0) == 'node' && is_numeric(arg(1)) && arg(2) == '') {
$node = node_load(arg(1));
// Collect output.
}
arg()
вытягивает элементы из пути Drupal. Так как все узлы (независимо от того, что может показать вам псевдоним пути), отображаются в узле/#, проверяя «узел», а второй - число, и вы, как правило, надежно закреплены за узлом. Проверка третьего элемента пути позволяет избежать обработки в форме редактирования узла и других страниц, зависающих от определенного узла.
ССК Значения загружаются в узел, и обычно выглядит примерно так:
// Text field. Structure also works for number fields.
$text = $node->field_my_text_field[0]['value']
// Node Reference field.
$nref = $node->field_my_nref_field[0]['nid']
// User Reference field.
$uref = $node->field_my_uref_field[0]['uid']
«0» элемент массива указывает дельта поля. Любое заданное поле может фактически обрабатывать несколько значений, и структура массива в CCK предполагает эту возможность, даже если вы ограничиваете поле единственным значением.
Это фантастическое спасибо. Я удивлен, что нет встроенной функции Drupal для получения идентификатора узла! – Camsoft