Script RT Last update arbeitet nicht mehr richtig
Script RT Last update arbeitet nicht mehr richtig
Hallo allerseits.
Das Script Last update article & cp, zu finden im Wiki unter folgendem Link
http://www.phpwcms-howto.de/wiki/doku.p ... ast-update
arbeitet nicht mehr richtig.
Es wird zwar kein Fehler ausgegeben, aber das Datum und die Uhrzeit laufen mit der Zeit des Servers. Heißt, daß sich Datum/Uhrzeit beim normalen Reload der Seite der Serverzeit anpasst und nicht das wirkliche Aktualisierungsdatum wieder gibt. Könnte sich das mal jemand anschauen? Ich vermute daß es an PHP7 liegt. Unter PHP 5.5 funktioniert das Script.
Wäre nett wenn das jemand überarbeiten könnte so daß es wieder funktioniert
Ich bedanke mich schonmal im voraus.
P.s
Eine Korrektur aus diesem Thread
viewtopic.php?f=28&t=24527&p=143360&hil ... te#p143360
habe ich bereits vorgenommen.
Das Script Last update article & cp, zu finden im Wiki unter folgendem Link
http://www.phpwcms-howto.de/wiki/doku.p ... ast-update
arbeitet nicht mehr richtig.
Es wird zwar kein Fehler ausgegeben, aber das Datum und die Uhrzeit laufen mit der Zeit des Servers. Heißt, daß sich Datum/Uhrzeit beim normalen Reload der Seite der Serverzeit anpasst und nicht das wirkliche Aktualisierungsdatum wieder gibt. Könnte sich das mal jemand anschauen? Ich vermute daß es an PHP7 liegt. Unter PHP 5.5 funktioniert das Script.
Wäre nett wenn das jemand überarbeiten könnte so daß es wieder funktioniert
Ich bedanke mich schonmal im voraus.
P.s
Eine Korrektur aus diesem Thread
viewtopic.php?f=28&t=24527&p=143360&hil ... te#p143360
habe ich bereits vorgenommen.
Re: Script RT Last update arbeitet nicht mehr richtig
Schade.
Scheint wohl niemanden zu interessieren.
Wirds eben manuell erledigt.
Scheint wohl niemanden zu interessieren.
Wirds eben manuell erledigt.
- Oliver Georgi
- Site Admin
- Posts: 9902
- Joined: Fri 3. Oct 2003, 22:22
- Contact:
Re: Script RT Last update arbeitet nicht mehr richtig
Du musst das wirkliche Datum prüfen, ältere Installationen haben wechselndes Enddatum.
Re: Script RT Last update arbeitet nicht mehr richtig
Ok. Dann schau ich mal ob und wie ich das hin bekomme. Danke erstmal für den Tip.
Re: Script RT Last update arbeitet nicht mehr richtig
Grade noch ne Frage..
Was darf ich unter dem wirklichen Datum verstehen?
Das Datum wann die letzte Bearbeitung statt fand oder was meinst du damit?
Was darf ich unter dem wirklichen Datum verstehen?
Das Datum wann die letzte Bearbeitung statt fand oder was meinst du damit?
- Oliver Georgi
- Site Admin
- Posts: 9902
- Joined: Fri 3. Oct 2003, 22:22
- Contact:
Re: Script RT Last update arbeitet nicht mehr richtig
Das Enddatum. Anscheinend variierte das seinerzeit dann irgendwann auf der Basis Erstellungsdatum + 10 Jahre, während ganz am Anfang ein fixes Datum in der Zukunft war.
Re: Script RT Last update arbeitet nicht mehr richtig
Ich fürchte wir reden hier gerade aneinander vorbei Oliver denn was hat das Enddatum mit dem Datum der letzten Bearbeitung zu tun?
Unter Enddatum verstehe ich das Datum, was gesetzt werden kann wann ein Artikel abläuft und, z.B. automatisch unsichtbar geschaltet wird.
Dieses Script soll aber das Datum der letzten Bearbeitung (Artikel, CP) finden, also das jüngste Datum das irgendwo in der DB auftaucht und da verstehe ich den Zusammenhang zu dem Enddatum nicht. Theoretisch muß ich hierfür doch das aktuelle Tagesdatum inkl. Uhrzeit prüfen, mit den Einträgen in der DB vergleichen und das jüngste (neueste) Datum inkl. Uhrzeit in dem RT ausgeben oder verstehe ich etwas falsch?
Unter Enddatum verstehe ich das Datum, was gesetzt werden kann wann ein Artikel abläuft und, z.B. automatisch unsichtbar geschaltet wird.
Dieses Script soll aber das Datum der letzten Bearbeitung (Artikel, CP) finden, also das jüngste Datum das irgendwo in der DB auftaucht und da verstehe ich den Zusammenhang zu dem Enddatum nicht. Theoretisch muß ich hierfür doch das aktuelle Tagesdatum inkl. Uhrzeit prüfen, mit den Einträgen in der DB vergleichen und das jüngste (neueste) Datum inkl. Uhrzeit in dem RT ausgeben oder verstehe ich etwas falsch?
- Oliver Georgi
- Site Admin
- Posts: 9902
- Joined: Fri 3. Oct 2003, 22:22
- Contact:
Re: Script RT Last update arbeitet nicht mehr richtig
Hm, OK, tatsächlich falsche Fährte.
Das klingt danach, dass $my_date schlicht kein valides Datum ist und dann greift bei Render_date() Fallback. Prüfe die Fehlermeldungen.
Ich halte das Script auch für sehr ineffizient. Könnte man gleich koppeln, also sofort das neueste Datum aller in Frage kommenden Artikel, Seitenebenen oder Artikelinhalte ermitteln, statt das mehrstufige Verfahren zu nutzen.
Eigentlich müsste folgende Query tun, was Du brauchst:
Wahrscheinlich reicht minimal das hier:
Das klingt danach, dass $my_date schlicht kein valides Datum ist und dann greift bei Render_date() Fallback. Prüfe die Fehlermeldungen.
Ich halte das Script auch für sehr ineffizient. Könnte man gleich koppeln, also sofort das neueste Datum aller in Frage kommenden Artikel, Seitenebenen oder Artikelinhalte ermitteln, statt das mehrstufige Verfahren zu nutzen.
Eigentlich müsste folgende Query tun, was Du brauchst:
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';
$result = _dbQuery($sql);
if(isset($result[0]['latest_ts'])) {
$content["all"] = render_date($content["all"], $result[0]['latest_ts'], 'DATE_UPDATE');
} else {
// Render Fallback date!
$content["all"] = render_date($content["all"], now(), 'DATE_UPDATE');
}
Code: Select all
$sql = 'SELECT UNIX_TIMESTAMP(MAX(article_tstamp)) AS latest_ts FROM '.DB_PREPEND.'phpwcms_article WHERE article_deleted=0 AND article_public=1 LIMIT 1
UNION
SELECT UNIX_TIMESTAMP(MAX(acat_tstamp)) AS latest_ts FROM '.DB_PREPEND.'phpwcms_articlecat WHERE acat_trash=0 AND acat_aktiv=1 LIMIT 1
UNION
SELECT UNIX_TIMESTAMP(MAX(acontent_tstamp)) AS latest_ts FROM '.DB_PREPEND.'phpwcms_articlecontent WHERE acontent_visible=1 AND acontent_trash=0 LIMIT 1';
$result = _dbQuery($sql);
if(isset($result[0]['latest_ts'])) {
$content["all"] = render_date($content["all"], $result[0]['latest_ts'], 'DATE_UPDATE');
} else {
// Render Fallback date!
$content["all"] = render_date($content["all"], now(), 'DATE_UPDATE');
}
Re: Script RT Last update arbeitet nicht mehr richtig
Danke für deine Hilfe Oliver.
Das klappt nun wieder
Ich würde dich aber bitten mal einen Blick drauf zu werfen und evtl. zu korrigieren falls nötig, bevor ich das ins Wiki stelle.
Wäre schön wenn du drüber schaust wenn du mal ein paar Sekunden Zeit hast.
Noch ne kleine Anmerkung an "versuchswillige" PHPWCMS´ler:
Das Script muß ins Verzeichnis template/inc_script/frontend_render
Es kann sein daß das Script in einer lokalen Installation (z.B. XAMPP) nicht funktioniert. Bei mir ist es jedenfalls so. Hier macht mir wahrscheinlich die UAC von Windoof einen Strich durch die Rechnung und das, obwohl XAMPP nicht auf Laufwerk C installiert ist. Lokal greift bei mir nur der Fallback.
Online auf dem Server funktioniert das Script wie es soll.
last_update.php
Das klappt nun wieder
Ich würde dich aber bitten mal einen Blick drauf zu werfen und evtl. zu korrigieren falls nötig, bevor ich das ins Wiki stelle.
Wäre schön wenn du drüber schaust wenn du mal ein paar Sekunden Zeit hast.
Noch ne kleine Anmerkung an "versuchswillige" PHPWCMS´ler:
Das Script muß ins Verzeichnis template/inc_script/frontend_render
Es kann sein daß das Script in einer lokalen Installation (z.B. XAMPP) nicht funktioniert. Bei mir ist es jedenfalls so. Hier macht mir wahrscheinlich die UAC von Windoof einen Strich durch die Rechnung und das, obwohl XAMPP nicht auf Laufwerk C installiert ist. Lokal greift bei mir nur der Fallback.
Online auf dem Server funktioniert das Script wie es soll.
last_update.php
Code: Select all
<?php
// -------------------------------------------------------------------------------------------
// ------------- Move this Script into template/inc_script/frontend_render -------------------
// --------------- Use {DATE_UPDATE:d.m.Y H:i} as RT in your Template. -----------------------
// -------------------------------------------------------------------------------------------
// obligate check for phpwcms constants
if (!defined('PHPWCMS_ROOT')) {die("You Cannot Access This Script Directly, Have a Nice Day.");}
// -------------------------------------------------------------------------------------------
if( ! (strpos($content["all"],'{DATE_UPDATE')===false)) {
$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';
$result = _dbQuery($sql);
if(isset($result[0]['latest_ts'])) {
$content["all"] = render_date($content["all"], $result[0]['latest_ts'], 'DATE_UPDATE');
} else {
// Render Fallback date!
$content["all"] = render_date($content["all"], now(), 'DATE_UPDATE');
}
}
?>
Last edited by Uwe367 on Sun 27. May 2018, 11:48, edited 2 times in total.
- Oliver Georgi
- Site Admin
- Posts: 9902
- Joined: Fri 3. Oct 2003, 22:22
- Contact:
Re: Script RT Last update arbeitet nicht mehr richtig
schau Dir mysql_error() auf Windows an. Kann sein, dass Deine lokale Installation mit der Query nicht klarkommt.
Re: Script RT Last update arbeitet nicht mehr richtig
Oder so. UAC habe ich mal versuchsweise deaktiviert und das wars nicht. Hauptsache es funktioniert online auf dem Server.Oliver Georgi wrote: ↑Thu 24. May 2018, 15:15 schau Dir mysql_error() auf Windows an. Kann sein, dass Deine lokale Installation mit der Query nicht klarkommt.
Dann kann ich davon ausgehen daß das Script so ok ist?
Würde es dann gerne für alle zugänglich im Wiki posten bzw. das bisherige korrigieren oder möchtest Du es in Deinem Git Account in phpwcms-extended packen sofern es dafür interessant ist?
Stammt ja eh zu 99% aus deiner "Feder"
Re: Script RT Last update arbeitet nicht mehr richtig
Mal grade noch ne ganz blöde Frage zur Funktion des Scripts.
Was bedeutet, bzw. welche Funktion hat die Null in den eckigen Klammern? Was hat dieser Wert bei php im allgemeinen zu bedeuten?
$result[0]
Entferne ich die Null mit den Klammern, so wird Fallback gerendert.
Ich dachte zunächst an den Startpunkt eines Arrays, aber das ist hier nicht der Fall da kein Array deklariert ist..
Was bedeutet, bzw. welche Funktion hat die Null in den eckigen Klammern? Was hat dieser Wert bei php im allgemeinen zu bedeuten?
$result[0]
Entferne ich die Null mit den Klammern, so wird Fallback gerendert.
Ich dachte zunächst an den Startpunkt eines Arrays, aber das ist hier nicht der Fall da kein Array deklariert ist..
- Oliver Georgi
- Site Admin
- Posts: 9902
- Joined: Fri 3. Oct 2003, 22:22
- Contact:
Re: Script RT Last update arbeitet nicht mehr richtig
_dbQuery()
bzw. _dbGet()
liefert bei validem Ergebnis ein Array mit numerischem Index zurück. Mittels $result[0]
kann das erste Array-Element angesprochen werden.Re: Script RT Last update arbeitet nicht mehr richtig
Ok. Das erklärt dann das Verhalten wenn ich diesen Wert entferne.
Dazu muß man wissen daß
Besten Dank für die Erklärung
$result
enthält zwar die Werte, kann sie aber nicht ausgeben weil kein Arraystartpunkt [0]
definiert ist und damit fällt das ganze ins Fallback.Dazu muß man wissen daß
_dbQuery()
ein Array liefert und das war mir bis eben noch nicht bewußt.Besten Dank für die Erklärung
- Oliver Georgi
- Site Admin
- Posts: 9902
- Joined: Fri 3. Oct 2003, 22:22
- Contact:
Re: Script RT Last update arbeitet nicht mehr richtig
Wenn Du die
[0]
entfernst, schlägt die isset()
Prüfung fehl. Deswegen Fallback.