web-dev-qa-db-ja.com

メニュー項目のないページのモジュール表示を制御するにはどうすればよいですか?

モジュールパラメータのメニュー項目に従ってページにモジュールを割り当てましたが、メニュー項目がリンクされていない特定のページでモジュールを非表示/表示したいです。

これらのページのモジュール表示をどのように制御しますか?

7
web-tiki

ソリューション1:非表示のメニュー

ページにかなりのsef URLも必要な場合は、非表示のメニューを作成し、それらの記事を非表示のメニューにリンクできます。非表示のメニューとは、モジュールを作成せずに、メニューマネージャーで作成するだけなので、エンドユーザーには真のメニューとして表示されません。

Joomlaはこれを実際のメニューと見なしているため(表示されていなくても)、モジュールパラメーターで非表示のメニュー項目を選択することにより、それぞれにモジュールを割り当てることができます。

更新:Joomla 3.5以降、メニュー項目の[リンクタイプ]タブに移動して[メニューに表示]を[いいえ]に変更することで、公開されたメニューのメニュー項目を非表示にすることができます。

ソリューション2:高度なモジュールマネージャー

それ以外は、Regular Labs(以前はNoNumberと呼ばれていました)Advanced Module Managerが絶対的な方法です。 Advanced Module Managerを使用すると、カテゴリ、コンポーネント、URL、メニュー項目、言語などの多数の基準に基づいてモジュールを割り当てることができます。これを使用して、特定のユーザーまたはユーザーグループに公開することもできます。

20
Brian Peat

デフォルトのJoomlaではできません。メニュー項目のみ。あなたにもっと多くの割り当てオプションを提供するRegularLabsの高度なモジュールマネージャーを見てください。

7
Robert Went

このような問題を回避するために、私は通常、サイトのどこにも配置されない「非表示」メニューを作成します。そうすることで、特定のページのURLを指定し、それらに(あなたがやろうとしているように)モジュールだけでなくテンプレートも適用できます。

4
Zachary Draper

番号なしの拡張子を使用してみてください。

http://www.nonumber.nl/extensions/advancedmodulemanager

高度なモジュールマネージャーを使用すると、多くの特定の割り当てを行うことができるため、実際には、「abc」がURLパス内にある場合、または特定の記事やコンポーネントごと、さらには曜日ごとにのみ、メニュー項目と一致するように設定できます。 。カスタムphp関数を記述して、独自のセレクターを作成することもできます。 「すべて」または「すべて」の一致を使用できます。彼の他の拡張機能もすべて非常に優れており、Proを購入する価値は十分にありますが、基本の無料のものも素晴らしいです。

申し訳ありません-私は20分前にこれを書き始め、中断された後、誰もがすでにこれを提案していることを知らずに投稿しました!!しかし、それは私が何かを知っている人々のチームの一員であるように感じるので、それを残します。

3
Faye

Joomla it selfは、メニューアイテムを使用してモジュールの可視性を制御することしかできません。

あなたができることの一つは、次のようなものでテンプレートのモジュールの位置を隠すことです:

/templates//index.php

<?php if (JFactory::getApplication()->input->get('id') == 4711) : ?>
  <jdoc:include type="modules" name="submenu" /> 
<?php endif; ?>

Idパラメータが「4711」の場合、このコードは「サブメニュー」の位置にモジュールを表示します。

このメソッドにはphpの知識が必要であり、ニーズに合わない場合があります。

2
Harald Leithner

簡単で強力な方法は、nonumber.nlの高度なモジュールマネージャー拡張を使用して提案されているとおりです。

時間のかかる簡単な方法は、これらのページの非表示のメニュー項目を作成することですが、これによりSEFが変更されることに注意してください

これを使用して、サブメニュー内のアイテムの第1レベルのSEF URLを作成します(メニューエイリアスによる)

2
Johnnydement