Joomla.it Forum

Joomla! 1.0.x (versione con supporto terminato) => Le voci di Joomla.it (solo per versione Joomla 1.0.x) => : ikki_83 28 Feb 2007, 23:20:30

: Come inserire le immagini degli articoli in un feed rss??
: ikki_83 28 Feb 2007, 23:20:30
Salve a tutti!
Ho iniziato a collaborare con una società che mi ha richiesto che i contenuti delle notizie in joomla vengano esportati in un file xml in modo da interfacciarlo con una loro animazione flash (che odio il flash...) ma ho un problema: i feed rss di joomla non contengono alcun tag per le immagini presenti negli articoli (ne basterebbe una!) e onestamente sono un bel po' di ore che cerco di venirne a capo ma nulla... qualcuno sa come risolvere questo problema? ah, il tag delle immagine deve contenere un percorso relativo e non assoluto... Carneade please!!
: Re: Come inserire le immagini degli articoli in un feed rss??
: napo 01 Mar 2007, 09:45:17
Probabilmente il componente integrato in Joomla non gestisce proprio le immagini; dovresti provare con altri componenti.
Fai una ricerca, c'è un post in cui suggerivo l'uso di un componente per la gestione dei feed di cui non ricordo il nome.
: Re: Come inserire le immagini degli articoli in un feed rss??
: ikki_83 01 Mar 2007, 11:04:32
Riporto la conversazione con napo, come da richiesta ;)

Si parlava del componente rd_rss.
Il componente che ti ho suggerito non l'ho mai usato a dire il vero, ma so che è molto più elastico di quello predefinito di Joomla.
Credevo gestisse anche le immagini, ma da quanto mi dici deduco che non è così. Triste
Non saprei come modificarlo per inserire le immagini, però so che Joomla mette a disposizione una classe per la creazione dei feed: includes/feedcreator.class.php.
E' una classe molto completa che sicuramente è in grado di risolvere i tuoi problemi; però qui non si parla di modificare un pò di codice, ma di scrivere un nuovo componente che utilizzi tale classe.
Generare un feed non è difficile, c'è un esempio dentro il file PHP; tuttavia non so se sia agevole o meno inserire anche le immagini, soprattuto dal punto di vista "recupero delle informazioni relative all'immagine che devo visualizzare".
Prima di buttarmi a scrivere del codice, proverei a fare una ricerca per trovare un componente già pronto che possa risolvere il tuo problema.

Aggiungo io: la classe + completa e l'unica soluzione sarebbe quella di usare l'enclosure... qualcuno sa come fare?? l'enclosure deve prendere l'immagine dall'aticolo e pubblicarla in rss...
: Re: Come inserire le immagini degli articoli in un feed rss??
: ikki_83 01 Mar 2007, 12:39:26
Purtoppo non esiste nulla.... sto provando a modificare il codice così aggiungendo:

   //immagine nel feed
      $item_image = $row->images;
      $item_image = mosimage;
      foreach ( $rows as $row ) {
         $item_image = trim( $item_image );
                        $item_image .= '...';
                     }

ma non va.. napo e tutti gli utenti avete qlk idea??  :( :( ???
: Re: Come inserire le immagini degli articoli in un feed rss??
: napo 01 Mar 2007, 16:10:18
Il codice che hai messo che roba sarebbe?
E' tutto sbagliato.
: Re: Come inserire le immagini degli articoli in un feed rss??
: ikki_83 01 Mar 2007, 16:25:39
immaginavo... il problema è conosco poco il php. ho visto la struttura del database e ho visto anche che la tabella jos_content ha la row images in cui il primo valore registrato è il nome dell'immagine dell'articolo. come la estrapolo e la metto nel feed?
: Re: Come inserire le immagini degli articoli in un feed rss??
: ikki_83 01 Mar 2007, 16:37:40
:
//immagine nel feed
$item_image = $row->images;
list ($source, $align, $alttext, $border, $dida, $posdida, $aligndida, $weightdida) = split ('[|]', $item_images);

così va bene??
: Re: Come inserire le immagini degli articoli in un feed rss??
: napo 01 Mar 2007, 16:41:56
Sintatticamente è sicuramente corretto.
Ma $row->images cos'è?
: Re: Come inserire le immagini degli articoli in un feed rss??
: ikki_83 01 Mar 2007, 16:51:38
ti allego il file come lo ho modificato. è il file rss.php di joomla, ho usato $row->images per dire allo script di andare a vedere nella row images della tabella jos_content, ma nulla... ho come la sensazione d aver sbagliato!

[allegato eliminato da un amministratore]
: Re: Come inserire le immagini degli articoli in un feed rss??
: ikki_83 05 Mar 2007, 15:32:29
Alla fine sto tentando di risolvere il problema con uno script ad hoc creato da me (il mio primo script creato da zero...).

Ho un problema: il server mi restituisce questo errore:

Parse error: parse error, unexpected T_VARIABLE in /home/httpd/vhosts/eliofranco.it/subdomains/xbox/httpdocs/flashxml/interrogazione.php on line 19

Come mai? il listato è questo:

:
<?php

//Inclusione del connettore
require_once "connessione.php";

//Connessione al database 
$conn mysql_connect($dbhost,$dbuser,$dbpass
 or die(
"Impossibile collegarsi al server MySQL.");

//Selezione database 
mysql_select_db($dbname,$conn
 or die(
"Impossibile selezionare il database $dbname");

//Selezione contenuti
$titolo "SELECT title FROM jos_content";
$autore "SELECT author FROM jos_content;"

//Selezione intro pubblicati
$intro "SELECT introtext FROM jos_content WHERE state = '1' ORDER BY id DESC LIMIT 10";


//Selezione immagine
$immagine "SELECT images FROM jos_content";
             list (
$source$align$alttext$border$dida$posdida$aligndida$weightdida) = split ('[|]'$immagine);
$immagine "./images/stories/"$source;

//Selezione link
$id "SELECT id FROM jos_content";
$url "$HTTP_HOST/index.php?option=com_content&task=view&id=1&Itemid="$id;

//Creazione file

function MakeXML($titolo$autore$intro$immagine$url){
    
$item->title    $title;
    
$item->autore   $autore;
    
$item->intro    $intro;
    
$item->immagine $immagine;
    
$item->url      $url;

}

function 
Output($save false$path '')
$out '<?xml version="1.0"?>
' . "\n" .;

$out =  "<title>$item->title</title>\n" .
        "<autore>$item->autore</autore>\n" .
        "<intro>$item->intro</intro>\n" .
"<immagine>$item->immagine</immagine>\n" .
"<url>$item->url</url>\n" .;

$r->Output(true, './flashxml/cache/rss.xml');

// True output
    if( !$save or !$path ){
      header("Content-type: application/xml");
      echo $out;
      return true;
    }
    else{
      $fh = fopen($path, 'w');
      if( $fh ){
        fwrite($fh, $out);
        fclose($fh);       
       
        return true;
      }
      return false;
    }

?>

Ringrazio chiunque mi dia una mano... ;)
: Re: Come inserire le immagini degli articoli in un feed rss??
: ikki_83 06 Mar 2007, 16:22:50
quel problema è risolto, ora ne ho un altro: eseguendo lo script ottengo questo errore:

Errore interpretazione XML: nessun elemento trovato
Indirizzo: http://xbox.eliofranco.it/flashxml/interrogazione.php
Linea numero 1, colonna 1:
^

il nuovo listato:

<?php

//Inclusione del connettore
require_once "connessione.php";

//Connessione al database
$conn = mysql_connect($dbhost,$dbuser,$dbpass)
 or die("Impossibile collegarsi al server MySQL.");

//Selezione database
mysql_select_db($dbname,$conn)
 or die("Impossibile selezionare il database $dbname");

//Selezione contenuti
$titolo = "SELECT title FROM jos_content";
$autore = "SELECT author FROM jos_content";

//Selezione intro pubblicati
$intro = "SELECT introtext FROM jos_content WHERE published = '1' ORDER BY id DESC LIMIT 10";


//Selezione immagine
$immagine = "SELECT images FROM jos_content";
             list ($source, $align, $alttext, $border, $dida, $posdida, $aligndida, $weightdida) = split ('[|]', $immagine);
$immagine = "./images/stories/". $source;

//Selezione link
$id = "SELECT id FROM jos_content";
$url = "$HTTP_HOST/index.php?option=com_content&task=view&id=1&Itemid=". $id;

//Creazione file

function MakeXML($titolo, $autore, $intro, $immagine, $url){
    $item->title    = $title;
    $item->autore   = $autore;
    $item->intro    = $intro;
    $item->immagine = $immagine;
    $item->url      = $url;

}

function Output($save = false, $path = ''){

$out = '<?xml version="1.0"?>' . "\n" .

$out =  "<title>$item->title</title>\n" .
        "<autore>$item->autore</autore>\n" .
        "<intro>$item->intro</intro>\n" .
      "<immagine>$item->immagine</immagine>\n" .
      "<url>$item->url</url>\n" .
      
$r->Output(true, './flashxml/cache/rss.xml');

}

// True output
    if( !$save or !$path ){
      header("Content-type: application/xml");
      echo $out;
      return true;
    }
    else{
      $fh = fopen($path, 'w');
      if( $fh ){
        fwrite($fh, $out);
        fclose($fh);       
       
        return true;
      }
      return false;
    }

?>