Je suis un peu perplexe par où commencer.
Cela devrait arriver:
Avant qu'un membre du groupe crée/enregistre un nouvel article dans fronté, la quantité d'articles créés par cet utilisateur est comparée au nombre maximum d'articles autorisés de son appartenance à un groupe. Pseudo Code:
if ($articlesCreatedByUser < $allowedArticlesByGroup){
$article->save();
} else {
die('you reached the article limit');
Comme je commence tout juste avec le développement de Joomla, voici mes questions.
Merci!
Toni
Je suggérerais de développer un plugin de contenu avec un remplacement de modèle pour effectuer cette tâche. L'exemple ci-dessous limite au maximum 5 articles par jour et par utilisateur.
public function onContentBeforeSave($context, $article, $isNew)
{
if ( $context != 'com_content.form' || !$isNew)
{
return true;
}
$user = JFactory::getUser();
$db = JFactory::getDbo();
$query = $db->getQuery(true)
->select('count(*)')
->from('#__content')
->where('created_by = '.$user->id.' and created > CURDATE()');
$db->setQuery($query);
$articlesCreatedByUser = (int)$db->loadResult();
// get the allowed articles somehow..
$allowedArticlesByGroup = 5;
// check the allowed articles.
if ($articlesCreatedByUser >= $allowedArticlesByGroup)
{
$article->setError('Maximum of '.$allowedArticlesByGroup.' articles are allowed per day.');
return false;
}
return true;
}
Le plugin empêchera les utilisateurs de créer de nouveaux articles au-delà de la limite autorisée. Maintenant, pour empêcher les utilisateurs d’accéder à la page de création d’article, remplacez la disposition du formulaire et ajoutez la logique ci-dessus.