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
-
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!!
-
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.
-
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...
-
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?? :( :( ???
-
Il codice che hai messo che roba sarebbe?
E' tutto sbagliato.
-
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?
-
//immagine nel feed
$item_image = $row->images;
list ($source, $align, $alttext, $border, $dida, $posdida, $aligndida, $weightdida) = split ('[|]', $item_images);
così va bene??
-
Sintatticamente è sicuramente corretto.
Ma $row->images cos'è?
-
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]
-
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... ;)
-
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;
}
?>