This is an old revision of the document!


RSS-Feed der News (für Fb, G+...)

FIXME translate


Forum: http://forum.phpwcms.org/viewtopic.php?f=16&t=17842&p=136700
Webseite: http://www.enym.com/artikel/20121211-54/rss-feed-fuer-news-items-in-phpwcms.html
Danke an: Marceau & phalancs für diese Lösung

Autor: Robert

Verzeichnis: /

Beschreibung

Mit diesem Script ist es möglich aus den News einen RSS-Feed zu generieren. Die Datei kann manuell oder durch einbindung in bspw. die index.php generiert werden. Anpassung sind in den ersten fünf Zeile bei 'CONFIGURATION' vorzunehmen. <code php|h news_rss.php V1.5:|h> <? function mkRSS () { CONFIGURATION

$news_aid = 54; //ARTICLEID OF NEWSARTICLE
$news_alias = "artikel"; //ARTICLEALIAS OF NEWSARTICLE
$title = "RSS FEED";
$description = "Newsfeed - ".$_SERVER['SERVER_NAME'];
//END OF CONFIGURATION

//=======================================================  
require_once ('config/phpwcms/conf.inc.php');
$itemTitle = "cnt_title"; 
$itemText = "cnt_teasertext";
$itemDate = "cnt_created";
$itemOwner = "cnt_editor";
$itemAlias = "cnt_alias"; 
$sql="SELECT * FROM phpwcms_content WHERE cnt_module = 'news' AND cnt_status = 1 ORDER BY cnt_created DESC;";

Erzeugen des RSS-Inhaltes: encoding='UTF-8' $rssHeader='<?xml version=“1.0” encoding=“ISO-8859-1” ?> <rss version=“2.0”> <channel> <title>'.$title.'</title> <description>'.$description.'</description> <language>'.$phpwcms['default_lang'].'</language> <link>'.$phpwcms['site'].'</link> '; $rssFooter='</channel> </rss>'; GET DATA

 $dbLink = mysql_connect ($phpwcms['db_host'],$phpwcms['db_user'],$phpwcms['db_pass']) or die (mysql_error());
 $setdb = mysql_select_db($phpwcms['db_table'],$dbLink) or die (mysql_error());
 $result=mysql_query($sql,$dbLink) or die(mysql_error());
 
 $content=$rssHeader;
 while($row=mysql_fetch_array($result)){
        
        $row[$itemText] = str_replace("ü","ü",$row[$itemText]);
        $row[$itemText] = str_replace("ü","ü",$row[$itemText]);
        $row[$itemText] = str_replace("ö","ö",$row[$itemText]);
        $row[$itemText] = str_replace("ä","ä",$row[$itemText]);
        $row[$itemText] = str_replace("ä","ä",$row[$itemText]);
        $row[$itemText] = str_replace("ß","ss",$row[$itemText]);
        $row[$itemText] = str_replace("<p>","",$row[$itemText]);
        $row[$itemText] = str_replace("</p>","",$row[$itemText]);
        //$row[$itemText] = str_replace(" />",">",$row[$itemText]);
        //$row[$itemText] = str_replace("<br>","",$row[$itemText]);
        //$row[$itemText] = str_replace("</div>","",$row[$itemText]);
        //$row[$itemText] = preg_replace("(<img src=|border=|width=|height=|style=|alt=|title= >)","",$row[$itemText]);  
        
        $titel=substr ($row[$itemTitle], 0, 150);
        $text=substr ($row[$itemText], 0, 1000);
        
        $itemLink= $phpwcms['site'];
        
        $itemdate1 = date("Ymd", $row[$itemDate]);
        $itemDate2 = date("D, d M Y H:i:s O", $row[$itemDate]);
        $itemLink = $phpwcms['site'].'index.php?'.$news_alias.'&newsdetail='.$itemdate1.'-'.$news_aid.'_'.rawurlencode($row[$itemAlias]);
        $content .= "<item>
        <title>".$titel."</title>
        <description><![CDATA[".$text."]]></description>
        <link>$itemLink</link>
        <author>$row[$itemOwner]</author>
        <pubDate>$itemDate2</pubDate>   
        </item>
        ";
 }
 
 $content.=$rssFooter;
 
htmlspecialchars($content);
header('Content-Type: text/xml');
print($content);

return;
 

}

mkRSS();

?> </code>

news_rss.php V1.4:

    <?
    function mkRSS () {
 
    require_once ('config/phpwcms/conf.inc.php');
 
 
       ////KONFIGURATION (diese Variablen müssen angepasst werden):
       $dbServer = $phpwcms['db_host'];           // meist localhost)
       $dbName = $phpwcms['db_table'];            // name der Datenbank
       $dbUser = $phpwcms['db_user'];                 // Datenbankbenutzer
       $dbPassword = $phpwcms['db_pass'];             // Passwort
       $tableName = "phpwcms_content";     // Tabellenname der Tab., aus der die Daten entnommen werden
 
       //$lines="10";              // Anzahl anzuzeigender Datensätze
       $filename = "content/rss/news";       // zum Beispiel news !! ohne Extension !!
       $title = "News";     // Titel des RSS-Feeds
       $description = "Newsfeed - ".$_SERVER['SERVER_NAME'];     //Was zeigt das RSS-Feed?
       $language= $phpwcms['default_lang'];           //Sprachkürzel
       $link = $phpwcms['site']; //Link
 
       $itemTitle = "cnt_title"; //Spaltenname aus der DB, wo der Titel des einzelnen Items steht
       $itemText = "cnt_teasertext";  //Spaltenname aus der DB, wo der Text des einzelnen Items steht
 
       // das SQL-Statement muss an die eigenen Erfordernisse angepasst werden
       $sql="SELECT *
       FROM `phpwcms_content`
       WHERE cnt_module = 'news'
       AND cnt_status = '1';";
 
    // Bitte beachten, dass in der Zeile 45 noch die Variable $itemLink angepasst werden muss.
    // ENDE KONFIGURATION
 
    // DOCUMENT_ROOT wird automatisch ermittelt
       $siteRoot = substr_replace ($_SERVER[DOCUMENT_ROOT].$_SERVER["PHP_SELF"],
                  "",strrpos ($_SERVER[DOCUMENT_ROOT].$_SERVER["PHP_SELF"], "/")+1);
 
    //Erzeugen des RSS-Inhaltes:
       $rssHeader="<?xml version='1.0' encoding='ISO-8859-1' ?>
                  <rss version='2.0'>
                  <channel>
                  <title>".$title."</title>
                  <description>".$description."</description>
                  <language>".$language."</language>
                  <link>$link</link>
                  ";
       $rssFooter="</channel>
                  </rss>";
       $dbLink = mysql_connect ($dbServer,$dbUser,$dbPassword) or die (mysql_error());
       $setdb = mysql_select_db($dbName,$dbLink) or die (mysql_error());
       $result=mysql_query($sql,$dbLink) or die(mysql_error());
       $content=$rssHeader;
       while($row=mysql_fetch_array($result)){
 
       $row[$itemText] = str_replace("&uuml;","ü",$row[$itemText]); // ersetzt im Feed &uuml; durch ü
       $row[$itemText] = str_replace("ü","ü",$row[$itemText]);
       $row[$itemText] = str_replace("&ouml;","ö",$row[$itemText]);
       $row[$itemText] = str_replace("&auml;","ä",$row[$itemText]);
       $row[$itemText] = str_replace("ä","ä",$row[$itemText]);
       $row[$itemText] = str_replace("&szlig;","ss",$row[$itemText]);
       $row[$itemText] = str_replace("<p>","",$row[$itemText]);
       $row[$itemText] = str_replace("</p>","",$row[$itemText]);
       //$row[$itemText] = str_replace(" />",">",$row[$itemText]);
       //$row[$itemText] = str_replace("<br>","",$row[$itemText]);
       //$row[$itemText] = str_replace("</div>","",$row[$itemText]);
       //$row[$itemText] = preg_replace("(<img src=|border=|width=|height=|style=|alt=|title= >)","",$row[$itemText]);
 
          $titel=substr ($row[$itemTitle], 0, 150);  //$row anpassen! auch in der nächsten Zeile
          $text=substr ($row[$itemText], 0, 1000); //der Text darf höchstens 500 Zeichen lang sein
 
          $itemLink= $phpwcms['site'];   //dies ist ein Link, der DIREKT diesen Punkt auf der Homepage öffnet.
 
                             //Er muss entsprechend deines Scripts dynamisch gebildet werden.
          $content.="<item>
                    <title>".$titel."</title>
                    <description><![CDATA[".$text."]]></description>
                    <link>$itemLink</link>
                    </item>
                    ";
       }
       $content.=$rssFooter;
 
       // Datei wird geschrieben
       $fh=fopen ($siteRoot.$filename.".rss", "w");
       fputs ( $fh, $content);
       fclose($fh);
 
       // Datei wird umbenannt
       rename ($siteRoot.$filename.".rss", $siteRoot.$filename.".xml");
       return;
    }
 
    mkRSS();
    ?>
deutsch/andere-erweiterungen/rss-newsfeed.1355240618.txt.gz · Last modified: 2018/06/03 18:07 (external edit)
www.planmatrix.de www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0