La façon dont cela peut être réalisé dépend en grande partie de la façon dont est créé. En supposant que vous avez un module NODE_TYPE
vous pourriez mettre en œuvre hook_validate en faisant quelque chose comme ceci:
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
}
Si vous ne disposez pas d'accès au module qui crée le NODE_TYPE
vous pouvez créer un nouveau module et mettre en œuvre 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
}
Je ne suis pas sûr à 100% si validate
est le meilleur crochet à mettre en œuvre, mais c'est certainement une option.
C'est probablement une meilleure solution que ce que j'ai fait. J'ai utilisé un autre module, appelé user_quota, qui fonctionne, mais maintenant, chaque fois qu'un noeud est supprimé, je dois augmenter le quota de la personne. – coderama