generazione Feed RSS personalizzato - plugin o override?
-
gentilissimi,
devo creare un Feed RSS secondo le specifiche tecniche di Sistema Ingestion APP Ordini 2.0 GFL.
Ho creato un Feed RSS dalla funzione standard di joomla 3.1 ma non contiene tre tag necessari (<enclosure>, content:encoded e <media>) per cui uniche soluzioni sono: 1. scarico un plugin che mi permette di personalizzare il feed rss;
2. creo un file override.
Preferirei la prima e vi chiedo se conoscete un plugin da utilizzare , altrimenti dovrei studiare come funziona l'override perchè non l'ho mail fatto .
Mi suggerite la strada migliore o link su cui approfondire le due possibili soluzioni?
grazie R -
Ciao, l'override temo non sia fattibile perchè non è una view. Di plugin so che è abbastanza in voga questo: https://www.joomboost.com/joomla-components/183-joomrss.html ma non ti posso dare feedback diretti perchè non l'ho mai usato, mi spiace.
Ad ogni modo dovresti riuscire a gestire l'enclosure: https://www.joomboost.com/support/documentation/110-joomrss/452-how-to-create-rss-podcast-with-joomla-articles-joomrss.html
Ciao,
G. -
Ciao.
Sì, credo che l'override sia possibile.
Dovrebbe farlo di questo filecomponents/com_content/src/View/Category/FeedView.php@RRoberta, fare override è semplice.
Dovresti copiare ilFeedView.phpdi qui sopra nella cartellatemplates/[TUO_TEMPLATE]/html/com_content/category/FeedView.php.
Su questo puoi manipolare l'oggetto$itemper aggiungere i tag che ti interessano.EDIT: per Joomla 3.x, il file è
components/com_content/views/category/view.feed.php -
Grazie mille ad entrambi provo ad implementare il suggerimento di @luX0r75 e vi aggiorno.
-
Sì, grazie! Potrebbe tornare utile ad altri.
-
Gentilissimi, ringrazio tutti per il contributo.
ho risolto in questo modo:
1. Creato override di FEED.View
a. Copiato view.feed.php da /components/com_content/views/category/view.feed.php a /templates/[my_template]/html/com_content/category
b. Modificato aggiungendo questo codice dopo istruzione: '$item->author = $item->created_by_alias ?: $item->author;' per far visualizzare l'articolo completo (dopo il leggi tutto) e gli item enclosure, content:encoded, media) :
// ===============================
// CONTENUTO COMPLETO (content:encoded)
// ===============================
$fullContent = $item->introtext . $item->fulltext;$item->customElements[] = array( 'name' => 'content:encoded', //'content' => '<![CDATA[' . $fullContent . ']]>' 'content' => $fullContent ); // =============================== // CERCA PDF NEL CONTENUTO // =============================== $pdf = ''; preg_match('/href="([^"]+\.pdf)"/i', $fullContent, $matches); if (!empty($matches[1])) { $pdf = $matches[1]; if (strpos($pdf, 'http') !== 0) { $pdf = JURI::root() . ltrim($pdf, '/'); } // =============================== // ENCLOSURE (PDF) // =============================== $enclosure = new stdClass(); $enclosure->url = $pdf; $enclosure->length = 0; $enclosure->type = 'application/pdf'; $item->enclosure = $enclosure; //$item->enclosure = array( // 'url' => $pdf, // 'type' => 'application/pdf' //); // =============================== // MEDIA:CONTENT // =============================== $item->customElements[] = array( 'name' => 'media:content', 'attrs' => array( 'url' => $pdf, 'type' => 'application/pdf', 'medium' => 'document' ) ); } // =============================== // DC:CREATOR // =============================== $item->customElements[] = array( 'name' => 'dc:creator', 'content' => htmlspecialchars($item->author)); } } c. Caricato lato ftp. 2. Modificato il file RssRenderer.php (ATTENZIONE è CORE JOOMLA NON Può ESSERE OVERRIDATO)presente in libraries/joomla/document/feed/renderer/rss.php a. Ho sostituito l'istruzione tag: $xml .= '<rss version="2.0">'; con $xml .= '<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:dc="http://purl.org/dc/elements/1.1/">'; 3. Pulire la cache