1

Joomla コンポーネントで特定のフィルターのショートカットを作成する必要がある状況があります。

問題は、Joomlaがフォームフィールドを独自のセッションハンドラー、リクエストハンドラー、または何らかのカスタムハンドラーに設定するかどうかがわからないため、設定を解除できないことです。また、この特定のケースに関するドキュメントもないようです。

完全な状況は、別のリンク (コンポーネント サイドバー) と同じビューで自動フィルター処理されるリンクがあることです。1 つのビューは単なる特定のフィルターで、もう 1 つは標準です。フィルタされたビューをクリックすると、現在のフィルタがリセットされ、すべてが正常に表示されるようになります。

私はこれに対して多くのアプローチを試みましたが、一貫して強制的にフィルタリングすることはできますが、これまでに試した手法で最後のページに再入力してもフォームはリセットされず、もちろんバイパスを避けたいですJoomla のデフォルト関数。

if(JRequest::getVar('filter_group_id',false)==10){
    JRequest::setVar('last_filter',true);
    EthicstoolHelper::addSubmenu('supervisors');
}else{
    if(JRequest::getVar('last_filter',false)===true){
        JRequest::setVar('last_filter',false);
        JRequest::setVar('filter_group_id',false)
    }
    EthicstoolHelper::addSubmenu('users');
}

JRequestにはunsetメソッドが組み込まれていないため、Joomlaが設定されていないものとして読み取ることを期待して、値をfalseにリセットしようとしていることがわかるように、これは私が試した最新の考えです。

4

1 に答える 1

1

まだコメントできる担当者がいないので、何が問題なのか少し推測しています. モデルを使用してフィルターの状態を設定していると仮定すると、populateStateメソッドのオーバーライドを検討できます。

context別のオプションは、モデル内のプロパティをいじることです。たとえば、のようなものを使用している場合に特別なフィルターを有効にしている場合は、コンテキストを変更できます$app->getUserStateFromRequest()。コンポーネント (コントローラーとモデル) の設計についてもう少し情報を投稿していただければ、さらにお役に立てます。

于 2013-12-20T12:37:22.797 に答える