Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获取视图为给定节点id(以编程方式)输出的附加文件-Drupal_Drupal_Views - Fatal编程技术网

如何获取视图为给定节点id(以编程方式)输出的附加文件-Drupal

如何获取视图为给定节点id(以编程方式)输出的附加文件-Drupal,drupal,views,Drupal,Views,我正在使用一个模块。 我有一个节点id。该节点id是一个页面,上面有2个或更多视图块。视图的结果是包含文件附件的节点列表 我需要获取附加到该特定页面上视图输出的节点的所有文件 我在一个模块文件中工作,我可以提供这些视图所在的nid类型页面 我找不到太多的帮助,所以我决定寻求最好的方法 我是Drupal新手,因此我希望您能给我一个很好的解释,告诉我如何处理这个问题。如果我正确理解了您的问题,您需要打印带有参数集的视图。 抓取视图的机器名和显示id(在Drupal 6视图2中,将鼠标指针悬停在显示列

我正在使用一个模块。 我有一个节点id。该节点id是一个页面,上面有2个或更多视图块。视图的结果是包含文件附件的节点列表

我需要获取附加到该特定页面上视图输出的节点的所有文件

我在一个模块文件中工作,我可以提供这些视图所在的nid类型页面

我找不到太多的帮助,所以我决定寻求最好的方法


我是Drupal新手,因此我希望您能给我一个很好的解释,告诉我如何处理这个问题。

如果我正确理解了您的问题,您需要打印带有参数集的视图。 抓取视图的机器名和显示id(在Drupal 6视图2中,将鼠标指针悬停在显示列表(块、页等)上,在URL中,您将看到类似“块4”或“页1”的内容。这是显示id。在D7视图3中,您可以在右窗格中设置的高级字段中设置显示id)

如果视图的机器名为“my_View”,显示id为“block_1”, 您可以使用下面的代码在node.tpl.php或任何地方打印视图

<?php
print views_embed_view('my_view', 'block_1', array(arg(1)));
?>

arg(1)
包含节点ID。如果将代码放入
node.tpl.php
或其变体中,arg(1)始终是节点ID。如果它转到
page.tpl.php
,请确保
arg(1)
至少是数字

在视图中,您必须添加一个参数(上下文过滤器,用D7单词表示)以使视图正确获取参数。您还可以设置上下文过滤器,以便从URL自动获取参数。

谢谢。我查阅了视图模块并从中借用了一些代码。它遵循相同的原则,遍历所有区域,根据节点id查找视图,获取其显示id,并从中在相应字段上显示。我学到的另一件事是,delta被散列为更长的视图名称,因此我必须从另一个表中存储的delta值中获取视图名称。总而言之,它奏效了。我从另一个Drupal开发人员那里得到了一些帮助,因为我在Drupal方面并不先进。