私は joomla 2.5 用のモジュールを開発しましたが、問題なく動作します。コンポーネントの特定のビューが表示されているときにレンダリングしたくないのですが、そのビューはメニュー リンクではないため、自分のしたくないときにモジュールをレンダリングしないようにします。
2 に答える
2 つの可能性:
決して表示されないメニューのメニュー項目にそのビューを割り当てます。通常どおりモジュールを非表示にすることができます。
カスタム モジュールがあるため、モジュールを変更してコンポーネントとビューをチェックし、場合によってはそれ自体をレンダリングしないようにすることができます。
「コンポーネントとビューを確認し、特定のケースではそれ自体をレンダリングしない」という問題が発生する可能性がありますまたは左の列)、モジュールがまだ割り当てられているため (何もレンダリングしていなくても)、折りたたまれません。
問題は、モジュールを表示する決定がどこで行われるかです。「このページに特定のモジュールを表示する必要があるか」を決定するのは、いつレンダリングするかを決定するモジュール自体の問題ですか、それともロジックを別の場所に配置する必要がありますか? 私は後者を提案します。
これに対する良い解決策は、他のモジュールをページに表示するかどうかを決定する条件を組み込むことができるMetaMod Proです。次に、PHP のスニペットを挿入して検出を行います。
したがって、スニペットは次のようになります。
if (! ($option == 'com_mycomponent' and $view == 'myview') ) return XXX;
// replace XXX with the module id of the module you want to disappear.
つまり、「mycomponent と myview を含むページにない場合は、モジュール XXX を表示します」。
ヒント: Pro バージョンでは、モジュールが含まれていない場合、モジュールを完全に非表示にすることができます。無料版では一部の HTML が残る場合があります。