WBCE CMS – Way Better Content Editing.
You are not logged in.
Hallo Forum,
gibt es die Möglichkeit die Topics als RSS oder ATOM bereitzustellen?
die rss.php scheint es ja noch zu geben es wird aber nichts angezeigt.
Danke
Offline
Kurzes Googeln ergab einen Beitrag im Popcornforum und das ergab wiederum, dass die rss.php gepatcht werden muss (Danke an marmot für die Lösung.)
Angefügte rss.php.txt zurück in rss.php benennen und per FTP oder mit dem AFE die vorhandene /modules/topics/rss.php überschreiben.
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
Danke das habe ich nicht gefunden.
Habe aber jetzt das Problem das wenn ich auf einen Eintrag klicke (bzw. Weiterlesen) kommt nur eine leere Seite ohne Inhalt.
.../topics/test1.php
danke
EDIT:
Habe folgendes gefunden:
Das Seitenverzeichnis geht nicht auf das Verzeichniss "pages" sondern auf ""
Dabei mus der Pfad bei "require" manuell angepasst werden damit es funktioniert.
Wo kann ich das in Topics für mich umstellen?
[== Undefiniert ==]
<?php
$page_id = 30;
$section_id = 37;
$topic_id = 4;
define("TOPIC_ID", 4);
require("../config.php");
require(WB_PATH."/index.php");
?>Die rss.php bringt derzeit folgende Meldung: [59] no section_id defined
Ursache noch unklar.
Danke
Last edited by neuhaus (12.06.2016 22:37:31)
Offline
Danke das habe ich nicht gefunden.
Ich meinte das nicht als Vorwurf, sondern nur als Quellenangabe, wollte mich da nicht mit fremden Federn schmücken.
Die rss.php muss immer mit der ID des Topics-Abschnitts, der für den RSS-Feed verwendet werden soll, aufgerufen werden. D.h. wenn Deine Topics auf der Seite mit der ID 23 im Abschnitt mit der ID 42 stehen, lautet der Aufruf
http:/ /deinedomain.tld/modules/topics/rss.php?section_id=42
Dort klappt dann auch zumindest bei meinem Kurztest die Verlinkung zum Topics-Beitrag.
(Die PHP-Dateien im Pages-Verzeichnis müssen und sollten nicht geändert werden.)
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
Hallo Florian,
habe ich ja nicht als Vorwurf verstanden. Wollte mich nur bedanken da ich es nicht gefunden habe.
Der Aufruf war mir soweit klar. Beim Testen habe ich aber nur http:/ /deinedomain.tld/modules/topics/rss.php aufgerufen. Das hat funktioniert. Es schient das wenn der erste topics angelegt wird dann kann der Aufruf ohne ?section_id=42 erfolgen. Wird es gelöscht und neu angelegt benötigt er wohl die id.
Zum zweiten habe ich mich wahrscheinlich nicht genau genug ausgedrückt.
In den Grundeinstellungen von WBCE habe ich das "pages" bei Verzeichniss eintfernt weil ich die Seiten nicht in einem Unterverzeichniss haben wollte.
nicht http:/ /deinedomain.tld/pages/test.php sondern http:/ /deinedomain.tld/test.php
topics hat dann in root Verzeichniss einen Ordner angelegt der topics lautet.
dort drin befindet sich die datei test.php und darin der Eintrag require("../../config.php"); was aber nicht stimmt da ja das "pages" raus ist. Richtig sollte es require("../config.php"); lauten.
Was mir gerade einfällt was macht eigentlich das .htaccess?
Redirect von /pages nach / ???
Werde das gleich mal testen!.
;-)
Danke
Offline
Hallo Florian,
ok es war das .htaccess file macht /pages nach /
Werde es Testen wenn ok dann hat es sich erledigt.
danke
Offline
Generell ist es derzeit noch keine so gute Idee, auf das pages-Verzeichnis zu verzichten. Das kann solche merkwürdigen Seiteneffekte wie von Dir beschrieben verursachen. Wie das jetzt in Bezug auf Topics / RSS hinzubiegen ist, weiß ich leider nicht.
Die htaccess, die standardmäßig mitgeliefert wird (und erst durch die Umbenennung von htaccess.txt in .htaccess aktiviert wird), nutzt das ShortURL-Snippet von Ruud, um das /pages/ und das .php aus der URL zu entfernen. Das Snippet erwartet aber, dass die Seiten im Verzeichnis /pages/ liegen. Außerdem muss dafür dann noch der Droplet Aufruf [[shorturl]] vor dem </body> (außerhalb von PHP-Code) im Template stehen.
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
Hallo,
kennt jemand die Meldung [181] bei dem Aufruf der rss.php?
Offline
Ja, da war doch mal was...
Tausch mal die /modules/topics/rss.php gegen die im Anhang aus, vielleicht hift's.
Sehe gerade, dass ich das weiter oben schon vorgeschlagen hatte. Hattest Du das schon gemacht?
Last edited by florian (25.01.2017 19:06:55)
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
Hallo Florian,
ja habe ich schon gemacht. Hat auch eine Zeit lang wunderbar funktioniert. Teste es gerade auf einem anderen Setup.
Offline
Hallo Florian,
bei dem Test Setup funktioniert die rss.php.
Test Version 1.1.10
Live noch 1.1.6
Werde mal ein Update machen.
Offline
Hallo Florian.
Update hat nichts gebracht.
/modules/topics/rss.php?section_id=42
bringt
[181]
Offline
Vermutlich ein PHP-Problem. Kann es sein, dass auf dem Server, wo nur [181] kommt, PHP 7 läuft?
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
ja ist 7.0
gibt es da Probleme?
Offline
Scheint so. In der rss.php wird z.B. mehrfach MYSQL_ASSOC verwendet, und das gibts bei PHP 7 nicht mehr...
Derzeit einzige Lösung: Wenn Du die Möglichkeit hast, auf PHP 5.6 runtergehen.
Leider reichen meine PHP-Kenntnisse bei weitem nicht aus, das Script PHP7-kompatibel zu machen, zumal sich am RSS-Thema ja schon ganz andere die Zähne ausgebissen haben.
Last edited by florian (25.01.2017 21:38:04)
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
PHP 5.6 (FastCGI) hat leider auch nicht funktioniert.
Offline
Mysteriös. Ich versuche das gerade hier mit PHP 7 nachzustellen, aber der Fehler tritt hier nicht auf.
Rufst Du die rss.php mit irgendwelchen Parametern auf?
Nutzt Du dieses komische Counter-Droplet?
Tritt das Problem erst seit der Veröffentlichung eines bestimmten Beitrags auf?
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
ist bei der umstellung auf 5.6 was in wbce zu ändern?
Offline
Eigentlich nicht, wieso?
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
Der Aufruf erfolgt so direkt im Browser: /modules/topics/rss.php?section_id=42
Es ist derzeit nur ein Beitrag vorhanden und veröffentlicht.
Auf der Seite wird er ganz normal angezeigt.
Offline
rss.php ohne ID --> [59] no section_id defined
rss.php?section_id=43 --> falsche ID = [80] no data found
rss.php?section_id=42 --> richtige ID = [181]
Der Aufruf sollte so stimmen.
Offline
Also, die Zahlen in eckigen Klammern sind die Zeilen in der rss.php.
In Zeile 180/181 steht
if ($statistic = $result->fetchRow(MYSQL_ASSOC))
die(sprintf('[%s] %s', __LINE__, $database->get_error()));
Nimm das mal raus.
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
super!!! tausend dank!!! das wars!!!
wenn ihr mal hilfe braucht gerne
lg
Offline
Wenn Du diese Statistikfunktion nicht benutzt, kannst Du eigentlich den ganzen Block rauslöschen:
if ($use_counter) {
// ok - before we send out the feed we will track the caller!
$date = date('Y-m-d');
// exists entries for days in the past?
$SQL = "SELECT DISTINCT `date`,`section_id` FROM `".TABLE_PREFIX."mod_topics_rss_count` WHERE `date`<'$date'";
if (null == ($past = $database->query($SQL)))
die(sprintf('[%s] %s', __LINE__, $database->get_error()));
while ($old = $past->fetchRow(MYSQL_ASSOC)) {
// walk through previous entries, add them to statistic and delete them from the count table
$SQL = "SELECT COUNT(`md5_ip`) AS `callers`, SUM(`count`) AS `views` FROM `".TABLE_PREFIX."mod_topics_rss_count` WHERE `date`='{$old['date']}' AND `section_id`='{$old['section_id']}'";
if (null == ($result = $database->query($SQL)))
die(sprintf('[%s] %s', __LINE__, $database->get_error()));
if ($statistic = $result->fetchRow(MYSQL_ASSOC))
die(sprintf('[%s] %s', __LINE__, $database->get_error()));
// insert the statistic into the statistic table
$SQL = "INSERT INTO `".TABLE_PREFIX."mod_topics_rss_statistic` (`section_id`,`date`,`callers`,`views`) VALUES ('{$old['section_id']}','{$old['date']}','{$statistic['callers']}','{$statistic['views']}')";
if (!$database->query($SQL))
die(sprintf('[%s] %s', __LINE__, $database->get_error()));
// now delete the old entries
$SQL = "DELETE FROM `".TABLE_PREFIX."mod_topics_rss_count` WHERE `date`='{$old['date']}' AND `section_id`='{$old['section_id']}'";
if (!$database->query($SQL))
die(sprintf('[%s] %s', __LINE__, $database->get_error()));
}
// hash the remote IP address
$md5_ip = md5($_SERVER['REMOTE_ADDR']);
// check if this has called the feed previous
$SQL = "SELECT * FROM `".TABLE_PREFIX."mod_topics_rss_count` WHERE `md5_ip`='$md5_ip' AND `section_id`='$section_id' AND `date`='$date'";
if (null == ($query = $database->query($SQL)))
die(sprintf('[%s] %s', __LINE__, $database->get_error()));
if ($query->numRows() > 0) {
// add this call to the existing record
$update = $query->fetchRow(MYSQL_ASSOC);
$count = $update['count']+1;
$SQL = "UPDATE `".TABLE_PREFIX."mod_topics_rss_count` SET `count`='$count' WHERE `id`='{$update['id']}'";
if (!$database->query($SQL))
die(sprintf('[%s] %s', __LINE__, $database->get_error()));
}
else {
// add a new record
$SQL = "INSERT INTO `".TABLE_PREFIX."mod_topics_rss_count` (`section_id`, `md5_ip`, `count`, `date`) VALUES ('$section_id', '$md5_ip', '1', '$date')";
if (!$database->query($SQL))
die(sprintf('[%s] %s', __LINE__, $database->get_error()));
}
} // $use_counterIch weiß nicht genau, ob das Löschen dieser einzelnen Problemzeilen 180/181 nicht unerwünschte Seiteneffekte hat. Für irgendwas stehen die da ja schon da drin.
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
Hallo,
Ich habe den Beitrag eben über die Suche gefunden.
Ich hab folgendes Problem.
Nutz ich den Link mit der Kategorie Allgemein (Section_ID 71) funktioniert es. Nutz ich aber, was sinnvoller wäre den Blog mit Section_ID 57 geht es nicht.
Unter den Blog befinden sich alle Artikel die aus der Unterkatekorie wie Allgemein, Internet, etc. zusammen. Lässt sich das irgendwie lösen?
Liebe Grüße,
cHAp
Offline