Joomler!.net - Decided on Joomla!

デル株式会社

Wiki or Wordpress? No it is JContentPlus.

Home » Blog » モジュールポジション
0 votes
Written by:Joomler! 4087 hits Friday, 28 November 2008 16:38

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

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

などと。

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

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

例えば、

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

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

メールで相談があったので考えてみた。
(たまにそういった相談があったりする。もちろんはじめての方ばかりです。)

Joomla!のエクステンションでできることをまず整理してみた。

  • コンポーネント
    • コンポーネントだけができること
      • 独自のコンポーネントのURLを作ることができる。
        というかつくられる。
      • データベースをインストールできる。
    • 他でもできること
      • データを表示する。
  • モジュール
    • モジュールだけができること
      • ページ内で表示する領域をモジュールポジションで決められる。
        これくらいか・・・。
    • 他でもできること
      • データを表示する。
  • プラグイン
    • プラグインだけができること
      • プラグインが呼び出されるタイミングに合わせてそのデータに対して処理をする。
        これくらい?
    • 他でもできること
      • データを表示する。

さて、書いてみると作成するのに一番面倒そうなのは、コンポーネントですね。次はモジュールでもプラグインでも同じくらいっぽいです。内容によってはといった感じでしょうか。

今回の相談ではまず、

  • 投稿機能
  • 内容をデータに反映(表示)

の2点が大きな目的です。単純に考えるとコンポーネントを作成するしか無いのですが、もしデータベースなりで(データベースでなくてもファイルベースでも構わないならそれでもOK)、とにかくデータを管理することさえできれば、モジュールでもプラグインでもコンポーネント並のことができるのではないかと考えました。

・・・いやいや、もっと簡単なのを思いつきました。

 
2 votes
Written by:Joomler! 5235 hits Saturday, 03 November 2007 21:23

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}

こうやって記事内のどこにでも配置できるので便利ですよね。モジュールの違った使い方をご紹介しました。

 

JContentPlus for Joomla!1.5 powered by Joomler!.net

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.