Script RT Last update arbeitet nicht mehr richtig

Post custom hacks and enhancements for phpwcms here only. Maybe some of these things will be included in official release later.
User avatar
Uwe367
Posts: 1206
Joined: Sat 15. Sep 2007, 07:19
Location: Koblenz

Re: Script RT Last update arbeitet nicht mehr richtig

Post by Uwe367 »

Besten Dank für die ausführliche Erläuterung :D
User avatar
Uwe367
Posts: 1206
Joined: Sat 15. Sep 2007, 07:19
Location: Koblenz

Re: Script RT Last update arbeitet nicht mehr richtig

Post by Uwe367 »

Script ist nun hier zu finden: https://github.com/uwe367/frontend-render
Ins Wiki komme ich leider nicht rein (403 Forbidden)
User avatar
Oliver Georgi
Site Admin
Posts: 9888
Joined: Fri 3. Oct 2003, 22:22
Contact:

Re: Script RT Last update arbeitet nicht mehr richtig

Post by Oliver Georgi »

Habe das gerettete Wiki hier Live genommen https://wiki.phpwcms.org/
Oliver Georgi | phpwcms Developer | GitHub | LinkedIn | Систрон
User avatar
Uwe367
Posts: 1206
Joined: Sat 15. Sep 2007, 07:19
Location: Koblenz

Re: Script RT Last update arbeitet nicht mehr richtig

Post by Uwe367 »

Oliver Georgi wrote: Sun 3. Jun 2018, 17:39 Habe das gerettete Wiki hier Live genommen https://wiki.phpwcms.org/
Ah ok. Dann bau ich das die Tage dort ein. Danke :)
User avatar
Uwe367
Posts: 1206
Joined: Sat 15. Sep 2007, 07:19
Location: Koblenz

Re: Script RT Last update arbeitet nicht mehr richtig

Post by Uwe367 »

Habs denn heute nun endlich geschafft das neue Script im Wiki unterzubringen und es ist ab sofort hier zu finden.
User avatar
Uwe367
Posts: 1206
Joined: Sat 15. Sep 2007, 07:19
Location: Koblenz

Re: Script RT Last update arbeitet nicht mehr richtig

Post by Uwe367 »

Ich stelle gerade ein sehr merkwürdiges Verhalten mit diesem Script fest.
Eine Installation läuft im Root Verzeichnis des Servers, dort funktioniert das Script wie es soll.
Bei einer Testinstallation in einem Unterverzeichnis auf dem gleichen Server wird das aktuelle Datum und Uhrzeit (Fallback) ausgegeben, aber nicht Datum und Uhrzeit der letzten Bearbeitung.
Die Installation im Serverroot ist eine 1.9.12 unter PHP 7.4.2, die in dem Unterverzeichnis ist eine 1.9.15 unter PHP 7.4.2.
Wo könnte denn hier der Fehler liegen? An phpwcms bestimmt nicht denn das Script fragt ja nur die DB nach dem neuesten Datum ab.....
User avatar
Uwe367
Posts: 1206
Joined: Sat 15. Sep 2007, 07:19
Location: Koblenz

Re: Script RT Last update arbeitet nicht mehr richtig

Post by Uwe367 »

Ich komme der Sache scheinbar näher denn nun habe ich einen Fehler in der phpwcms_db_error.log gefunden der durch das Script verursacht wird. Nun muß ich nur noch nach einer Lösung suchen.....

phpwcms_db_error.log schreiben lassen:
In der conf.inc.php

Code: Select all

$phpwcms['db_errorlog'] = true; // Log DB queries - false|true
Zu finden ist sie dann im Verzeichnis content/log

Fehler:

Code: Select all

[2020-03-22 10:09:28] Incorrect usage of UNION and LIMIT, QUERY: "SELECT UNIX_TIMESTAMP(latest_ts) AS latest_ts FROM(
    SELECT MAX(article_tstamp) AS latest_ts FROM phpwcms_article WHERE article_deleted=0 AND article_public=1 LIMIT 1
    UNION
    SELECT MAX(acat_tstamp) AS latest_ts FROM phpwcms_articlecat WHERE acat_trash=0 AND acat_aktiv=1 LIMIT 1
    UNION
    SELECT MAX(acontent_tstamp) AS latest_ts FROM phpwcms_articlecontent WHERE acontent_visible=1 AND acontent_trash=0 LIMIT 1
) AS t1 LIMIT 1"
Und dieser Fehler wiederholt sich eben bei jedem neuen Seitenaufruf.
Vielleicht hat jemand einen Tip.
User avatar
Uwe367
Posts: 1206
Joined: Sat 15. Sep 2007, 07:19
Location: Koblenz

Re: Script RT Last update arbeitet nicht mehr richtig

Post by Uwe367 »

Scheinbar habe ich die Lösung gefunden. Jedenfalls funktioniert das ganze jetzt wieder wie es soll.
Vorher:

Code: Select all

$sql = 'SELECT UNIX_TIMESTAMP(latest_ts) AS latest_ts FROM(
    SELECT MAX(article_tstamp) AS latest_ts FROM '.DB_PREPEND.'phpwcms_article WHERE article_deleted=0 AND article_public=1 LIMIT 1
    UNION
    SELECT MAX(acat_tstamp) AS latest_ts FROM '.DB_PREPEND.'phpwcms_articlecat WHERE acat_trash=0 AND acat_aktiv=1 LIMIT 1
    UNION
    SELECT MAX(acontent_tstamp) AS latest_ts FROM '.DB_PREPEND.'phpwcms_articlecontent WHERE acontent_visible=1 AND acontent_trash=0 LIMIT 1
) AS t1 LIMIT 1';
Nachher: Die SELECT Anweisungen müßen nun wohl in Klammern stehen.

Code: Select all

$sql = 'SELECT UNIX_TIMESTAMP(latest_ts) AS latest_ts FROM((
    SELECT MAX(article_tstamp) AS latest_ts FROM '.DB_PREPEND.'phpwcms_article WHERE article_deleted=0 AND article_public=1 LIMIT 1)
    UNION
    (SELECT MAX(acat_tstamp) AS latest_ts FROM '.DB_PREPEND.'phpwcms_articlecat WHERE acat_trash=0 AND acat_aktiv=1 LIMIT 1)
    UNION
    (SELECT MAX(acontent_tstamp) AS latest_ts FROM '.DB_PREPEND.'phpwcms_articlecontent WHERE acontent_visible=1 AND acontent_trash=0 LIMIT 1)
) AS t1 LIMIT 1';
Vielleicht kann Oliver mal drüber schauen wenn er vorbei schaut und ne kurze Info da lassen ob das so ok ist.
Wenns so ok ist ändere ich es auch im Wiki.

Das einzige was nicht funktioniert (funktionierte übrigens noch nie) ist die Änderung des Ausgabedatums wenn eine neue Ebene erstellt wird, aber ist das notwendig?
Kommt ja eigentlich nicht vor daß ich nur eine leere Ebene ohne Inhalte erstelle und Änderungen bzw. Erstellen von neuem Inhalt werden berücksichtigt.
Post Reply