Come inserire nel feed il numero di commenti ad un post

May 17th, 2007 at 8:40 pm • permalink7 comments

Troppo spesso noto una certa tendenza al limitarsi ad usare i feed nella modalità più semplice che esista: quella predefinita.
Così facendo, la maggior parte degli utenti non si rende conto di quanto potrebbe aumentare l’interazione con i propri utenti semplicemente con qualche accorgimento.

In questo post vorrei documentare una modifica tanto banale quanto interessante. Vedremo quindi come è possibile estendere il proprio feed inserendo tra le informazioni il numero dei commenti pubblicati per ogni post.

Il risultato: come gli aggregatori mostrano il numero di commenti

Questa volta vorrei fare uno strappo alla regola e partire dal risultato delle nostre modifiche. Ecco quindi uno screenshot di quello che otterremo: il numero di commenti per ogni post.

Slash module on FeedDemon

E’ importante sottolineare che ogni aggregatore è libero di utilizzare questa informazione come meglio preferisce.
Lo screenshot precedente, nello specifico, fa riferimento a FeedDemon mentre in seguito riporto la stessa informazione gestita da RSS Bandit.

Slash module on RSS Bandit

Modulo XML Slash: mostrare il numero di commenti ad un post

Se vi state chiedendo quanto complicato possa essere ottenere quanto appena mostrato non disperate! E’ molto semplice.
Per il nostro scopo ci serviremo del modulo XML Slash per estendere il nostro feed.

Slash è un modulo per RSS 1.0 creato nel 2000 dagli ideatori del famoso sito Slashdot ed in seguito rilasciato con licenza GNU General Public License.
Questo modulo offre molto di più di quanto necessario al nostro scopo, dunque ci limiteremo a prendere in prestito il tag <comments>.

Estendere il feed RSS o Atom base

Nelle righe seguenti vedremo come estendere il nostro feed integrando il modulo Slash grazie all’uso dei namespace XML.
Anche se siete a digiuno di XML, namespace e diavolerie varie non vi preoccupate, le indicazioni seguenti dovrebbero comunque consentirvi di eseguire le modifiche in tranquillità.

Per estendere un file XML con un modulo non standard è necessario dichiararne il namespace nel tag di apertura del documento.
Nel caso di un feed RSS 2.0 identificate la riga <rss version="2.0"> mentre per un file Atom 1.0 cercate <feed xmlns="http://www.w3.org/TR/REC-xml-names/">.
In entrambi i casi la stringa dovrebbe trovarsi nella seconda riga del file, subito dopo alla dichiarazione del file XML, ovvero una stringa tipo <?xml version="1.0" encoding="utf-8"?>.

A questo punto, inserite la dichiarazione del namespace che nel nostro caso è xmlns:slash="http://purl.org/rss/1.0/modules/slash/".
La definizione di un namespace è caratterizzata dalla stringa xmlns: seguita dal nome del prefisso che identifica il namespace e dall’URI identificativo.
Se siete stati attenti noterete che la versione base del formato Atom 1.0 contiene a sua volta un namespace predefinito, con URI http://www.w3.org/TR/REC-xml-names/.

Il risultato sarà, per un feed RSS 2.0

<?xml version="1.0"?>
<rss version="2.0"
  xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
>

mentre per un feed Atom 1.0

<feed
xmlns="http://www.w3.org/TR/REC-xml-names/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
>

Ora che abbiamo dichiarato il modulo Slash possiamo utilizzarlo all’interno del nostro feed.
Tutto quello che ci serve di questo modulo è esclusivamente il tag <slash:comments>NUMERO_COMMENTI</slash:comments> che, una volta inserito all’interno del nodo che identifica il post, indica il numero di commenti per quell’elemento.
Il numero dei commenti è un valore intero positivo che andrà inserito al posto di NUMERO_COMMENTI.

Torniamo all’esempio del nostro file RSS 2.0. In questo caso il tag andrà inserito all’interno dei tag <item></item> che delimitano il contenuto di un post.
Guardate l’esempio seguente, basato sul feed del mio blog.

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>Simone Carletti's Blog</title>
<link>http://www.simonecarletti.com/blog/</link>
<description>Un piccolo spazio nel web dedicato al web con approfondimenti su marketing, feed RSS / Atom e motori di ricerca.</description>
<language>en</language>
<lastBuildDate>Thu, 17 May 2007 10:19:31 -0500</lastBuildDate>
<generator>Movable Type 3.34 http://www.sixapart.com/movabletype/</generator>
<item>
<title>Quanto è sicuro salvare le password nel browser?</title>
<link>http://feeds.feedburner.com/~r/simonecarletti/~3/117447717/salvataggio-password-browser.php</link>
<description>Quanto è sicuro salvare le password nel browser? A confronto Internet Explorer, Firefox ed Opera.</description>
<slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments>
</item>
<item>
<title>I file PST di Outlook non supportano il salvataggio in cartelle di rete</title>
<link>http://feeds.feedburner.com/~r/simonecarletti/~3/117255256/pst-outlook-supporto-rete-lan.php</link>
<description>Se state pensando di salvare il file .pst in una cartella condivisa per ottimizzare tempi e risorse... non fatelo!</description>
<slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments>
</item>
</channel>
</rss>

Per quanto riguarda i feed Atom 1.0 poco cambia, ad esclusione del fatto che in questo caso il nome del tag che identifica i post si chiama <entry>.

<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
<title>Simone Carletti&apos;s Blog</title>
<id>tag:www.simonecarletti.com,2007:/blog//1</id>
<link rel="alternate" type="text/html" href="http://www.simonecarletti.com/blog/"/>
<link rel="service.post" type="application/atom+xml" href="http://www.simonecarletti.com/mt/mt-atom.cgi/weblog/blog_id=1" title="Simone Carletti&apos;s Blog"/>
<updated>2007-05-17T15:19:31Z</updated>
<subtitle>Un piccolo spazio nel web dedicato al web con approfondimenti su marketing, feed RSS / Atom e motori di ricerca.</subtitle>
<generator uri="http://www.sixapart.com/movabletype/">Movable Type 3.34</generator>
<link rel="self" href="http://feeds.feedburner.com/simonecarletti" type="application/atom+xml"/>
<entry>
<title>Quanto è sicuro salvare le password nel browser?</title>
<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/simonecarletti/~3/117447717/salvataggio-password-browser.php"/>
<link rel="service.edit" type="application/atom+xml" href="http://www.simonecarletti.com/mt/mt-atom.cgi/weblog/blog_id=1/entry_id=629" title="Quanto è sicuro salvare le password nel browser?"/>
<id>tag:www.simonecarletti.com,2007:/blog//1.629</id>
<published>2007-05-17T15:16:53Z</published>
<updated>2007-05-17T15:19:31Z</updated>
<author>
<name>Simone Carletti</name>
<uri>http://www.simonecarletti.com/</uri>
</author>
<slash:comments>0</slash:comments>
<content type="html">Quanto è sicuro salvare le password nel browser? A confronto Internet Explorer, Firefox ed Opera.</content>
</entry>
<entry>
<title>I file PST di Outlook non supportano il salvataggio in cartelle di rete</title>
<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/simonecarletti/~3/117255256/pst-outlook-supporto-rete-lan.php"/>
<link rel="service.edit" type="application/atom+xml" href="http://www.simonecarletti.com/mt/mt-atom.cgi/weblog/blog_id=1/entry_id=628" title="I file PST di Outlook non supportano il salvataggio in cartelle di rete"/>
<id>tag:www.simonecarletti.com,2007:/blog//1.628</id>
<published>2007-05-16T22:05:01Z</published>
<updated>2007-05-16T22:09:01Z</updated>
<author>
<name>Simone Carletti</name>
<uri>http://www.simonecarletti.com/</uri>
</author>
<slash:comments>0</slash:comments>
<content type="html">Se state pensando di salvare il file .pst in una cartella condivisa per ottimizzare tempi e risorse... non fatelo!</content>
</entry>
</feed>

Semplice vero?

Ma chi e cosa deve inserire questo tag?

A questo punto senz’altro qualcuno di voi si starà chiedendo chi o cosa deva inserire questo tag ed il suo valore.
Anche la risposta è molto semplice e trova soluzione nel sistema che utilizzate per generare il feed.

Se vi rivolgete ad una piattaforma come WordPress o MovableType allora dovrete modificare il sistema di publishing in modo tale che inserisca automaticamente questo dato.

Se scrivete il feed a mano o con un linguaggio di programmazione, allora dovrete modificare le vostre abitudini o il vostro codice in modo tale da includere questo nuovo elemento.

In conclusione

Inserire il numero di commenti in un feed non è un’operazione così complessa e si tratta, tutto sommato, di un’informazione utile soprattutto per i feed pubblicati da blog molto attivi.
L’obiettivo può essere raggiunto semplicemente estendendo così il feed con il modulo Slash come sopra indicato.

Filed in Feed • Tags: , , ,


Comments

riffraff says:

ottimo artiucolo perché mi hai fatto conoscere il modulo slash :)

Però per i commenti credo che Atom 1.0 abbia già supporto tramite le threading extension, mentre per RSS forse è utile segnalare http://wellformedweb.org/CommentAPI/
che è usato per unire il comment feed al feed principale ed è il default in varie piattaforme (wordpress in primis).

Ciao riffraf,
di CommentAPI me ne occuperò in un post successivo, era tra le mie intenzioni. :)

Ad ogni modo, questo modulo non fornisce indicazioni sul numero di commenti ma solo un eventuale riferimento ad un feed correlato ed altri dettagli.

Sono invece curioso sulla questione delle ‘hreading extension’ per Atom.
Sono un po’ a digiuno dell’argomento, avresti qualche indicazione in merito al loro uso per i commenti?

Inserire nel feed il numero di commenti ad un post

Un breve articolo vi guiderà passo passo nell’inserimento del numero di commenti a ciascun post direttamente nel feed del vostro blog.

ufo says:

ottimo articolo, non conoscevo il modulo slash né avevo tempo di scoprirlo mediante una ricerca.
Grazie
To memories :-)

riffraff says:

mh.. da quel che capisco il atom thread extension permettono di aggiungere ad un feed metadati relativi alle discussioni, siano essi commenti flat o ad albero, o (credo) discussioni interblog.

In pratica il feed divente feed+comment feed+metadati.

Link interessanti:
specifica:
http://www.ietf.org/rfc/rfc4685.txt
esempio d’uso per creare un feedflare
http://www.feedburner.com/fb/a/developers/feedflare (cerca “hello back at ya”)
esempio reale:
http://www.majordojo.com/2006/01/implementing_ja.php

PS
ma sei editor ODP per world/italiano/computer/weblog? se si, verifica la lista :)

RSS Profile integra una menzione al modulo Slashdot

La nuova bozza del RSS best-practices profile integra una menzione al modulo Slashdot per integrare il numero dei commenti in un feed RSS.

Rilasciato FeedDemon 2.5

Rilasciato FeedDemon 2.5 con moltissime novità: offline reading, sincronizzazione avanzata e popular topics.

Add a Comment




Follow Me
    Random Quote