Questa modifica fa generare a FlatNuke un feed RSS con i commenti più recenti, le nuove discussioni del forum più recenti e le nuove risposte alle discussioni del forum. Viene utilizzata una funzione centralizzata per ognuna di queste operazioni. 1) Aprite il file functions.php, e scorrete fino a /** * Restituisce il livello di una sezione 2) Sopra queste linee, sotto la partentesi graffa (}), inserite il seguente codice: // genera un feed rss generico --jackoverfull function crea_RSS($lRSS, $maxRSS, $ilTitolo, $ilLink, $laDescr, $laPubDate, $ilTitoloFeed, $laDescrFeed) { //ottiene l'indirizzo del sito. $url = "http://".$_SERVER['SERVER_NAME']."/".$_SERVER['SCRIPT_NAME']; $url = str_replace("index.php", "", $url); $url = str_replace("verify.php", "", $url); $linee = count(explode("\n",(parse_RSS($url.$lRSS."1.xml")))); // sposta il file rss 1 in posizione 2, sovrascrivendo quello vecchio // non proprio il metodo ideale per eliminare i vecchi post dalle RSS, ma funzionante... if ( $linee > $maxRSS/2 ){ if(file_exists($lRSS."2.xml")){ unlink($lRSS."2.xml"); } rename($lRSS."1.xml",$lRSS."2.xml"); } // carica gli ultimi post, se presenti if(!file_exists($lRSS."1.xml")){ $recPost=""; } else{ $recPost=get_file($lRSS."1.xml"); } // carica i penultimi post, se presenti if(!file_exists($lRSS."2.xml")){ $recPost2=""; } else{ $recPost2=get_file($lRSS."2.xml"); } fnwrite($lRSS."1.xml", " ".$ilTitolo." ".$ilLink." ".$laDescr." ".$laPubDate." ".$recPost, "w", array("nonull")); $header=<< DATA; $header=$header." ".$ilTitoloFeed." ".$laDescrFeed." ".$url.""; $recPost=get_file($lRSS."1.xml"); fnwrite($lRSS.".xml", $header."".date('r')."".$recPost.$recPost2." ", "w", array("nonull")); } // END feed rss. 3) Aprite il file functions.php e scorrete fino a fnlog("News", $ip."||".$myforum."||Comment added to the news $id."); e sotto questa linea aggiungete // "post recenti". -jackoverfull // ottiene il titolo della news $fd = get_file("news/$id.xml"); $title = get_xml_element("fn:title",$fd); crea_RSS("recCom", $maxCom, $title." - ".$myname, $url."index.php?mod=comment&id=".$id."#".time(), $mybody, date('r'), $sitename." - Commenti Recenti", $sitename." - Commenti Recenti" ); //END post recenti 4) aprite il file forum/include/ff_functions.php e scorrete fino a fflogf("Created topic \"".strip_tags($subj)."\" -> file ".strip_tags("$root/$group/$argument/$time.ff.php")); 5) prima di questa linea aggiungete // crea un feed rss relativo alle sole nuove discussioni e si integra con quello dei post -jackoverfull global $maxDisc, $maxPost, $sitename; crea_RSS("recPost", $maxPost, $data['properties']['topictitle']." - ".$data['posts'][0]['poster'], $url."index.php?mod=".$mod."&group=".$group."&argument=".$argument."&topic=".$time.".ff.php&page=last", $data['posts'][0]['postbody'], date('r'), $sitename." - Post Recenti", $sitename." - Post Recenti" ); crea_RSS("recDisc", $maxDisc, $data['properties']['topictitle']." - ".$data['posts'][0]['poster'], $url."index.php?mod=".$mod."&group=".$group."&argument=".$argument."&topic=".$time.".ff.php&page=last", $data['posts'][0]['postbody'], date('r'), $sitename." - Discussioni Recenti", $sitename." - Discussioni Recenti" ); // END feed rss 6) nello stesso file (forum/include/ff_functions.php) scorrete fino a email_alert($group,$argument,$topic); 7) aggiungete sotto questa linea // genera un feed rss con i post --jackoverfull global $maxPost, $sitename; crea_RSS("recPost", $maxPost, $newpost['postsubj']." - ".$newpost['poster'], $url."index.php?mod=".$mod."&group=".$group."&argument=".$argument."&topic=".$topic."&page=last#".$newpost['time'], $newpost['postbody'], date('r'), $sitename." - Post Recenti", $sitename." - Post Recenti" ); // END feed rss. 8) Aprite il file config.php e aggiungete $maxCom=30; $maxPost=30; $maxDisc=30; sopra il "?>" finale. 9) Questo è tutto. I file RSS verranno generat automaticamente al momneto dell'aggiunta di un nuovo commento/post/discussione agli indirizzi http://vostrosito/recCom.xml, http://vostrosito/recPost.xml, http://vostrosito/recDisc.xml . Potete variare il numero massimo di elementi per feed modificando il valore delle variabili aggiunte al punto 9. 2009/01/21, Jack Overfull www.jackoverfull.com ======DIARIO DI MODIFICA ======2010/02/19 -Corretta una dimenticanza relativa al precedente aggiornamento (grazie, ZEBDEMON). ======2009/05/06 -Aggiornato a flatnuke 2.7.2 (modifiche al punto 3).