为什么我的测验规则在添加额外的用户配置文件后停止工作? -- 7 领域 和 rules 领域 和 users 领域 和 quiz 领域 drupal 相关 的问题

Why does my Quiz rule stop working after adding an extra user profile condition?


2
vote

问题

中文

我有一个drupal 7站点,它使用规则和 quiz 。 我有一个规则,在用户采用特定测验后添加了一个角色 工作很好。以下是它的细节:

  • 事件

    更新现有内容后
  • 条件

    内容是

    类型

    参数:contenido:[node],内容类型:Cuestionario

    数据比较

    参数:数据进行比较:[node:nid],数据值:1985

  • 动作

    添加用户角色

    参数:usuario:[站点:当前用户],角色:nivel2

现在我想要一个类似的规则,但只有在用户配置文件中的特定配置文件字段时才添加新角色,具有特定的内容。该领域是某个分类学的某些条款的选择。

所以,我克隆了上面的(工作)规则,并将其添加到一个条件下。这样这个新规则看起来如此:

  • 事件

    更新现有内容后
  • 条件

    数据比较

    参数:数据进行比较:[站点:当前 - 用户:profile-profile:field-ubicacion,数据值:provincia de chaco

    内容是

    类型

    参数:contenido:[node],内容类型:Cuestionario

    数据比较

    参数:数据进行比较:[node:nid],数据值:1985

  • 动作

    添加用户角色

    参数:usuario:[站点:当前用户],角色:nivel2

现在在这种情况下,这个新规则将无法正常工作。即,不添加角色。

为什么这可以是?

英文原文

I have a Drupal 7 site, that uses Rules and Quiz. I have a rule that adds a role after the user takes a specific quiz, which work fine. Here are the details of it:

  • Event

    After updating existing content

  • Conditions

    Content is of type

    Parameter: Contenido: [node], Content types: Cuestionario

    Data comparison

    Parameter: Data to compare: [node:nid], Data value: 1985

  • Actions

    Add user role

    Parameter: Usuario: [site:current-user], Roles: nivel2

Now I want a similar rule but add the new role only if a specific profile field in the user's profile, has specific content. The field is a selection of certain terms of a certain taxonomy.

So, I've cloned the above (working) rule, and added to it a condition. So that this new rule looks like so:

  • Event

    After updating existing content

  • Conditions

    Data comparison

    Parameter: Data to compare: [site:current-user:profile-profile:field-ubicacion, Data value: Provincia de Chaco

    Content is of type

    Parameter: Contenido: [node], Content types: Cuestionario

    Data comparison

    Parameter: Data to compare: [node:nid], Data value: 1985

  • Actions

    Add user role

    Parameter: Usuario: [site:current-user], Roles: nivel2

Now in this case, this new rule won't work. I.e the role is not added.

Why could this be?

           

回答列表

1
 
vote

确保添加规则 Entity has field (与您的第一个规则条件中的其他字段相关)。并确保在要执行该命令的条件之前添加 Entity has field 条件。

也是规则UI中提到的,当您添加"数据比较" 条件时:在某个位置时,它会说"数据选择器可帮助您深入了解规则的数据。要显示实体字段在数据选择器中,您可能必须使用条件'实体具有字段'(或'内容为类型')"。

用于说明此 Entity has field 条件的重要性,请参阅数据类型和数据选择,特别是在它的大约13:30和17:30之间所示。

 

Make sure to add a Rules condition Entity has field (related to your additional field in your first Rules condition). And make sure to add that Entity has field condition BEFORE the condition in which you want to perform that "data to compare".

That's also what is mentioned in the Rules UI when you're adding a "data comparison" condition: somewhere it says "The data selector helps you drill down into the data available to Rules. To make entity fields appear in the data selector, you may have to use the condition 'entity has field' (or 'content is of type')".

For a video tutorial that illustrates the importance of this Entity has field condition, refer to Data types and data selection, especially what is shown between about 13:30 and 17:30 in it.

 
 
0
 
vote

该领域是一定分类的某些条款的选择。

"数据比较" 是具有一个值的字段。 (或可能是多个值的完全匹配..我不确定。)

无论如何,使用具有多个值的字段的条件"列表包含项" 。并使用其中一些,如果您需要检查多个任期。

 

The field is a selection of certain terms of a certain taxonomy.

"Data comparison" is for fields with one value. (Or maybe an exact match of multiple values.. I'm not sure.)

Anyways, use the condition "List contains item" for fields with multiple values. And use a few of them if you need to check for more than one term.

 
 

相关问题

0  用户注册和登录测试  ( User register and login test ) 
我正在尝试通过Drupal 7.36上的服务模块7.0-3.11注册和登录用户。 从以下代码中声明端点。 $endpoint = new stdClass(); $endpoint->disabled = FALSE; /* Edit this to true to make a default endpoin...

1  从7.34到7.36升级后,将“选项指令禁止的目录索引”错误  ( Getting directory index forbidden by options directive error after upgrading f ) 
从7.34升级到7.36后,我的主页现在读取:"403 - 禁止错误 此错误的常见原因是: 文件/目录权限不正确:以下644。 在WebServer读取的顺序文件中,它们的权限必须等于或高于644.您可以使用FTP客户端或通过CPanel的文件管理器更新文件权限。 内部.htaccess文件中的限制性apache指...

0  hook_node_access的呼叫数  ( Number of calls of hook node access ) 
我使用hook_node_access()来重定向用户,如果它们没有右属性以查看特定节点。 虽然编程我使用DPM()来检查一些变量并想知道,但DPM()称为9次,尽管我刚打开一个节点。 嗯,我的问题是: 它是正常的,它是一个节点的多次调用hook_node_access,所以我应该使用drupal_static()...

1  文件字段不索引 - Apache Solr附件  ( File fields are not indexed apache solr attachments ) 
对于索引文件,我启用了apache solr附件的模块。在我的舞台环境中,文件正在索引。搜索结果显示文件结果。 在Apache Solr索引中,也没有索引的字段索引为100(包括SS_FILEMIME,SS_FILESIZE等) 但在我的生产环境中,文件没有被索引。在Apache Solr索引中,我无法找到像(SS_...

3  以编程方式创建节点不保存自定义字段  ( Programmatically creating a node doesnt save custom fields ) 
我在规则中使用此代码,保存某种类型的内容后,在执行自定义PHP代码中。到目前为止,我刚刚尝试在创建第一个之后创建该类型的Anothe节点。 问题是,此代码确实创建了一个新节点,但没有任何自定义字段。它只有与之相关的语言。对什么是错的想法? 我按照 如果我替换 $nodo->language = 'it'; ...

0  使用模板为使用hook_menu制作的自定义管理页面  ( Using a template for a custom admin page made with hook menu ) 
我在Drupal 7中开发了一个模块。 现在,我想在Drupal的管理面板中添加自定义主题页。 我已使用 admin_menu() : function newsletter_menu() { $info = array(); $info['admin/reports/newsletter'] ...

1  以编程方式获取特定的模块的信息  ( Get a particular modules information programmatically ) 
是否有任何功能可以检索特定的所有钩子 模块和 返回所有菜单链接的函数(以及其描述) 特定模块 我调查了 module_hook 和<一个href ="https://api.drupal.org/api/drupal/includes !module.inc/function/module_im...

1  在哪里声明API密钥?  ( Where to declare an api key ) 
我对以下内容感到困惑: 我正在研究一个创建一个互动谷歌地图背景的模块,我已经将javascript添加到我的模块(它在hook_init运行),但是当我尝试加载页面时,地图背景不会出现。 在我决定创建模块之前,我使用了相同的javascript代码,通过标题 - 部分(通过脚本&gt; src)在页面加载上调用了相同...

0  模块与jQuery冲突  ( Module conflicting with jquery ) 
我已经为我的网站设置了一个简单的 hide-show.js 文件,我也在使用模块。 问题是,如果我的模块处于活动状态,则页面的jQuery不起作用,在写入或任何内容之后,我需要做的东西以"关闭" 我的模块? 编辑:我的控制台没有显示任何错误。使用jQuery我的意思是页面上的函数(即单击隐藏显示按钮没有任何内容)。 ...

1  基于位于节点的基于位置的位置  ( Deny location based access to nodes ) 
我需要基于当前用户的距离限制对节点的访问,以连接到节点的位置(使用位置模块)。允许允许访问的距离是基于节点并存储在节点的字段中。 目前,我将此功能与 hook_node_access() 。我通过智能IP模块并能够计算距离,获得用户的当前位置将用户的坐标和节点传递给location_distance_between(...

1  私人用户共享文件  ( Sharing files privately individual users ) 
我正在尝试创建一个drupal 7功能,其中管理员上传了特定用户只有可见/下载的多个文件。这些文件将在用户的个人资料页面上可见,或(替代)一个文档页面,其中用户只能看到它们可用的文件。想法? ...

3  生产力工具可以帮助我一次添加多个字段  ( Productivity tool to help me add multiple fields at once ) 
是否有任何Drupal生产力工具,可以帮助我同时创建多个字段?我正在追求关于/ admin / structs / types / manage / node_type /字段下的字段的实际创建。我有一百个田地创造,每次创建一个时,似乎都令人疑惑。 ...

0  基于URL查看页面标题  ( Views page title based on url ) 
我有一个具有通用标题的视图,但使用上下文过滤器来显示数据。我想上设置上面更新标题,但我没有看到解决方案。这可能吗? 页面URL:/ person / jon-doe / stort 页面标题:Jon Doe(基于%2) ...

1  使用自定义表单而不是Maestro Drupal中的Web-Form和Content类型[已关闭]  ( Use custom forms instead of web form and content type in maestro drupal ) 
此问题似乎在帮助中心中定义的范围内涉及Drupal。。 想要改进这个问题?更新问题,所以它是关于drupal答案的主题。 ...

0  一个描述其他模块的模块  ( A module which describes other modules ) 
我正在处理能够的模块,基于它保存的钩子,菜单,文件和其他属性自动生成开发人员文档。 经常安装新模块时,我们需要搜索它提供的配置选项。因此,通过自动生成文档,将解决此问题。 我开始在这个基于 clive 在帖子中的建议(以编程方式获取特定模块的信息) 我可以检索模块创建的菜单链接,因为Clive建议在该帖子中...

0  如何在Drupal 7中连接2表格?  ( How to connect 2 forms in drupal 7 ) 
我在drupal 7中有2个形式,我想连接这两个形式..意味着我将使用某种值填充第一个表格,那么此表单应使用ajax提交。在提交新表单应该显示新表格。 ...

1  hook_preprocess_html在我的模块中  ( Hook preprocess html in my module ) 
我有一个带有字段选择列表,js,css和body的内容类型。在"选择" 框中,它列出要在当前节点上应用的多个模板。我在活动主题的模板文件夹中有这些自定义模板,格式 my-module-fallow.tpl.php,my-modul-custom1.tpl.php 和在选择列表中,我将空白和自定义为选项。在hook...

1  仅翻译现场标签  ( Translating only field labels ) 
我正在使用实体翻译我已经启用了"启用了" 字段翻译"在内容类型中,但不想翻译每个字段。 似乎"现场翻译" I18N Suit的IT和In Admin / Config / Regional / Translate / Translate / Translate的翻译接口我们可以翻译现场标签。 但问题(如图所示)是它为...

1  如何将预览图像添加到内容类型?  ( How to add a preview image to a content type ) 
在drupal中是否有功能,以将预览图像添加到内容类型(例如在信息文件中)。这个想法是,除了描述文本之外,不知道哪种内容类型的编辑器还会看到"预览图像" ,然后知道他需要使用的内容类型。我在系统中找不到这样的东西,没有任何可以提供此功能的模块。 ...

1  DS和主题钩建议  ( Ds and theme hook suggestion ) 
在我的网站中,我对最后一个版本的7.x-2.7有更新ds,现在主题-hook_suggestions不起作用。 Drupal也是最后的版本。 i,通过mytheme_preprocess_node()函数,基于节点类型和字段值插入一些hook_suggestions。 p>通过devel主题我可以看到: 候选模板...




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


Licensed under cc by-sa 3.0 with attribution required.