Получение в текущем узле - неловкая боль в задней части. Стандартная практика - делать что-то вроде этого:
if (arg(0) == 'node' && is_numeric(arg(1)) && arg(2) == '') {
$node = node_load(arg(1));
// Collect output.
}
arg()
вытаскивает элементы с пути Друпала. Поскольку все узлы (независимо от того, какой псевдоним пути может показать вам) появляются в узле / #, проверяя «узел» и то, что вторым элементом является число, вы довольно хорошо гарантируете, что у вас есть руки на узле. Проверка третьего элемента пути позволяет избежать обработки в форме редактирования узла и других страницах, которые зависают от определенного узла.
Значения CCK загружаются в узел и обычно выглядят примерно так:
// 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" указывает delta поля. Любое данное поле может фактически обрабатывать несколько значений, и структура массива в CCK предполагает такую возможность, даже если вы ограничиваете поле одним значением.