Actions

Difference between revisions of "カスタマイズ/テーマ/SmartyとDwooの違い"

From Mahara Wiki

< カスタマイズ/テーマ
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
作成中です - [[User:Mits|mits]]
 
 
 
Mahara 1.2ではテンプレートエンジンとして、Smartyの代わりにDwooを使用します。両テンプレートエンジンには多くの互換性がありますが、既存のテンプレートにおいて、変更すべき点がいくつかあります。
 
Mahara 1.2ではテンプレートエンジンとして、Smartyの代わりにDwooを使用します。両テンプレートエンジンには多くの互換性がありますが、既存のテンプレートにおいて、変更すべき点がいくつかあります。
  
Line 22: Line 20:
 
===テンプレートをインクルードする場合、 "データ" を使用する===
 
===テンプレートをインクルードする場合、 "データ" を使用する===
  
SmartyおよびDwooの両者とも {include} を使用して、他のテンプレートからのテンプレートのインクルードをサポートします。同時に {include something='something'} を使用して、両者ともテンプレート間でのデータ受け渡しをサポートします。しかし、あなたがDwooにおいて、"data" という名称の変数を渡した場合、ネーミングの衝突により、既存のデータは上書きされてしまいます。そのため、代わりに {include file='something.tpl' innerdata=$foo} を使用すべきです。
+
SmartyおよびDwooの両者とも {include} を使用して、他のテンプレートのインクルードをサポートします。同時に {include something='something'} を使用して、両者ともテンプレート間でのデータ受け渡しをサポートします。しかし、あなたがDwooにおいて、"data" という名称の変数を渡した場合、ネーミングの衝突により、既存のデータは上書きされてしまいます。そのため、代わりに {include file='something.tpl' innerdata=$foo} を使用すべきです。
  
 
</div><div id="section_4">
 
</div><div id="section_4">

Latest revision as of 05:04, 20 June 2011

Mahara 1.2ではテンプレートエンジンとして、Smartyの代わりにDwooを使用します。両テンプレートエンジンには多くの互換性がありますが、既存のテンプレートにおいて、変更すべき点がいくつかあります。

Mahara 1.2以降、私たちは「Smarty互換」構文を使用する代わりに、さらにDwooネイティブ構文へ移行します。しかし、少なくとも1.3では下位互換性を保持します。

Cycle

Smartyにおいて {cycle} 引数は引用符で囲む必要はありません。Dwooでは引用符で囲む必要があります。例えば、{cycle values=r0,r1} はSmartyで動作しますが、Dwooでは {cycle values='r0,r1} に変更する必要があります。

Insert

Smartyにおいて、insertは関数呼び出しの戻り値を渡してキャッシングをスキップするために使用されます。例えば、{insert name="messages"} では、PHP関数 insert_messages をコールして、結果的に表示されるテンプレートに戻り値を渡します。 Dwooでは、これはネイティブのPHPコール {insert_messages} にて実現されます。そして、キャッシングをバイパスするため、{dynamic}{insert_messages}{/dynamic} のように {dynamic} タグで囲みます。

テンプレートをインクルードする場合、 "データ" を使用する

SmartyおよびDwooの両者とも {include} を使用して、他のテンプレートのインクルードをサポートします。同時に {include something='something'} を使用して、両者ともテンプレート間でのデータ受け渡しをサポートします。しかし、あなたがDwooにおいて、"data" という名称の変数を渡した場合、ネーミングの衝突により、既存のデータは上書きされてしまいます。そのため、代わりに {include file='something.tpl' innerdata=$foo} を使用すべきです。

Section

Mahara 1.1において、私たちはループの代わりに {section} を使用しています。これは全くDwooとは互換性がないため、代わりにループにスイッチする方が理に適ってます