仅当用户在其个人资料中填写某个字段时才触发规则?

时间:2012-11-11 16:08:46

标签: drupal drupal-7

大家好,希望我能正确描述我的问题......

我正在使用drupal 7创建一个约会通知网站。我使用了一个名为“约会”的自定义内容类型,仅向与约会相关的用户显示(im“标记”具有实体参考模块的节点中的用户并限制节点仅查看具有节点访问用户参考模块的用户)。

系统也应该通过短信通知用户即将到来的约会。我设法让短信框架和规则模块在约会日期之前触发短信提交到预定义的号码。

到目前为止,非常好。我的问题是 -

用户有一个名为“field_cellnumber”的可选配置文件字段,以填写是否有兴趣收到他的电话的通知...我想要规则来检查用户是否填写了该字段,并且只有这样才能触发短信提交。我怎么能实现这个目标?我尝试查看规则的“条件”中的所有选项,但没有找到任何可以引用用户配置文件中存在特定信息的内容......

,另一个问题是这个 - 字段“field_cellnumber”在“约会”节点类型和用户配置文件之间共享(我在节点类型中创建了字段,然后通过添加现有字段将其添加到用户帐户)。 在创建新的“约会”节点时,我希望drupal从逐个节点引用的节点中引用的用户的配置文件中获取“field_cellnumber”的值,并自动将其填充到节点的“field_cellnumber”值中。 现在规则发送短信但你需要在每次创建一个非常麻烦的节点时手动输入用户的单元号。我希望能够“标记”用户将自动将其联系信息分配给节点。

我对drupal很新,所以我非常感谢任何关于如何实现这两个目标的指针\谷歌阅读参考。 非常感谢,我很期待你的回答,因为我到目前为止相处得很好,但现在我卡住了。

1 个答案:

答案 0 :(得分:3)

这是实体引用的完美用例,Rules可以做到这一点。

在访问实体的任何字段之前,您需要执行一个操作load entity by ID(或类似名称)。因此,如果您在节点或profile2字段中有电话号码,则需要先加载该号码。

要通过实体引用访问更多节点,您需要加载每个节点。 有条件检查该字段是否为空。

到目前为止,正如我所理解的那样,你需要这样做。

  1. 在计划的规则或某个事件上触发此操作。
  2. 按作者ID加载用户帐户。 (加载实体)
  3. 加载配置文件(加载实体)。
  4. 现在,正确使用数据选择器获取#3中加载的实体的值。
  5. 设置#1事件(约会节点)中可用实体的值。
  6. 保存节点#5。
  7. 祝你好运!