問い
新しいページのための"テンプレート編集"を、どのように確立できますか?
答え
この機能は2.0.beta26以降でのみ有効です
$EditTemplatesFmt
変数は"新規"ページのテンプレートを定義する為に使われる名前です。
例えば、
$EditTemplatesFmt
= 'Cookbook.Template';
は、全ての新規ページのテンプレートとして、Cookbook.Template ページを使うと宣言します。
$EditTemplatesFmt
は$Group, $Nameなどの参照を含められます。
$EditTemplatesFmt
= '$Group.Template';
は、現在のグループにて、新規ページのテンプレートとして使うと宣言します。
また、管理者はテンプレートの配列を定義でき、この場合、最初に見つかったテンプレートが選択されます。
# 存在するならば、現在のグループのテンプレートを使う
# そうでなければ'Main.MasterTemplate'を使う
$EditTemplatesFmt = array('$Group.Template','Main.MasterTemplate');
単一ページテンプレート
それからの全てのリンクが共通テンプレートを使うように、単一のページを変更できます。
SomeGroup.SomePageページを、全てのリンクがSomeGroup.SomeTemplateを編集テンプレートとして
使うように変更するため、localディレクトリに 以下のPHPコードを含むSomeGroup.SomePage.phpファイルを作成します。
<?
$LinkPageCreateFmt = "<a class='createlinktext'
href='\$PageUrl?action=edit&template=SomeGroup.SomeTemplate'>\$LinkText</a>
<a class='createlink' href='\$PageUrl?action=edit&template=SomeGroup.SomeTemplate'>?</a>";
?>
これはSomeGroup.SomePageの"ページの新規編集"リンクを、自動的にtemplate= parameterを含むように変更します。
テンプレートのシャッフル
新しいディレクティブを作成する為にPmWikiのマークアップ関数を利用し、ページの異なるセクションで異なるテンプレートを使うことも可能で、(:edittemplate:)は、全てのリンクがそれに続くテンプレートを設置する。
例えば、1つは映画について、もう1つはテレビ番組についての、2つのリンクグループでページを設定し、
Main.MovieTemplateとMain.TVTemplateテンプレートをそれぞれ編集したいとします。