サイトを作成しているとよくあることですが、
などと。
Joomla!は、メニューにテンプレートを割り当てる事ができるのでメニュー毎にテンプレートを切り替える方法は、一般的な方法です。
もう一つ簡単な方法として考えられること。要はその表示・非表示の条件が、何で判断できるかを考えてみます。
例えば、
<?php if($this->countModules('作成したモジュールのモジュールポジション')) : ?>
<jdoc:include type="modules" name="ログイン後に表示したいモジュールポジション" style="rounded" />
<?php endif; ?>メールで相談があったので考えてみた。
(たまにそういった相談があったりする。もちろんはじめての方ばかりです。)
Joomla!のエクステンションでできることをまず整理してみた。
さて、書いてみると作成するのに一番面倒そうなのは、コンポーネントですね。次はモジュールでもプラグインでも同じくらいっぽいです。内容によってはといった感じでしょうか。
今回の相談ではまず、
の2点が大きな目的です。単純に考えるとコンポーネントを作成するしか無いのですが、もしデータベースなりで(データベースでなくてもファイルベースでも構わないならそれでもOK)、とにかくデータを管理することさえできれば、モジュールでもプラグインでもコンポーネント並のことができるのではないかと考えました。
・・・いやいや、もっと簡単なのを思いつきました。
Moduleの使い方ですが、大抵テンプレートにUser1とか書いてその場所で出力させているかと思うのですが、Joomla!1.0.xにはモジュールローダー、Joomla!1.5にはLoad Moduleというプラグインがあるのをご存じですか?知らない事も多々ある私ですがこれは、知っています。1.0.xなら {mosloadposition user1} 1.5なら{loadposition user1} でuser1に登録されているモジュールを記事内に書き出すことが可能です。
ポジションに空きの無い方は、1.0.xなら「サイト」「テンプレート管理」「モジュールポジション」で適当にポジションを増やした後、表示させたいモジュールの設定でそのポジションを先ほどのポジションにし、公開にします。そして表示させたい記事内の任意の場所に {mosloadposition 設定したポジション名} でOKです。1.5の場合は、テンプレートのxmlファイル内に書いてあるポジションしか選択できないようです。(他に設定があるかもしれませんが)ですので表示しているテンプレートのフォルダ内のxmlファイルを開きポジション名が書かれているところに追加すればポジションは増やせます。
例としてGoogle Video Bar モジュールを置いてみました。
{mosloadposition gvb1}
こうやって記事内のどこにでも配置できるので便利ですよね。モジュールの違った使い方をご紹介しました。