我有和CCK的Drupal,
我有一个名为Article的内容类型。
本文有5个节点参考。
我正在使用CCK中的表字段,我正在尝试将其连接到
引用,所以每篇文章[持有一个表格字段]
会有一个包含5列的表格,每个产品对应一个
以及可根据用户需要改变的内容
但是我不确定该怎么做,我试过了
在参考文献中选择产品后,将产品添加到列中
通过jquery,它看起来很迟钝..有没有以前的解决方案呢?
图像清除
答案 0 :(得分:3)
您可以使用View执行此操作,但在我们开始之前,如果您对节点进行一些更改,可能会更好。
不是为每个产品使用5个单独的节点引用字段,而是添加一个引用产品的节点引用字段。在该字段的配置中(在内容类型的管理字段选项卡上找到),在下将值数设置为 5 全局设置。
然后,摆脱tableview CCK字段。您将不需要它,因为您要创建的视图将执行您要执行的操作。
现在,转到网站建设 - &gt; 观看次数 - &gt; 添加的。输入视图的名称;让我们说列出。您可以将描述和标记更改为您想要的任何内容,但将视图类型设置为节点。< / p>
现在,设置视图。在字段下,添加要在产品表格中显示的字段;让我们说节点:标题和节点:正文。
在过滤器下,为节点添加过滤器:输入,以便视图仅显示产品而非其他类型的节点。
在基本设置下,将样式从 Unformatted 更改为表。
现在,您将拥有一个视图,可以显示表格中的所有可用产品。下一阶段是将该表限制为仅显示特定节点引用的产品。为此,您将创建一个参数。
在 Arguments 下,添加 Node:ID 。现在,视图将仅显示ID与传递给视图的参数匹配的节点。
检查允许每个参数多个术语,这样您就可以一次查找多个节点。
由于您不会手动传递这些参数,因此您将使视图自动生成其查找的参数。选择提供 Action下的默认参数,如果参数不存在,则选择。
有几个选项可用,但没有一个匹配您想要的选项:即所引用节点的节点ID。因此,选择 PHP代码,以便提供自定义参数。使用以下代码:
$arguments = array();
$node = node_load(arg(1));
if ($node->field_product) {
foreach ($node->field_product as $product) {
if ($product['nid']) $arguments[] = $product['nid'];
}
}
return implode(',', $arguments);
这将查找网页的节点ID(arg(1)
),检查其是否包含产品节点参考字段$node->field_product
,将field_product
更改为您字段的简称),然后构建一个包含所引用的每个节点的ID的参数。它以Views期望的格式返回参数列表:1,2,3
。
现在视图已经完成:唯一要做的就是让视图出现在页面上。您可以创建块显示,然后将该块添加到 Site building - &gt;下的区域。 块。如果您转到引用产品的页面,该块将显示参考块表。
如果您希望视图成为节点本身的一部分,请查看View Reference模块,该模块创建一个引用视图的CCK字段,就像节点参考引用节点一样。