Visualizzazione risultati 1 fino 9 di 9

Discussione: script per gestione rss molto singolare!

  1. #1
    Guest

    Predefinito script per gestione rss molto singolare!

    ciao a tutti,
    Ne cercare uno script per la gestione semplice dei file rss, e non avendolo trovato, ho deciso di prendere uno script a me non per l'aggiunzione delle news e modificarlo per aggiungere <item> in un file .xml.
    Lo scipr funziona alla grande ma come tutte le cose fai da me ha un piccol problema.
    Quando inseriscie il nuovo <item> porta quello vekkio sotto, così facendo trascina con se anke il tag <rss> sotto e quindi il nuovo <item> mi rimane escluso dall'<rss>.
    Vorrei sapere se c'è un modo per fa si ke il tag <rss> rimanga sempre sulla prima riga e che l'aggiunzione degli <item> avvenga dalla seconda riga in poi!
    Ragazzi è molto importante, solo voi mi potete salvare...come mi avete già salvato miliardi di volte.
    Grazie mille, a presto.

  2. #2
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Vorrei sapere se c'è un modo per fa si ke il tag <rss> rimanga sempre sulla prima riga e che l'aggiunzione degli <item> avvenga dalla seconda riga in poi!
    Certo che si può fare. Probabilmente succede così perché inserisci il nuovo tag all'elemento radice dell'XML invece che all'elemento <rss>. Però, così, senza un minimo di codice non saprei dirti altro.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  3. #3
    Guest

    Predefinito

    Innanzitutto grazie mille per la manona ke mi stai dando...mi stava facendo uscire pazzo questo coso!
    Allora il file news.php è questo:
    Codice:
    <body>
    <basefont size=2 face=arial>
    
    <b>Aggiungi Articolo</b>
    <?
            include ("template.inc");
            include ("config.php");
    
    	$summary_template = "t_summary.xml";
    	$max_summary = 0;
    
    	function summary_page ($subject, $date, $summary, $article_id)
    	{
    		global $summary_template;
            	$t = new Template();
            	$t->set_file("SummaryPage", $summary_template);
    		$date = nl2br($date);
    		$summary =  nl2br($summary);	 
    		$t->set_var( array(
    				"subject" => $subject,
    				"date"    => $date,
    				"summary" => $summary,
    				));
    		$t->parse("Summary", "SummaryPage");
    		return $t->get_var("Summary");
    	}
    
    	function add_article($filename, $news)
    	{
    
    		if(file_exists($filename)){
    			$fh = fopen($filename, "r");
    			$old_news = fread($fh, filesize($filename));
    			fclose($fh); 
    		}
    
    		/* TODO: Multipage articles
    			preg_match_all("<rss version='2.0'>", $old_news, $matches;
    		
    			if( count($matches[0]) >= $max_summary){
    				$oldfilename = $filename.($matches[0][0]+1);
    			} 
    		*/
    
    		$fh = fopen($filename, "w");
    		$news = stripslashes($news);
    		fwrite($fh, "\n<rss version='2.0'>\n$news $old_news");
    		fclose($fh);
    	}
    
    ?>
    
    <?
    	if(strcmp($subject, "")){	
    		if(!(strcmp($passwd, $password))){	
    			add_article("article_summary.xml", summary_page($subject, $date, $summary, $article_id));
    			echo "<p> L'articolo è stato aggiunto con successo. <p>";
    		}else{
    			echo "<p><b> La Password è errata! </b>";
    		}
    	}
    
    
    ?>
    <body>
    
    <script type="text/javascript" src="file.js"></script>
    <form name=news action=news.php method=post>
    <table border=0>
    <tr> <td> Password(obbligatoria): </td><td> <input type=text name=passwd size=30> </td></tr>
    <tr> <td> Oggetto: </td><td> <input type=text name=subject size=30> </td></tr>
    <tr> <td> ID Articolo: </td><td> <input type=text name=article_id value=<? echo date("Y_m_j_is"); ?> size=30> </td></tr>
    <tr> <td> Data e ora: </td><td> <textarea name=date rows=2 cols=30 wrap=soft><? echo date("m-j-Y H:i"); ?></textarea> </td></tr>
    <tr> <td> Riassunto: </td><td> <textarea name=summary rows=2 cols=40 wrap=soft></textarea> </td></tr>
    <tr><td></td><td><br>
    
    <script type="text/javascript">
    <!--
      update();
    //-->
    </script><br><br></td></tr>
    <tr><td>
    
    <script type="text/javascript">
    <!--
      update();
    //-->
    </script>
    		</td>
    	</tr>
    </table>
    <input type=submit name=submit value="Aggiungi RSS">
    </form>
    
    <p>
    
    </body>
    Il file latest.php invece è questo:
    Codice:
    <?
    
            require('config.php'); 
    
    	$filename = "article_summary.xml";
    
    	#- open article summaries
    	if(file_exists($filename)){
    		$fh = fopen($filename, "r");
    		$old_news = fread($fh, filesize($filename));
    		fclose($fh);
    	}
    
     
    	#- get first five article
    	$articles = explode("<rss version='2.0'>", $old_news);
    
    	$i=0;
    	foreach ( $articles as $article ){
    		if(count($articles)>$i){
    			if($max_latest >= $i++){
    				print $article;
    			}
    		}
    	}
    
    ?>
    Ci sono altri file ma mi pare di capire che biosgona agire sul file latest.php
    poi se eventualmente hai bisogno degli altri file te li posto pure!
    Grazie ancora...6 un grandeeeeee!!!

  4. #4
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Il problema è in questa riga di news.php
    Codice PHP:
    fwrite($fh, "\n<rss version='2.0'>\n$news $old_news");
    E' un approccio troppo semplicistico alla cosa e chiaramente non funziona. Per trattare con l'XML dovresti usare le apposite librerie DOM, oppure andare di sostituizioni.

    In questo caso potresti cavartela con una cosa del genere, da inserire in add_article():

    Codice PHP:
    fwrite($fh, "\n<rss version='2.0'>\n".str_replace('</rss>', $news.'</rss>' , $oldnews));
    Non l'ho provato, però dovrebbe funzionare.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  5. #5
    Guest

    Predefinito

    Non funziona.
    Ora al posto di aggiungere tutto l'articolo aggiunge solo la stringa:
    Codice:
    <rss version='2.0'>
    uff...grazie ancoraaaa!!

  6. #6
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Ho dimenticato un underscore...

    Codice PHP:
    fwrite($fh, "\n<rss version='2.0'>\n".str_replace('</rss>', $news.'</rss>' , $old_news));


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  7. #7
    Guest

    Predefinito

    fa sempre la stessa cosa, ma forse sono io che sbaglio.
    Ti posto quindi il nuovo file news.php come dovrebbe venire:
    Codice:
    <body>
    <basefont size=2 face=arial>
    
    <b>Aggiungi Articolo</b>
    <?
            include ("template.inc");
            include ("config.php");
    
    	$summary_template = "t_summary.xml";
    	$max_summary = 0;
    
    	function summary_page ($subject, $date, $summary, $article_id)
    	{
    		global $summary_template;
            	$t = new Template();
            	$t->set_file("SummaryPage", $summary_template);
    		$date = nl2br($date);
    		$summary =  nl2br($summary);	 
    		$t->set_var( array(
    				"subject" => $subject,
    				"date"    => $date,
    				"summary" => $summary,
    				));
    		$t->parse("Summary", "SummaryPage");
    		return $t->get_var("Summary");
    	}
    
    	function add_article($filename, $news)
    	{
    
    		if(file_exists($filename)){
    			$fh = fopen($filename, "r");
    			$old_news = fread($fh, filesize($filename));
    			fclose($fh); 
    		}
    
    		/* TODO: Multipage articles
    			preg_match_all("<rss version='2.0'>", $old_news, $matches;
    		
    			if( count($matches[0]) >= $max_summary){
    				$oldfilename = $filename.($matches[0][0]+1);
    			} 
    		*/
    
    		$fh = fopen($filename, "w");
    		$news = stripslashes($news);
    		fwrite($fh, "\n<rss version='2.0'>\n".str_replace('</rss>', $news.'</rss>' , $old_news));  
    
    
    		fclose($fh);
    	}
    
    ?>
    
    <?
    	if(strcmp($subject, "")){	
    		if(!(strcmp($passwd, $password))){	
    			add_article("article_summary.xml", summary_page($subject, $date, $summary, $article_id));
    			echo "<p> L'articolo è stato aggiunto con successo. <p>";
    		}else{
    			echo "<p><b> La Password è errata! </b>";
    		}
    	}
    
    
    ?>
    <body>
    
    <script type="text/javascript" src="file.js"></script>
    <form name=news action=news.php method=post>
    <table border=0>
    <tr> <td> Password(obbligatoria): </td><td> <input type=text name=passwd size=30> </td></tr>
    <tr> <td> Oggetto: </td><td> <input type=text name=subject size=30> </td></tr>
    <tr> <td> ID Articolo: </td><td> <input type=text name=article_id value=<? echo date("Y_m_j_is"); ?> size=30> </td></tr>
    <tr> <td> Data e ora: </td><td> <textarea name=date rows=2 cols=30 wrap=soft><? echo date("m-j-Y H:i"); ?></textarea> </td></tr>
    <tr> <td> Riassunto: </td><td> <textarea name=summary rows=2 cols=40 wrap=soft></textarea> </td></tr>
    <tr><td></td><td><br>
    
    <script type="text/javascript">
    <!--
      update();
    //-->
    </script><br><br></td></tr>
    <tr><td>
    
    <script type="text/javascript">
    <!--
      update();
    //-->
    </script>
    		</td>
    	</tr>
    </table>
    <input type=submit name=submit value="Aggiungi RSS">
    </form>
    
    <p>
    
    </body>
    Spero sia corretto...grazie!

  8. #8
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Ho fatto una prova e il codice è di per sé corretto. L'unico motivo che vedo per cui non possa funzionare è che il file in cui vuoi tenere il feed sia vuoto. In quel caso non c'è nessuna stringa "</rss>" a cui agganciarsi per fare la sostituzione. Prova a controllare.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  9. #9
    Guest

    Predefinito

    ok...funziona alla perfezione se può essere utile lo posso anke postare per intero!!! Grazie mille...6 stato di grsndissimo aiuto!!!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •