规则中的实体令牌可用性但不起作用 -- 7 领域 和 entities 领域 和 rules 领域 和 tokens 领域 drupal 相关 的问题

Entity token availabe in Rules but non-functional


简体版||繁體版
3
vote

问题

中文

我正在构建一个提交审查页面,其中提交者选择评论员。提交在审阅者个人资料页面上显示,使用按钮字段模块,接受和拒绝按钮。当审阅者单击"接受" 按钮时,他被重定向到新的评论内容表单。

审阅内容类型具有节点参考字段到提交内容类型,这应该自动填充使用节点参考URL小部件。

我使用规则模块检查是否已被点击并射击页面重定向操作:

定义规则

定义条件后实体是类型节点替换模式显示,似乎有可用:

替换模式

所以我用相对URL和实体ID填充 URL来重定向到

  "drupal/commerce": "^2.0@RC",  "minimum-stability": "dev", "prefer-stable": true, 4  

但它没有效果。规则正确地解雇,但[实体:nid]为空,审阅者被重定向到节点/添加/审查/且因此不可用的节点ID为预先填充节点参考字段。

我在做错了什么,或者是一个 bug 在按钮字段中?任何提示以不同的方式实施这种杂志性?

英文原文

I'm building a submission-review page where submitters select a reviewer. Submissions show up on reviewers profile page and have accept and decline buttons implemented with Button Field module. When the reviewer clicks the accept button, he gets redirected to a new review content form.

Review content type has a node reference field to submission content type which should get populated automatically using Node Reference URL Widget.

I use the Rules module to check if accept button has been clicked and to fire the Page redirect action:

defined rule

After defining condition Entity is of type Node replacement patterns show up and seem to be available:

replacement patterns

So I fill URL to redirect to with the relative url and the entity id:

node/add/review/[entity:nid] 

But it doesn't have effect. Rule gets fired correctly but [entity:nid] is empty and reviewer gets redirected to node/add/review/ and so node id to prepopulate node reference field is not available.

Am I doing something wrong or is it a bug in Button Field? Any hints to implement that funcionality in a different way?

           

回答列表

2
 
vote
vote
最佳答案
 

我不熟悉使用按钮字段模块与规则模块。

但从您的问题详细信息中,似乎 entity:nid 值确实是空白。可能的解决方案通常是添加规则操作:

  • "按ID获取实体" (如果您知道您正在处理的ID)。
  • "按属性获取实体" (如果您有一些标准来构建在后续规则循环中要处理的东西列表)。
尤其是"通过ID的获取实体" 是我认为你应该尝试一下。还因为在注释nr 3中写了什么。有一些伪代码如此:
  • 事件:在用户单击一个按钮字段
  • 条件:实体类型为实体(确保一切顺利)
  • 行动:
      使用ID(数据选择器):实体:nid
  • ed
  • 获取实体
  • 将"获取实体" 泵成一个组件,并在其中做事

如果上述任何内容有帮助,那么" 提交显示在审阅者配置文件页面 " 部分可能有助于使用完全不同的方法。如果这是一个像一个观点结果的东西,那么(是吗?),那么你可能会使用这些方法中的任何一个:

  • 添加规则操作要加载列表通过 vbo 已启用查看。
  • 使用查看规则模块通过规则处理该视图的每一行,而您可以将这些视图中的每列作为规则令牌提供,因此如果其中包含"NID" ,则您可以获得您正在寻找的内容。

如果没有上述帮助,则可能需要使用规则调试(例如,使用 devel 模块,使您可以(临时)添加一个规则操作,如" 显示值"。 有关更多的建议,请参阅"如何在条件内显示变量的值?

ps:案例中不需要那些2 规则条件(这是规则如何组合Multole规则条件的默认值)。

 

I'm not familiar with using the Button Field module in combination with the Rules module.

But from your question details, it seems that the entity:nid value is indeed blank. A possible solution is typically to add a Rules Action which is either of these:

  • "Fetch entity by ID" (if you know the ID you're processing).
  • "Fetch entity by Property" (if you have some criteria to build a list of things to be processed in a subsequent Rules Loop).

Especially the "Fetch entity by ID" is what I think you should give it a try. Also because of what's written in Comment nr 3 of issue nr 1796952, and which has some pseudo code like so:

  • event : on User clicks a button field
  • condition: Entity is of type on entity (make sure everything is in scope of rule)
  • actions:
    • Fetch entity by id with ID (data selector) : entity:nid
    • pump the 'fetched entity' into a component and do things in there

If none of the above helps, then the "Submissions show up on reviewers profile page" part of your question is something that may help to use a completely different approach. If that's something like a Views result" (is it?), then you could maybe use either of these approaches:

  • Add a Rules Action to load a list the list of results created via a VBO enabled view.
  • Use the Views Rules module to have each row of that view processed via Rules, whereas you can make each column of such view available as a rules token, so if that "nid" is included in it, you have what you're looking for.

If none of the above help, You may want to use Rules debugging (eg to display values of relevant things using the Devel module, so that you can (temporary) add a Rules Action like "Display a value". For more suggestions about that, refer to "How can I display the value of a variable inside a condition?".

PS: those 2 AND Rules Conditions are not needed in your case (that's the default of how Rules combines multiole Rules Conditions).

 
 
   
   

相关问题

25  如何以编程方式在模块中创建自定义令牌  ( How to programmatically create a custom token in a module ) 
您如何进行编程方式创建令牌?我希望为我的模块添加一些自定义令牌。 ...

1  如何创建自定义令牌? [复制]  ( How do i create custom tokens ) 
这个问题已经在这里有答案: 关闭 9年前。 可能的重复: 以编程方式创建一个令牌 如何创建自定义令牌?此外,是否可以将令牌附加到回调函数?例如:如果我的字符串是'这是我的[名称]',我可以以...

1  从自定义地址字段生成的地图  ( Map generated from custom address fields ) 
我有一个看似简单的问题,但我现在一段时间陷入了困境。 我有一个内容类型的一个节点数据库。有文本领域的地址:街道的一个字段,一个用于城市等。省是一个预定义的分类。我想使用包括省份的4个字段,得到一个可以用Lat / Lon的地理编码的字符串。 我还需要在视图中使用这些字段(例如,作为Province Filter等过滤...

1  图像类型字段的规则替换模式  ( Rules replacement pattern for image type field ) 
我正在使用 Rules 和 HTML mail 模块,以在各种事件上发送HTML电子邮件。它正在运作良好,但我在电子邮件模板中渲染图像字段(即图像)时遇到问题。 我有字段 field:cover-photo 是类型图像的。此字段出现在下面 Replacement Pattern 令牌部分。但是当我包括它时,在它...

0  在指定时间后添加WebForm复选框的规则  ( Add rule for a webform checkbox to autosend email after specified time ) 
im运行d7与webform。我有一个Multstep形式,最后一步,要求用户参与未来的调查。如果他们输入他们的电子邮件并选中框以同意,他们应该收到一封电子邮件提醒,并在他们同意的时候在两周内创建的新调查的链接。 我计划使用WebForm规则,规则和令牌模块来创建此功能。 我将能够验证条件并使用这些模块生成预定的...

1  块配置的令牌仅限列表  ( Tokens in blocks configuration for list only pages ) 
我希望仅为某个路径设置一个块,使用登录的用户ID,如my-path / [用户:uid]。我觉得我应该能够做到这一点。 如何这样做? ...

3  令牌作为Boilerplate? [关闭]  ( Tokens as a boilerplate ) 
此问题似乎在帮助中心中定义的范围内涉及Drupal。。 想要改进这个问题?更新问题,所以它是关于drupal答案的主题。 ...

4  节点内容中令牌更换的最佳方法是什么?  ( What is best method for token replacement within node content ) 
我是一个新手,并彻底进行了彻底的论坛(包括这一个),书籍和文档,但找不到明确的答案: 是什么是最好的方法(自定义模块?节点内容中的PHP?其他?)以替换节点主体内的令牌,其中包含自定义用户配置文件字段的值? 用例:我需要用特定于当前用户的字符串替换外部URL中的文本。我希望我可以将一个令牌字符串放入节点内容中的URL...

6  多价字段的令牌?  ( Tokens for multi valued fields ) 
在D7中,它似乎是字段的令牌(例如, 99887668 )只是返回字段的呈现。因此,如果该字段是多值的,则此令牌将返回一起呈现的所有值。但是,我希望能够单独使用令牌分别访问该字段的特定增量值,例如,使用 [node:field_date:0] 或类似的语法。我也希望能够将令牌连锁,例如, $view->result...

2  获取正在添加到有机组的用户的用户名  ( Get the username of a user who is being added to an organic group ) 
我们正在使用有机组,我们每次有人加入一个组时都要通知管理员。 此刻,我们为此设置了一个触发器,并设置了一个动作来发送电子邮件。我们在电子邮件中使用%用户名令牌,但这是指在第一位置创建该组的人的用户名,而不是加入的人的用户名。 是否有任何方法可以发送包含正在加入该组的人的用户名的电子邮件? ...

4  用户菜单中的用户图片和名称  ( User picture and name in user menu ) 
我想实现Ablia在 https://dev.twitter.com/ 。登录时,您可以在菜单栏的右侧看到用户图片和用户名,这就是我需要的。 我只是一些基本尝试: 首先我尝试使用菜单令牌模块。试图将用户图片和用户名代币放入标题中。然后我意识到,你不能将HTML放在菜单项标题中,因为它通过check_plain()(并...

1  WebForm,为上传文件创建自定义目录  ( Webform creating customized directories for uploaded files ) 
newbie和我在这里的第一个问题。我还在学习Drupal。如此,如果我错过了任何东西 这是我的问题 我正在使用webform来创建上传页面。用户输入ID(文本字段)并上载文件。该文件将上传到服务器上的私有部分。现在我试图确保文件上传到此单独的文件夹(以ID之后命名)(例如所有/私有/ id /)。我可以使用web...

2  定制令牌更换  ( Custom token replacement ) 
我正在使用通知订阅不同的内容类型,以便在用户创建时可以接收电子邮件/更新特定的内容类型。 以下是我通常从通知收到的电子邮件。 Greetings, ajinkya. These are your messages New content of type Blog has been submi...

0  特定用户的概要文件2 URL的替换模式或令牌是什么?  ( What are the replacement patterns or tokens for profile2 url of a particular use ) 
我只需要知道如何键入任何给定用户不同的配置文件的令牌替换。在我的项目中,用户可以有多个与帐户关联的配置文件。我刚刚遇到了如何定位或重新创建这些URL的令牌问题。 ...

4  令牌在意见中提供  ( Tokens available in views ) 
我正在尝试在我的视图中更改输出;问题是我无法访问[url]令牌重写 <a href="[URL]">this is my link</a> 。 似乎我只能访问[标题]令牌。你有什么想法吗? ...

4  如何通过规则邮件操作在令牌中呈现令牌?  ( How can i render a token within a token via rules mail action ) 
我想通过规则发送节点。我可以使用[node:body]令牌发送它。但是,我希望能够在实际节点正文中使用令牌。 (注意:这些不是全球令牌) 认为它就像一份时事通讯和在我使用的身体领域,我正在使用 亲爱的[field_ef_first_name],... 我可以让令牌呈现我直接在规则动作邮件邮件正文中呈现,但如果它位于...

0  在短路中使用令牌和/或替换模式  ( Use tokens and or replacement patterns in shortcodes ) 
寻找一种向短码添加令牌/替换模式的方法。 例如,根据其他因素创建不同文本和链接的按钮 - 类似于以下内容: [按钮链接="MySite / [URL替换模式]" Text ="[标签替换图案]" ] [/按钮] 我需要这样做的主要原因是我正在使用视图字段视图和希望用自定义按钮替换空字段,当视图为空时包含在"子视图...

0  内容配置文件标题令牌  ( Content profile title token ) 
我需要一个内容配置文件标题令牌。我下载了这个小模块,但它仅适用于text_field,我需要一个标题。 ...

7  在不使用模板的情况下重写CCK字段输出  ( Rewrite cck field output without using templates ) 
视图模块具有重写字段输出的良好选项。这允许使用令牌调整CCK字段的输出,而无需为该视图创建模板。 是否有一个模块将允许内容类型的"显示字段" 选项卡的类似功能?我需要略微修改TEASER和BODY的字段输出,但不想创建一个完整的模板。 我目前正在使用Contemplate,但如果您不熟悉Drupal PHP API,...

1  视图:添加(链接到文件字段)到映像字段  ( Views add link to file field to image field ) 
在d7中,我有一个事件内容类型,其中包含图像字段("特色图像" )和文件字段("文档")。我有一个包含文档的事件的视图,并希望将链接包裹在图像周围,导致文档。这是一个 sample link 。 如何重写图像(或使用其他技术)以获取图像周围的所需链接?查看可用的令牌(我确实在图像上方添加了一秒钟的隐藏文档字段以定义...

2  Drupal DB查询  ( Drupal db queries ) 
我有这个sql query "SELECT url_alias.alias FROM url_alias, taxonomy_index WHERE url_alias.source = CONCAT('taxonomy/term/',taxonomy_index.tid) AND taxonomy_index...

3  从反向代理后面服务Drupal时如何更改全局站点URL?  ( How do i change the global site url when serving drupal from behind a reverse pr ) 
我希望站点名称是fqdn而不是机器的内部名称(即:localhost),尤其是令牌。 我希望能够改变价值一次(如在env变量中),因此在自动电子邮件中说出网站的URL时,它会出现任何时间。 加重因子:我们正在使用IIS7 ...

0  Drupal 7获取没有锚标记的标题令牌  ( Drupal 7 get title token without anchor tag ) 
我正在使用具有"内容:链接" 字段的视图,以显示我块中的每个内容的自定义链接。 我在块中有作业列表,并希望为每份作业添加链接"应用" 。当用户单击"应用" 时,它将重定向到具有相应作业标题的WebForm。 所以在我的视图下,重写结果设置我选择了重写此字段的输出并添加了下面的自定义锚标记: <a href='2...

0  如何将数据添加到所有消息实例继承的消息类型自定义字段中?  ( How to add data to a message type custom field thats inherited by all message i ) 
我正在使用 message 模块,我有一些消息类型。每个消息类型都需要在其上具有节点参考字段,其值不会为整个消息类型更改。但每个消息类型的不同价值。 现在,我可以创建一个带有字段的新消息类型,但消息的实例是根据已发送的方式以编程方式生成。 我最终需要做的是基于该字段的值生成令牌。 那么我如何开始创建由消息类型的所有实...

0  节点:在视图中链接令牌  ( Nodelink token in views ) 
我想更改节点:链接字段所示的文本,默认情况下是"查看" 。如何更改它? ...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有