Page 1 of 2

RSS Feed aus Contentpart News

Posted: Thu 18. Sep 2008, 10:23
by Marceau
Guten Morgen.
Nach längerer Abwesenheit (hatte viel mit xt:Commerce zu tun) melde ich mich gleich mit einer Frage zurück:

Ist es möglich aus dem Contentpart News einen RSS-Feed zu generieren!? Hat es schonmal jemand gemacht? Habe da großes Interesse dran.

Liebe Grüße

Re: RSS Feed aus Contentpart News

Posted: Thu 18. Sep 2008, 12:00
by Marceau
Okay ich habe eine Möglichkeit gefunden. Zwar mit nem "externen" Script, aber funzt trotzdem subba :)
Wenn Interesse besteht, poste ich es noch...

Greetz Marceau

Re: RSS Feed aus Contentpart News

Posted: Thu 18. Sep 2008, 12:08
by flip-flop
Bitte posten und wenn möglich eine kleine Erklärung.

Knut :D

Re: RSS Feed aus Contentpart News

Posted: Thu 18. Sep 2008, 13:52
by Marceau
Okay dann versuche ich das Ganze mal. Ich hoffe es ist verständlich und es kommt rüber.
Im Grunde genommen wird in die index.php eine Datei inkludiert so um Zeile 60:

Code: Select all

// Einfügen, damit die Feeddatei immer wieder aktualisiert wird
require('Verzeichnis/rss.php');
In dieser rss.php wird eine Verbindung zur DB aufgebaut und gewünschte Tabellen abgefragt, und die feed-Datei erstellt bzw immer wieder aktualisiert.

rss.php

Code: Select all

<?
function mkRSS () {
	////KONFIGURATION (diese Variablen müssen angepasst werden):
   $dbServer = "localhost";  			// meist localhost)
   $dbName = "";         	// name der Datenbank
   $dbUser = "";           		// Datenbankbenutzer
   $dbPassword = ""; 				// Passwort
   $tableName = "phpwcms_content";     // Tabellenname der Tab., aus der die Daten entnommen werden
   //$lines="10";              // Anzahl anzuzeigender Datensätze
   $filename = "news";       // zum Beispiel news !! ohne Extension !!
   $title = "News";     // Titel des RSS-Feeds
   $description = "Newsfeed";     //Was zeigt das RSS-Feed?
   $language="de";           //Sprachkürzel
   $link="http://www.domain.de"; //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="http://www.domain.de";   //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();
?>
Der Ordner, wo die news.xml liegen soll braucht unbedingt Schreibrechte, sonst bekommt ihr nen Fehler ausgespuckt.

Jetzt müsst ihr in eurem Template eigentlich nur noch in den Kopfbereich folgenden Tag schreiben, damit das Feed-Symbol in der Browser-Adresszeile angezeigt wird:

Code: Select all

<link rel="alternate" type="application/rss+xml" title="Title" href="/news.xml" />
Dann sollte es eigtl funktionieren... ;)

Liebe Grüße und viel Spass

Marco

Re: RSS Feed aus Contentpart News

Posted: Wed 8. Jun 2011, 11:51
by motix
Hallo zusammen, super sache dies in einem eignen Feed zu presentieren.

Wenn ich dies bei der aktuellen Version von phpWCMS mache geht da gar nichts mehr.

Ist dies so oder mache ich generell einen Anwendungs Fehler?


Danke Gruss M

Re: RSS Feed aus Contentpart News

Posted: Thu 23. Feb 2012, 01:51
by phalancs
Danke, funktioniert auch mit der neuesten Version wunderbar.

1. Datenbankdaten eingeben
2. Filename spezifizieren/ ggf. unterordner angeben: "content/rss/news"
3. der angesprochenene ordner muss beschreibbar sein!
3. php datei testweise aufrufen oder den aufruf in die iqndex php schreiben
4. die xml datei ist nun mit allen daten erstellt

Wenn ihr diese Version nehmt, braucht ihr nichts anzupassen, es sei denn ihr wollt den Titel des Feeds ändern.

Code: Select all

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

Re: RSS Feed aus Contentpart News

Posted: Mon 3. Sep 2012, 16:06
by nameless1
danke. nun klappt auch der soziale import.

habs mal ins howto gehoben.

Re: RSS Feed aus Contentpart News

Posted: Tue 11. Dec 2012, 16:01
by phalancs
Habe eine neue Version gestellt, kann gerne auch in die Doku übertragen werden, weitere Version packe ich immer auch auf die folgende Seite, da ich dort und bei Git die Dateien pflegen werde:

http://www.enym.com/artikel/20121211-54 ... pwcms.html

Re: RSS Feed aus Contentpart News

Posted: Tue 11. Dec 2012, 16:33
by nameless1
danke phalancs. ich übernehme den übertrag mit verweis auf deine webseite im wiki.

nml1

Re: RSS Feed aus Contentpart News

Posted: Tue 11. Dec 2012, 16:44
by phalancs
Danke :)

Re: RSS Feed aus Contentpart News

Posted: Thu 27. Mar 2014, 16:38
by update
Gibt's hier schon eine Änderung, sodass das mittlerweile auch in der feed-conf einstellbar ist, um die News mit in den normalen feed einfließen lassen zu können?

Re: RSS Feed aus Contentpart News

Posted: Thu 27. Mar 2014, 17:19
by nameless1
nö, aber sicher geplant :o

Re: RSS Feed aus Contentpart News

Posted: Sun 28. Feb 2016, 13:35
by klinge
Hallo

ich möchte aus dem content part news einen rss-feed erzeugen. Dazu habe ich hier http://www.enym.com/rss-feed-fur-news-items-in-phpwcms/ das neuste Script geholt. Leider habe ich es nicht geschafft.

Ich habe das script in den root Ordner kopiert und die Configuration so angepasst:

Code: Select all

//CONFIGURATION
$news_aid = 24; //ARTICLEID OF NEWSARTICLE
$news_alias = „home“; //ARTICLEALIAS OF NEWSARTICLE
$title = „Newsfeed“;
$description = „Newsfeed“;
//END OF CONFIGURATION
In der Index.php habe ich auf Zeile 69 folgenden Eintrag vorgenommen:

Code: Select all

require PHPWCMS_ROOT.'/news_rss.php';
Offenbar wird das Script aufgerufen, ich erhalte beim Aufruf der Seite nämlich Fehlermeldungen. Zum Beispiel:

Code: Select all

Parse error: syntax error, unexpected 'phpwcms_content' (T_STRING) in /home/attacber/www/al-be.ch/news_rss.php on line 21
Kann da jemand weiterhelfen?

Merci + Gruss

Re: RSS Feed aus Contentpart News

Posted: Sun 28. Feb 2016, 14:45
by Oliver Georgi
DB Präfix?

Re: RSS Feed aus Contentpart News

Posted: Sun 28. Feb 2016, 15:44
by klinge
und wo muss ich das eintragen?