WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

You are not logged in.

#1 02.06.2016 07:58:13

neuhaus
Member

RSS Feed aus WBCE bereitstellen

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

#2 02.06.2016 08:22:29

florian
Administrator

Re: RSS Feed aus WBCE bereitstellen

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

#3 12.06.2016 20:29:49

neuhaus
Member

Re: RSS Feed aus WBCE bereitstellen

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

#4 13.06.2016 07:56:31

florian
Administrator

Re: RSS Feed aus WBCE bereitstellen

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

#5 13.06.2016 10:20:18

neuhaus
Member

Re: RSS Feed aus WBCE bereitstellen

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

#6 13.06.2016 10:33:53

neuhaus
Member

Re: RSS Feed aus WBCE bereitstellen

Hallo Florian,

ok es war das .htaccess file macht  /pages nach /

Werde es Testen wenn ok dann hat es sich erledigt.

danke

Offline

#7 13.06.2016 10:35:06

florian
Administrator

Re: RSS Feed aus WBCE bereitstellen

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

#8 25.01.2017 19:00:50

neuhaus
Member

Re: RSS Feed aus WBCE bereitstellen

Hallo,
kennt jemand die Meldung [181]  bei dem Aufruf der rss.php?

Offline

#9 25.01.2017 19:05:30

florian
Administrator

Re: RSS Feed aus WBCE bereitstellen

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

#10 25.01.2017 20:16:12

neuhaus
Member

Re: RSS Feed aus WBCE bereitstellen

Hallo Florian,
ja habe ich schon gemacht. Hat auch eine Zeit lang wunderbar funktioniert. Teste es gerade auf einem anderen Setup.

Offline

#11 25.01.2017 20:25:52

neuhaus
Member

Re: RSS Feed aus WBCE bereitstellen

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

#12 25.01.2017 20:59:01

neuhaus
Member

Re: RSS Feed aus WBCE bereitstellen

Hallo Florian.
Update hat nichts gebracht.
/modules/topics/rss.php?section_id=42
bringt
[181]

Offline

#13 25.01.2017 21:04:30

florian
Administrator

Re: RSS Feed aus WBCE bereitstellen

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

#14 25.01.2017 21:10:56

neuhaus
Member

Re: RSS Feed aus WBCE bereitstellen

ja ist 7.0
gibt es da Probleme?

Offline

#15 25.01.2017 21:15:21

florian
Administrator

Re: RSS Feed aus WBCE bereitstellen

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

#16 25.01.2017 21:17:41

neuhaus
Member

Re: RSS Feed aus WBCE bereitstellen

PHP 5.6 (FastCGI) hat leider auch nicht funktioniert.

Offline

#17 25.01.2017 21:37:54

florian
Administrator

Re: RSS Feed aus WBCE bereitstellen

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

#18 25.01.2017 21:38:12

neuhaus
Member

Re: RSS Feed aus WBCE bereitstellen

ist bei der umstellung auf 5.6 was in wbce zu ändern?

Offline

#19 25.01.2017 21:38:52

florian
Administrator

Re: RSS Feed aus WBCE bereitstellen

Eigentlich nicht, wieso?


Sorgen sind wie Nudeln: man macht sich meist zu viele.

Offline

#20 25.01.2017 21:42:09

neuhaus
Member

Re: RSS Feed aus WBCE bereitstellen

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

#21 25.01.2017 21:45:36

neuhaus
Member

Re: RSS Feed aus WBCE bereitstellen

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

#22 25.01.2017 21:51:14

florian
Administrator

Re: RSS Feed aus WBCE bereitstellen

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

#23 25.01.2017 22:11:43

neuhaus
Member

Re: RSS Feed aus WBCE bereitstellen

super!!! tausend dank!!! das wars!!!
wenn ihr mal hilfe braucht gerne
lg

Offline

#24 25.01.2017 22:23:47

florian
Administrator

Re: RSS Feed aus WBCE bereitstellen

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_counter

Ich 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

#25 14.11.2018 11:32:46

chap
Member

Re: RSS Feed aus WBCE bereitstellen

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

Board footer

up