NORENの記事が少ないので、少しでも役に立てればと思い、記事を執筆しました。
環境
CMS:NOREN6
1. NORENのForタグの特徴
NORENのForタグには使い辛い特徴があります。
例えば、PHPでfor文を回すときは次の様に書くと思います。
<?php
$max = 3;
for($i=0; $i<$max; $i++){
// 処理内容
}
?>
ですが、NORENの場合はこれが出来ません。
より詳しく言うと、Forタグでの変数展開が出来ません。
なので、上記のコードをNOREN場合はこうなります。
[[--ForStart,from:0,to:3--]]
[[--- 処理内容 ---]]
[[--ForEnd--]]
まさかのループ回数が決め打ちです。
先述の通り、Forタグ内での変数展開は出来ないので、どうしてもこうなってしまいます。
そして、NORENの場合は配列変数を扱うことができない為、foreachに該当するアクションタグも活用できません。
(※厳密には違いますが…)
2. どうしてもForタグで変数を使いたい!
先程、NORENでは配列変数が扱えないため、foreachに該当するアクションタグも活用出来ないとお伝えしたのですが、力技でどうにかすることが出来ます。
まず、配列変数についておさらいですが、PHPの場合ですと下記の様になりますね。
<?php
$a = [0, 1, 2, 3];
?>
では、NORENの場合はどうなるのか?
結論から言うと配列変数は存在しましません。
ですが、Forタグのin属性を活用することで、Forタグでのみ利用できる配列変数もどきを作ることが出来ます。
[[--- 配列変数の宣言(配列の値はセミコロンで区切ります) ---]]
[[--DefineStart,name:$array--]]0;1;2;3[[--DefineEnd--]]
[[--ForStart,name:$value,in:[%$array%]--]]
[[--- 処理内容 ---]][[--Write,name:$value--]]
[[--ForEnd--]]
まず、Defineタグで変数を宣言します。
この際、セミコロンで区切ることで、配列のような変数を作ることが出来ます。
(※Forタグのin属性の区切り文字がセミコロンのため)
inタグは配列の変数展開が出来るので、この様に力技でfor文を回すことが出来ます。
これでとりあえずForループが回せるようになります。
コードは見づらくなりますが、色々と活用出来ると思います。
よろしければ、お使いください。