You are here

38 标签化

admin 的头像
Submitted by admin on 星期二, 2015-06-09 03:00

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com

    任何动态的选择查询,都可以在它上面添加一个或多个标签。这些标签用来标示查询的类型,它允许hook_query_alter()钩子了来判定它们是否需要采取行动。标签应该是小写的字母数字字符,命名规则和PHP变量相同。也就是说,只能包含字母,数字,下划线,并且必须以字母开头。为了向查询中添加一个标签,可以使用addTag()方法:

<?php
$query->addTag('node_access');
?>

    为了判定给定查询对象是否具有给定标签,有三种方法可用:

<?php
//如果这个查询对象拥有这个标签,返回TRUE
$query->hasTag('example');

//如果查询对象具有所有的指定标签,返回TRUE
$query->hasAllTags('example1''example2');

//如果查询对象具有任意一个指定的标签,返回TRUE
$query->hasAnyTag('example1''example2');
?>

    hasAllTags() hasAnyTag()可以带有任意数量的参数,每个参数表示一个标签。在这里,参数的位置对结果没有影响。

    这里没有硬性规定使用哪些标签,但通常使用一些标准标签。下面是部分标准标签:

node_access

这个查询应该包含基于节点访问控制的限制。

translatable

这个查询应该包含可被翻译的列。

term_access

这个查询应该包含基于分类术语的限制。

views

这个查询由views模块生成


Drupal版本: