Joomler!.net - Decided on Joomla!

Wiki or Wordpress? No it is JContentPlus.

 

Archives

Blog

Demo

Home » Blog » 一定の条件でモジュールを表示・非表示 : Joomla!
Nov
28
2008

一定の条件でモジュールを表示・非表示 : Joomla!

EMailPrintPDF
0 votes
Written by:Joomler! 12431 hits

サイトを作成しているとよくあることですが、

  • この時は表示したいけどいつも非表示にしたい。
  • この時だけは非表示にしたい。

などと。

Joomla!は、メニューにテンプレートを割り当てる事ができるのでメニュー毎にテンプレートを切り替える方法は、一般的な方法です。

もう一つ簡単な方法として考えられること。要はその表示・非表示の条件が、何で判断できるかを考えてみます。

例えば、

  • ログインしていない時に表示したいけど、ログイン後は非表示にしたい。
    簡単です。モジュールの中にきっとログイン後しか表示しないモジュールがあると思います。なければ、ユーザー詳細などログイン後にしか表示しないメニューを他のメニューモジュールとは別で作成し、アクセスするレベルを一般(Public)から登録(Registered)に変更します。そして単独(他の同条件のモジュールと共に)で表示するモジュールポジションを作成します。ログイン後に表示したいモジュールを作成したポジションに指定します。

    後は、下記のようにテンプレートに記述すれば、このモジュールが表示されているときは、ログイン後で表示されていないときは、ログインされていないと判断することができます。
    <?php if($this->countModules('作成したモジュールのモジュールポジション')) : ?>
    	<jdoc:include type="modules" name="ログイン後に表示したいモジュールポジション" style="rounded" />
    <?php endif; ?>

他の条件の時は
もちろんPHPでなにがしかの分岐文を書かないとだめな場合もありますが、上記のように簡単にできると思って間違いないと思います。その一定の条件のときって必ず何かパラメータを持っているはずです。

例えば、カテゴリーIDが5の時だけ表示したい場合

						<?php if(JRequest::getInt('catid') == 5) : ?>
							<jdoc:include type="modules" name="表示したいモジュールポジション" style="rounded" />
						<?php endif; ?>

などとすれば、ほぼ(記事の場合、異なる場合もあるのでもう少し条件が、必要かもしれない)思うようになると思います。

他にも使えるだろうパラメータは、

  • メニューID
    JRequest::getInt('Itemid');
  • コンポーネント
    JRequest::getCmd('option');

などと判断する基準は、たくさんあると思います。組み合わせて使えば、もっと複雑な条件での切り替えもできます。

お試しあれ

 

ADD A COMMENT

Subject*
:
Color Swatch




Email Link Page Code Text Align Center Text Align Justify Text Align Left Text Align Right Text Bold Text Quote Text Italic Text List Bullets Text List Numbers Text Strikethrough Text Underline World Link
Sun Unhappy Smile Evilgrin Wink Tongue Lightning Surprised Grin Rain Clouds Cloudy Snow Waii
Name*
:
EMail*
:
Please answer....
Submit Preview

JContentPlus for Joomla!1.5 powered by Joomler!.net

Related Items

joomler.net is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla!(R) name is used under a limited license from Open Source Matters in the United States and other countries.
joomler.net is not affiliated with or endorsed by Open Source Matters or the Joomla! Project.