Marcas loop y nifloop
La marca loop te permite definir áreas en plantillas de portada y taxonómicas, de tags, listados y tags jerárquicos. Prontus procesa cada bloque loop que encuentra iterando sobre los artículos que ese loop tenga asignados -ya sea manualmente en portadas o automáticamente en portadas taxonómicas- y mostrando los datos que correspondan de cada artículo. La marca nifloop te permite especificar código a mostrar si un loop está vacío.
Última modificación: Martes 28 de septiembre de 2021
- Nombre de la marca
- loop, nifloop
- Sintaxis básica
-
%%loop1(area 1)%% ... %%/loop%% , %%nifloop1%% ... %%/nifloop%%
- Usable en:
Portadas
Portadas taxonómicas, tags, listados, tags jerárquicos
- Marcas relativas:
- _loopcounter _totartics
La marca loop te permite definir áreas en plantillas de portada y taxonómicas, de tags, listados y tags jerárquicos. Prontus procesa cada bloque loop que encuentra iterando sobre los artículos que ese loop tenga asignados -ya sea manualmente en portadas o automáticamente en portadas taxonómicas- y mostrando los datos que correspondan de cada artículo.
El inicio del área se define %%loop(nº)(descripcion)%%
, donde nº corresponde al número de área (1, 2, etc.) y para finalizar el área %%/loop%%
.
La descripción del loop es opcional. Sirve para mostrar en el administrador de portadas de Prontus el significado de cada área.
Ejemplo de loop en Portadas:
%%loop70( descripción )%%
%%if(_txt_titular)%%
<li>%%_titular%%</li>
%%/if%%
%%/loop%%
Las portadas permiten especificar un límite máximo de artículos a procesar y mostrar, y también delimitar por tipos de artículos, con el formato siguiente
%%loop[n](título[,fids separados por |][,límite])%%
Estos últimos parámetros son opcionales, por ejemplo uno puede definir un loop especificando FIDs, o especificando un límite, o ambas cosas. En este último caso, el orden es "FIDs, límite
".
Como mencionamos, puedes especificar que un área puede contener múltiples FIDs separándolos con un símbolo |
("pipe").
Estos son ejemplos de posibles loops:
%%loop1%% # loop básico, sin descripción.
%%loop1(destacados)%% # descripción
%%loop1(destacados,3)%% # descripción, límite.
%%loop1(destacados,fid_general,3)%% # descripción, un fid especificado, límite.
%%loop1("destacados, importantes",3)%% # descripción, límite. Una descripción con múltiples palabras que no incluya comas no necesita estar rodeada por comillas.
%%loop1(destacados importantes,fid_general|fid_link,3)%% # descripción, múltiples FIDs separados por |, límite.
%%loop1("destacados, importantes",fid_general)%% # descripción, FID.
%%loop1("destacados, importantes",fid_general|fid_link)%% # descripción, múltiples FIDs separados por |.
%%loop1("destacados, importantes",fid_general|fid_link,3)%% # descripción, múltiples FIDs separados por |, límite.
En el caso de las Portadas Taxonómicas y Tags es opcional el número despues de la marca.
%%loop%%
<div class="epigrafe">
%%_secc_tema_stema_nom%%
</div>
<div class="titular">
<a href="%%_file%%"><p>%%_titular%%</p></a>
</div>
%%if(_fechap)%%
<div class="fecha">%%_fechapshrt%%</div>
%%/if%%
<div class="bajada">
<p>%%_bajada%%</p>
</div>
%%/loop%%
De todos modos, puedes usar múltiples loop en portadas taxonómicas o de tags, distinguiéndolos con números:
%%loop1%% ... %%/loop%% %%loop2%% ... %%/loop%%
La marca _loopcounter
es un contador de loop dentro de un área. Sirve para consultar en qué iteración del loop te encuentras.
Por ejemplo, si han publicado 5 artículos en el Area 1 de una portada y necesitas mostrar el primero publicado con una clase CSS distinta, podrías hacer lo siguiente:
%%loop1(área 1)%%
%%if(_loopcounter = 1)%%
<div class="clase1">
%%_txt_titular%%
</div>
%%/if%%
%%if(_loopcounter > 1)%%
<div class="clase2">
%%_txt_titular%%
</div>
%%/if%%
%%/loop%%
También es posible imprimir el dato en pantalla en caso de necesitarlo para algo, por ejemplo si necesitamos aplicar un id distinto a cada div, se podría hacer algo como esto:
%%loop1(área 1)%%
<div id="titular%%_loopcounter%%">
%%_txt_titular%%
</div>
%%/loop%%
La marca _totartics almacena el total de artículos publicados en un area. Sirve para saber la cantidad de artículos que se han publicado en un area específica. Esta marca puede usarse en portadas, taxports y portadas de tags.
Por ejemplo, si en el Area 1 de una portada se necesita mostrar una lista de artículos siempre y cuando el número de artículos publicados en dicha area sea mayor o igual 5, se podría hacer lo siguiente:
%%loop1(área 1)%%
%%if(_totartics >= 5)%%
<div>
%%_txt_titular%%
</div>
%%/if%%
%%/loop%%
Es posible comparar las marcas _loopcounter y _totartics para saber si estamos en el último ítem de la lista, por ejemplo:
%%loop1(área 1)%%
%%nif(_loopcounter eq _totartics)%%
<div>
%%_txt_titular%%
</div>
%%/nif%%
%%if(_loopcounter eq _totartics)%%
<div class="ultimo">
Para terminar, %%_txt_titular%%
</div>
%%/if%%
%%/loop%%
Por el modo en que Prontus procesa los loops, no puedes hacer la comparación %%if(_loopcounter == 0)%%
para cubrir el caso en que no hayan artículos cargados. Para eso puedes usar la marca nifloop:
%%nifloop[identificador]%%
<h2>Solo verás este código si no hay artículos en el loop</h2>
%%/nifloop%%
Conceptos Básicos
¿Qué es Prontus?
Estructura de directorios
Glosario
Navegadores soportados
Tutoriales
Instalación de Prontus CMS
Implementar un nuevo sitio en Prontus
Cómo crear un FID
Cómo crear una plantilla de artículo
Cómo crear una plantilla de portada
Cómo crear plantillas de formulario
Cómo implementar un formulario
Cómo implementar un buscador
Cómo implementar un buscador Elasticsearch
Cómo crear una plantilla de taxonomía
Cómo crear plantillas de tags
Cómo crear una plantilla de listado
Cómo crear una plantilla de tags jerárquicos
Implementar carga de videos en Prontus
Integración de Redes Sociales
Instalación y Configuración
Requerimientos
Configuración del servidor
Base de datos
Asegurar la plataforma
Instalación con Wizard Prontus
Ajustes post-instalación
Archivos de configuración de Prontus
Friendly URLs
Friendly URLs para imágenes
SSI en Prontus
Logs de Eventos
Ejecutar procesos periódicamente con cron
Debugging
Plantillas
Plantillas de FID
Plantillas de artículo
Plantillas de portada
Plantillas de taxonomía
Plantillas de artículos relacionados
Plantillas de tags
Plantillas de listado
Plantillas de tags jerárquicos
Plantillas de mapa de taxonomía
Plantillas de mapa de tags
Marcas
Tipos de marcas
Diccionario de marcas
Marcas para texto
Marcas de lógica
Marcas de despliegue
Marca Menú y Panel
Parsing de marcas en formularios Prontus
Funcionalidades
Funcionalidades SEO en Prontus CMS
Multivistas
Galería de Imágenes
Buscador Multivista
Buscador
Buscador Elasticsearch
Calendarios
Imprimir artículos
Posting de contenidos
Plugins
Post-procesos
Prontus functions
Implementar copias de seguridad automáticas con Dropbox
Implementar múltiples ediciones
Regeneración masiva de artículos via línea de comandos