新規ページ作成時のテンプレートの変更

Pukiwikiの新規ページ作成時に、デフォルトで読み込まれるテンプレートページをオリジナルのものに変更しようとしたら意外と手こずったのでメモ。仮に、Pukiwikiの「新規」ボタンを押したら、templateというページが入力フォームに読み込まれるように設定したいとしよう。

templateファイルを作る

普通にページを作る手順と同じようにして、templateという名前のページを作る。中身に、デフォルトで読み込ませたい文字列を書いておく。

作成したtemplateを読み込ませるようにする

pukiwiki.ini.phpの406行目付近を変更する。

406 /////////////////////////////////////////////////
407 // Template setting
408
409 $auto_template_func = 1;
410 $auto_template_rules = array(
411         '((.+)\/([^\/]+))' => '\2/template', //行末にカンマを追加
412         '(()(.+))'         => 'template'     //これを追加
413 );      //'ページ名の正規表現'=>'マッチ時に読み込むページ名'                

これで、最初に作成したtemplateが読み込まれるようになる。

ところが

上記設定をしただけだと、新規ページ作成をおこなったときに「新規」ボタンを押したページのリンクが勝手に挿入されてしまう。私の場合、これだと都合が悪かった。

[[FrontPage]]

//templateページに書かれているの内容

参照元のリンクが勝手に挿入されるのをやめる

これをやめるには、lib/html.phpの208行目、以下の部分をコメントアウトすればよい。

208 //if (array_key_exists('refer',$vars) and $vars['refer'] != '')
209 //       $refer = '[['.strip_bracket($vars['refer'])."]]\n\n";}

これで純粋にtemplateだけが読み込まれるようになった。