3

我有一个带有自定义节点类型的 Drupal 7 站点,其中包含自定义附件字段。在发布了(这种自定义的)节点后,我在Rules 模块的帮助下收到了一封电子邮件。我想设置另一个规则,当有人编辑此节点并上传附件时,它会向我发送另一封电子邮件。在邮件中,我想查看上传文件的完整 url。

经过几次测试,我无法插入上传文件的完整路径。[node:field-attachment:file] 根本不起作用。我可以(手动)插入该文件所在的 url,但是在我无法插入文件名之后(所以即使文件名对我来说也足够了)。

因此,使用[node:field-attachment:file]时出现错误:*致命错误:在 /home/xxx/sites/all/modules/entity/entity_token 中的非对象上调用成员函数 value()。 token.inc 在第 297 行。*

这正是:

/**
 * Gets the token replacement by correctly obeying the options.
 */
function _entity_token_get_token($wrapper, $options) {

   if ($wrapper->value() === NULL) {
// Do not provide a replacement if there is no value.
return NULL;
}

使用[node:field-attachment],我收到了电子邮件,但它包含以下内容:您可以从此处下载文件:Property 0

当我编辑节点时,我应该使用哪个令牌来获取实际上传文件的 url(或文件名)?

4

1 回答 1

2

2个解决方案

1 - 您可以编写一个简单的模块来挂钩节点提交并在那里处理 URL,然后将其邮寄。

2 - 您可以在规则模块中创建一个操作来执行自定义 PHP 代码。在那里,您将在 $node.js 中获得节点的所有详细信息。您还可以使用 drupal邮件 API发送电子邮件

于 2012-12-14T05:53:07.097 回答