Con la versione [SPIP 1.9], il sistema di syndication (vedi l’articolo Les fichiers backend) diventa più completo: ora è possibile scambiare l’indirizzo dei documenti allegati agli articoli (podcasting), di trasportare da un sito all’altro le parole chiave (tag) associati agli articoli come pure la loro rubrica (o categoria). Inoltre, è possibile, se lo si desidera, mettere in syndication il contenuto integrale degli articoli.
Nel testo che segue si considera che il flusso della syndication offerto dal sito d’origine è sufficientemente ricco da aver previsto tutte le possibilità offerte dal modello dist/backend.html di SPIP.
Inserimento rapido del sito in repertorio
Innanzitutto si preleva dal sito d’origine l’URL del suo flusso di syndication nel formato RSS (o ATOM). In base ai casi questo indirizzo è indicato direttamente sulla pagina e/o è «mostrato» automaticamente dal browser che mostra una icona caratteristica. Se i modelli del sito d’origine lo prevedono, SPIP 1.9 può anche scoprire questo indirizzo di syndication, e basta indicare l’indirizzo del sito per vedere proposta la syndication dello stesso.
Dopo aver attivato la syndication, gli articoli presenti nel flusso di syndication del sito d’origine vengono ripresi dal sito ricevente.
Decidere cosa si vuole diffondere
Il webmaster del sito d’origine può decidere cosa mettere nel flusso RSS: tale scelta può essere fatta modificando il modello dist/backend.html, oppure creando un nuovo flusso ispirandosi ad esso.
Ma la pagina di configurazione nell’area riservata propone un’opzione molto importante per la syndication: essa permette di decidere se il flusso RSS del sito comporterà il contenuto integrale degli articoli, in formato HTML, oppure solamente un breve riassunto (in formato testo). Nel primo caso (che è la configurazione predefinita del sistema), gli articoli recenti del sito sono completamente leggibili con un lettore RSS: essi possono essere «ricopiabili» interamente da un sito a un altro. Ciò permette per esempio di realizzare automaticamente dei siti mirror o dei siti composti da contenuti prelevati da altri siti.
Decidere cosa si vuole prelevare
Se il sito di origine non diffonde il suo contenuto integrale è evidente che la syndication non potrà prelevare più dati. Ma nel caso di una diffusione integrale SPIP può prelevare questo contenuto HTML e mostrarlo completo di immagini.
Sito dopo sito, è possibile scegliere quel che si vuole prelevare con la syndication: il contenuto HTML degli articoli (se è disponibile) o un semplice riassunto in formato testo.
Si può anche decidere come gestire quegli articoli che spariscono dal flusso (che generalmente sono limitati ai 15 articoli più recenti del sito): si può decidere che SPIP li elimini dal database (dopo un periodo di due mesi), e/o li converta immediatamente come articoli «rifiutati». Queste ultime opzioni permettono per esempio di gestire un portale con flussi molto rapidi (agenzia di stampa, tag molto popolari di siti di fotografia, ecc.); o anche di mantenere un mirror fedele di un sito (eliminando gli articoli che vengono tolti dalla pubblicazione).
Decidere cosa si vuole mostrare
- la fonte:
Di solito, #NOM_SITE
rappresenta il nome del sito in syndication che è quindi la «fonte» dell’articolo. Tuttavia, con lo sviluppo degli aggregatori di contenuto (i portali ne sono un esempio) la vera e propria fonte di un articolo può essere un altro sito. Il formato RSS ha previsto tale caso definendo un campo <source>
che indica la fonte primaria dell’articolo. Il motore di syndication di SPIP recupera questi dati quando sono presentati, e i segnaposti #SOURCE
e #URL_SOURCE
permettono di visualizzare rispettivamente il nome e l’indirizzo della fonte.
- i tag:
Se le parole chiave attribuite agli articoli sono correttamente inviate nel flusso RSS, queste vengono recuperate dal sito ricevente; esse non arrivano singolarmente nella tabella delle parole chiave ma vengono immagazzinate alla rinfusa nel campo tags
della tabella spip_syndic_articles
.
Se il flusso di syndication utilizza la codifica standard <dc:subject>Tag</dc:subject>
, il tag è annotato così com’è. SPIP spinge questa codifica un po’ oltre trasmettendo anche l’indirizzo della pagina della parola chiave, grazie ai microformati. Pertanto il tag viene prelevato insieme al suo link, con la forma seguente:
<a rel="tag" href="indirizzo della pagina della parola chiave">Parola-chiave</a>
.
Sul sito ricevento questi tag sono mostrati nell’area riservata sotto la descrizione dell’articolo e possono essere mostrati sul sito pubblico grazie al segnaposto #TAGS
(vedremo più oltre come filtrarlo per fare una visualizzazione selettiva dei tag).
Nota: SPIP prevede una gestione specifica dei tag che provengono da siti del.icio.us (bookmark collettivi), flickr (fotografia) e connotea (annotazione di articoli scientifici), in modo da poter attribuire loro un URL (che non è previsto nei loro rispettivi flussi RSS).
- la rubrica:
In molte applicazioni (sistema di blog, raccolte di link...) la categoria (o anche directory) di un articolo è l’equivalente di quello che SPIP chiama rubrica. Pertanto è naturale utilizzare il concetto RSS standard di <category>...</category>
per far sapere a quale rubrica appartiene il nostro articolo.
Al pari dei tag, SPIP ottiene questa informazione e la mostra attraverso #TAGS
.
- i documenti allegati:
Anche i documenti che, nell’area riservata, si trovano a fondo pagina di un articolo, ovvero nella sezione «Documenti» o, in caso di immagini, nella sezione «Portfolio», vengono trasmessi nel flusso RSS, utilizzando il codice <enclosure ... />
. Ciò si chiama attualmente podcasting, ed è diventata una funzione standard di SPIP [1].
Anche l’informazione sugli enclosure viene prelevata dal segnaposto #TAGS
, tuttavia essa viene mostrata in maniera diversa nell’area riservata, sotto forma di un piccolo fermaglio per ogni file.
Utilizzare il segnaposto #TAGS
Come è stato detto in precedenza, il segnaposto #TAGS
visualizza alla rinfusa i link verso le parole chiave, la rubrica e i documenti allegati. Ma grazie all’uso dei microformati i link verso ognuno di questi concetti sono «distinti» come segue:
- <a rel="tag" ...>
per i tag/parole chiave
- <a rel="directory" ...>
per la rubrica/categoria
- <a rel="enclosure" ...>
per i documenti allegati/podcast
Se si desidera visualizzare solo uno di questi tipi di tag si può utilizzare il filtro afficher_tags
specificando il tipo desiderato come argomento:
[(#TAGS|afficher_tags{directory})]
[(#TAGS|afficher_tags{tag})]
[(#TAGS|afficher_tags{enclosure})]
(Per default [(#TAGS|afficher_tags)]
è equivalente a [(#TAGS|afficher_tags{'tag,directory'})]
.)
Per i documenti allegati il filtro specifico afficher_enclosures
permette di visualizzare i fermagli invece che i link classici:
[(#TAGS|afficher_enclosures)]
* *
Manipolare il contenuto HTML degli articoli in syndication
Caso pratico: il nostro sito ha in syndication un sito di foto e di blog, che diffonde sistematicamente un piccolo commento seguito da una fotografia. Quest’ultima si presenta come tag HTML <img .../>
. Dopo aver messo in syndication questo sito in versione HTML completa nel nostro sito possiamo decidere di visualizzare solo la fotografia senza il commento. In tal caso dobbiamo estrarre il tag <img />
; ciò può essere fatto usando il filtro extraire_balise{xxx}
, che preleva il primo tag HTML <xxx />
di un contenuto.
Partendo da questo è possibile tutto:
- [(#DESCRIPTIF|extraire_balise{img})]
visualizza la fotografia;
- [(#DESCRIPTIF|extraire_balise{img}|extraire_attribut{src})]
il suo URL;
- [(#DESCRIPTIF|extraire_balise{img}|extraire_attribut{width})]
la sua larghezza;
- è anche possibile modificarne lo stile, per esempio con:
[(#DESCRIPTIF|extraire_balise{img}|
inserer_attribut{style,'border: double red 4px;'})]
Avvertenza: i contenuti HTML provenienti da un sito esterno sono considerati per definizione «non controllati», e quindi potenzialmente problematici se contengono tag chiusi male oppure codice javascript; per tale motivo SPIP applica loro il filtro
safehtml
prima di visualizzarli.
Altri filtri legati alla syndication
Questi filtri permettono di convertire i tag di syndication da un formato a un altro al fine di poter rimettere nel formato RSS dei «tag» prelevati tramite syndication, e registrati nel nostro database sotto forma di microformati: tags2dcsubject
, enclosure2microformat
, microformat2enclosure
.
Riferimenti bibliografici
- SPIP 1.9
- RSS 2.0
- microformats
- rel=tag
- rel=enclosure
- rel=directory