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
Version: r528 und kleiner

Verzeichnis: /

Beschreibung

Mit diesem Script ist es möglich aus den News einen RSS-Feed zu generieren.

V1.5

Diese Version generiert zur Laufzeit einen RSS Feed der News und gibt ihn aus. Anpassung sind in den ersten fünf Zeile bei CONFIGURATION vorzunehmen.

news_rss.php V1.5 - Erzeugung zur Laufzeit:

<?
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();
 
?>

V1.4

Diese Version speichert eine Datei im jeweils angegebenen Order ab. Generierung kann bspw. durch einbettung in die index.php erreicht werden. Einstellungen müßen im GESAMTEN script vorgenommen werden.

news_rss.php V1.4 - Generierung in Ordner:

    <?
    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.txt · Last modified: 2012/12/11 16:50 by Robert
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