SPIP-Contrib

SPIP-Contrib

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

286 Plugins, 197 contribs sur SPIP-Zone, 243 visiteurs en ce moment

Home > Documentazione > Il criterio doublons : la sua meccanica ed il suo utilizzo avanzato

Il criterio doublons : la sua meccanica ed il suo utilizzo avanzato

30 marzo 2008 – di mmmx

Tutte le versioni di questo articolo: [Español] [français] [italiano]

Il criterio {doublons} una volta scoperto diventa rapidamente indispensabile ai vostri modelli. Permette selezioni molto interessanti ma la sua utilità nonè immediatamente comprensibile a una prima lettura della documentazione di «spip.net».

Il criterio {doublons} una volta scoperto diventa rapidamente indispensabile ai vostri modelli [1]. Con un po’ di curiosità è possibile realizzare effetti e selezioni molto interessanti, ma che non sono evidenti dalla lettura della documentazione di base su Spip.net, da cui leggiamo:

Il criterio {doublons} o {unique} [2] : permette di inibire la visualizzazione dei risultati già pubblicati in altre circuiti che utilizzano questo criterio. Questi due criteri sono rigorosamente identici.

Identici ? Non completamente ! Nel corso delle versioni di SPIP, doublons s’est arricchito di ulteriori possibilità :
-  si possono assegnare nomi ai criteri doublons, e farne così coesistere molti in uno stesso codice,
-  doublons permette la realizzazine di piroette tecniche attraverso l’utilizza dell’anti-doublons: !doublons

Utilizzo di base : escludere elementi già trattati nella pagina

Un esempio ci è dato nel modello sommaire della dist [3]

Si tratta di elencare gli articoli del sito per ordine cronologico invertito E di riservare un trattamento particolare agli ultimi due articoli pubblicati. Come vedete, i circuiti «_ articles_recents» e «_ autres_articles» sono costruite nello stesso modo. Dunque, secondo logica, devono restituire lo stesso elenco d’articles.

E’ grazie al lavoro del criterio «doublons» che i 2 articoli più recenti, già trattati nel primo circuito, non si troveranno nell’elenco pubblicato col circuito «_ autres_articles».

Altro utilizzo corrente : escludere alcuni elementi

Un grande classico : escludere alcuni element che presentano una parola chiave.

Regolarmente sulla web-list spip-users si pone questo tipo di problema:

«Non riesco ad escludere elementi in funzione della loro parola chiave: ho provato»

ma non funziona"

E’ a causa del punto esclamativo !

L’utente qui desidera scegliere tutte le rubriche che non hanno la parola chiave «invisible». Ma, il messaggio mandato al database con {titre_mot != invisible}, è che deve scegliere tutte le rubriche che HANNO una parola chiave E che la suddetta parola chiave sia diversa da «invisible».

Questo cambia tutto. Infatti nel risultato apparirà ad esempio una rubrica alla quale è stata assegnata la parola chiave «bidule», che effettivamente risulta diversa da «invisible» (ok !), anche se la rubrica è legata anche alla parola chiave «invisible» (arg!) e, non appariranno rubriche a cui non è stata assegnata nessuna parola chiave ( l’opposto del risultato sperato !). [4]

La soluzione : inserire un circuito vuoto che sceglie secondo la parola chiave e un’altro circuito che cerca i risultati utilizzando il criterio
{doublons}.

Riprendendo il nostro esempio otteniamo:

Questo circuito sceglie tutte le rubriche che hanno la parola chiave «invisible» , ma non stampa nulla.

Questo secondo circuito sceglierà tutte le altre rubriche, grazie al criterio doublons ed applicherà loro il trattamento scelto.

Dare un nome ai doublons per utilizzarne molti nello stesso file

Obiettivo: gestire su una pagina d’accoglienza la pubblicazione di link ad articoli, e stringhe degli annunci(le brevi). La presentazione degli ultimi due articoli pubblicati e degli ultimi due annunci è diversa dagli altri.

Per esempio, ritroviamo lo stesso schema già visto con i circuiti della DIST. Si tratta semplicemente di fare coabitare senza conflitto alcuni circuiti molto simili. Dare un nome ai doublons eviterà che le selezioni dell’uno interferiscano con l’altro.

Generalmente, dare un nome ai doublons è una buona pratica per evitare ogni conflitto presente e futuro (i modelli evolvono). Inoltre il codice diventa più leggibile.

Nel quadro d’un utilizzo avanzato, potete provare l’utilizzo di segnaposti SPIP. Ad esempio :
{doublons #TITRE}
o anche
{doublons #_mabouboucle:TITRE}
o ancora
{doublons (#_mabouboucle:TITRE|supprimer_numero)}.

Utilizzo avanzato : anti-doublons o come costruire una pila di dati da trattare

Meccanica di anti-doublons

Nel seguito vari «doublons» permetteranno di raccogliere i risultati di piu circuiti che utilizzano differenti criteri; «!doublons» permette poi di applicare alla lista completa il trattamento richiesto.

Lo schema d’utilizzazione è il seguente:

Si sceglie una prima serie di articoli (senza stampare nulla)...

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

... quindi una seconda serie di articoli (senza stampare nulla)...

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

... si pubblica la lista completa secondo le proprie necessità utilizzando l’anti-doublons.

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

Un esempio d’anti-doublons

Obiettivo : fare un circuito che recupera gli articoli di tutte le rubriche a eccezione delle rubriche 2 e 3, E riguardo agli articoli della rubrica 4, soltanto quelli di meno di 60 giorni.

La soluzione : ci occorre un primo circuito che andrà a cercare tutti gli articoli escludendo quelli delle rubriche 2, 3 e 4...

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

... poi dobbiamo recuperare gli articoli di questa rubrica con un secondo circuito...

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

... e infine un’ultimo circuito pubblica con l’anti-doublons gli articoli scelti con criteri a piacere.

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

Note

[2Attenzione: non confondere il criterio «unique» col filtro «unique» di cui si possono trovare applicazioni qua e .

[3si tratta del modello di default di SPIP che si trova nella cartella /DIST. Richiamo : non dovete modificare questi file, ma sistemare i file dei vostri modelli nella cartella /squelettes da creare allo stesso livello di /DIST, cioè alla radice del sito.

[4questo punto è tratto da questa discussione (GrazieCédric)

Dernière modification de cette page le 4 aprile 2008

Retour en haut de la page

Rispondere all’articolo

Chi sei?

Per mostrare qui il tuo avatar, registralo prima su gravatar.com (gratis e indolore). Non dimenticare di fornire il tuo indirizzo email.

Inserisci qui il tuo commento Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Aggiungi un documento

Retour en haut de la page

Ça discute par ici

  • (fr) Photoswipe

    18 septembre 2016 – 17 commentaires

    Une lightbox javascript responsive. PhotoSwipe est une boîte multimédia — comme la Mediabox installée en série avec SPIP — qui permet de zoomer à la taille réelle des images et qui gère intelligemment les légendes. Le plugin est basé sur la librairie (...)

  • (fr) Spip2Spip

    21 février 2008 – 157 commentaires

    Spip2spip permet de synchroniser le contenu de plusieurs sites SPIP entre eux en étendant le principe de la syndication thématique. Les articles d’un SPIP sont récopiés d’un site à l’autre en conservant leur formatage (...)

  • (fr) Tutoriel : créer une carte interactive avec GIS4

    19 octobre 2013 – 27 commentaires

    Utilisation de quelques fonctions javascript pour créer des interactions avec une carte GIS. L’objet de ce tutoriel est de produire une carte interactive. Effacer tous les points d’une carte La fonction javascript removeAllMarkers() (...)

  • (fr) Lecteur pdf javascript pdf.js

    20 février 2012 – 146 commentaires

    Ce plugin est basé sur le projet pdf.js qui permet une lecture en ligne des pdfs depuis le navigateur. Ce plugin est expérimental et les contributions sur la zone sont les bienvenues. Avantages Open source Ne requiert pas flash et (...)

  • (fr) Plugin Bank

    12 juin 2015 – 57 commentaires

    Le plugin Bank prend en charge l’interface technique de paiement avec de nombreux prestataires de paiement par Carte Bleue, SEPA… Il prend également en charge la conservation de l’historique des transactions de paiement et de leur état et offre une (...)