首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找内容类型之间的匹配字段并创建新节点

查找内容类型之间的匹配字段并创建新节点
EN

Drupal用户
提问于 2016-01-21 20:41:17
回答 1查看 130关注 0票数 1

我正在做一个收集公司客户信息的项目,然后根据所提供的信息,将客户端与其他公司连接起来,这些公司可以帮助他们满足特定的需求。

我在项目的前半部分进行了工作,根据公司参与使用规则的行业/业务类型,有条件地收集数据。现在,我需要使用收集到的信息,并过滤一个视图,以找到匹配的公司。

基本上,一旦客户端提交了他们最后完成的应用程序(少数几种内容类型中的不同字段的集合),在幕后,我需要找到一种方法来过滤其他具有匹配特性的公司的视图,然后对于每一家匹配过滤视图的公司,在单独的内容类型中添加一个新节点,然后实体引用该节点返回到最终确定的应用程序中,以便进一步输入/编辑。下面是一个简化的可视化:

大多数正在筛选的字段都是分类法引用;但是,有些字段是数字输入,过滤的值小于、大于或等于筛选器。

金融分类学:好的金融学;所以金融学;被质疑的金融学

工业分类学:技术、制造、房地产等。

"Client A“节点字段在客户端内容类型中回答:

  • 良好的金融学(金融分类学参考)
  • 侧重于技术(工业分类学参考)
  • 50名雇员(数字字段)

公司内容类型包含以下节点:

  • A公司:只喜欢受到挑战的财务人员;专注于制造业;与员工少于100人的公司合作
  • B公司:只喜欢良好的财务状况;专注于技术;与员工少于500人的公司合作
  • 公司C:只喜欢受到挑战的财务人员;专注于制造业;与员工少于25人的公司合作
  • D公司:只喜欢优秀或受挑战的财务人员;专注于制造业;与100名员工合作

一旦client A选择了一个字段,该字段指示最终的答案并保存了内容类型客户端,我需要找到一种方法让匹配的公司根据客户端A的答案进行过滤,并且应该为每个匹配的公司为不同的内容类型创建一个新的节点(内容类型称为合作伙伴详细信息)。

该内容类型将称为合作伙伴详细信息,并将包括每个匹配公司的下列字段:

  • 实体引用客户端内容类型。
  • 实体将匹配的公司引用到客户端。
  • 由规则输入的自定义blah,该规则指示匹配为什么有意义。
  • 来自公司内容类型的联系人信息
  • 等等等等..。

总之,client A回答了客户内容类型中的上述问题,然后基于这些信息,将过滤公司内容类型中的数据--在本例中--将创建两个新的合作伙伴详细内容类型节点,因为公司内容类型中的节点匹配客户端A在客户内容类型中回答的字段。公司B和公司D匹配标准,因此它们将被创建的两个新的合作伙伴详细信息节点引用。通过这种方式,客户机A可以登录并查看它们的匹配,编辑匹配的合作伙伴详细信息,并根据它们的实体引用节点查看关于公司B或D的信息。

我对视图、面板和规则有一个中间理解,但似乎无法理解一旦用户指示应用程序已完成,我将如何在幕后完成此操作。我还了解如何使用规则创建新节点和实体引用它们。希望一步一步地提供一个尽可能详细的例子。任何帮助都是非常感谢的。谢谢你能容忍我冗长的解释,希望这是有意义的。

(最后,我不知道如何称呼这个问题,所以如果有人有更好的建议,让我知道,我会改变它。)

EN

回答 1

Drupal用户

回答已采纳

发布于 2016-01-25 11:40:13

当客户端的内容类型被保存时,您需要下面的规则来触发。所有相关字段都必须存在于这两种内容类型中。它将告诉客户端答案,通过VBO提供给他们,获得匹配的公司NID,然后循环它们创建合作伙伴详细信息节点。

  1. 首先,您需要有查看批量操作(VBO),这将给出一个新的规则操作。“从VBO视图加载实体ID列表”。在此操作中,您可以指定一个VBO视图和一个参数列表(分类法、tids等)。若要使用替换模式发送到视图,请执行以下操作。返回的is列表将用于创建“合作伙伴详细信息”。
  2. 您需要通过在新视图中添加"Bulk操作: Content (Content)“字段来创建VBO视图。从rules操作发送的参数可以由上下文过滤器使用"Provide : Raw Value“设置来获取。如果我没记错,第一个参数以path组件2开始。
  3. VBO的结果应该仅限于与参数匹配的节点。现在我们有了一个规则中的列表,我们可以使用循环进行遍历。
  4. 根据需要,您只需创建新实体并引用客户端和公司节点,或者执行双向引用,以便客户端和公司节点也引用每个合作伙伴详细信息节点。

上面的is将很好地完成分类法,但是对于整数来说,它要复杂一些,因为上下文过滤器必须完全匹配。为此,您可以使用上下文过滤器: Global (它不会限制结果),并使用视图参数替换从上下文过滤器中获取值,并在视图过滤器(左边的常规过滤器)中使用它。** *!2 ***(无空格),如果您的全局: null是第二个上下文过滤器。

这是相当有限的,但它可以工作。如果您需要它仅为50-100名员工,例如,在公司内容类型上,有最小和最大整数字段,并在VBO视图中使用“大于”和“小于”过滤器。

您应该在VBO预览上做大量的测试,以确保事情按预期工作。我真的相信这是唯一的方法来做到这一点,而不编写大量的定制代码。祝好运!

票数 1
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/187672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档