Änderung der RSS Feeds ab CMSms 1.5

Deutschsprachiger Support für CMS Made Simple
Andiministrator

Änderung der RSS Feeds ab CMSms 1.5

Post by Andiministrator »

Mit CMSms 1.5 hat sich ja die RSS Funktionalität von CMSms geändert. Ab sofort läuft alles über das Modul CGFeedMaker. Andere Funktionen wurden entfernt, so funktionieren z.B. die RSS Feeds des News-Modul nicht mehr, wodurch auch die bisherigen RSS Feed URLs ungültig werden.

Vielleicht setzen ja noch andere außer mir RSS Feeds ein. Ich erkläre einfach mal, wie ich bei meinem Blog (http://andiministrator.de) vorgegangen bin. Dort habe ich das News Modul als Blog im Einsatz, bisher mit aktivierten RSS. Die RSS Feed URL hatte ich einmal im Header als Meta-Tag eingebunden und einmal neben jeder Haupt-Überschrift als RSS-Button.

Zuallererst musste ich die entsprechenden (aktuellen) Module "CGExtensions" und "CGFeedMaker" installieren/updaten. Gleich danach habe ich im Modul "CGFeedMaker" im Admin-Backend einen Feed hinzugefügt mit dem Namen "Blog". Das vorgefertigte Template habe ich zunächst so gelassen, da es als Beispiel für Feeds des Moduls "News" dient, was ja bei mir zum Einsatz kommt.

Im zweiten Schritt habe ich im Seiten-Template meinen alten RSS-Metatag ersetzt durch den Smarty-Platzhalter:

Code: Select all

{CGFeedMaker action='autodiscovery' feed='Blog'}
Dieser erzeugt den entsprechenden Meta-Tag dann automatisch.
Meine alte RSS-Feed-URL lautete http://andiministrator.de/News/rss, die neue lautet nun http://andiministrator.de/feeds/Blog. Entsprechend habe ich noch den Link meines RSS-Buttons geändert.

Im dritten und letzten Schritt habe ich schließlich in meine .htaccess eine Umleitung eingebaut, damit die bisherigen RSS-Feed-Abonnenten auch mit der alten URL noch meine RSS-Feeds bekommen. Die entsprechende Zeile lautet:

Code: Select all

# Rewrite Rule for Redirection of the old RSS Feed
RewriteRule ^News/rss$ feeds/Blog/ [NC,L]
Thats it - nun sollte alles wieder wie gewohnt funktionieren...
nhaack

Re: Änderung der RSS Feeds ab CMSms 1.5

Post by nhaack »

Ich glaube ich muss mich mal echt mehr mit CG Modulen auseinander setzen - da geht glaube ich 'ne verdammte Menge mit. Allerdings befindet sich in meiner Anwendungs-Philosophie fast jeglicher Content in Content-Seiten. Das geht sogar soweit, dass ich z.T. Konfigurationen und insb. AJAX Funktionen sowie dynamische JS Generierung über Content-Pages (z.T. mit extra Blöcken) realisiere. Da die Seiten i.d.R. auf recht performanten Servern liegen und selten größer als 100-200 Seiten sind konnte cih noch keine wirklichen Nachteile entdecken.

Jedenfalls setze ich RSS ebenfalls sehr intensiv ein, wobei ich diese immer durch den content_dump erstellen lasse (so wie auch z.B. Blogs). Kann ich mit CGFeedMaker eigentlich auch Feeds auf Basis von regulären Content-Strängen umsetzen? Hörte sich irgendwie so an.

Da ich fast 3 Jahre intensiv mit Day Comminque gearbeit habe und dort quasi nur Knoten-basiert gearbeitet wird, habe ich mir diese Art des Handlings angeeignet und finde sie auch für Kunden mit wenig Anwender-Know-How sehr praktisch da kein extra Modul-Handling erlernt werden muss.

Aber jetzt drifte ich so langsam ins Off-Topic ab ;).

Also danke für die Erläuterung. Ich denke für ein nächstes Projekt werde ich es mal ausprobieren. Die Einbindung las sich ja ganz easy.

Beste Grüße
Nils
Andiministrator

Re: Änderung der RSS Feeds ab CMSms 1.5

Post by Andiministrator »

Ich bin leider auch kein Experte in den CG-Modulen. Ich möchte mir sie aber auch mal näher anschauen, genau wie Dein Content-Dump-Modul. Habe meinen Umzugsstreß fast überstanden und hoffe, dass ich Anfang Januar mal dazu komme.
cyberman

Re: Änderung der RSS Feeds ab CMSms 1.5

Post by cyberman »

nhaack wrote: Kann ich mit CGFeedMaker eigentlich auch Feeds auf Basis von regulären Content-Strängen umsetzen?
Yep. Das ist der Grund für dieses (übrigens gesponsorte) Modul gewesen. Damit kannst du quasi alles zum Feed machen, Content, News, Cataloger ...
cyberman

Re: Änderung der RSS Feeds ab CMSms 1.5

Post by cyberman »

Andiministrator wrote: Ab sofort läuft alles über das Modul CGFeedMaker.
Die Übersetzung ist auch fertig

http://s3.amazonaws.com/cmsms/downloads ... r1.0.2.zip
User avatar
derAuge
Forum Members
Forum Members
Posts: 117
Joined: Thu Mar 22, 2007 3:49 pm
Location: Germany / Münsterland

Re: Änderung der RSS Feeds ab CMSms 1.5

Post by derAuge »

Hi Andiministrator 


danke für deinen Hinweiß

Leider funktionieret es auf deiner Seite nicht. Bekomme immer
Dieser Feed kann nicht angezeigt werden.

  Dieser Feed enthält Fehler.
    Wechseln Sie zur vorherigen Seite.



Gruß

derAuge
Andiministrator

Re: Änderung der RSS Feeds ab CMSms 1.5

Post by Andiministrator »

Hm, bei mir funktioniert es ohne Probleme. Welchen Feed-Reader verwendest Du?
nhaack

Re: Änderung der RSS Feeds ab CMSms 1.5

Post by nhaack »

Bei mir läuft der Feed auch problemlos mit Feedreader 3. Allerdings hat er es nicht durch den Validator (feedvalidator.org) geschafft. Sieht so aus als wenn bei den Einträgen aus März irgendwas mit dem Encoding nicht funktioniert hat. Die RSS Funktion vom IE mag sowas z.B. nicht und zeigt den Feed garnicht an, FF und Feedreader hatten damit kein Problem...

Quasi als wenn das "ä" aus "Mär" ANSI kodiert im UTF8 kodierten Feed steht... irgendwie sowas... (ich hasse Encoding-Gedöns) ???

Beste Grüße
Nils
Andiministrator

Re: Änderung der RSS Feeds ab CMSms 1.5

Post by Andiministrator »

Danke Euch für die Hinweise. Ich habe mir das jetzt einmal angeschaut, konnte aber erstmal nur eine Notlösung basteln.
Das Problem liegt bei der Datumsausgabe. Datums- und Zeitangaben werden bei mir standardmäßig in deutsch ausgegeben, so soll es ja auch sein. Im Fall CGFeedMaker macht das allerdings Probleme. Zum einen bemängelt der RSS Vaildator das deutsche Datumsformat für das Tag und zum anderen gibt es Probleme beim Encoding der Umlaute (Bsp. März).

Im RSS Template wird der Modifier "cms_date_format" verwendet:

Code: Select all

{$entry->postdate|cms_date_format:"%a, %d %b %Y %H:%M:%S %Z"}
Meine Notlösung bestand jetzt darin, mir einen zweiten Modifier namens "cms_date_format_en" anzulegen, der dann das englische Datums-Format ausgibt.

Es gelang mir bisher nicht, den Modifier "cms_date_format" zu überreden, für eine Ausgabe das Datum in einer anderen Sprache auszugeben. Habt Ihr eine Idee?
Andiministrator

Re: Änderung der RSS Feeds ab CMSms 1.5

Post by Andiministrator »

Für die, die sich für das Thema interessieren, hier noch 2 interessante Links.

Einmal hat hibr einen interessanten Thread im Forum zum Thema "CGFeedMaker: Feeds aus einer/mehreren Newskategorien erstellen" gestartet:
http://forum.cmsmadesimple.org/index.php/topic,28901.msg138647.html#msg138647

Zum anderen stellt Stephan Schmatz ein kostenloses EBook zum Thema RSS zur Verfügung:
http://www.schmatz.cc/weberfolg/index.php?option=com_content&view=article&id=296:mein-weihnachtsgeschenk-an-alle-kostenloses-e-book-zum-thema-rss&catid=35:rss&Itemid=42
cyberman

Re: Änderung der RSS Feeds ab CMSms 1.5

Post by cyberman »

Jedoch nur noch bis 31.12.2008, 24:00 kostenlos ...
nforcer
New Member
New Member
Posts: 3
Joined: Mon May 19, 2008 11:31 am

Re: Änderung der RSS Feeds ab CMSms 1.5

Post by nforcer »

Andiministrator wrote:
Im RSS Template wird der Modifier "cms_date_format" verwendet:

Code: Select all

{$entry->postdate|cms_date_format:"%a, %d %b %Y %H:%M:%S %Z"}
Meine Notlösung bestand jetzt darin, mir einen zweiten Modifier namens "cms_date_format_en" anzulegen, der dann das englische Datums-Format ausgibt.
Hi Andiministrator,

könntest du die Details deiner Notlösung posten? Also, wie ist der Code für dein eigenes Tag "cms_date_format_en"?

Vielen lieben Dank im Voraus,
André
symmetrix_01
Forum Members
Forum Members
Posts: 29
Joined: Thu Mar 20, 2008 11:32 am

Re: Änderung der RSS Feeds ab CMSms 1.5

Post by symmetrix_01 »

Uii, bei mir funktionierte nach dem Update erst mal nichts mehr in Punkto rss feed. Darauf hin habe ich cgfeedmaker auf Vers. 1.0.3 und cgextensions auf Vers. 1.14 aktualisiert. Hiernach habe ich mein Template wie nachfolgend angepasst:

Code: Select all

{* modified rss feed template *}
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" 
        xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

  <channel>
    <title>{$feed.title}</title>
    <atom:link href="{root_url}{$smarty.server.REQUEST_URI}" rel="self" type="application/rss+xml" />
    {if isset($feed.link) && !empty($feed.link)}<link>{$feed.link}</link>{/if}

    {if isset($feed.description) && !empty($feed.description)}<description>{$feed.description}</description>{/if}

    {if isset($feed.copyright) && !empty($feed.copyright)}<copyright>{$feed.copyright}</copyright>{/if}

    <generator>werauchimmer</generator>
    <language>de</language>
    <xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
    {if isset($admin_email)}<dc:creator>{$admin_email} ({$admin_user->firstname} {$admin_user->lastname})</dc:creator>{/if}

    {news assign='pubs'}

    {foreach from=$items item='entry'}

   <item>
      <title>{$entry->title}</title>
      <link>{$entry->moreurl}</link>
      {if isset($admin_email)}<dc:creator>{$admin_email} ({$admin_user->firstname} {$admin_user->lastname})</dc:creator>{/if}

      <pubDate>{$entry->postdate|us_date_format:"%a, %d %b %Y %H:%M:%S"} +0200</pubDate>
      <guid isPermaLink="false">{$entry->moreurl}</guid>
      <description><![CDATA[<p>{if isset($entry->summary)}{$entry->summary|trim|strip_tags|summarize:40}{else}{$entry->content|strip_tags|summarize:40}{/if}</p>]]></description>
      <wfw:commentRss>{root_url}{$smarty.server.REQUEST_URI}</wfw:commentRss>      
    </item>

    {/foreach}

  </channel>
</rss>
Mit diesen Änderungen ist wieder alles im Lot und valide (Link zum feed). Auf Bilder habe ich hier verzichtet...
Vielleicht hilft es ja dem ein oder anderen.
Übrigens, die Zeile

Code: Select all

{news assign='pubs'}
ohne assign hat bei mir lustige Auswirkungen gehabt. Das Datumsproblem habe ich etwas eigenwillig erschlagen ;-)
Probiert es am Besten selbst aus.
Einen guten Rutsch euch allen!
Andiministrator

Re: Änderung der RSS Feeds ab CMSms 1.5

Post by Andiministrator »

Super symmetrix_01 - funktioniert gut, Dein Template. Habs bei mir gleich eingebaut und noch etwas angepasst:

Code: Select all

{* modified rss feed template *}
<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" 
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

    <title>{$feed.title}</title>
    <atom:link href="{root_url}{$smarty.server.REQUEST_URI}" rel="self" type="application/rss+xml" />
    {if isset($feed.link) && !empty($feed.link)}<link>{$feed.link}</link>{/if}
    {if isset($feed.description) && !empty($feed.description)}<description>{$feed.description}</description>{/if}
    {if isset($feed.copyright) && !empty($feed.copyright)}<copyright>{$feed.copyright}</copyright>{/if}
    {if isset($generator)}<generator>{$generator}</generator>{/if}
    <language>de</language>
    <xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
    {if isset($admin_email)}<dc:creator>{$admin_email} ({$admin_user->firstname} {$admin_user->lastname})</dc:creator>{/if}
	{if isset($feed.image) && !empty($feed.image)}
        <image>
	        {if isset($feed.description) && !empty($feed.description)}<description>{$feed.description}</description>{/if}
            {if isset($feed.link) && !empty($feed.link)}<link>{$feed.link}</link>{/if}
            <title>{$feed.title}</title>
            <url>{$file_location}/{$feed.image}</url>
        </image>
    {/if}

    {news assign='pubs'}

    {foreach from=$items item='entry'}
   <item>
      <title>{$entry->title}</title>
      <link>{$entry->moreurl}</link>
      {if isset($admin_email)}<dc:creator>{$admin_email} ({$admin_user->firstname} {$admin_user->lastname})</dc:creator>{/if}
      <pubDate>{$entry->postdate|us_date_format:"%a, %d %b %Y %H:%M:%S"} +0200</pubDate>
      <guid isPermaLink="true">{$entry->moreurl}</guid>
      <description><![CDATA[<p>{if isset($entry->summary)}{$entry->summary|trim|strip_tags|summarize:100}{else}{$entry->content|strip_tags|summarize:100}{/if}</p>]]></description>
      <wfw:commentRss>{root_url}{$smarty.server.REQUEST_URI}</wfw:commentRss>      
    </item>
    {/foreach}

</channel>

</rss>
Den Modifier "us_date_format" gibts bei mir nicht, daher habe ich wieder den von mir abgeänderten im Template eingesetzt. Hier der Quelltext von meinem Modifier:

Code: Select all

<?php

function smarty_cms_modifier_cms_date_format_en($string, $format = '', $default_date = '') {

setlocale (LC_ALL, 'en_US');

if( $format == '' ) {
    $format = get_site_preference('defaultdateformat');
    if( $format == '' ) { $format = '%b %e, %Y'; }
    $uid = get_userid(false);
    if( $uid ) {
	    $tmp = get_preference($uid,'date_format_string');
	    if( $tmp != '' ) { $format = $tmp; }
	}
}

global $gCms;
$smarty =& $gCms->GetSmarty();
$config =& $gCms->GetConfig();
$fn = cms_join_path($config['root_path'],'lib','smarty','plugins','modifier.date_format.php');
if( !file_exists($fn) ) die();
require_once( $fn );

$ausgabe = smarty_modifier_date_format($string,$format,$default_date);
setlocale (LC_ALL, 'de_DE');
return $ausgabe;

}
// EOF
Das ganze muss als "modifier.cms_date_format_en.php" im Verzeichnis plugins abgelegt werden, dann sollte das obige RSS-Template gehen.
User avatar
hibr
Forum Members
Forum Members
Posts: 73
Joined: Fri Feb 08, 2008 11:22 pm

Re: Änderung der RSS Feeds ab CMSms 1.5

Post by hibr »

Bei mir (CMSms 1.5.1) hat CGFeedMaker 1.0.3 nach dem Update von 1.0.2 überhaupt nicht mehr funktioniert. 1.0.2 hatte leider out-of-the-box kein validen Feed produziert, darum hatte ich auf 1.0.3 geupdatet.

Trotz aller angewandten Tricks hier im Thread  habe ich es nicht geschafft einen funktionierenden Newsfeed mit CGFM 1.0.3 hinzukriegen. Bei mir werden trotz obiger Tipps keine Einträge im Feed angezeigt.

Ich habe aber eine andere Lösung gefunden, die zumindest mich zufriedenstellt und ein validen Newsfeed mit CGFeedMaker 1.0.2 zustande bringt:

1.) Downgrade auf CGFeedMaker 1.0.2
2.) Ggf. auf CGExtensions 1.14.1 updaten
3.) Das News-Feed-Template auf Voreinstellungen zurücksetzen.
4.) Zeile

Code: Select all

<pubDate>{$entry->postdate|date_format:"%a, %d %b %Y %H:%M:%S %Z"}</pubDate>
durch

Code: Select all

<pubDate>{$entry->postdate|rfc_date}</pubDate>
ersetzen. (Damit hat man das "Datumsproblem" für einen validen Feed gelöst)

5) Ersetze

Code: Select all

{if isset($admin_email)}<webMaster>{$admin_email}</webMaster>{/if}
mit

Code: Select all

{if isset($admin_email)}<webMaster>{$admin_email} (Webmaster)</webMaster>
Damit vermeidet man, dass der Validator einen fehlenden Realnamen bemerkt. BTW: Wenn ihr im CGFeedMaker-Reiter "Details" das Feld "Feed-Bearbeiter" ausfüllt, dann immer in der Form:

Code: Select all

email@adresse.tld (Realname oder Synonym)
6) Jetzt hat man einen validen und va. funktionierenden News-Feed, der mit den meisten Feedreadern funktionieren sollte.

Feed Validation Service "empfiehlt" aber noch einen Atom-Link im -Bereich einzufügen, um mit fast allen Feedreadern kompatibel zu sein.

Wenn man aber die Zeile:

Code: Select all

<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
vor dem -Bereich und

Code: Select all

<atom:link href="{root_url}{$smarty.server.REQUEST_URI}" rel="self" type="application/rss+xml" />
im -Bereich einfügt (siehe auch Template von symmetrix_01/Adiministrator), muss man Pretty-URLs verwenden, also "assume_mod_rewrite" und "use_hierarchy" in der config.php  auf "true" setzen, sonst hagelt es eine Fehlermeldung! Ggf. den Cache leeren nicht vergessen ;) Wer keine Pretty-URLs verwenden will/kann, muss ohne Atom auskommen, oder auf ein (voll funktionierendes) CGFM Upgrade warten.

Gruß Hani

PS: Ich habe mein(e) Template(s) hier angehängt.
Attachments

[The extension txt has been deactivated and can no longer be displayed.]

[The extension txt has been deactivated and can no longer be displayed.]

Last edited by hibr on Mon Jan 12, 2009 12:01 pm, edited 1 time in total.
Hanis Sammelsurium - How To's, Erfahrungs- und Meinungsberichte
Post Reply

Return to “German - Deutsch”