在我的网站上,我有三个角色:
角色1可能只有10个“NODE_TYPE”类型的节点。 角色2可能只有100个“NODE_TYPE”类型的节点。 角色3可能只有1000个“NODE_TYPE”类型的节点。
我可以用什么来强制执行此操作?以下模块不起作用:
任何?
答案 0 :(得分:2)
如何实现这一目标在很大程度上取决于NODE_TYPE
的创建方式。
假设您有一个NODE_TYPE
模块,您可以通过执行以下操作来实现hook_validate:
function NODE_TYPE_validate($node, &$form) {
if (NODE_TYPE_reached_post_limit()) {
form_set_error('form_name', t('You have reached your post limit'));
}
}
function NODE_TYPE_reached_post_limit() {
global $user;
//Write code to do the following:
//-> Check which group $user belongs to
//-> Create query to see how many posts $user has made
//-> Return true if $user has reached the limit
}
如果您无权访问创建NODE_TYPE
的模块,则可以创建新模块并实施hook_nodeapi:
function yournewmodule_nodeapi(&$node, $op) {
switch ($op) {
case 'validate':
if ($node->type == "NODE_TYPE" && yournewmodule_reached_post_limit()) {
form_set_error('form_name', t('You have reached your post limit'));
}
break;
}
}
function yournewmodule_reached_post_limit() {
global $user;
//Write code to do the following:
//-> Check which group $user belongs to
//-> Create query to see how many posts $user has made
//-> Return true if $user has reached the limit
}
我不是100%确定validate
是否是最佳钩子来实现,但它肯定是一种选择。