DML2  v1.0.1
Sections
DML2へようこそ
はじめよう
ファイルとディレクトリ
タグのカスタマイズ
ファイル出力
オブジェクト生成
レンダリングとスコープ
オブジェクト実行
配列
配列のレンダリング
コンストラクタ
インクルード
自動タグ
dml2build
DML2について
リリースノート
<( 配列のレンダリング )>

配列は一度にオブジェクト全体をレンダーしたいときにとても役に立ちます. 配列の要素すべてをレンダーするには, 空の括弧を使って次のようにします:


arrayOfDatesのすべてのDate要素を列挙します:
<(arrayOfDates[])>


個々の要素を指定しなくてよいのは便利なのですが, 要素の間にHTML改行(<br>)を置きたい場合はどうすればよいのでしょうか. はじめか終わりに改行を加えたレンダー定義を作ってもよいのですが, 余計な改行も入ってしまいます.

うれしいことに, DML2には配列スペーサーとう機能があります. 配列要素間に任意のコードを追加するためには, 配列の参照の直後<(&spacer)>, そして追加したいコード, さらに最後に<(/&spacer)>を続けます.


HTML改行を間に挟んでarrayOfDatesのDate要素をすべて表示します:
<(arrayOfDates[])><(&spacer)><br><br><(/&spacer)>


ここで新しい問題があります: DML2オブジェクト配列にあなたのウェブサイトのニュースを書いてあるとしましょう. しかし(帯域節約のため)メインページに最新の5つだけを表示したいとしましょう. このために, 配列の範囲指定が使えます. 通常はレンダーしたい要素番号を置く括弧内に, はじめの要素番号とコンマ, そして最後の要素番号を書きます. たとえば1-5番目の要素をレンダーするには, <(arrayOfDates[0,4])>と指定します. この後のスペーサーを続けることもできます.

ところで配列の最後5つをレンダーするにはどうすればよいのでしょう. 配列の要素数が分からなければハードコードすることもできません. そのかわり, 範囲にポンド記号(#)を指定するのです. ポンド記号は配列の要素数を表します.


!Note: 配列の始めの要素が0である点に注意しましょう. よって, ポンド記号(配列の要素数を返します)は配列の外を参照することになります. つまり, たとえば5つの要素がある場合, 最後の要素は4として参照されますが, ポンド記号は5を返します.


もちろん, まだ最新5つだけをレンダリングする方法は示していません. これは範囲指定に数式(加減算)を指定すればよいのです. 結果は暗号のようですが, よく考えればすぐに分かります. 次の例を参照しましょう.


arrayOfDatesの最後の5つの要素です:
<(arrayOfDates[#-5,#-1])>

最初の5つです:
<(arrayOfDates[0,5])>



!Note: 配列の外を参照しても, DML2は気にせず何もしません. エントリが1つだけのChangeLogのようなものを, 最後の5つのエントリをレンダーするコードで処理するような場合に有用です. 最後の5つを処理するよう指示した場合, 要素が5つ以下であれば配列全体がレンダーされます.

http://derajdezine.vze.com/
©2002 Jared Krinke. ((( Revolution )))