Home arrow Blog arrow Joomla! CMS

11月
28
2008

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

diggに追加!

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

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

などと。

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');

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

お試しあれ

 

Related Articles

早速テストサーバーのJoomla!1.5をRC4にアップグレードしてみた
Myサーバー(Ubuntu)のRC3(実は、RC3だったかRC2だったか定かでない。)をRC4にアップグレードしました。 本家には下記のように書いてあった。 Backup all files; ...
Joomla!エクステンションの制限
エクステンションを作成していていつも思うのですが、モジュールやプラグイン(Mambot)では直接その作成したものにアクセスはできません。(できなくはないですが、Joomlaの構造上それは制限されるべ...
日時の文字化け
そういえば、記事の日時がローカルテストサーバーのJoomla!1.0.13でいつも文字化けしていたことを放置していました。 2007/12/07 Friday 08:01:00 ???? (?W??...
Joomla!の Cache
昨日ある問い合わせがあってCacheのことでJoomlaのソースを眺めていました。  Joomla!のCacheは、パーツごとにCacheファイルを作成し、それをパーツごとに読み込むようになっている...
書庫の記事が533タイトルにもなっていた
本年1月から始めて、私自身の書庫として使っているWordpressの記事が533タイトルにもなっていました。 気になるサイトのコピペであったりでとても公開できるような内容ではないので公開できませんが...
ダウンロード数を比較してみるとまだ 1.0.x 多し?! : Joomla!
ふと、MovableType XML-RPC Pluginのダウンロード数を比較してみるとアップデートしたファイルのダウンロード数ではJoomla!1.5用の約7割がJoomla!1.0.x用のダウン...
mod QRcodeをアップデートしました : for Japanese
QRcodeモジュールをアップデートしました。 変更 QRcodeイメージをハッシュ値とすることでモジュールコピーによる複数生成を可能としました。 (URLは、自動生成してくれませ...
Joomler!.netについて
管理者 Joomler!.netはJoomla! CMS 用のエクステンションやWEB制作を業としているフリーランサーが運営しています。 目的 Joomla!の普及...
80codeサーバーでのJoomla!1.5のSEF
以下は、80codeサーバーでのみのことです。 昨日Hackが駄目ってわかってよく考えてみれば(考えなくてもそうだ)PHP_SELFに正しい値が入らないのが原因なのでそれに正しい値を入れてやれば解決...
見ていなかったヘルプを眺めてみた:Joomla!
Joomla!をはじめて使い始めた頃からヘルプなど見ていませんが、Joomla!1.5のヘルプを少し眺めていました。1.5では、日本語化されていないのですべて英語です。尚更見ないでしょうが、1.0の時...
Fireboardの1.0.4がリリースされています
文字コード(UTF-8)で困惑
関連記事(Related Module)に表示件数の制限を追加 : Joomla!1.5
Joomla!1.5になって増えたINIファイル
extensions.joomla.orgがアップデートされていますよ
フロントエンドから投稿するとき公開終了日時を指定させない : Joomla!1.5
Google VideoBar Module 1.0.0
バックアップならこれJombackup
ロシア語Joomla UTF-8を作ってみた
Joomla!じゃぱんのフォーラムにやっとログインできた

joomler_kun_48.gif Blog
Joomler! Blog

for Mobile