WBCE CMS – Way Better Content Editing.
You are not logged in.
Wir betreiben eine Vereinsseite. Das News-Modul (Startseite) gibt einen Feed heraus, der ProCalendar (nächster Termin) leider nicht auch. Dieser Termin wird über ein Droplet auf der Startseite angezeigt.
Im Mitgliedsbereich (registrierte User) werden auf einer bestimmten Seite nicht öffentliche Termine wie z. B. Geburtstage per Droplet angezeigt. Zusätzlich werden die letzten Foren-Beiträge (Modul WB-Forum bzw. Last Entries), die eigeloggten Besucher in der letzten Woche sowie die zuletzt geänderten Webseiten (Script im Code2-Modul) gelistet.
Nun habe ich hier und im anderen Forum gelesen, es gibt noch viele Feeds zu anderen Modulen wie Bakery, Gallery, Topics usw. Eigentlich bin ich baff, was es alles gibt. Nur was ich gern hätte nicht; ich hätte gern einen funktionierenden "rsswebsitefeed" (der auf AMASP ist total veraltet).
MrBaseman wollte, wenn ich das richtig vertanden habe, auch einen Feed für ...? Vielleicht gibt es eine Überlegung, ein "all-in-one-Feed" zu bauen, in dem die genutzten Module per Haken im Feed-Backend aktiviert werden könnten? Oder stelle ich mir als Nichtcoder das alles zu einfach vor?
Last edited by tomno399 (07.09.2016 06:47:02)
Kann mich nicht mehr genau daran erinnern... News vielleicht? Aber da könnte man ja auch auf topics umstellen und hätte damit das Featrue.
Vielleicht hab ich mal ein rss-Proxy-Modul vorgeschlagen, das rss-Feeds von verschiedenen Modulen oder auch externen Quellen sammelt und sie aggregiert wieder ausgibt? Das wäre im Grunde auch wonach du suchst. Ein Problem dabei ist jedoch dass alle Module einen RSS-Feed ausgeben können müssen, damit man die wiederum bündeln kann.
Vielleicht würde es aber auch schon ausreichen, Last modified pages ein bisschen aufzubohren und die Ausgabe im RSS-Format zu gestalten.
Wie eilig wäre es denn? Die Variante mit den last modified pages per RSS könnt ich mir vorstellen zu implementieren. Da hab ich nämlich selbst auch was davon, insbesondere wenn man dort News noch mit integriert (sowas in der Art wie Newslist nur eben als RSS)
Offline
Ich muss mich erst einmal korrigieren: Der Procalendar gibt einen funktionierenden RSS-Feed heraus!
Deine Idee mit dem "rss-Proxy-Modul" entspäche meinem Gedanken, wäre aber wohl eine Mammutaufgabe, die niemand so einfach aus dem Ärmel schüttelt.
Vielleicht würde es aber auch schon ausreichen, Last modified pages ein bisschen aufzubohren
Hmm, was hälst du von diesem Modul, wenn es laufen würde? Entspäche das nicht der Grundidee?
Ob es einfacher ist, Last-modified-Pages und die RSS-Ausgabe zu gestalten oder den RSS-Site-Feeder zum Laufen zu bringen, kann ich als Nichtcoder nicht entscheiden.
Deine "Newslist" macht bitte was genau? Ich bin da nicht wirklich schlau geworden. Und Zeit habe ich beliebig, es ist ja nur ein "Wunsch".
einfacher wäre es vielleicht, man adaptiert google_sitemap.php
Ich muss mich erst einmal korrigieren: Der Procalendar gibt einen funktionierenden RSS-Feed heraus!
Deine Idee mit dem "rss-Proxy-Modul" entspäche meinem Gedanken, wäre aber wohl eine Mammutaufgabe, die niemand so einfach aus dem Ärmel schüttelt.
da gäbe es vielleicht auch fertige Lösungen wie FreshRSS oder sefloss die man nur noch in ein Addon verpacken muss.
Hmm, was hälst du von diesem Modul, wenn es laufen würde? Entspäche das nicht der Grundidee?
RSS-Site-Feeder ist halt für WB 2.7 und bräuchte wohl einige Anpassungen für einen aktuellen Core. RSS News Feeder ist wohl mal aktualisiert worden. Vielleicht sieht man im Vergleich der beiden Module auch relativ schnell, was für RSS Site Feeder zu tun ist
Deine "Newslist" macht bitte was genau? Ich bin da nicht wirklich schlau geworden.
Es gibt eine Liste ähnlich wie Last Modified Pages aus, allerdings nicht für die geänderten Seiten sondern für die Einträge im News-Modul. (Titel, Datum und dahinter gelegt ein Link zu dem Beitrag). Als ich das in den Raum geworfen habe war mir der RSS News Feeder nicht präsent, der ja wohl genau sowas ist und dazu auch schon mit RSS-Output. Aber für einen generellen Feed von allen Seiten hilft uns das erstmal nicht weiter. Das war nur eine Idee, die ich bei der Gelegenheit mit weiter verfolgt hätte, wenn es das nicht sowieso schon gäbe :-)
einfacher wäre es vielleicht, man adaptiert google_sitemap.php
das wäre auch ne Idee.
wenn ich die Zeit finde, schau ich mir die Module mal genauer an, um einschätzen zu können, welches wohl der einfachste Weg ist.
Offline
Bin noch nicht dazu gekommen, das Thema weiter zu verfolgen (aber bald müsste ich wieder ein bisschen Zeit finden).
Das Thema RSS kam heut auch im WB Classic Forum auf: http://forum.websitebaker.org/index.php … 40.new#new
Offline
Das oberste Snippet im anderen Forum kannte ich nicht und prompt funktionierte es bei mir (nicht alles aber fast ;-). Damit hätten wir die News-, ProCalendar- und Last-modified-Websites-RSS lauffähig.
Und wie macht man nun eine Datei daraus? Ich hoffe auf
aber bald müsste ich wieder ein bisschen Zeit finden ...
Prima!
Last edited by tomno399 (28.07.2016 17:48:19)
bin jetzt mal dazu gekommen, den Code der verschiedenen Module grob zu sichten. Der grundsätzliche Aufbau von google sitemap würde die Daten von den ganzen Sections und Posts zusammensuchen und auch schon in eine ganze Reihe von Modulen rein gehen (News, Topics,...). Last-modified-rss rss-site-feeder und rss-news-feeder sowie die verschiedenen rss.php's aus den ganzen Modulen (Procalendar muss ich mir z.B. auch mal noch anschauen) enthalten unterschiedlichen Code zur Aufbereitung als RSS. Da kann natürlich je nach Modul ein bisschen was unterschiedliches sinnvoll sein... Ich versuch die nächsten Wochen mal daraus mal so ein "all-in-one-Feed" Modul zusammenzuschustern. Das erscheint mir jetzt doch einfacher als einen php-basierten rss-aggregator in ein Modul zu verpacken.
Offline
hier ist mal eine erste Version - noch ganz rudimentär getestet, und konfiguriert wird's mit einem einfachen config.php file, das man ins Modulverzeichnis mit ablegt, sofern man überhaupt was an den Standardeinstellungen ändern will.
Die Funktionsaufrufe will ich auf jeden Fall noch optimieren, auch die Limitierung der ausgegebenen RSS-Einträge ist noch nicht fertig, aber ich dachte, so als Zwischenstand kann ich die Version schon mal rausgeben.
Von den Modulen hab ich News ein klein wenig getestet. Kommentare werden nicht im Feed aufgenommen. Das wäre eventuell auch noch eine Erweiterung, aber die sollte dann wohl auf Wunsch auch abschaltbar sein. Die anderen Module hab ich selbst nicht in Produktivbetrieb und insofern wenig Erfahrung damit. Ich hab halt wie vorgeschlagen google-Sitemap als Vorlage genommen und daraus einen Feed mit dem befüttert was ich für sinnvoll gehalten habe.
Da sind vielleicht auch noch ein paar Bugs drin... Lasst es mich einfach wissen, was nicht funktioniert oder wo noch Funktionalitäten fehlen, oder welche Module noch zusätzlich unterstützt werden sollen.
Offline
hier eine aktualisierte Version:
Wie schon angekündigt hab ich die Funktionsaufrufe optimiert,
der include vom config-File hatte einen kleinen Bug, den ich behoben habe,
das Limit der Anzahl anzuzeigender Einträge im Feed wird jetzt berücksichtigt
Es gibt ein neues Array, mit dem man (auch private oder versteckte Seiten) explizit mit in den Feed aufnehmen kann
Offline
Ich würde das Modul gern mal testen, aber wie wird es überhaupt aufgrufen?
Im Modul ist eine view.php enthalten, die du einfach aufrufen kannst unter WB_URL/modules/rss-feed-all/view.php
Der Aufruf darin ist ganz einfach ein Funktionsaufruf RssFeedAll_Render(), den du natürlich auch anderswo plazieren kannst, z.B. wenn du eine versteckte Seite namens rss anlegst, die eine code- oder code2 section enthält und das Blank Template verwendet. In den Quellcode für die Seite kopierst du einfach den Inhalt der view.php rein und dein Feed ist unter WB_URL/pages/rss.php abrufbar.
Die Funktion RssFeedAll_Render() nimmt als Argument derzeit eine Variable $debug, die per Default auf FALSE steht. Übergibt man stattdessen TRUE, wird der Feed nicht im xml-Format ausgegeben sondern rudimentär html formatiert und etwas Statistik mit dazu ausgegeben, genau wie beim google_sitemap-Modul das ich als Vorlage genommen habe.
Offline
Prima, das Modul funktioniert wie angegeben. Nun hätte ich (als superadmin) gern anstelle von "// Get public WB pages" alle Seiten angezeigt, also auch hidden, private usw.
Wo kann ich das hinzufügen (bitte bedenken, ich bin kein Coder)?
die hidden und private-Seiten nur für dich als angemeldeten Superadmin anzeigen und nicht für andere User geht im Moment noch nicht. Das kann ich aber gern einbauen, ist kein großer Aufwand. Wenn du eine versteckte oder private Seite generell in den Feed mit aufnehmen willst, kannst du eine Datei namens config.php im Modulverzeichnis erstellen, in der du sowas wie
<?php
$RssFeedAll_include = array (3, 5, 7, 11);
stehen hast. Die Zahlen sind die Page_id der Seiten, die nicht public sind aber trotzdem im Feed erscheinen sollen.
Ein Beispiel hierfür hab ich selbst: Ich habe ein News-Modul auf einer versteckten Seite und binde es mit dem SectionPicker Droplet auf der Startseite ein. Damit wären alle News-Beiträge im Feed unterdrückt.
Eine Admin-Sonderbehandlung folgt wie gesagt in der nächsten Version
Last edited by mrbaseman (04.09.2016 22:48:23)
Offline
hier eine verbesserte Version mit zwei neuen Features:
- anstelle nur die öffentlich sichtbaren Seiten (visibility == 'public') in den Feed aufzunehmen wird geprüft, ob die Seite im aktuellen Kontext sichtbar ist, sprich: Wenn du als Administrator eingeloggt bist und daher alle Seiten sehen darfst, dann tauchen auch alle im Feed auf (Voraussetzung ist natürlich, dass die Session die gleiche ist - funktioniert also wenn man den Feed im Browser anschaut aber nicht unbedingt wenn man ein separates Programm verwendet, das mit dem Webserver evtl. eine eigene Session aufmacht)
- Analog zu den include und exclude Listen kann man jetzt auch speziell für Mitglieder der Admin-Gruppe und für den Superadmin Listen konfigurieren. Diese gelten zusätzlich zu den generellen Listen für alle. Um Seiten in der include Liste für Admins mit hinzuzufügen, reicht es die zusätzlichen page_id's aufzuführen, Um Einträge aus der Liste zu entfernen muss man einfach ein Minus voranstellen (negative page_id's gibt's ja nicht, also -3 bedeutet: "nimm page_id=3 aus der Liste heraus"), und bei Strings ist das Minus in den String einzuschließen ('-private' bedeutet: "nimm 'private' aus der Exludeliste heraus, wenn ein Admin den Feed liest"). Vermutlich ist durch das oben beschriebene Feature die Funktionalität mit den Listen gleich schon wieder obsolet geworden, aber vielleicht braucht's ja doch jemand
Ach ja: Um die Modul-eigene config.php aufzubauen empfehle ich einfach den Abschnitt in dem die Standardwerte gesetzt werden aus der include.php zu kopieren.
Offline
Hmm,
Die Zahlen sind die Page_id der Seiten, die nicht public sind aber trotzdem im Feed erscheinen sollen.
meine Intension war/ist eine andere. Page_IDs setzen bestehende Seiten voraus. Als Superadmin möchte ich aber gern wissen, was sich durch die anderen Admins (bei mir 6 Personen) geändert hat, welche Seiten neu erstellt wurden usw. Als Gesamtverantwortlicher für Corporate Identity or Corporate Design braucht man einen (schnellen) Überblick über Seiten-Inhaltsänderungen sowie Seiten-Neuerstellungen mit Hilfe aller verfügbaren Module. Die ganze Sitemap durchzuklicken wie bisher, sollte durch den Feed abgelöst werden. Das scheint er aber nicht zu können.
das kriegen wir schon noch hin... in der neuesten Version (siehe Anhang) kannst du auch Strings wie "private", "hidden", "registered" in die include-Liste aufnehmen - das sollte man natürlich nur für Admins freigeben (ansonsten müsste man den Zugriff anderweitig einschränken, z.B. via htaccess) - oder als Superadmin vielleicht auch "all" was sogar die gelöschten Seiten mit beinhaltet.
Vor allem hab ich auch die Config-Section in der include.php besser dokumentiert
Offline
Habe die 0.2.1 Installiert.
Habe die view.php aufgerufen und da kommt folgendes:
Warning: require(/modules/Array/module_settings.php): failed to open stream: No such file or directory in /modules/rss-feed-all/include.php on line 690
Warning: require(/modules/Array/module_settings.php): failed to open stream: No such file or directory in /modules/rss-feed-all/include.php on line 690
Fatal error: require(): Failed opening required '/modules/Array/module_settings.php' (include_path='.:/usr/share/php:..') in /modules/rss-feed-all/include.php on line 690
Die module_settings.php existiert aber bei mir im topics ordner. Kann es eher sein das er in der line 690 ein fehler ist?
require(WB_PATH.'/modules/'.$topics_mod_name.'/module_settings.php');
Liebe Grüße,
cHAp
Offline
Wie sieht denn die Zeile 78 aus?
$topics_mod_name =
... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...
Offline
rss-feed-all/include.php:
$topics_mod_name = "topics"; // Name of the module
Liebe Grüße,
cHAp
Offline
o.k.
das war's also nicht, nächster Versuch:
ändere mal bitte Zeile ~155 in der include.php so ab:
if (in_array($topics_mod_name, $modules))
RssFeedAll_Topics( $output_array, $debug_info, $public, $counter, $topics_mod_name, $RssFeedAll_exclude, $wb );
Also grade die Position von $topics_mod_name und $RssFeedAll_exclude vertauschen.
... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...
Offline
Das Modul bekommt den potenziell geänderten Namen des Topics-Moduls nicht zu fassen. Da sich der aber nicht so oft ändert und vermutlich Topics in 999 von 1000 Fällen sowieso Topics heißt, kann man das m.E. vernachlässigen und hart verdrahten, sprich Zeile 690 der /modules/rss-feed-all/include.php ändern zu
require(WB_PATH.'/modules/topics/module_settings.php');
und Zeile 699 zu
. " FROM `".TABLE_PREFIX."mod_topics`"
Der Tipp im obigen Post, eine versteckte seite mit dem Whiteboard-Template und dem Funktionsaufruf anzulegen, generiert ein fehlerhaftes RSS, da dort ein Abschnittsanker eingefügt wird. Dies muss bei den Grundeinstellungen deaktiviert werden (Feld für Abschnittsanker-Bezeichnung leeren).
Das Modul wirft aber zumindest bei mir noch ein paar Notices und Warnings, wenn diese nicht unterdrückt werden, ist der Feed auch fehlerhaft.
<b>Warning</b>: Invalid argument supplied for foreach() in <b>/.../modules/rss-feed-all/include.php</b> on line <b>348</b><br />
<br />
<b>Notice</b>: Undefined variable: lastchange in <b>/.../modules/rss-feed-all/include.php</b> on line <b>719</b><br />
<br />
<b>Warning</b>: Invalid argument supplied for foreach() in <b>/.../modules/rss-feed-all/include.php</b> on line <b>348</b><br />
<br />
<b>Notice</b>: Undefined variable: lastchange in <b>/.../modules/rss-feed-all/include.php</b> on line <b>719</b><br />
<br />
<b>Warning</b>: Invalid argument supplied for foreach() in <b>/.../modules/rss-feed-all/include.php</b> on line <b>348</b><br />
<br />
<b>Notice</b>: Undefined variable: lastchange in <b>/.../modules/rss-feed-all/include.php</b> on line <b>719</b><br />
<br />
<b>Warning</b>: Invalid argument supplied for foreach() in <b>/.../modules/rss-feed-all/include.php</b> on line <b>348</b><br />
<br />
<b>Notice</b>: Undefined variable: lastchange in <b>/.../modules/rss-feed-all/include.php</b> on line <b>719</b><br />
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Online
Ok, muss ich mir mal bei Gelegenheit genauer anschauen. Ich hab das länger nicht angefasst, aber als ich im RSS-Feed vom Forum das Thema "RSS" gesehen habe, dacht ich mir, das könnte vielleicht was sein. Als Grundlage hab ich damals google_sitemap von Ruud genommen.
Offline
Soll ich da jetzt erstmal warten bis ihr das soweit hin bekommen habt oder wie möchten wir das hier weiter verfolgen aktuell?
Mir ist es halt wichtig das ich ein RSS hab, wo ich alle Topics eben auslesen kann mit einen Link. Den es macht denke ich weniger sinn nur die section_id zu verwenden der einzelnen seiten.
Bei RSS Eintragsservices wird ja meist nur ein Link angeboten und da wäre es sinnvoll wenn es eben so ein hartlink wäre, wo alles zusammen kommt.
Liebe Grüße,
cHAp
Offline
Im Prinzip funktioniert das Dingenchen ja, da sind nur Kleinigkeiten zu richten:
zum einen (siehe meine #21) stimmt die Reihenfolge der Parameter im Funktionsausfruf nicht mit der überein die die Funktion erwartet.
Zeile 719 sollte wohl so aussehen:
'lastchange' => $lastmod,
Und wegen der Warning in 348 kann ich heute Abend nochmal schaeun ...
... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...
Offline