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=8&t=18505&start=15
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.

Datei mit dem Inhalt erstellen:

    <?
    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.1346681130.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