web-dev-qa-db-ja.com

メニュー項目-記事リスト-ユーザーでフィルター

私はJoomla(バージョン3)に非常に慣れていません。

2人の登録ユーザーがいます。

登録ユーザーがログインすると、記事リストを表示するためのアイテムを含む新しいメニューが表示されます。これは期待どおりに機能します。

私がしたいのは、現在ログインしている使用者によって書かれた記事のみを表示することです。そうすれば、彼らは自分の記事だけを表示して編集することができます。

新しいカテゴリモジュールの作成に関する方法など、いくつかの方法を確認しましたが、これらは期待どおりに機能せず、すべてのユーザーが他の人による記事を引き続き表示できます。

どんなガイダンスもいただければ幸いです。ファイルを編集しても問題はありません。どのファイルを編集するかわかりません。

どうもありがとう

2
MaxVK

NisseEngströmの提案に従って(多くの感謝)私の解決策をここに投稿します:

この質問への回答を探し求めてしばらくの間、私は実用的な解決策を見つけ、ここに投稿しました。

目的は、ログインしたユーザーが自分の記事とSuperUserの記事のみを含む記事リストを表示できるようにすることでした-彼らは自分の記事しか編集できないようにする必要があります。

これを機能させるには、次のように設定します。

デフォルトのインストールとProtostarテンプレートの使用。

ファイルを上書きします: "com_content/category/default_articles.php"

135行目あたりに次の行があります。

foreach ($this->items as $i => $article)

この行のすぐ下に次のコードを追加しました(ユーザー232は私のスーパーユーザーです-あなたのIDは異なる場合があります):

if ($this->items[$i]->created_by == JFactory::getUser()->id || $this->items[$i]->created_by == JFactory::getUser(232)->id) :

これは標準の 'endif'で261行目で再び閉じられます。これは、135行目から始まった最後の「endforeach」の真上にあることに注意してください。

結果

まさに私が見たかったものです。ログインしたユーザーは、自分の記事(およびスーパーユーザーの記事は編集できません)のみを表示でき、新しい記事を送信できます。

権限を少し調整するだけで、各ユーザーは自分の記事のみを作成、編集、公開、ゴミ箱に入れることができます。

これがこの結果を達成するための「Right」の方法であるかどうかはわかりませんが、思ったとおりに機能し、私は経験豊富なユーザーが別の方法を示すことができて嬉しい。

考えられる将来の問題

このコードは、Joomlaが記事のリストをロードするときに実行されます。したがって、より多くのユーザーがより多くの記事を作成するにつれて、何度も何度も実行されます。おそらくこれがスローダウンを引き起こすでしょうか?

とにかく…….

1
MaxVK

私はこの回答を別の質問に投稿しました。まったく同じではありませんが、要件は非常によく似ており、同じコンテキスト、つまり「フロントエンドオーサリング」に該当します。

その質問は次のとおりです:Joomla!3.8-フロントエンドの[公開]タブを非表示にする方法

したがって、あなたのケースでは、この情報も役に立つかもしれませんし、あなたのオプションと可能性を知るのに良いでしょう:

私はここに私の別の答えを少し変更して貼り付けています:

カスタマイズとは別に、サードパーティの拡張機能の使用を検討できます。

これに適した拡張機能には、主に2つのタイプ/カテゴリがあります。

  1. フロントエンドの記事管理
  2. CCK統合

1.フロントエンドの記事管理

フロントエンドの記事管理拡張機能は、Joomlaにフロントエンドのオーサリング/管理機能を提供するように設計されています。

JEDカテゴリー:

いくつかの拡張:

2. CCKsの統合

簡単に言うと、CCKを使用して、独自のコンテンツキット/コンテンツワークフローを作成できます。 Joomla記事と統合でき、独自のフォームとリストを作成できるCCKがあります。たとえば、Fabrikでは、記事リストのメニュー項目を作成して、現在のユーザーの記事のみを表示できます。このような拡張機能を使用すると、詳細なアクセス許可の構成も可能になり、多くの可能性が開かれます。

1
FFrewin