単一深層インクルードとは

単一深層インクルードとは

私、RTa_technologyがC-takeC-take氏が作成された深層インクルードとはと同じように命名した造語です。
深層インクルードはご存じの通り、includeに初期値を定めることができます。その代わり、インクルード元が複数必要であるというデメリットがありました。
それを解決するのが「単一深層インクルード」となります。これには[[iftags]]と呼ばれるモジュールが使われます。まず、[[iftags]]の特性について説明しましょう。

[[iftags]]の特性

iftags: [[iftags]] Super Commentout (Hide Always) [[/iftags]] /iftags

result:

iftags: /iftags


[[iftags]][[/iftags]]で囲った部分は絶対にコメントアウトされます。
一旦、確実にコメントアウトされるということを覚えておいてください。

単一深層インクルードの仕組み

単一深層インクルードの仕組みを説明していきます。

単一深層インクルード元:

[[iftags]]
[{$hoge}/iftags]]
[{$hoge}include :pseudo-scp-jp:single-depth-include hogebase=[|fuga={$fuga}|fuga=1]]
[{$hoge}iftags]]
[{$hogebase}/iftags]]
fuga={$fuga}
[{$hogebase}iftags]]
[[/iftags]]


インクルード元:

[[include :pseudo-scp-jp:single-depth-include hoge=[|fuga=2]]




1. インクルード元前半

まず、

[[include :pseudo-scp-jp:single-depth-include hoge=[|fuga=2]]

この時点で、hoge[が代入されるために単一深層インクルード元はこういう風になっています。

[[iftags]]
[[/iftags]]
[[include :pseudo-scp-jp:single-depth-include hogebase=[|fuga={$fuga}|fuga=1]]
[[iftags]]
[{$hogebase}/iftags]]
fuga={$fuga}
[{$hogebase}iftags]]
[[/iftags]]

つまり、[[iftags]][[/iftags]]は消えるので

[[include :pseudo-scp-jp:single-depth-include hogebase=[|fuga={$fuga}|fuga=1]]

という形のインクルードを読み込んでいるのです。

2. 単一深層インクルード

次に、

[[include :pseudo-scp-jp:single-depth-include hogebase=[|fuga={$fuga}|fuga=1]]

をインクルードすることで、

[[iftags]]
[{$hoge}/iftags]]
[{$hoge}include :pseudo-scp-jp:single-depth-include hogebase=[|fuga={$fuga}|fuga=1]]
[{$hoge}iftags]]
[[/iftags]]
fuga={$fuga}
[[iftags]]
[[/iftags]]

つまり、[[iftags]][[/iftags]]は消えるので

fuga={$fuga}

をインクルードします。この時、

[[include :pseudo-scp-jp:single-depth-include hogebase=[|fuga={$fuga}|fuga=1]]

と、深層インクルードの形をとっているためにfugaには初期値=1が代入されています。

3. インクルード元後半

最後に、インクルード元のこの部分

[[include :pseudo-scp-jp:single-depth-include hoge=[|fuga=2]]

で、fugaに2を代入しているために、インクルードは

fuga=2

を示します。
本当か?と思われた方は是非,こちらをご覧ください.




まとめ

このように、[[iftags]][[include ooo:ooo]]の2つ目の[を後から代入させることによって、1ページ内で初期値代入まで行うことができます。これをよく理解してうまく使えば、様々なところで有用に使えるのではないでしょうか。

最後に

よくわからない部分などありましたらご気軽にPMをお送りください。対応させていただきます。
単一深層インクルードの原著者であるBoyu12Boyu12氏に最大限の感謝をもって終わりの言葉とさせていただきます。

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License