对于"Page“节点,我希望添加一个仅对非管理员用户的用户编辑的节点起作用的事件。
我使用以下代码,它不起作用:
<?php [node:user-id] != 1 ? TRUE : FALSE; ?> 无论我改变了什么,对于管理人员来说,这个活动都是被召集起来的。我检查了所有的排列和语法组合(包括返回),但似乎忽略了“检查真值”。
发布于 2011-07-25 14:35:06
您使用的代码没有输出任何值;如果需要执行与条件相关的操作,则需要输出PHP代码1;如果不需要执行与条件相关的操作,则输出0。
正确的条件如下:
<?php echo ([node:author-uid] != 1); ?>或者,您也可以使用以下方法:
<?php echo ($author->uid != 1); ?>!=已经返回一个布尔值;不需要像您编写的代码那样将其转换为布尔值。“真理值”字段也接受1和0作为值;不需要将值转换为布尔值。为"PHP评估“报告的描述如下:
<?php?>分隔符中的PHP代码将被其输出计算和替换。<? echo 1+1; ?>将被2取代。

要注意ID等于1的用户是特定用户,Drupal总是给予从任何模块定义的任何权限;这是唯一以这种特定方式处理的用户帐户。管理员用户的用户ID并不总是等于1;如果您正在检查用户ID以验证用户是否是管理用户,那么您就错了。在Drupal中,通常检查用户对user_access()的权限。
发布于 2012-02-02 19:29:44
除了kiamlaluno描述适当语法的答案之外,另一个重要的线索是您必须打开PHP过滤器模块。否则,规则会将输入解释为纯文本,在PHP中几乎总是计算为TRUE。打开PHP过滤器,使用另一个答案中的语法,您应该都设置好了。
https://drupal.stackexchange.com/questions/7767
复制相似问题