前のパーツ:
標準によるJoomlaテンプレートの作成-パート1
標準でJoomlaテンプレートを作成します-パート1(続き)
Joomla 1.5用のクリーンなCSSテンプレートの作成-パート2.1
Joomla 1.5用のクリーンなCSSテンプレートの作成-パート2.2
Joomla 1.5用のクリーンなCSSテンプレートの作成-パート2.3
Joomla 1.5用のクリーンなCSSテンプレートの作成-パート2.4
Joomla 1.5用のクリーンなCSSテンプレートの作成-パート3
高度なテンプレート機能
Joomla 1.5は、本質的に機能を拡張する多くの高度なテンプレート機能を提供します。 このシリーズの記事の例の1つをすでに見てきました。「クロム」またはモジュールのカスタマイズされた表示を作成する可能性です。
次の関数を考えてみましょう。
- テンプレートオプション
- テンプレートのオーバーライド
テンプレートオプション
Joomla 1.5は新しい機能を追加します-テンプレートのオプション。 これにより、管理インターフェースのテンプレートに渡される変数に値を割り当てることができます。
テンプレートでパラメーターを使用するための比較的単純なオプションを使用できます。 templateDetails.xmlファイルで、次を追加します。
<params> <param name = "template_width" type = "list" default = "fluid" label = "Template Width" description = "テンプレートの幅スタイル"> <option value = "fluid">最大および最小の流体</ option> <option value = "medium">中</ option> <option value = "small">小</ option> </ param> </ params>
テンプレートフォルダーにparams.iniファイルも必要です。 空の場合もありますが、Joomlaは設定を保存するために必要です。 たとえば、上記の例の.iniファイルは次のようになります。
template_width = 2
サーバーがパラメーター値を保存できるように、書き込み許可を設定する必要があります。 また、このファイルをtemplateDetails.xmlのファイルのリストに追加する必要があります。
テンプレートマネージャーでは、図に示すように、パラメーターのオプションが表示されます。
これは、3つの選択肢がある単純なリストであることがわかります。
<param name = "template_width" type = "radio" default = "0" label = "Template Width" description = "テンプレートの幅設定の変更"> <option value = "0"> 800x600 </ option> <option value = "1"> 1024x756 </ option> <option value = "2">流体(FFおよびIE7では最小/最大、IE6では80%)</ option> </ param>
その後、index.phpのbodyタグを次のように変更します。
<body class = "width _ <?php echo $ this-> params-> get( 'template_width');?>">
CSSファイルに次の行を追加します。
body.width_0 div#wrap { 幅:760px; } body.width_1 div#wrap { 幅:960px; } body.width_2 div#wrap { 最小幅:760px; 最大幅:960px; 幅:auto!重要; } #wrap { テキスト揃え:左; マージン:0自動; }
これらはすべて、3つのオプションを提供します:固定の狭いページ、固定の広いページ、および拡大されたページ。
テンプレートパラメータを使用すると、サイト管理者がほとんどすべてのテンプレート要素(幅、色など)を柔軟に設定できるようになります。これらはすべて、CSSスタイルを設定するPHP条件式を使用して制御されます。
テンプレートのオーバーライド
おそらく、Joomla 1.5の最も強力な新機能は、カーネル出力を簡単にオーバーライドする機能です。 これは、コンポーネントとモジュールのビューのレイアウトに対応する新しい出力ファイル(テンプレートファイル)を使用して行われます。 Joomlaは、テンプレートフォルダーに対応するファイルが存在するかどうかを毎回確認し、存在する場合は、標準ファイルの代わりに出力に使用します。
再定義構造
すべての表示レイアウトとカーネルテンプレートは、/ tmpl /フォルダーにあります。 モジュールのマッピングは実際には1つしかないため、コンポーネントとモジュールのレイアウトはわずかに異なります。 例:
モジュール/ mod_newsflash / tmpl / モジュール/ mod_poll / tmpl / コンポーネント/ com_login / views / login / tmpl / コンポーネント/ com_content / views / section / tmpl /
すべてのコンポーネントとモジュールの基本構造は、表示>レイアウト>テンプレートです
次の表に例を示します。 モジュールにはマッピングが1つしかないことに注意してください。
ディスプレイ | レイアウト | パターン |
カテゴリー | Blog.php | blog_item.php
blog_links.php |
カテゴリー | default.php | default_items.php |
(ニュースフラッシュモジュール) | default.php
horz.php vert.php | _item.php |
通常、特定のレイアウトを担当するテンプレートファイルがいくつかあります。 これらのファイルには共通名があります。
ファイル名 | 説明 | 例 |
layoutname.php | 基本レイアウトテンプレート | blog.php |
layoutname_templatename.php | メインから呼び出される子レイアウトテンプレート | blog_item.php
blog_links.php |
_templatename.php | さまざまなレイアウトで使用される汎用レイアウトテンプレート | _item.php |
モジュールのオーバーライド
各モジュールには、テンプレートが配置されているtmplという新しいフォルダーが含まれています。 その中には、出力を担当するPHPファイルがあります。 例:
/modules/mod_newsflash/tmpl/default.php /modules/mod_newsflash/tmpl/horiz.php /modules/mod_newsflash/tmpl/vert.php /modules/mod_newsflash/tmpl/_item.php
最初の3つのファイルはNewsflashモジュールの3つのレイアウトで、モジュールが選択されたオプションに応じて使用されます。_item.phpファイルは、3つのオプションすべてで使用される一般的なレイアウトテンプレートです。 このファイル内には次のものがあります。
<?php //直接アクセスが定義されていない( '_ JEXEC')またはdie( '制限付きアクセス'); ?> <?php if($ params-> get( 'item_title')):?> <table class = "contentpaneopen <?php echo $ params-> get( 'moduleclass_sfx');?>"> <tr> <td class = "contentheading <?php echo $ params-> get( 'moduleclass_sfx');?>" width = "100%"> <?php if($ params-> get( 'link_titles')&& $ item- > linkOn!= ''):?> <a href="<?php echo $item-> linkOn;?> "class =" contentpagetitle <?php echo $ params-> get( 'moduleclass_sfx');?> "> <?php echo $ item-> title ;?> </a> <?php else:?> <?php echo $ item-> title; ?> <?php endif; ?> </ td> </ tr> </ table> <?php endif; ?> <?php if(!$ params-> get( 'intro_only')):echo $ item-> afterDisplayTitle; endif; ?> <?php echo $ item-> beforeDisplayContent; ?> <table class = "contentpaneopen <?php echo $ params-> get( 'moduleclass_sfx');?>"> <tr> <td valign = "top" colspan = "2"> <?php echo $ item-> text; ?> </ td> </ tr> </ table> <?php if(isset($ item-> linkOn)&& $ item-> readmore):echo '<a href="'.$item-> linkOn。' "> '。JText :: _(' Read more ' )。 '</a>'; endif; ?>
テーブルを削除してコードをアクセスしやすくすることで、ファイルを変更できます。
<?php //直接アクセスが定義されていない( '_ JEXEC')またはdie( '制限付きアクセス'); ?> <?php if($ params-> get( 'item_title')):?> <div class = "contentpaneopen <?php echo $ params-> get( 'moduleclass_sfx');?>"> <div class = "contentheading <?php echo $ params-> get( 'moduleclass_sfx');?>"> <?php if($ params-> get( 'link_titles')&& $ item-> linkOn!= ''):?> <a href="<?php echo $item-> linkOn;?> "class =" contentpagetitle <?php echo $ params-> get( 'moduleclass_sfx');?> "> <?php echo $ item-> title ;?> </a> <?php else:?> <?php echo $ item-> title; ?> <?php endif; ?> </ div> </ div> <?php endif; ?> <?php if(!$ params-> get( 'intro_only')):echo $ item-> afterDisplayTitle; endif; ?> <?php echo $ item-> beforeDisplayContent; ?> <div class = "contentpaneopen <?php echo $ params-> get( 'moduleclass_sfx');?>"> <?php echo $ item-> text; ?> </ div> <?php if(isset($ item-> linkOn)&& $ item-> readmore):echo '<a href="'.$item-> linkOn。' "> '。JText :: _(' Read more ' )。 '</a>'; endif; ?>
新しいファイルは、htmlサブフォルダーのテンプレートフォルダーに配置する必要があります。
テンプレート/ templatetutorial15bold / html / mod_newsflash / _item.php
Newsflashモジュールからテーブルを削除しましたが、簡単でしたね。
コンポーネントのオーバーライド
コンポーネントはほぼ同じように機能しますが、多くのコンポーネントに対応するいくつかのマッピングがあります。
com_contentフォルダーを見ると、viewsサブフォルダーが表示されます。
/コンポーネント/ com_content /ビュー/ /コンポーネント/ com_content /ビュー/アーカイブ /コンポーネント/ com_content /ビュー/記事 /コンポーネント/ com_content /ビュー/カテゴリ /コンポーネント/ com_content /ビュー/セクション
これらのフォルダは、アーカイブ、記事、カテゴリ、セクションの4つのコンテンツ表示に対応しています。 各ディスプレイ内には、複数のレイアウトを含むことができるtmplフォルダーがあります。
カテゴリフォルダを見ると、次のように表示されます。
/components/com_content/views/category/blog.php /components/com_content/views/category/blog_item.php /components/com_content/views/category/blog_links.php /components/com_content/views/category/default.php /components/com_content/views/category/default_items.php
com_contentコンポーネントの場合、default.phpレイアウトは標準バージョンを担当し、記事はリンクとして表示されることに注意してください。
blog_item.phpを開くと、現在テーブルが使用されていることがわかります。 この出力をオーバーライドする場合、必要なものをテンプレート/ htmlフォルダーに配置する必要があります。次に例を示します。
テンプレート/ templatetutorial15bold / html / com_content / category / blog_item.php
これは比較的単純なプロセスです。マッピングを/ components /および/ modules /フォルダーからtemplates / yourtemplate / htmlフォルダーにコピーして貼り付けます。
オーバーライド機能は、テンプレートを使用してJoomlaサイトをカスタマイズするための強力なメカニズムを提供します。 SEO、アクセシビリティ、または特定の顧客ニーズに焦点を合わせた出力テンプレートを作成できます。
知っておくべきこと
Joomla 1.5は、開発者がJoomla上のWebサイトのコードと表示を完全に制御できるテンプレートの新しい機能を提供します。
テーブルレスJoomla
JoomlaディストリビューションにはBeezテンプレートが含まれていますが、これはテンプレートオーバーライドの動作例です。 Design and Accessibilityチームは、htmlフォルダーに含まれるオーバーライドの完全なセットを作成しました。 最後の例は、これらのオーバーライドを使用してJoomla出力からすべてのテーブルを削除するテンプレートです。
CSSTemplateTutorialStep4
そのため、デザインに基づいて作成されたテンプレートがあります。 フォントデザインを追加しましたが、さらに重要なことは、動的に格納可能な列と便利なショートカットメニューを備えたクリーンなCSSテンプレートを作成したことです。 次に、テーブルを使用しないようにJoomlaの出力を再定義しました。 ライブラリにあるインストール可能なテンプレートを作成しました[翻訳者注:このマニュアルのすべてのテンプレートは、 www.compassdesigns.net / downloads / file / 21-csstemplatetutorials1-4.html ]からダウンロードできます。
まとめ
この一連の記事では、4つのサンプルテンプレートを使用して、徐々に複雑にし、機能を追加しました。
- 最新のWebサイトでは、Cascading Style Sheets(CSS)と呼ばれる技術を使用して、コンテンツを表示から分離しています。 Joomlaでは、コンテンツはテンプレートによって制御されます。
- テンプレートを作成するとき、変更を加えてページの表示を更新するために、サーバーにJoomlaをインストールする必要があります。
- 有効なテンプレートを作成することは方法であり、目標ではありません。 アイデアは、妥当性バッジを取得するだけではなく、人々と検索エンジンができるだけアクセスしやすいテンプレートにすることです。
- 最も基本的なテンプレートは、Joomlaモジュールとメインボディコンポーネントをロードするだけです。 CSSはJoomlaではなく、レイアウトとデザインを担当します。
- 最新のWebデザインでは、テーブルの代わりにCSSを使用して要素を配置します。 学ぶのは簡単ではありませんが、良い投資です。 これに役立つ多くのリソース(Joomla以外)があります。
- Joomlaは、特定の要素、オブジェクト、およびクラスをWebページのコードに表示します。 これは予測可能であり、CSSを使用してレイアウトを変更するために使用できます。
- バージョン1.5では、モジュールの出力を完全にカスタマイズするか、事前定義された出力を使用できます。 これらのオプションはすべて「モジュールクロム」と呼ばれます。
- メニュー出力は常にリストまたはフラット形式で使用するのが最善です。 その結果、Webで利用可能なリソースの大部分を、メニュー用の既製のCSSスタイルで使用できます。
- モジュールの列やスペースなどの要素は、コンテンツがない場合は非表示(または折りたたみ)にできます。 これは、特定のCSSスタイルに関連付けられたPHP条件式を使用して行われます。
- 実用的なJoomlaテンプレートの作成は、特に「Joomlaの知識」よりもグラフィックデザインとCSS操作の問題です。
- Joomla 1.5は、開発者がJoomla上のWebサイトのコードと表示を完全に制御できるテンプレートの新機能を提供します。