Как получить идентификатор узла из строки просмотра? - PullRequest
3 голосов
/ 20 ноября 2011

Я использую Drupal. У меня есть модуль, который загружает форму на узел. В моем модуле я использовал

if ( arg(0) == 'node' && is_numeric(arg(1)) ) {$node = arg(1);}

который получил nid каждая форма была включена.

Теперь я создал представление, которое отображает полные узлы, но мои узлы не отображают nid.

Я пытался использовать что-то вроде

$node = node_load($rows->nid);

но ничего не вернулось.

По сути, у меня есть страница просмотра, которая отображает около 10 узлов, и я пытаюсь найти nid каждого узла в представлении.

Ответы [ 2 ]

1 голос
/ 20 ноября 2011

Вы можете использовать модуль настраиваемого поля представлений, который даст вам доступ к объекту $ data для каждой строки.В него будет включен nid как $data->nid.Вы также можете получить к нему доступ в views-row.tpl.php.Если у вас есть модуль devel (который действительно необходим), вы можете использовать dsm(get_available_vars()); для симпатичной печати всех переменных, доступных в этом шаблоне, или просто dsm($data); для симпатичной печати объекта данных в ваших представлениях.настраиваемое поле (dsm() использует Krumo, что очень удобно).

0 голосов
/ 22 ноября 2011
if ( arg(0) == 'node' && is_numeric(arg(1)) ) {$node = arg(1);}

Этот код работает, только если пользователь находится на странице узла.Неважно, если путь является псевдонимом.Поэтому в Views это не будет работать.

Если вы создаете View, отображающий узлы, вы можете добавить поле node: id, чтобы получить идентификатор узла, которому принадлежит строка.Мне не нужно использовать Views Custom Filed (или модуль Views PHP, если вы находитесь на Drupal 7).

Если вы пытаетесь получить идентификатор узла ссылочного View, добавьте связь с другим узлом черезполе ссылки на узел сначала.

...