1

こんにちは、質問全体を読んでください。これは、検索ページに対してのみモジュールを有効にするだけでは解決されません。

Joomla の検索ページにのみ表示されるモジュールがいくつかあります。

モジュールにこのページにのみ表示するように指示するために、検索用の非表示のメニュー エントリも作成しました。これは問題なく動作しますが、結果の 1 つをクリックして実際の結果にリダイレクトされると、検索ページにのみ表示されるはずのモジュールが結果ページに表示されたままになります。

これを修正する方法の手がかりはありますか?サードパーティの検索拡張モジュールを使用していて、それらが結果に表示されているので、本当に面倒です。

4

2 に答える 2

1

標準の Joomla を使用して、モジュールを検索結果ページのみにターゲット設定し、結果からリンクするページをターゲットに設定する方法はありません。非表示のメニュー項目はヘルプですが、そのページからのリンクの一部のメニュー項目は変更されません。それはすべて、Joomla での「Itemids」の割り当てと使用に関係しています。

モジュールをより具体的にターゲットにするには、サードパーティの拡張機能を使用する必要があります。私はまさにこのユースケースに対処するために MetaMod (www.metamodpro.com) を開発しました。MetaMod はラッパー モジュールであり、他のどのモジュールを自分自身に含めるか (または含めないか) を決定できます。そのため、MetaMod をページに割り当ててから、他のどのモジュールを含めるかを決定するコードのスニペットを MetaMod 内に配置します。

この場合、MetaMod で以下を使用します。

if ($core_genius->check("pagetype = search, searchresults")) return XXX;
// replace XXX with the module id of the module to include
// ONLY on the search page, or the searchresults page, but
// no other type of page.

それが役立つことを願って、

スティーブン

于 2013-02-25T22:30:48.337 に答える
0

MetaMod は優れていますが (私自身も使用しましたが、Stephen のサポートは優れています!)、サードパーティの拡張機能を使用せずにそれを行う別の方法があります。

テンプレートで、使用したいモジュール位置の上 (または下) に新しいモジュール位置を作成し、次のように if ステートメントでそれらをラップすることができます。

<?php if(!isset(JRequest::getString('searchword'))) : ?> 
    <jdoc:include type="modules" name="right-search" style="xhtml" />
<?php endif; ?>
于 2013-02-26T00:45:14.233 に答える