[[:Category_Document]]

&color(#FF0000){PukiWiki-1.4用ドキュメント素案};

#topicpath

*テンプレートをつかってみよう。 [#v9ee2e18]
#contents

**編集時に読み込む 雛型ページ [#kc44b721]
PukiWiki には、編集画面で「雛型とするページ」を選択して取り込む機能があります。この機能は大変便利なものですが、表示可能な全てのページがプルダウンボックスに表示されるため、ページ数が多くなると 編集開始までに時間がかかるようになってしましいます。そこで、この機能を無効にすることができます。
PukiWiki には、編集画面で「雛型とするページ」を選択して取り込む機能があります。この機能は大変便利なものですが、表示可能な全てのページがプルダウンボックスに表示されるため、ページ数が多くなると 編集開始までに時間がかかるようになってしまいます。そこで、この機能を無効にすることができます。

:$load_template_func |
編集時の雛型となるページの読み込み機能の ON /OFF &br;
0 : OFF  /  1 : ON (default)

''default.ini.php''
 /////////////////////////////////////////////////
 // 雛形とするページの読み込みを表示させる
 $load_template_func = 1;


**AUTO TEMPLATE FUNCTION (自動雛型機能) [#l6ca8a5a]
PukiWiki には、新規ページを作成する際に自動 Template機能があります。
新規ページを作る際に自動的にtemplateというページを呼び出してから編集画面になります。

デフォルトの設定は以下のようになっています。

:$auto_template|
Auto Template 機能の ON/OFF &br;
0 : OFF  /  1 : ON (default)

:$auto_template_rules |
正規表現による適用されるページとそのページに対応するテンプレート名 &br;
配列の最初から探され、マッチしたところで終了 &br;
デフォルトでは、作成されるページと同一階層のtemplateページを探すようになっています。

''pukiwiki.ini.php''
 /////////////////////////////////////////////////
 // ページ名に従って自動で、雛形とするページの読み込み
 $auto_template_func = 1;
 $auto_template_rules = array(
 '((.+)\/([^\/]+))' => '\2/template'
 );

***参考 [#o0c0fc16]
-[[pukiwiki:質問箱/181]]
-[[dev:BugTrack/299]]

 $auto_template_rules = array(
 '((.+)\/([^\/]+))'   => '\2/template', // (1)
 '((test)\/([^\/]+))' => 'template',    // (2) testの下位階層ページだけ別ルールで上書き
 '(()(.+))'           => 'template'     // (3)
 );

 (1) : $1=hoge/fuga $2=hoge $3=fuga template=[[hoge/template]]
 (2) : $1=test/fuga $2=test $3=fuga template=[[template]]
 (3) : $1=fuga      $2=''   $3=fuga template=[[template]]

** Template プラグインによる 雛型ページの読みだし [#pe92c63c]
PukiWiki-1.4標準搭載のプラグインを使用すると既存のページをテンプレートとしてページを新規作成することができます。
~コマンドですので以下のようにして使うと2つウィンドーが出てきます。
  ?plugin=template&refer=テンプレートとする(URLエンコードされた)ページ名
上のウィンドーでは、テンプレートとして使用する領域の開始行を選択し、下のウィンドーでは、最終行を選択します。そして、作りたいページの名前(デフォルトでは、テンプレートとするページの一つ下の階層の複製というページ名が入っています)を入力して&button{作成};を押せばページが作られます。


***参考 [#k695d636]
-[[pukiwiki:PukiWiki/プラグイン/1.4#ueac6d45]]

** Template 使用時に置き換えられる 文字 [#l7419b85]
自動雛型機能(Auto Template)がONの時。($auto_template_rules=1の時)
~ユーザ定義ルールによる置き換えの他に、テンプレート内に記述しておくとページ名を取得して置き換えることが可能です。
 ほげ/ふがの作成時にほげ/templateを読み込む場合
    $1→ほげ/ふが ,
    $2→ほげ
    $3→ふが
 の 文字列置換が行われます。
 
以下のユーザ定義ルールは、ページを編集終了時に置き換えられますので、テンプレート内に記述しても、保存される時には置き換えられてしまいます。

''pukiwiki.ini.php''
 /////////////////////////////////////////////////
 // ユーザ定義ルール
 //
 //  正規表現で記述してください。?(){}-*./+\$^|など
 //  は \? のようにクォートしてください。
 //  前後に必ず / を含めてください。行頭指定は ^ を頭に。
 //  行末指定は $ を後ろに。
 //
 /////////////////////////////////////////////////
 // ユーザ定義ルール(直接ソースを置換)
 $str_rules = array(
         'now\?' => format_date(UTIME),
         'date\?' => get_date($date_format),
         'time\?' => get_date($time_format),
 //      '&now;' => format_date(UTIME),
 //      '&date;' => get_date($date_format),
 //      '&time;' => get_date($time_format),
 );

上のコメントを外したり、以下の設定をしておくと便利かも。

 '&page;' => substr($page,strrpos('/'.$page,'/')),
 '&fpage;' => $page,
階層化されたページ「hogehoge/hoge」で&page;は「hoge」を、&fpage;は「hogehoge/hoge」に置換します。

テンプレートページに書いておいてうまく置換するアイデアが[[pukiwiki:質問箱/181]]に出ています。

  ユーザー定義ルールは上から順番に適用され、再帰的には適用されませんので、例えば、
  'now\?' => format_date(UTIME),
  'date\?' => get_date($date_format),
  'time\?' => get_date($time_format),
  '\x5cquestion' => '?',
 のようにユーザー定義ルール (pukiwiki.ini.php) に書いておき、
  now\question
 として「ページの更新」をすると、
  now?
 に書き換わります。但し、再度このページを編集すると、現在日時に書き換わってしまいます。

***参考 [#dd7dc05a]
-[[テンプレート内に置換文字設定>pukiwiki.dev:BugTrack/299]]
-[[official:質問箱/213]]
-[[official:質問箱/181]]

** その他 [#m45b4f77]
-[[templateプラグインで上書き確認を>pukiwiki.dev:BugTrack/443]]
-リンク元ページ: [[official:Q&A/使い方]]、[[official:Q&A/プラグイン]]、他
----

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 0.098 sec.

SourceForge