drupal - Drupal 中表的节点引用

标签 drupal reference cck

我有 Drupal 和 CCK,
我有一个名为文章的内容类型。
本文有 5 个节点引用。
我正在使用 CCK 中的表字段,并尝试将其连接到
引用文献,因此每篇文章[包含一个表字段]
将有一个包含 5 列的表格,每个产品一列
以及可以根据用户想要改变的内容

但是我不太确定该怎么做,我尝试过
在引用中选择产品后将其添加到列
通过jquery,它看起来很慢..有没有以前的解决方案?

图像要清晰 alt text

最佳答案

您可以使用View来做到这一点,但在我们开始之前,最好对节点进行一些更改。

  1. 不要为每个产品使用 5 个单独的节点引用字段,而是添加一个引用产品的节点引用字段。在字段配置中(位于内容类型的管理字段选项卡上),将下的值数量设置为5全局设置

  2. 然后,删除 tableview CCK 字段。您不需要它,因为您要创建的 View 将执行您想要执行的操作。

  3. 现在,转到网站 build -> View --> 添加。输入 View 的名称;假设列出。您可以将描述标签更改为您想要的任何内容,但将 View 类型设置为节点

  4. 现在,设置 View 。在字段下,添加您想要在产品表中显示的字段;假设节点:标题节点:正文

  5. 过滤器下,为节点:类型添加过滤器,以便 View 仅显示产品,而不显示其他类型的节点。

  6. 基本设置下,将样式无格式更改为表格

    您现在将拥有一个 View ,该 View 将显示表格中的所有可用产品。下一阶段是限制该表仅显示特定节点引用的产品。为此,您将创建一个参数。

  7. 参数下,添加节点:ID。现在, View 将仅显示 ID 与传递给 View 的参数匹配的节点。

  8. 选中每个参数允许多个术语,这样您就可以一次查找多个节点。

  9. 由于您不会手动传递这些参数,因此 View 将自动生成其查找的参数。在参数不存在时采取的操作下选择提供默认参数

有几个可用选项,但没有一个与您想要的选项匹配:即所引用节点的节点 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

现在 View 已完成:唯一要做的就是使 View 显示在页面上。您可以创建一个 block 显示,然后将该 block 添加到网站 build -> block 下的区域。如果您转到引用产品的页面,该 block 将与引用 block 表一起出现。

如果您希望 View 成为节点本身的一部分,请查看 View Reference模块,它创建一个引用 View 的 CCK 字段,就像节点引用引用节点一样。

关于drupal - Drupal 中表的节点引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3443484/

相关文章:

reference - 如何使用 DBRef 查询 mongodb

drupal - 在 Drupal 中,如何在不修改实际核心的情况下覆盖核心模块中的模板?

mysql - Drupal数据库不显示表名

mysql - MariaDB 启动时出错,不断重新启动

c# - 在 C# 中按值传递引用类型

css - 在同一行的不同类中制作不同的 div

html - 在同一行获取图像

C++ 静态方法(在不同的类中)(如 Java 的)

ios - 如何在 Xcode 中访问 DCIM

mysql - 由于转换记录 : 失败,请求回滚字段 "field_images"