Edit Templates
問い
新しいページのための"テンプレート編集"を、どのように確立できますか?
答え
$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テンプレートをそれぞれ編集したいとします。