Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 21. Dezember 2020 20:59

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.017
Webseite

[CMS V1] Erstellen eines RSS-Feeds für das News-Modul

Ja, ich weiß, RSS-Feeds sind nicht der letzte Schrei, ich wollt ihn aber unbedingt haben. Rolf hatte dazu in der Vergangenheit mal einen Artikel für das CGBlog-Modul gemacht

https://cmscanbesimple.org/blog/create- … t-a-module

Lässt sich auch für das News Modul verwenden, funktioniert aber nicht 1:1.

Daher hier meine Adaption

1. Erstelle einen benutzerdefinierten Tag mit dem Namen "content_type"

[== PHP ==]
$content_type = get_parameter_value($params, 'type');

if ($content_type != '') {
  if (version_compare(CMS_VERSION, '1.99-alpha0', '<')) {
    cmsms()->variables['content-type'] = $content_type; // 1.11 series
  } else {
    cmsms()->set_content_type($content_type); // 2.0 series
  }
}

2. Erstelle ein Seiten-Template mit folgendem Inhalt:

3. Erstelle im News Modul ein neues Zusammenfassungs-Template mit dem Namen "feed" und folgendem Inhalt:

[== Smarty ==]
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>

<atom:link href="{root_url}/feed.rss" rel="self" type="application/rss+xml" />
<title>{sitename}</title>
<link>{root_url}/news.html/</link>
<description>Beschreibung des Feeds</description>
<copyright>Dein Name</copyright>
<generator>CMS/made simple</generator>

{foreach $items as $entry}
  <item>
    <title>{$entry->title|escape}</title>
    <description>{strip}
      {eval var=$entry->summary|default:$entry->content|strip_tags:false|escape|strip|truncate:400}
    {/strip}</description>
    <guid>{$entry->moreurl}</guid>
    <link>{$entry->moreurl}</link>
    <pubDate>{$entry->postdate|date_format:'%a, %d %b %Y %T %z'}</pubDate>
  </item>
{/foreach}

</channel>
</rss>

4. Erstelle eine neue Inhaltsseite mit dem Namen "Feed" mit dem Seiten-Template "blank". Deaktiviere außerdem die Optionen "durchsuchbar", "nicht im Menü" und "WYSIWYG".


5. Im Inhalt fügst du dann folgendes ein:

[== Smarty ==]
{content_type type='application/rss+xml'}
{News number='5' summarytemplate='feed'}

Gib im Feld "Seiten-URL" feed.rss ein. Anschließend kannst du den Feed via https://deine-webseite.de/feed.rss aufrufen.

6. Zur automatischen Erkennung des Feeds durch die Webbrowser füge dann noch im head-Bereich deiner Seiten-Templates folgendes ein:

[== HTML ==]
<link rel="alternate" type="application/rss+xml" title="Dein Titel" href="http://www.deine-webseite.de/feed.rss" />

Offline

#2 21. Dezember 2020 21:01

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.017
Webseite

Re: [CMS V1] Erstellen eines RSS-Feeds für das News-Modul

Funktioniert vermutlich auch in CMSMS V2.

Die Kennzeichnung "CMS V1" ist einzig dem Umstand geschuldet, dass es die Version ist, die ich nutze.

Offline

#3 21. Dezember 2020 21:10

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.017
Webseite

Re: [CMS V1] Erstellen eines RSS-Feeds für das News-Modul

Andynium schrieb:

Lässt sich auch für das News Modul verwenden, funktioniert aber nicht 1:1.

Die Unterschiede beziehen sich zum einen auf eine Variable - {$entry->moreurl} des News Moduls anstatt {$entry->detail_url} für CGBlog.

Zum anderen wird für die Formatierung des Datums eine als deprecated klassifizierte Datumsfunktion des CGExtensions Moduls als Modifier genutzt

{$entry->postdate|rfc_date}

Da ich dieses Modul aber nicht verwende, habe ich dies durch

{$entry->postdate|date_format:'%a, %d %b %Y %T %z'}

ersetzt.

Offline