如何从视图行获取节点ID?

时间:2011-11-20 18:08:13

标签: php drupal views

我正在使用Drupal。我有一个模块将表单加载到节点上。在我的模块中,我使用了

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

得到了每张表格nid

现在我创建了一个显示完整节点但我的节点未显示nid的视图。

我尝试使用像

这样的东西
$node = node_load($rows->nid);

但它没有返回任何东西。

基本上我有一个显示大约10个节点的视图页面,我试图在视图中找到每个节点的nid

2 个答案:

答案 0 :(得分:1)

您可以使用视图自定义字段模块,该模块可让您访问每行的$ data对象。其中包括$data->nid的nid。您还可以views-row.tpl.php访问它。如果你有devel模块(这是必须的,真的),你可以使用dsm(get_available_vars());来打印该模板可用的所有变量,或只是dsm($data);来漂亮地打印数据视图中的对象自定义字段(dsm()使用非常方便的Krumo。)

答案 1 :(得分:0)

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

此代码仅在用户位于节点页面上时才有效。路径是否别名并不重要。 所以在视图中,它不起作用。

如果要构建显示节点的视图,可以添加node:id字段以获取该行所属节点的节点ID。不需要使用Views Custom Filed(或者如果你使用的是Drupal 7上的视图PHP模块)我相信。

如果您尝试获取引用的View的节点ID,请首先通过节点引用字段向其他节点添加关系。