实现方法有很多:
1. 用rules + 自定义php代码实现
2. 自己写模块通过hook实现
3. 使用flag + rules实现
具体可以参考这篇文章,涵盖了上述几种方案的具体实现
==============================================
另外附上方案1的例子:
建立如下图的rules规则,当用户创建article时,会检查其是否有page的node,没有则跳转到page的添加页面,并显示提示信息。
其中php代码如下(需要启用php filter模块):
$path = current_path();
if($path == 'node/add/article') {
global $user;
$sql = "SELECT COUNT(nid) FROM node JOIN users ON node.uid = users.uid WHERE node.status = :status AND users.uid = :uid AND node.type = :type";
$result = db_query($sql, array(
":status"=> 1,
":uid" => $user->uid,
":type" => 'page'))
->fetchField();
return ($result > 0) ? FALSE : TRUE;
}