Joomler!.net - Decided on Joomla!

デル株式会社

Wiki or Wordpress? No it is JContentPlus.

Home » Blog » countModules
0 votes
Written by:Joomler! 4081 hits Wednesday, 24 December 2008 16:34

Joomla!にはじめから付いているデフォルトテンプレートを考察!?してみる。

rhuk_milkyway

  • そのまま使えて基本中の基本といった感じでしょうか。でもカスタマイズしはじめるとデフォルトで指定されているスタイルが邪魔になって返って面倒な気もします。

ja_purity

  • 基本を通り越して少し独自のコントロールを持ったテンプレートみたいな。ここまでやっちゃうと初めてでは少しカスタマイズしづらいかもしれません。

beez

基本から少し拡張している部分もあってJoomla!の基本が、一番わかりやすいテンプレートだと思います。例えばindex.phpの冒頭にある下記のコード

$showRightColumn = $this->countModules('user1 or user2 or right or top');
$showRightColumn &= JRequest::getCmd('layout') != 'form';
$showRightColumn &= JRequest::getCmd('task') != 'edit'

こう書く事で右カラムを表示するのかしないのかを判断しています。中程を見ていくと下記のコードで表示・非表示を切り替えていることがわかります。

<?php if ($showRightColumn) : ?>

ここに右カラム

<?php endif; ?>

さらにbeezの非常にわかりやすい点は、htmlフォルダ内でオーバライドされているテンプレート群が多い事です。標準のほとんどのエクステンションがオーバーライドされていることがわかります。なのでオリジナルのテンプレートを作成するときは、beezを基本にされるとわかりやすく、カスタマイズしやすいかもしれません。

また、よくあるフリーのJoomla!とは全く関係のないCSSテンプレートなどでもbeezを参考にJoomla!の出力タグを割り当て、慣れてきたらja_purityを見ながら拡張していくのも一つの方法です。

Joomla!の場合メニュー毎にテンプレートを割り当てる機能があるのでそれでコントロールするのも一つですが、ファイルが複数になって管理しづらくなってしまう弊害もあります。そこで、デザインがあまり変わらないのならJoomla!のデフォルトテンプレートを参考に一定のタイミングで表示・非表示の切替を行ったり、クラス名を変更したりなどと可変なテンプレートを作成する方が簡単で管理もしやすい方法と言えます。

このサイトは、Joomla!1.0でテンプレートのオーバーライド機能はありませんが、独自のコンポーネントを使用する事でオリジナルの出力を行っています。テンプレートは一つのみで、上と同様に一定のタイミング(メニューIDや、コンポーネント、タスクなど)で表示・非表示などを切り替えています。

蜂の顔も見慣れるとかわいく思えます。beezの中身をあらためて見てみると意外な発見があるかもしれません。

 
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; ?>
 

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.