plugins:includeex

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

plugins:includeex [2011/03/23 21:28] (現在)
ライン 1: ライン 1:
 +====== NP_IncludeEX.php ======
 +
 +スキンへ読み込みたいファイル名を、用意された変数を使って指定できます。
 +インクルード方法も選べます。
 +
 +^General Plugin info ^^
 +^作者: | [[plugins:​authors:​yu|yu]] |
 +^最新のバージョン:​ | 0.32 |
 +^入手先: | http://​japan.nucleuscms.org/​bb/​viewtopic.php?​t=138 http://​works.datoka.jp/?​itemid=199 ​ |
 +^ソース: | [[plugins:​includeex:​includeex_code]] |
 +^動作サンプル:​ |  |
 +^フォーラム参照先:​ | http://​japan.nucleuscms.org/​bb/​viewtopic.php?​t=138 |
 +^セキュリティチェック:​ |  |
 +
 +
 +=====インストール方法=====
 +  - Zipファイルを展開して、中身をサーバーのプラグインディレクトリにアップロードする
 +  - 管理画面からプラグインをインストールする
 +
 +=====このプラグインの使い方=====
 +スキンにプラグイン変数を記述します。
 +
 +=====スキン/​テンプレートへの記述=====
 +第1パラメーターにパースタイプ、第2にファイル名、第3に特殊フラグをとります。第1、第2は省略できません。
 +<​code>​
 +<​%IncludeEX(none,​banner{blogid}_{catid}.txt)%> ​
 +<​%IncludeEX(parsed,​{shortname}_{skintype}.inc)%> ​
 +<​%IncludeEX(php,​info.php?​y={y}&​m={m})%> ​
 +<​%IncludeEX(parsed+php,​{blogid}_{archivetype}.php)%> ​
 +<​%IncludeEX(parsed,​function.txt,​PARSE_TWICE)%>​
 +</​code>​
 +
 +これらが次のような感じに変換されます。
 +<​code>​
 +banner1_8.txt ​
 +blogname_archivelist.inc //'​parsed'​によって、ファイル中のスキン変数が解釈されます
 +info.php?​y=2004&​m=01 //'​php'​によって、ファイル中のPHPコードが解釈されます
 +1_month.php //'​parsed+php'​によって、スキン変数、PHPコードの順で解釈されます
 +function.txt //'​PARSE_TWICE'​によって、このファイル内のスキン変数は入れ子で記述OK
 +</​code>​
 +
 +=====パラメータの解説=====
 +スキンパラメータを詳しく説明します。
 +
 +====第1パラメータ:パースタイプ====
 +none, php, parsed, parsed+php, php+parsed の5種あります。
 +  * none:ファイルをそのままインクルードします。 ​
 +  * php:ファイルをPHPで処理します。phpinclude()相当。 ​
 +  * parsed:ファイル内のスキン変数を展開します。parsedinclude()相当。 ​
 +  * parsed+php:インクルードするファイルに対して、スキン変数の展開、PHPの順に処理します。処理は重めなので、多用しないほうがいいかも。 ​
 +  * php+parsed:インクルードするファイルに対して、PHP、スキン変数の展開の順に処理します。parsed+phpにくらべれば処理は軽いはず。
 +
 +====第2パラメータ:ファイル名====
 +ここで使う変数は大括弧{}でくくります。次の変数が使えます。
 +カテゴリーを絞ってない場面で{catid}変数を使うなど場面に合わない参照をすると、"​0"​が代入されるか、何も値が入りませんので注意。
 +  * blog:{blogid} {shortname} ​
 +  * カテゴリー:{catid} {catname} ​
 +  * アイテム:{itemid} ​
 +  * メンバー:{memberid} ​
 +  * スキン:{skinid} {skinname} {skintype} ​
 +  * 日付:{date} {y} {m} {d} 
 +  * アーカイブ:{archivetype} {archivedate} {archive_y} {archive_m} {archive_d} ​
 +  * システムのバージョン:{version} ​
 +  * システムのバージョンNo.:{version_num} ​
 +  * ランダム(0~9):{random_num} ​
 +  * ランダム(数値パラメータ指定):{random_num:​0-99},​ etc... ​
 +  * ランダム(a~z):{random_alpha} ​
 +  * ランダム(文字パラメータ指定):{random_alpha:​a-e},​ etc... ​
 +
 +一部の値の変換例:
 +
 + date : "​2006-01-01" ​
 + archivetype : "​month"​ or "​day"​
 + archivedate : "​2006-01"​ or "​2006-01-01"​
 + version : "​v3.24",​ etc... ​
 + version_num : "​324",​ etc... ​
 +
 +====第3パラメータ:特殊フラグ====
 +パースタイプに"​parsed"​が含まれている場合にネスト(入れ子)したスキン変数に対応します。
 +スキンに直接ネスト記述ができるのではなく、あくまで__読み込むファイル内の記述に対応している__ことに注意してください。
 +  * PARSE_TWICE:ネストレベルは1段階のみ
 +
 +=====オプション=====
 +  * Debug Mode: インクルードされる実際のファイル名のみを表示します。変数が意図したとおりに代入されているかを確認できます。
 +  * Include mode in second parsing: parsed+phpの2段階目の処理についてオプションを選べます。
 +
 + file: 処理を一時ファイルで行う(ファイル生成・削除のぶん遅い?)。従来どおりファイル内にPHPとHTMLを混用できる。
 + memory: 処理をeval関数で行う。通常のphpincludeと違い<?​php ?>​タグをつけてはいけない。ファイルにはPHPコードのみ記述。
 +
 +
 +
 +=====Tipsと裏技=====
 +  * ファイル名にクエリー文字列(?​key=value)を渡せるパースタイプは"​php",​ "​php+parsed"​のみです。
 +  * "​parsed+php"​は、処理が重いので多用しないほうが無難です。
 +  * クエリ文字列つきのファイル名はリモートファイルとして読み込まなければ機能しないため、PHPの設定で allow_url_fopen がオンになっていること、また、Nucleus設定でスキンURLやスキンのインクルードモードが設定されていることが前提条件になります。 ​
 +  * コア改造による変数内に変数を記述可能にする方法は[[http://​kandk.cafe.coocan.jp/​nucleus/​index.php?​itemid=316]]
 +
 +
 +=====希望事項=====
 +
 +=====バグ=====
 +
 +=====開発履歴=====
 +  * 2006-09-30 Version 0.32 (セキュリティフィックス)
 +  * 2004-02-26 Version 0.3  ("​php+parsed"​、"​PARSE_TWICE"​等の追加、デバッグモード追加)
 +  * 2004-01-21 Version 0.2  ("​parsed+php"​追加)
  
 
plugins/includeex.txt · 最終更新: 2011/03/23 21:28 (外部編集)