3

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

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

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

到目前为止,一切都很好。我的问题是——

用户有一个名为“field_cellnumber”的可选配置文件字段来填写他是否有兴趣向他的手机发送通知...我希望规则检查用户是否填写了该字段,并且只有在填写该字段时才会触发短信提交. 我怎么能做到这一点?我尝试查看规则的“条件”中的所有选项,但没有找到任何可以引用用户配置文件中存在特定信息的内容......

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

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

4

1 回答 1

3

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

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

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

到目前为止,据我了解这个问题,您将需要这样做。

  1. 在预定的规则或某些事件上触发此事件。
  2. 按作者 ID 加载用户帐户。(加载实体)
  3. 加载配置文件(加载实体)。
  4. 现在,正确使用数据选择器来获取 #3 中加载的实体的值。
  5. 设置可从 #1 事件(约会节点)获得的实体的值。
  6. 保存 #5 中的节点。

祝你好运!

于 2012-11-11T17:21:30.340 回答