Top / テンプレート作成 / デザイン作成応用マニュアル / デザインテンプレートの書式・変数

デザインテンプレートの書式・変数

WIKIPLUSのデザイン・テンプレートは、Smartyといわれるテンプレートエンジンを利用しています。

Smartyでは{から}の囲んだ中に変数や関数を書くことができ、変数の表示や、様々な処理(関数の実行、ループ、if等の分岐)をすることができます。参照:Smartyの構文

最新バージョンのSmartyでは複雑な構文も利用出来ます

また、標準のSmartyの変数、タグに加え、WIKIPLUSには、独自の変数、変数が拡張されています。

WIKIPLUSの独自関数

関数も{から}で囲むことにより実行ができます。[]は省略可能なものを意味します。

{関数名[ 引数1 [引数2] ...]}

関数は引数を持つことができ、動作モードを変えることが可能です。

WIKIPLUSはSmartyで作られたデザインの中に「WIKIで書かれた本文」を差し込む枠組みを持ちます。

この骨子になるのが、下記の関数群です。

bodyコンテンツエリア本文。この部分が編集モードで編集できます。
WIKIPLUSの骨子に当たる部分で、ページに使う事ができる全てのデザインファイルで、body要素を入れなくてはなりません。
また、body要素で表示されるページは、ブラウザの「URL」で示すパーマリンクとなります。
paneコンテンツエリアです。この部分が編集モードで編集できます。
本文ではなく、ページ内にある「その他の編集要素」として、コンテンツ担当者が編集できる領域となります。
動きとしては、「別のパーマリンクのページ」を透過的にpaneで呼び出すことになります。pane命令で直接呼ばれたページは、非表示であったとしても表示する事ができます。従って、「bodyとしては表示しない(直接URLで指定しても表示しない)ページ」を、要素として付け加えるときに用意します。

その他の関数

Smartyで用意されている関数を直接利用することが可能です。

Smartyで用意された関数をそのまま利用することができます。

 {literal}~{/literal}デザインファイル内で、javascript、cssなどを記述する際は{literal}~{/literal}で囲みます。
 {* 〜 *}コメント

また、最新バージョンのSmartyでは下記のものが利用可能です

変数

$topic_pathパンくず。ページの階層を表示します。
$topic_path_valページ名がトピックパス毎の配列となり格納されています。
{$topic_path_val|@last}としてページ名の最後を取得することができます
$sitenameサイト名を表示します。
$urlサイトURLを表示します。
$copyrightサイトオーナ名を表示します。
$descriptionページ概要を表示します。
$keywordsキーワードを表示します。
$author サイト管理者名を表示します。
$companyname サイト著作者名を表示します。
$pagedate コンテンツ帰属日を表示します。
$lastmodified 最終更新日時を表示します。

修飾子プラグイン

Smartyの修飾子プラグインは、変数に対し、何らかの処理を行うことができます。[]は省略可能なものを意味します。

{$変数名|修飾子プラグイン[:引数2[:引数3]]}

第1引数は、変数名で表示する中身となります。そのため、文字列が中心であり、配列の場合もあります。

許可されている修飾子の一覧は下記の通りです。

count配列の数を数えます。php標準関数のcount
array_pop配列の末尾から要素を取り除く。php標準関数のarray_pop
array_reverse要素を逆順にした配列を返す。php標準関数のarray_reverse
sort配列を昇順にソートします。php標準関数のsort
strlen文字列の長さを得る。php標準関数のstrlen
wp_implode配列要素をセパレータで連結し、文字列として返す。第2引数に、セパレータを入れることができる。
wp_explode文字列を、第2引数(省略の場合はカンマ)により分割し、配列を返す。
first配列の最初の値を文字列として返します。存在しない場合はヌルストリングを返します。
Smartyでは配列変数を利用することができるので、必ずしも使う必要はありません。
last配列の最後の値を文字列として返す。

php標準関数は、サーバ管理者のlimit_config設定により、直接、追加することが可能です。ただし、第一引数が評価できる内容が含まれる変数である必要があり、かつ文字列、配列であること。また、返値として文字列、配列になる条件があります。

また、最新バージョンのSmartyでは下記のものが利用可能です