RSS und OFA

dbs

#87
Ich hatte hinter /media den slash noch nachträglich entfernt, kannst du rausnehmen aus dem code oben.

Im Browser brauchst dir die Feeds nicht ansehen, Chrome zeigt da nur code. Besorg dir für deinen Browser ein Plugin für Feeds, dann weißt besser was mal ankommen wird.

Datum sehe im FF in Klammern. Monat aber einstellig.

edit: Wahrscheinlich braucht pubDate ein bestimmtes Format.
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

astricia

Passt, auch wenn da immer noch // nach media steht... Aber im Internet Explorer (irgendwie der einzige Browser, der den RSS-Feed auch optisch darstellt.... oder gibts da noch was anderes?) kann man die Bilder korrekt sehen.

Wobei mir noch auffällt, dass das Datum (ist [FIELD_5] und habe ich zwischen <pubDate> und </pubDate> gesetzt), im IE nicht angezeigt wird! Im Firefox schon - aber vermutlich als reiner Text, und eben nicht als Datum... ? Wobei FIELD_5 schon ein Datumsfeld ist...

dbs

wegen media Ordner: versuch in include.php zeile 243
alt:
                                $values[$field_id] = WB_URL.$values[$field_id];

neu:
                                $values[$field_id] = WB_URL.'/media'.$values[$field_id];
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

astricia

ok - fast. Die Bilder-URL des Media-Verzeichnisses (das Bild wird jetzt über "Datei aus Mediaverzeichnis" eingefügt, nicht mehr über Bildupload) löst nicht auf. (Überschnitten... ja, kriegst du das noch hin?

Und PAGE_TITLE und PAGE_DESCRIPTION im Header werden auch nicht aufgelöst.

dbs

Ja, sieht besser aus. Man sieht, dass der media Ordner in den Bildadressen fehlt und deshalb nichts angezeigt wird.
Vielleicht kriegen wir das noch hin.
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

astricia

Ah ja jetzt - ich hatte dummerweise vorhin den <?xml ... Header in die header.htt eingefügt, um das zu testen.. nachdem ich das rausgenommen habe, funktioniert es anscheinend. Ich muss natürlich noch den Loop entsprechend anpassen... mal sehen.

dbs

Im Quelltext von
http://neu.management-kommunikation.de/modules/topnews/ofa_rss.php
ist das doppelt zu sehen:
<?xml version="1.0" encoding="utf-8"?><rss version="2.0">
<channel>


Das anynews heißt ja jetzt ofa_rss und wird in der ofa_rss.php aufgerufen (unten).
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

astricia

Wenn ich Page-ID und Section-ID auf die Werte des OFA-Moduls (also nicht die versteckte Seite mit dem ofa_rss Modul) setze, ändert sich die Fehlermeldung zu:

XML-Verarbeitungsfehler: XML- oder Text-Deklaration nicht am Beginn der Entität
Adresse: .../modules/topnews/ofa_rss.php
Zeile Nr. 13, Spalte 1:<?xml version="1.0" encoding="utf-8"?><rss version="2.0">
^

astricia

Wenn ich die versteckte Seite nicht brauche - auf welche Section ID bezieht sich denn dann der Aufruf in ofa_rss.php ??? Irgendwo muss ich doch das Anyitems aufrufen...?

dbs

Alles richtig bis auf die versteckte Seite. Brauchst du nicht.
- Snippet installieren
- ofa_rss.php in Ordner oneforall kopieren
- in index vom Template die genannte Zeile <link ... im head einfügen
- die Adresse aus <link aufrufen
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

astricia

Also noch mal langsam - ganz von vorn.

Ich habe die ofa_rss.zip installiert. Ich habe eine (versteckte) Seite RSS angelegt, die den folgenden Code-Aufruf hat:
if (function_exists('ofa_rss')) {
ofa_rss(117, 100, false, rss);
}


Section 117 ist genau der Abschnitt des OFA-Moduls, von dem ich den RSS-Feed ziehen will. Dieser Code-Abschnitt befindet sich auf der Page-ID 189, in der Section-ID 887.

Die ofa_rss.php habe ich direkt in das Verzeichnis des OFA-Moduls kopiert. Dort habe ich Page-ID 189 und Section-ID 887 eingetragen.

Was ist daran falsch?

Übrigens - wenn ich die (versteckte) RSS-Seite mit dem Code-Aufruf, wie oben beschrieben aufrufe, kommt ebenfalls schon ne Fehlermeldung:
There was an uncatched exception
Call to a member function numRows() on null
in line (194) of (/modules/ofa_rss/include.php):


Und die Zeile 194 der ofa_rss/include.php ist wie folgt:
if ($query_items->numRows() > 0) {

dbs

Es deutet für mich darauf hin, dass die section_id nicht stimmt und damit der modulname $mod_name fehlt.
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

astricia

Getestet. Bringt keinen Unterschied. Siehe hier:
http://neu.management-kommunikation.de/modules/topnews/ofa_rss.php

Das "fehlende Wurzelelement" deutet darauf hin, dass das <?xml ... ?> fehlt?

dbs

OK, neuer Versuch.
Im Anhang mein Snippet ofa_rss.zip (wie oneforall_anynews) und
ofa_rss.php (kommt in oneforall Ordner)
Aufruf in der index:
<link rel="alternate" type="application/rss+xml" title="OFA_RSS-Feed Test" href="<?php echo WB_URL?>/modules/oneforall/ofa_rss.php" />

page_id und section_id wieder in der ofa_rss.php anpassen oder in der URL mitsenden.

In dem Snippet wird der loop nicht in der include erstellt, sondern in extra tempates. Du kannst das also anpassen in ofa_rss/templates/rss.
Ein anderes Templates kannst du nutzen, wenn du in der ofa_rss.php unten das snippet anders aufrufst:
<?php 
        
// Item loop
        
ofa_rss($section_id$num_of_items=5$order 'ASC'$template 'anderes_templates-statt-rss'); 

[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

astricia

Und die angemäkelte Zeile 90 der include.php ist die folgende:

if ($query_fields->numRows() > 0) {

Die sieht in anderen OFA-Anyitems-Modulen genauso aus, daran habe ich auch nichts verändert.

astricia

Da steht dies:
// Function to display featured events of the events module (invoke function from template or code page)
if (!function_exists('rss')) {
function rss($section_id, $num_of_items = 100, $order = true) {


dbs

Darf ich fragen was in der include.php oben steht?
// Function to display featured events of the events module (invoke function from template or code page)
if (!function_exists('oneforall_anyitems')) {
    function oneforall_anyitems(...
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

evaki

Na, dann noch eine hinterher  :-D
XML-Interpretation fehlgeschlagen

XML-Interpretation fehlgeschlagen: Syntaxfehler (Zeile: 16, Zeichen: 0)

Dokument als HTML neu analysieren.
Fehler:
unexpected end-of-file
Spezifikation:
http://www.w3.org/TR/REC-xml/
13: There was an uncatched exception<br />
14: Call to a member function numRows() on null<br />
15: in line (90) of (/modules/rss/include.php):<br />


MfG. Evaki

astricia

Habe eine extra oneforall_anyitems erstellt, die rss heißt. Das habe ich in Zeile 92 der rss-dbs2.php auch so geändert - richtig? Bei der include.php von rss habe ich darauf geachtet, dass header und footer leer sind.

Trotzdem bekomme ich in Firefox diese Fehlermeldung:
XML-Verarbeitungsfehler: Kein Wurzel-Element gefunden
Adresse: http://.../rss-dbs2.php
Zeile Nr. 16, Spalte 1:
^


In Chrome sieht das anders aus, aber nicht besser:
This page contains the following errors:
error on line 15 at column 50: Extra content at the end of the document
Below is a rendering of the page up to the first error.
PAGE_TITLE - ... PAGE_DESCRIPTION ...  WebsiteBaker CMS There was an uncatched exception Call to a member function numRows() on null in line (90) of (/modules/rss/include.php):


Kannste dir auch gerne selbst angucken. Der rss-Aufruf ist wie folgt:
http://neu.management-kommunikation.de/modules/topnews/rss-dbs2.php

dbs

die rss.php kommt dahin wo die andere auch ist, ins OFA modul.
Mit Snippet meine ich oneforall_anyitems, das hast du sicherlich installiert, oder?
Mit den richtigen page_id und section_id sollte schon was zu sehen sein.

In der include.php vom Snippet oneforall_anyitems müsstest du $header und $footer noch leer machen.

Dachte eigentlich du duplizierst dir das Snippet, benennst es um und installierst unter anderem namen.
Dann müsstest auch in der rss unten den Aufruf ändern zum neuen Snippetnamen.

convert.php ändert wohl den Bindestrich im Modulnamen zu Unterstrich.
Hast mal auskommentiert die Zeile?
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

astricia

Hmm, habe den Inhalt deines Snippets jetzt noch mal neu eingefügt - vielleicht hatte ich ja einen Übertragungsfehler.

Page-ID und Section-ID habe ich angepasst. Jetzt kommt folgender Fehler auf einer gelben Seite:

XML-Verarbeitungsfehler: Kein Wurzel-Element gefunden
Adresse: http://.../rss-dbs2.php
Zeile Nr. 16, Spalte 1:
^

astricia

In Zeile 51 steht ja das Folgende:
require($inc_path.'/convert.php');

Wo kommt denn das convert.php her??? Was soll das sein?

astricia

Noch zu deiner Frage...

Quote from: dbs on July 03, 2019, 10:09:20 AM
Könntest auch mal deine rss anhängen, sieht für mich so aus als ob du was anderes hast als ich.

Ich hatte das, was Uwe mir in diesem Beitrag angehängt hatte:
https://forum.websitebaker.org/index.php/topic,31424.msg219678.html#msg219678


astricia

Das bringt keinen Unterschied. Wo soll ich das snippet denn eigentlich reinsetzen? Ich habe das jetzt in den Modul-Ordner des OFA-Moduls reinkopiert (wo auch die vorige rss-ofa.php drin stand..). Muss das woanders hin, oder ist das egal?

dbs

Ist mir schleierhaft.
In Zeile 28 habe ich versehentlich noch den block $_GET['page_id'] auskommentiert.
Mach den mal wieder wirksam.
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]