どこから始めればいいのか少し戸惑っています。
これは起こるはずです:
グループメンバーが前に新しい記事を作成/保存する前に、このユーザーが作成した記事の量が、そのグループメンバーシップの最大許容記事と比較されます。疑似コード:
if ($articlesCreatedByUser < $allowedArticlesByGroup){
$article->save();
} else {
die('you reached the article limit');
ここではJoomlaの開発を始めたばかりなので、私の質問です。
ありがとう!
トニ
このタスクを実行するには、テンプレートオーバーライドと共にコンテンツプラグインを開発することをお勧めします。以下の例では、ユーザーごとに1日あたり最大5つの記事を制限しています。
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;
}
プラグインは、ユーザーが許可された制限を超えて新しい記事を作成できないようにします。ここで、ユーザーが記事の作成ページ自体にアクセスできないようにするには、フォームのレイアウトをオーバーライドして、上記のロジックを追加します。