Curso rápido de plantillas v1

Las listas: el foreach

1. {foreach from=$imagenes item=imagen} y dentro de ese foreach puedes usar el objeto $imagen. Esto es lo que usaba en el código de ejemplo.


Las listas: Acceder directamente a la posición

2. Acceder directamente y en este caso se llamaría $imagenes[0] Creo que esto es lo que intentas hacer.

En todo caso siempre tienes que partir de los objetos que están definidos cuando muestras algun dato.
Si usas $imagenes[0] (osea referenciar directamente al primer objeto de la lista) corres el riesgo de que la lista no contenga elementos y por lo tanto el primer objeto de la lista no exista.




Publicar un campo fecha (noticia, servimedia y europa press)

{\$article->date}

Fecha en PHP: echo strftime("Publicado el \%A \%e de \%B de \%Y a las \%H:\%M horas.", \$article->date);
Más información en la ayuda de Smarty (http://www.smarty.net/docsv2/es/language.modifier.date.format.tpl) y PHP (http://es.php.net/strftime).




Haciendo cosas complicadas con las listas

¿Cómo sería para mostrar una lista, de la 2 a la 5 en orden ascendente por ejemplo?

{foreach from=array_slice($imagenes,1,3) item=imagen}

Significa empezar en el 1 (que es el segundo elemento ya que se empieza a contar en cero)
y mostrar 3 elementos (por lo que mostraria hasta el 5)


¿O de la 14 a 23 en orden descendente?

{foreach from=array_slice($imagenes,13,9) item=imagen}


Tenias muy dificil adivinarlo porque esta función no la habías utilizado nunca. Aunque la verdad te viene muy bien para algunos diseños que llevaban listas enormes de elementos.

Esto incluye la ordenación definida por la aplicación. Se podreía invertir el orden así:
{foreach from=array_reverse(array_slice($imagenes,13,9)) item=imagen}



{foreach from=$imagenes|@array_slice:1:6 item=imagen}
<a href="/imagenes/view/{$imagen->id}" title="{$imagen->descripcion} - Haz clic para ver la foto en grande">
<img border="0" src="/imagen/w80/{$imagen->fichero_name}" align="middle" alt="{$imagen->descripcion} - Haz clic para ver la foto en grande" style="border-left: 1px solid #FFFFFF; border-bottom: 1px solid #FFFFFF;" /></a>
{/foreach}




http://www.smarty.net/forums/viewtopic.php?p=44388