You are here

Feed RSS, modulo Panel in Drupal e home page

Inviato da giovanninews on Gio, 10/06/2010 - 15:16

Una icona per un feed rss Come tanti utenti del web sapranno, le pagine o nodi di contenuti inseriti, non contengono il famoso Feed RSS e questo è giusto e normale; un utente non deve poter ricevere il feed di una singola pagina, ma deve poter ricevere i feed rss dei nuovi articoli inseriti sul sito o magari soltanto i feed rss dei nuovi articoli appartenenti ad una determinata categoria o tassonomia, se il sito web è predisposto per poterlo fare.

Come tanti webmaster che utilizzano il cms Drupal sapranno, un nodo o una pagina creata con il modulo Panel, essendo anch' essa concepita come un nodo, non visualizza il feed RSS.

Ma Panel è un modulo Drupal alquanto particolare, un modulo molto potente che utilizzato insieme ad altri moduli, quali il modulo View o il modulo CCK,

permette di creare con Drupal pagine diverse, divise in settori, ed ognuno di questi può a sua volta contenere anteprime di pagine, liste di pagine con link, immagini, descrizioni con link o quant' altro la nostra fantasia riesce a concepire.

Appunto per questo il modulo Panel è anche molto utilizzato per creare pagine per la Home Page del sito.

Mettendo quindi una pagina creata con Panel in home page, si viene a perdere il feed Rss disposto in fondo alla pagina e, cosa ancora più inportante, si perde il feed RSS dall' indirizzo della pagina.

Questo potrebbe penalizzare il sito web se si è iscritti ad aggregatori di notizie; gli aggregatori visitano in automatico la home page del sito ed agganciano i nuovi articoli tramite il feed RSS. Alcuni di questi non potrebbero più trovare il feed RSS.

Il problema è anche molto sentito sul sito ufficiale Drupal.org, ad esempio su questa pagina https://drupal.org/node/212442 o in quest' altra pagina https://drupal.org/node/202904.

Ma, a quanto sembra, gli sviluppatori e manutentori del modulo Panel, ritengono, giustamente, che non sia corretta una creazione automatica del feed RSS con Panel, essendo la pagina creata con Panel un semplice nodo.

Anteprima immagine del tipo di contenuto Panel con feed RSS

Ma nelle impostazioni del tipo di contenuto Panel vediamo che è prevista la possibilità di aggiungere un campo RSS, probabilmente mediante il modulo CCK.

Non sono riuscito a fare questo con il modulo CCK, ma ci sono riuscito con il modulo View, risolvendo forse la parte meno importante del problema che consiste nell' inserire il feed RSS in fondo alla pagina Panel.

Esisteranno per questo sicuramente modi più eleganti, ma vi mostro come farlo con il modulo View.

Innanzitutto, prendendo in esame il Tipo di Contenuto Panel, vediamo che esiste un campo Anteprima che, seppure utilizzato, non viene normalmente visualizzato nel nodo, anche se richiesto, in fase di creazione del nodo Panel.

Andando quindi in modifica sul nodo Panel, inserisco nel campo Anteprima, tramite un editor Wysiwyg, l' immagine del feed RSS contenente il link al file rss.xml del sito web.

Con il modulo Views creo quindi una vista del database per nodo, utilizzando come Campo "Node: Anteprima" e come Filtro "Node: Titolo= titolo della pagina ottenuta con Panel".

A questo punto non resta che agganciare dal nodo Panel creato (ad esempio l' Home page), alla fine dei contenuti, la view creata per il feed RSS.

Anteprima della view per il feed rss

Il problema più importante, cioè la visualizzazione e la possibilità di agganciare il feed RSS dall' indirizzo della Home Page, si crea perchè Drupal non genera in automatico la riga html nella pagina realizzata con Panel, essendo questa pagina un semplice nodo.

Anche in questo caso, la ricerca su Drupal.org mi ha portato all' indirizzo https://drupal.org/node/112393 che contiene informazioni essenziali su come risolvere il problema con il php, linguaggio di cui sono quasi completamente digiuno, ma essenziale per comprendere un cms come Drupal.

Ho capito l' utilizzo del php print per visualizzare il contenuto di variabili contenute nella pagina ed in questo modo, mediante l' uso condizionale del php, ho inserito nel template della pagina utilizzato dal tema la riga html per il nodo specifico Panel utilizzato in Home Page.

Più semplicemente, ho inserito nel page.tpl.php del tema la riga condizionale php dopo aver testato con precisione il contenuto della variabile $title del nodo Panel.

La riga deve essere posizionata nella sezione HEAD del codice html per essere visualizzato, a livello di codice, in questa sezione.

Il risultato ottenuto è visibile nella home page di questo sito; vediamo il feed RSS posizionato sia nell' indirizzo della pagina (se utilizziamo Firefox, mentre se utilizziamo Internet Explorer vedremo accendersi l' iconcina del feed RSS sulla Barra dei Comandi).

Vediamo inoltre l' icona del feed RSS in fondo alla Home Page, ottenuta con la view precedentemente descritta.

E' inoltre possibile ottenere questo risultato con qualsiasi pagina Panel che punta ad un termine della tassonomia (categorie in altri cms), inserendo quindi un feed RSS relativo soltanto a quella categoria.

<< Pagina precedente