自作プラグイン/inctmp

2023-09-25 (月) 20:35:00

カテゴリ:プラグイン 自作 追加

inctmp.jpg

取得したテンプレートの一部を置き換えて表示するプラグイン

inctmp.inc.php
製作者kanateko
ライセンスGPLv3
バージョン1.0.1
動作確認PukiWiki 1.5.4 - 1.5.4
最終更新2023-09-25

infoboxプラグインを汎用化したもの。指定したテンプレートページ内の任意のキーワードを置き換えた上で現在のページに表示することができる。プラグイン名はinclude templateの略。

元々PukiWiki公式サイトにて似たようなプラグインが公開されていたようだが、既に配布ページが消失していたため、infoboxプラグイン同様自作することにした。

includeやincludexなどとの主な違いは以下の通り。

  • 指定したキーワードを任意の文字に変更可能。
  • 1ページ内で同一のテンプレートを複数回用いることができる。
    • ループ対策済

上記の違いにより、より柔軟なページ編集が可能になっている。

  • 指定したページの内容を取得して表示する。
    • ページ内で指定されたキーワードを任意の内容に変更して表示できる。
    • テンプレートの==noinclude==~==/noinclude==間は表示先のページに反映されない。
  • オプションで追加のクラス指定が可能。

ダウンロード

最新: GitHub

日付バージョン備考
2023-09-251.0.1
  • 出力時の余分な改行を削除
2023-07-191.0.0
  • 初版作成

セットアップ

  1. GitHubからダウンロードした「inctmp.inc.php」をPukiWikiのpluginディレクトリに放り込む。

プラグイン設定

定数 (PLUGIN_INCTMP_~)初期値説明
PAGEstring':config/plugin/inctmp'テンプレートページのルート
SAFEMODEboolfalseテンプレートの編集制限チェックの有無
KEY_FORMATstring'{{{%s}}}'テンプレート上のキーのフォーマット。%s部分が任意のキーになる

使用方法

#inctmp(< テンプレート名 > [, オプション]){{
< キー > = < 値 >
< キー > = < 値 >
︙ 
}}

オプション

テンプレート名
必ず第一引数で指定する。
設定のルートページ以下が対象になるため、例えばhogeを指定したら、実際のページは:config/plugin/inctmp/hogeになる。
class = < クラス名 >
表示したテンプレートを囲うdiv要素にクラスを追加する。
複数クラスを追加する場合は半角スペースをはさむ。
<キー> = < 値 >
テンプレート上の指定したキーを全て指定した値に置き換える。
最終的な表示で未指定のキーが残っている場合、そのキーを含む行がテンプレートから削除された状態で表示される。

使用例

テンプレート::config/plugin/inctmp/example

テンプレートのページと見比べると、どのように動作しているかがわかりやすいと思います。

このように同じテンプレートを使用して別の表示も可能です。
ループ対策済み。

#inctmp(example){{
title = 使用例
color = red
text = テンプレートのページと見比べると、どのように動作しているかがわかりやすいと思います。
}}
#inctmp(example,class=align-center){{
title = 使用例2
color = blue
text = このように同じテンプレートを使用して別の表示も可能です。&br;ループ対策済み。
}}

備考

  • 動作にはPHP8以上が必要になる。

コメント

コメントはありません。 コメント/自作プラグイン/inctmp