SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

288 Plugins, 197 contribuciones sur SPIP-Zone, 209 visitantes en este momento

Portada del sitio > Documentation > El criterio doublons: su mecánica y su utilización avanzada

El criterio doublons: su mecánica y su utilización avanzada

7 de julio de 2008 – por Martin Gaitan

Todas las versiones de este artículo: [Español] [français] [italiano]

0 voto

El critério {doublons} una vez descubierto se convierte rápidamente en una herramienta indispensable para tus esqueletos. Permite una clasificación muy interesante, pero su uso no es evidente con la primera lectura de la documentación en «spip.net».

une fois découvert devient rapidement indispensable à vos squelettes. Il permet des tris très intéressants mais son emploi n’est pas immédiatement perceptible à la première lecture de la documentation de «spip.net».

El critério {doublons} una vez descubierto se convierte rápidamente en una herramienta indispensable para su esqueletos. [1]. Su función un poco curiosa, permite una clasificación muy interesante, pero no inmediatamente evidente al leer la documentación en spip.net que nos dice:

El critério {doublons} o {unique} [2] (estos dos criterios son rigurosamente idénticos) permite no mostrar resultados que ya aparecieron en otros bucles del mismo esqueleto que también utilizan este criterio.

Identicos? No del todo! Con las nuevas versiones de SPIP, doublons se ha enriquecido con características adicionales:
— ¿Puedes nombrar tu criterio doublons con lo que coexisten varias exlusiones independientes en un solo código,
— También permite piruetas spiperas con los anti-doublons!

Uso básico: no mostrar elementos que ya se encuentran en la página

Un ejemplo se nos da en el esqueleto sommaire del dist [3]

Esto lista los artículos del sitio en orden cronológico inverso, Y reserva a los dos últimos artículos publicados un trato especial. Como puede ver, los bucles «_articulos_recientes» y «_otros_articulos» se construyen de la misma manera. Por lógica, deberían devolver el mismo listado.

Gracias al trabajo del criterio «doublons» es que los 2 últimos artículos, ya cubiertos en el primer bucle, no terminan en la lista que se presenta con el bucle «_otros_articulos».

Otros uso frecuente: excluir elementos

Nuestro gran clásico: excluir en función de una palabra clave

Frecuentemente en las lista de spip los usuarios plantean este tipo de problemas:

"No puedo excluir elementos en función de su palabra clave.
Intento :

pero esto no funciona!"

Y por una buena razón!

Lo que el usuario quiere aquí es seleccionar todos los elementos que no han recibido la palabra clave «invisible». Pero el criterio {titre_mot != invisible} indica a la base de datos que debe seleccionar todos los elementos que tienen una palabra clave y diferente a «invisible».

Y eso lo cambia todo. Por ejemplo, se incluría en el resultado una sección a la que se le ha asignado la palabra clave «artilugio», tan diferente de «invisible» (ok!). Pero si si la sección no está asociada a ninguna palabra clave ¿Aparecerá en el resultado?

La solución : Utilizar un bucle vacío que selecciona de acuerdo con la palabra clave y otro bucle que devuelve los resultados a través del criterio {doublons}.

Siguiendo con nuestro ejemplo :

Este bucle seleccionara todas las secciones con la palabra clave «invisible» , pero no muestra nada.

El segundo bucle se selecciona con el criterio doublons todas las otras secciones y le aplica el tratamiento deseado.

Nombrar los doublons para usar más de uno en el mismo archivo

Objetivo: administrar en una página que muestra enlaces a artículos y comunicados de prensa. La presentación de los dos últimos artículos publicados y las dos últimos comunicados es diferente del resto.

Por ejemplo, aquí nos encontramos con el mismo patrón ya visto con bucles de la DIST. Se trata simplemente de que cohabiten sin conflictos bucles muy próximos. Nombrar los doublons evitará la interferencia entre una clasificación y otra.

En general, nombrar los doublons es una buena práctica para evitar no sólo problemas actuales sino también futuros (esqueletos que están cambiando). También es un elemento que aporta claridad a su código.

Dentro de un uso avanzado, puede tratar de usar etiquetas de SPIP. Por ejemplo : {doublons #TITRE} o bien {doublons #_mibuclesuperior:TITRE} o incluso {doublons (doublons #_mibuclesuperior:TITRE|supprimer_numero)}.

Uso avanzado: anti-doublons o cómo construir una pila de datos que deban tratarse

Mecánica del los anti-doublons

Aquí «doublosn» reunirá a los resultados de varios bucles utilizando diferentes criterios y «!doublons» para aplicar a esa pila de elementos el tratamiento deseado.

El patrón de uso es la siguiente:

Se selecciona una primera serie de artículos (que no muestra nada) ...

<BOUCLE0(ARTICLES){id_mot=2}{doublons A}></BOUCLE0>

... a continuación, una segunda serie de artículos (que tampoco muestra nada )....

<BOUCLE1(ARTICLES){id_auteur=1}{doublons A}></BOUCLE1>

... una vez hecha la pila de los elementos, se mostrarán todos juntos a través del ant-idoublons

<BOUCLE2(ARTICLES){par date}{!doublons A}>#TITRE<br></BOUCLE2>

Un ejemplo de anti-doublons

Objetivo :
hacer un bucle que recupera los artículos de todas las secciones excepto los de la sección 2 y 3, y en lo que respecta a los artículos de la sección 4, sólo los que tengan menos de 60 días.

La solución :
tenemos un primer bucle que recuperará todos los artículos excepto los de la sección 2 y 3, pero también excluyendo los de la sección 4 ...

<BOUCLE0(ARTICLES) {id_rubrique !IN 2,3,4}{doublons tri1}></BOUCLE0>

... a la que le dedicamos el segundo bucle ...

<BOUCLE1(ARTICLES) {id_rubrique=4}{age<60}{doublons tri1}></BOUCLE1>

... Y es en un bucle final que se visualiza a través del anti-doublons los artículos seleccionados.

<BOUCLE2(ARTICLES){par date}{!doublons tri1}>#TITRE<br></BOUCLE2>

Genial, ¿verdad?

P.-S.

Traducido por Martín Gaitán para la comunidad Spip en español.

Notas

[2Atención, no confundas el criterio «unique» y el filtro «unique»

[3Esto es el esqueleto de SPIP que por defecto se encuentran en la carpeta /dist. Recuerda: no debes tocar estos archivos sino guardar los tuyos en una carpeta /squelettes al mismo nivel que /dist, es decir, en la raíz del sitio.

Dernière modification de cette page le 7 de julio de 2008

Volver arriba

Comentar este artículo

¿Quién es usted?
  • [Conectarse]

Para mostrar su avatar con su mensaje, guárdelo en gravatar.com (gratuit et indolore) y no olvide indicar su dirección de correo electrónico aquí.

Añada aquí su comentario Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Añadir un documento

Volver arriba

Hablando de eso...

  • (fr) Formidable, le générateur de formulaires

    23 janvier 2012 – 2226 commentaires

    Un générateur de formulaires facilement configurable pour les non-informaticiens et facilement extensible pour les développeurs. Introduction L’objectif était de créer un plugin permettant de générer des formulaires. Historiquement, 2 plugins (...)

  • (fr) Le plugin Accès Restreint

    29 septembre 2006 – 567 commentaires

    Le plugin accès restreint permet de définir et de gérer des zones de l’espace public et privé en accès restreint. Les zones ainsi définies ne sont alors accessibles qu’aux visiteurs authentifiés et autorisés. Depuis SPIP 2, on utilisera Acces Restreint (...)

  • (fr) Formulaire upload

    25 septembre 2012 – 36 commentaires

    Ce plugin permet d’uploader des documents depuis l’espace public Objectifs Ce plugin permet d’ajouter un formulaire dans l’espace public pour uploader et gérer des fichiers. A priori, il peut se greffer sur tous types objets SPIP : articles, (...)

  • (fr) GIS 4

    11 août 2012 – 1384 commentaires

    Présentation et nouveautés La version 4 de GIS abandonne la libraire Mapstraction au profit de Leaflet. Cette librairie permet de s’affranchir des librairies propriétaires tout en gardant les mêmes fonctionnalités, elle propose même de nouvelles (...)

  • (fr) Plugin Contacts & Organisations

    4 janvier 2010 – 267 commentaires

    Ce plugin ajoute à SPIP des fonctionnalités de gestionnaire de contacts. Distingue les personnes morales (organisations) des personnes physiques (contacts) en conservant tous les attributs des auteurs SPIP. En conjonction avec le plugin (...)