Silverstripe dispone di helper per ottenere il primo e l'ultimo elemento in un loop e la posizione/conteggio dell'elemento corrente nel loop.Come ottenere il penultimo elemento in loop
Anche se non riesco a trovare come scattare quando è la penultima voce ...
ho provato cose banali (che aveva di solito lavorano nella maggior parte delle lingue) come
<!-- 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 %>
Questo non funziona, AFAIK a differenza di JavaScript o PHP o qualsiasi altra cosa non è possibile schiacciare un -1 per ottenere il penultimo oggetto in un loop/array.
Cosa dovrei fare per ottenere questo risultato?
Wicked! Posso chiederti dove hai scoperto di questo? Non l'ho mai visto nei documenti. Per quanto riguarda l'ultimo bit - anche io CSS tutto ciò è sempre possibile ma sto usando questo per creare più contenitori all'interno di un singolo ciclo e diffondere i dati tra di loro; quindi questo non è qualcosa per cui CSS sarebbe l'ideale perché sto lavorando con la struttura attuale del modello, non con il suo stile. – Freemium
@Freemium Ah capisco. Ho esaminato l'API di ['SSViewer_BasicIteratorSupport'] (http://api.silverstripe.org/3.3/class-SSViewer_BasicIteratorSupport.html). L'approccio più complesso sarebbe stato quello di aggiungere il proprio 'TemplateIteratorProvider' – bummzack
per il successivo @bummzack citato vedi anche http://stackoverflow.com/questions/14096216/pos-from-bottom-inside-loop-dataobjects – munomono