Actions

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

From Mahara Wiki

< カスタマイズ/テーマ
Line 16: Line 16:
  
 
Smartyにおいて、insertは関数呼び出しの戻り値を渡して、キャッシングをスキップするために使用されます。例えば、{insert name="messages"} では、PHP関数 insert_messages をコールして、結果的に表示されるテンプレートに戻り値を渡します。
 
Smartyにおいて、insertは関数呼び出しの戻り値を渡して、キャッシングをスキップするために使用されます。例えば、{insert name="messages"} では、PHP関数 insert_messages をコールして、結果的に表示されるテンプレートに戻り値を渡します。
In Dwoo, this should be done using a native php call {insert_messages} and to bypass caching, be wrapped inside {dynamic} tags, like {dynamic}{insert_messages}{/dynamic}
+
Dwooでは、これはネイティブのPHPコール {insert_messages} にて実現されます。そして、キャッシングをバイパスするため、{dynamic}{insert_messages}{/dynamic} のように {dynamic}タグで囲みます。
  
 
</div><div id="section_3">
 
</div><div id="section_3">

Revision as of 06:52, 15 June 2011

作成中です - mits

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

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}タグで囲みます。

Use of "data" when including templates

Both Smarty and Dwoo support including templates from within other templates, using {include}, and both support passing data between templates, using {include something='something'}. However, if you pass a variable called "data" in Dwoo, it will overwrite the existing data, because of naming collision. Therefore {include file='something.tpl' innerdata=$foo} must be used instead.

Section

In some places in Mahara 1.1, we were using {section} instead of Loops. This is really not properly compatible with Dwoo, it makes much more sense to just switch to a loop instead.