1

簡単に

別のコンポーネントを含むモジュールを非表示または非公開にしようとしています。コードから特定のメニュー項目のモジュールを有効/無効にする方法を知っている人はいますか?


シナリオ:

T3 を使用してテンプレートを作成しています。

イベントを一覧表示するコンポーネント呼び出し Jreviews を使用しており、ビューをカスタマイズできます。joomla メニュー項目によって割り当てられるコンポーネント。

また、同じメニュー項目の上部にバナー コンポーネントを割り当てます。

ページが最初にロードされたときにのみバナーコンポーネントが必要ですが、ユーザーが Jreviews コンポーネント内を検索するときは必要ありません。(検索後、joomlaは同じURLにとどまります)

Jreviews コンポーネント内で検索イベントをキャッチし、位置ごとにモジュールをレンダリングできます。

<?php 
$position = 'user1';
$params     = array('style'=>'');
$document   = &JFactory::getDocument();
$renderer   = $document->loadRenderer('module');
$contents = '';
foreach (JModuleHelper::getModules($position) as $mod)  {   
    $contents .= $renderer->render($mod, $params);
}
echo $contents;
?>

しかし、コンポーネントで割り当てられたものと重複しています。

質問

モジュールバナーコンポーネントをJreviewテンプレートでコードでロードしたときにのみ表示する方法は?

どうもありがとう、

エドゥアルド

4

2 に答える 2

1

次のコードを追加するだけで方法が見つかりました

<?php 
$position = 'show-by-code';
$params     = array('style'=>'');
$document   = &JFactory::getDocument();
$renderer   = $document->loadRenderer('module');
$contents = '';
foreach (JModuleHelper::getModules($position) as $mod)  {   
    $contents .= $renderer->render($mod, $params);
}
echo $contents;
?>

次に、モジュール管理で、テンプレートの一部ではない同じ位置「コードごとに表示」を使用します。

于 2012-09-12T11:34:06.360 に答える
0

可能であれば、モジュール コードでもイベントをキャッチして、バナーを表示するかどうかを決定してみてください。

于 2012-09-12T07:32:49.033 に答える