Joomla.it Forum
Non solo Joomla... => Sviluppo => : Cybassh 22 Mar 2011, 10:55:02
-
buongiorno a tutti,
avrei il seguente scenario da risolvere. Ho implementato un componente su Joomla! 1.5 (poi dovro avanzarlo alla 1.6) che per ogni persona X fa visualizzare le info personali, pubblicazioni , avvisi. Ora il punto è:
come posso aggregare gli avvisi su feed rss creati dinamicamente.
mi spiego meglio. per creare dei rss in php ho visto che si utilizza uno script del genere:
<?php
header("Content-type: text/xml; charset=utf-8");//dichiaro che sto per scrivere una pagina in XML con php
echo ("<rss version=\"2.0\">");//versione rss
echo ("<channel>")//inizio channel
echo ("<title> titolo feed </title>");//titolo rss
echo("<link> http://www.vostrosito.it/index.php </link>");//link rss
echo ("<description> descrizione feed </description>");//descrizione rss
echo "<copyright> Copyright 2010 proprietario </copyright>\n";//copiright
echo "<docs>http://blogs.law.harvard.edu/tech/rss</docs>\n";//documento di informazione sulle specifiche dell'rss in oggetto
echo "<managingEditor> email@vostrosito.it </managingEditor>\n";//email del compilatore
echo "<webMaster> email@vostrosito.it </webMaster>\n";//email del webmaster
echo ("<language>IT-it</language>");//linguaggio
//Connessione e query al mio DB
$conn = @mysql_connect($host,$user,$password);//le vostre variabili di connessione database
$db = <strong>mysql_select_db('database');</strong>
$result = mysql_query("SELECT * FROM tabella ORDER BY id DESC LIMIT 5");//estraggo gli ultimi 50 valori inseriti nel database e li ordino per id ( o qualunque altro nome colonna che indichi una data di inserimento)
while($row = mysql_fetch_assoc($result)){
echo "<item>
<title>".$row['titolo']."</title>";//titolo
echo"<link>$row['link']</link>";//Link titolo. Potete anche inserire URL dinamici, ma SEMPRE ASSOLUTI (HTTP://www....)
echo"<description>";//Inizio descrizione informazione
echo"<![CDATA[";//Tutto quello racchiuso fra <![CDATA[ e ]]> sarà scritto a video
echo"<font color=\"#C0C0C0\">Articolo:
".$row['testo']."
</font>
<br>
<a href=".$row['link'].">
Continua...
</a>
]]>";//fine <![CDATA]
echo"</description>";//fine descrizione
echo"<guid>link all'articolo</guid>"; //Inserisci un URL univoco dell'informazione
echo"<category domain\"link alla categoria\">link alla categoria</category>";//Inserisci la categoria dell'informazione
echo"</item>";//fine item
}
echo "</channel></rss>";//fine channel e rss
?>
ora vorrei poter passare un parqametro a questa pagina (o metodo ) e creare un feed rss al quale ci si puo' iscrivere quando si visita la pagina della persona X.
potete darmi un aiuto
grazie
-
Sto implementando la soluzione che preveda un link indirizzato ad una vista atta a creare il file rss.
quindi ho una cartella rss col view.html.php che prepara l'output in xml e poi la pagina in tmpl che restituisce l'intero xml (default.php)
pero' alla fine il contenuto è vuoto.
forse bisogna indicarne il tipo di Mime? c'è la possibilità di utilizzare il metodo setMimeEncoding di JDocument?
-
richiesta 1.3
il mio obiettivo era comporre dinamicamente dei feed in mase a dei parametri, quale id_anagrafica p.e.
nella vista rss, non so se era necessaria, ho creato view.feed.php e il file feedrss.php
feedrss pero' è attualmente un file xml statico del tipo:
<?xml version="1.0" encoding="utf-8"?>
<!-- generator="Joomla! 1.5 - Open Source Content Management" -->
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>provolone</title>
<description>prova rss dei provoloni</description>
<link>http://localhost</link>
<lastBuildDate>Mon, 04 Apr 2011 09:05:55 +0000</lastBuildDate>
<generator>Joomla! 1.5 - Open Source Content Management</generator>
<language>en-gb</language>
</channel>
</rss>
il richiamo alla vista è :
<a href='./provolone?&id_anagrafica=".$id_anag."&view=rss&layout=feedrss&format=feed&type=rss' rel='alternate' >
<img src=\"/provoloni/images/M_images/livemarks.png\" alt=\"Immagine feed\" />
ma l'rss che mi scarica è:
<?xml version="1.0" encoding="utf-8"?>
<!-- generator="Joomla! 1.5 - Open Source Content Management" -->
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Docenti</title>
<description>Joomla! - il sistema di gestione di contenuti e portali dinamici</description>
<link>http://localhost</link>
<lastBuildDate>Mon, 04 Apr 2011 09:29:48 +0000</lastBuildDate>
<generator>Joomla! 1.5 - Open Source Content Management</generator>
<language>en-gb</language>
</channel>
</rss>
dove ho sbagliato, nella fattispecie ;)
-
ultima cosa, poi non insisto
non capisco perchè passa per view.feed.php ma non nella cartella /tmpl per i file che mi aspettavo index.php o index_rss.php o feedrss.php(con differenti tentativi ovvero
http://localhost/Provoloni/index.php/docenti?&id_anagrafica=307&view=rss&format=feed
http://localhost/Provoloni/index.php/docenti?&id_anagrafica=307&view=rss&layout=feedrss&format=feed
http://localhost/Provoloni/index.php/docenti?&id_anagrafica=307&view=rss&layout=rss&format=feed
non capisco il passaggio dei feed. mi aspettavo ch'entrasse nei file sopracitati
-
è stato un bagno di sangue
:-X
-
Ciao, vedo che hai risolto il problema.
Se ci spiegassi come hai fatto sarebbe più utile per tutti ;)
Anche io sono alla ricerca di una spiegazione su come implementare un feed rss
-
Ops, hai ragione. Ho lasciato andare il discorso... chiedo venia
Cmq non è facile da spiegare, anche perchè è venuto dopo innumerevoli tentativi, scrittura cancellazione di codice, impostazioni etc...
Ora è passato molto tempo e non credo di essere in grado di ricostruire il tutto
mi spiace
:-[ (ci metto anche la faccina per il dispiacere)
-
Non ti preoccupare, ho risolto il problema.
Per chi venisse dopo di noi la soluzione è molto semplice:
L'url che richiama il feed deve contenere la variabile
format=feed
esempio:
http://localhost/Provoloni/index.php?option=com_ristoranti&id=307&view=recensioni&format=feed
In questo modo viene richiamato il file view.feed.php relativo alla view specificata nell'url
Dentro il file view.feed.php andranno inserite le istruzioni per creare il feed.
Un esempio di view.feed.php è possibile trovarlo nel file /components/com_content/views/category/view.feed.php di joomla che pensa a creare un feed degli articoli di una categoria.
-
penso di si, anche se ricordo che era stato un problema identificare la posizione dei file feed all'interno delle cartelle dell'istanza e creare il file rss non per articoli interni a joomla, ma provenienti da db esterno.