Silverstripeには、ループ内の最初と最後の項目、およびループ内の現在の項目の位置/カウントを取得するヘルパーがあります。ループ内の最後の項目を取得する方法
私はそれが最後の項目に2番目だ時にキャプチャする方法を見つけることはできませんが...
私は、このような
など些細なもの(通常、ほとんどの言語で働くのだ )を試してみました<!-- Right now I know the total is 11, so result should be 10 -->
<!-- Total value will always vary so needs to be dynamically worked out -->
<% if $Pos == $TotalItems-1 %>
$Pos
<% end_if %>
&&
<% if $Last-1 %>
$Pos
<% end_if %>
これは動作しません。AFAIKはJavaScriptやPHPと異なり、ループ/配列内の最後の2番目の項目を取得するために-1をスラップできません。
これを達成するには何が必要ですか?
ウィッキッド!あなたがこれについて知ったところを尋ねてもいいですか?ドキュメントでそれを見たことがない。最後のビットについては、私もこれまで可能だったCSSをすべて使っていましたが、私はこれを使って単一のループ内に複数のコンテナを作成し、それらの間にデータを分散します。これは、CSSのスタイルではなく、テンプレートの実際の構造を扱っているので、CSSが理想的なものではありません。 – Freemium
@Freemiumああそうだ。私は['SSViewer_BasicIteratorSupport'](http://api.silverstripe.org/3.3/class-SSViewer_BasicIteratorSupport.html)のAPIを見てきました。より複雑なアプローチは、あなた自身の 'TemplateIteratorProvider'を追加することでした。上記の後の@bummzackのために – bummzack
も参照してください。http://stackoverflow.com/questions/14096216/pos-from-bottom-inside-loop-dataobjects – munomono