I have Drupal with CCK,
I have a content type named Article.
This Article has 5 Node references.
I'm using the table field in CCK and I'm trying to connect it to
the references, so each article [that holds a table field]
would have a table with 5 columns, one for each product
and content that can change according to what the user wants
However I'm not really sure how to do so, I tried
adding the products to the columns once they are chosen in the reference
via jquery, it seemed sluggish.. is there any former solution to this?
Image to clearify
你可以用View http://drupal.org/project/view,但在我们开始之前,最好对节点进行一些更改。
-
不要为每个产品使用 5 个单独的节点引用字段,而是添加一个引用产品的节点引用字段。在该字段的配置中(可在管理字段内容类型选项卡),设置值的数量 to 5 under 全局设置.
-
然后,删除表视图 CCK 字段。您不需要它,因为您要创建的视图将执行您想要执行的操作。
-
现在,前往网站建设 -> Views --> Add。输入视图的名称;比方说listing。您可以更改描述 and Tags任何你想要的,但留下视图类型 set to Node.
-
现在,设置视图。在下面Fields,添加您想要在产品表中显示的字段;让我们说节点:标题和节点:身体.
-
Under Filters,添加一个过滤器节点:类型因此该视图将仅显示产品,而不显示其他类型的节点。
-
Under 基本设置,改变Style from 未格式化 to Table.
现在,您将拥有一个视图,该视图将显示表中可用的所有产品。下一阶段是限制该表仅显示特定节点引用的产品。为此,您将创建一个参数。
-
Under 论点, add Node: ID。现在,视图将仅显示 ID 与传递给视图的参数匹配的节点。
-
Check 每个参数允许多个术语,这将让您一次查找多个节点。
-
由于您不会手动传递这些参数,因此视图将自动生成其查找的参数。选择提供默认参数 under 如果参数不存在则采取的操作.
有几个可用选项,但没有一个与您想要的选项匹配:即所引用节点的节点 ID。所以,选择PHP Code这样您就可以提供自定义参数。使用以下代码:
$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
.
现在视图已完成:唯一剩下要做的就是使视图显示在页面上。您可以创建一个Block显示,然后将该块添加到下面的区域网站建设 -> Blocks。如果您转到引用产品的页面,该块将与引用块表一起出现。
如果您希望视图成为节点本身的一部分,请查看查看参考 http://drupal.org/project/viewreference模块,它创建一个引用视图的 CCK 字段,就像节点引用引用节点一样。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)