Seite 1 von 1

RSS Creator und Bilder

Verfasst: Di 17. Jan 2017, 15:19
von steve04
Hallo,
ich möchte gern im RSS-Feed Bilder mit ausgeben wie es zum Beispiel der Spiegel macht: http://www.spiegel.de/index.rss
Bisher habe ich in einigen Contenido-Installationen das Standard-RSS-Creator-Modul verwendet. Die Ausgabe von Überschrift und Text klappt auch gut. Nur, wie ich die Bilder z.B. aus einem CMS_IMGEDITOR in den Feed schreiben lassen kann, habe ich keine Ahnung.
Vielen Dank für alle Hinweise!
Stephan

Re: RSS Creator und Bilder

Verfasst: Di 17. Jan 2017, 16:09
von rethus
Schaust du dir den RSS-Feed genauer an, siehst du wie Sie die Bilder einbinden:

Code: Alles auswählen

<image>
<title>SPIEGEL ONLINE</title>
<link>http://www.spiegel.de</link>
<url>http://www.spiegel.de/static/sys/logo_120x61.gif</url>
</image>
In deinem Creator musst du demnach lediglich dein CMS_IMG so aufdröseln, das dieses Tag-Konstrukt dabei heraus kommt.

Re: RSS Creator und Bilder

Verfasst: Do 19. Jan 2017, 09:51
von steve04
Hallo,

danke für den Schnellschuss. Aber manchmal hilft es, sich vorher anzuschaun, worüber man schreibt... :wink:

Das Modul content_rss_creator, das mit der Standard-Installation kommt, leistet m.E. eigentlich nur die Konfiguration des RSS-Feeds, der generiert werden soll. Das tut er für die einzelnen RSS-Items mit Hilfe der Teaser-Funktionen. Dort kann ich dann die auszulesenden Content Elemente wie z.B. CMS_HTMLHEAD[1] wählen. Wenn der Artikel mit dem Modul aufgerufen wird, stößt er die Erzeugung des Feeds an, ohne dass das Modul selbst Code dafür enthalten würde. Ich vermute, dass das irgendwo im Core passiert.
In der Teaser-Konfiguration kann ich zwar auch ein CMS Element vom Typ CMS_IMG auswählen. Das wird beim Artikel im Backend dann sogar dargestellt. Aber in der RSS-Datei, die standard-mäßig nach /xml/rss.xml geschrieben wird, taucht kein Abschnitt dazu auf.

Ich bin nicht so verwegen, im Core herumschreiben zu wollen. Also: Hat jemand eine Idee, wie ich Contenido überrede, die Bild-URL in den Feed zu schreiben?

Vielen Dank im Voraus!
Stephan

Re: RSS Creator und Bilder

Verfasst: Do 19. Jan 2017, 13:11
von rethus
Ich gehe mal davon aus, du meinst das Modul hier:
https://git.contenido.org/projects/CON/ ... output.php

Wenn es so ist... das ist ein "normales" Modul. Wenn du da etwas anpassen möchtest, hat das in keinster Weise etwas mit Anpassungen im Core von Contenido zu tun.

Ab Zeile 65 siehst wird die RSS-Ausgabe vorbereitet. Alles was in deinem Feed zu finden sein wird, wird durch die folgenden Zeilen erstellt.
Zeile 81 zum Beispiel ließt E I N Bild aus, und zwar nur das mit der ID=1.
Das bedeutet, wenn in deinem Artikel nicht CMS_IMG[1] gesetzt ist, wird dieses auch nicht im RSS-Feed erscheinen. Welche Daten gesetzt sind siehst du im Tab "Rohdaten" des Artikels.

Hoffe das hilft dir ein wenig weiter, wenn nicht bitte detaillierter Fragen.

Re: RSS Creator und Bilder

Verfasst: Do 19. Jan 2017, 14:29
von steve04
Hallo rethus, vielen Dank, dass Du Dir das Modul angeschaut hast... :wink:
Das CMS_IMG[1] in Zeile 81 liest nach meinem Verständnis ein Bild aus, das den Channel "garniert". Genauso wie die Zeilen darüber den Titel, eine Beschreibung und einen Link für den Channel auslesen.

Mir geht es aber um Bilder für jedes item in der RSS-Liste. Das kann dann nach meinem Verständnis erst mit der Schleife (foreach) ab Zeile 93 zu tun haben. Ich habe Folgendes probiert:
In diese Schleife habe ich zwei Zeilen eingefügt.

Code: Alles auswählen

 99 $rssitemimg = $article->getContent('IMG', 500);
104 $child->image = $rssitemimg;
Bei den aufzulistenden Artikeln gibt es in der Vorlage ein Modul content_image mit CMS_IMG Index 500.

Durch diese Änderung wird tatsächlich in die rss.xml pro item ein neuer Abschnitt geschrieben

Code: Alles auswählen

<image></image>
Juhu! Ein erster Erfolg!

Problem 1: Es wird in das image Tag kein Wert, also keine Bild-URL geschrieben. Der Index 500 stimmt definitiv. Und da ist auch im Artikel ein Bild angegeben. Was kann hier falsch sein?
Problem 2: In der XML soll ja am Schluss nicht "<image> </image>" stehen, sondern "<content:encoded> </content:encoded>". Wenn ich das an die Stelle des image setze, haben wir wegen des Doppelpunktes kein valides PHP mehr. Was kann man da tun?

Ich bin mir sicher, dass das Problem auch andere interessiert. Wir sollten dran bleiben.

Danke schon mal,
Stephan

Re: RSS Creator und Bilder

Verfasst: Do 19. Jan 2017, 17:05
von rethus
steve04 hat geschrieben: Problem 1: Es wird in das image Tag kein Wert, also keine Bild-URL geschrieben. Der Index 500 stimmt definitiv. Und da ist auch im Artikel ein Bild angegeben. Was kann hier falsch sein?
VErsuch es mal mit CMS_IMG in Zeile:

Code: Alles auswählen

99 $rssitemimg = $article->getContent('CMS_IMG', 500); 
steve04 hat geschrieben: Problem 2: In der XML soll ja am Schluss nicht "<image> </image>" stehen, sondern "<content:encoded> </content:encoded>". Wenn ich das an die Stelle des image setze, haben wir wegen des Doppelpunktes kein valides PHP mehr. Was kann man da tun?
Da wirst du wohl die simpleXML-Methoden nutzen müssen: http://php.net/manual/en/simplexmlelement.children.php, oder den Input encoden/escapen

Fiktives Beispiel:

Code: Alles auswählen

$e_content     = $ritem->children("content", true);
$e_encoded     = (string)$e_content->encoded;
Quelle: http://stackoverflow.com/questions/3346 ... entencoded

Re: RSS Creator und Bilder

Verfasst: Di 31. Jan 2017, 11:55
von steve04
Vielen Dank zunächst für die Auskünfte. Ich hatte gerade keine Zeit, um sie zu testen. Ich bleibe aber dran.
Bis bald,
Stephan