Joomler!.net - Decided on Joomla!

Jboard is Multiple Board!

 

Archives

Blog

Demo

Home » Blog » オリジナルのテンプレートを作ってみる (1) : Joomla!1.5
Feb
16
2009

オリジナルのテンプレートを作ってみる (1) : Joomla!1.5

EMailPrintPDF
1 votes
Written by:Joomler! 8782 hits

このサイトのテンプレート作成の事もあり、私なりにテンプレート作成記録を書いていこうかと思う。

まず、第一回(って続くのか?)
よくあるサイト下部の 「|」で分割されたメニューをモジュールの出力をそのまま使って、作ってみる。できあがりの出力結果は、画像の通り。

 template_01_module_override

ちなみに解説すると、tableタグを使わずセンターに持ってきて、しかも文字で「|」をセパレータとして使い、センターに持ってきて且つ、横幅は臨機応変、柔軟に対応したい。(こんなことしなくたって・・・と言う方は、さっさとよそへ行った方が時間がもったいないです。)

で、モジュールから出力されるメニューは、モジュール(mod_mainmenu)の設定をどうしようが、メニューリンクは、必ず「ul」なり、「table」タグで囲まれて出力されます。私のような、CSS下手な人間にとってこれは、非常に面倒です。・・・私には無理です。

そこで、こんなオーバーライドをしてみました。

自分のテンプレート/html/modules.phpが無ければ、作成します。

以下のように追記する。

<?php defined('_JEXEC') or die('Restricted access');

function modChrome_striptag($module, & $params, & $attribs)
{
	$display = preg_replace('/<\/?(ul|li)[^>]*>/si', '', $module->content);
	if(!empty($attribs['separator'])){
		echo str_replace('a><a', 'a>'. $attribs['separator']. '<a', $display);
		return;
	}
	echo $display;
}

?>

で、テンプレート側には、以下のように記入することで「ul」「li」のタグが無くなって「a」タグで囲まれた部分とセパレータとして指定された物だけが出力されます。

<jdoc:include type="modules" name="bottom" style="striptag" separator="&nbsp;|&nbsp;"/>

こうすることで僅かなスタイル指定とタグで目的がかないました。

これを応用するとテンプレート側でID値や、class値を自由に決定したり、タグすら変更することができ、テンプレートの編集をしながらJoomla!の管理画面を開いてモジュールの接尾辞(module class suffix)を設定する必要もありませんし、仮に既に接尾辞が設定済みであってもそれを無視してテンプレートのスタイルを適用できるので、どんなJoomla!の環境に移行しても同じスタイルで表示されると言うわけです。

これって以外に便利では?

 

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.