WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

Du bist nicht angemeldet.

#1 14.12.2022 12:52:17

astralman
Mitglied

[gelöst] Probleme nach Upgrade auf WBCE 1.5.4 - Seiten nicht bearbeitbar

Hallo zusammen,
nach einigen Upgrades meiner Internetseiten auf die Version 1.5.4 (auch bereits bei 1.5.3) und gleichzeitiger Umstellung auf PHP 8.026 habe ich (bei ganz "alten" Installationen) das Problem, dass versteckte Seiten des jeweiligen Projekts nicht mehr angezeigt werden. Es erscheint die Meldung:
"Kein aktiver Inhalt auf dieser Seite vorhanden"

Im Backend wird die Seite angezeigt und lässt sich auch über den Editor bearbeiten und speichern.
Allerdings kommt bei den Abschnitten eine leere Seite und das speichern ändert nichts daran, dass der Inhalt nicht angezeigt wird.

Bei diesen Projekten lässt sich auch keine neue Seite (egal ob öffentlich oder versteckt) anlegen.

Mit zurücksetzen der PHP-Version auf 7.4 ist der Fehler wieder weg.

Im Error-Log steht folgendes:

2022-12-14T09:53:39+00:00 [Visitor Request] xxx/admin/pages/sections.php?page_id=525
2022-12-14T09:53:39+00:00 [Exception] There was an unknown exception: Unsupported operand types: string + int in line (356) of /admin/pages/sections.php

Hat jemand eine Idee?

Beitrag geändert von florian (15.12.2022 12:00:11)

Offline

#2 14.12.2022 12:56:43

florian
Administrator

Re: [gelöst] Probleme nach Upgrade auf WBCE 1.5.4 - Seiten nicht bearbeitbar

Das ist ein Zeitzonenproblem, das eigentlich mit 1.5.4 hätte behoben sein sollen. Komisch.
Bitte manuell korrigieren, siehe: https://forum.wbce.org/viewtopic.php?pid=40275#p40275

Beitrag geändert von florian (14.12.2022 12:56:52)

Offline

#3 14.12.2022 13:11:08

astralman
Mitglied

Re: [gelöst] Probleme nach Upgrade auf WBCE 1.5.4 - Seiten nicht bearbeitbar

Das hatte ich bereits gemacht - leider ohne Erfolg
Zeitzone stand auf UTC + 2 Hours - jegliche Änderungen waren ohne Effekt

florian schrieb:

Versuch mal, ob es hilft, bei den Grundeinstellungen die Zeitzone neu zu setzen. Sonst erst in der /admin/pages/modify.php vor das TIMEZONE das Schlüsselwort inkl. Klammern (int) setzen.

Das habe ich dann in der Datei geändert:

+ (int) TIMEZONE

Leider ebenfalls ohne Erfolg

Offline

#4 14.12.2022 13:32:59

florian
Administrator

Re: [gelöst] Probleme nach Upgrade auf WBCE 1.5.4 - Seiten nicht bearbeitbar

Meinst Du mit "in der Datei" jetzt die /admin/pages/modify.php oder /admin/pages/sections.php?

Offline

#5 14.12.2022 14:10:01

astralman
Mitglied

Re: [gelöst] Probleme nach Upgrade auf WBCE 1.5.4 - Seiten nicht bearbeitbar

Ups - zuerst nur in der "sections.php".
Hab's jetzt aber in beiden Dateien geändert. Hat leider immer noch nichts gebracht.

Offline

#6 14.12.2022 14:22:53

florian
Administrator

Re: [gelöst] Probleme nach Upgrade auf WBCE 1.5.4 - Seiten nicht bearbeitbar

Hm, kannst Du auch nochmal bei den Profileinstellungen schauen, ob Du da die Zeitzone ändern kannst?
Und auch mal das Admintool Sysinfo installieren und schauen, ob überhaupt serverseitig TIMEZONE definiert ist, ich hstte letztens mal einen Fall, wo das mysteriöserweise fehlte.

Offline

#7 14.12.2022 14:36:57

astralman
Mitglied

Re: [gelöst] Probleme nach Upgrade auf WBCE 1.5.4 - Seiten nicht bearbeitbar

Danke für die schnellen Rückmeldungen!

Punkt 1 hatte ich überprüft. Die Profileinstellungen standen und stehen jeweils auf "Standardeinstellung" :

Zeitzone: UTC +1 Hours (Standardeinstellung)
Datumsformat: 14.12.2022 (Standardeinstellung)
Zeitformat: 13:35 (Standardeinstellung)


Bei den "WBCE Constants" ist folgender Eintrag enthalten

(...)
TIMEZONE    3600
TIME_FORMAT    H:i
VERSION    2.8.3
WBCE_TAG    1.5.4
WBCE_VERSION    1.5.4
(...)

Offline

#8 14.12.2022 15:02:09

florian
Administrator

Re: [gelöst] Probleme nach Upgrade auf WBCE 1.5.4 - Seiten nicht bearbeitbar

Rätselhaft. Ich kann Dir dann nur anbieten, mir das mal direkt anzuschauen, dafür bräuchte ich Admin-Zugangsdaten + FTP per PM oder an support@wbce.org.

Offline

#9 14.12.2022 18:40:55

florian
Administrator

Re: [gelöst] Probleme nach Upgrade auf WBCE 1.5.4 - Seiten nicht bearbeitbar

Ich habe die Ursache gefunden, das ganze ist aber ziemlich seltsam.

Das Problem ist, dass bei der betreffenden Seite in der Tabelle sections die Spalten publ_start und publ_end komplett leer sind.
Üblicherweise wird dort 0 als Default-Wert gesetzt, das ist auf dieser konkreten Website aber nicht so.
Ich habe also erstmal per Adminer für die beiden genannten Tabellen 0 als Default hinterlegt, was sich aber nur für neue Abschnitte und nicht rückwirkend auswirkt.

PHP 7.4 scheint da noch toleranter gewesen zu sein, PHP 8.x steigt da entrüstet aus.
Im Backend lässt sich das noch fixen, dafür muss Zeile 353-359 der /admin/pages/sections.php geändert werden zu

if ((int)$section['publ_start'] == 0) {
     $oTemplate->set_var('VALUE_PUBL_START', '');
} else {						
     $oTemplate->set_var('VALUE_PUBL_START', date($jscal_format, (int)$section['publ_start'] + (int) TIMEZONE));
}
// set calendar start values
if ((int)$section['publ_end'] == 0) {
    $oTemplate->set_var('VALUE_PUBL_END', '');
} else {
    $oTemplate->set_var('VALUE_PUBL_END', date($jscal_format, (int)$section['publ_end'] + (int) TIMEZONE));
}

(also nur ein (int) vor die if-Bedingungen).

Im Frontend finde ich leider gerade nicht die richtige Stelle, wo das Start-/Ablaufdatum eines Abschnitts geprüft wird.
Ich habe in der class.wb.php Zeile 398 geändert zu

if ($now < $section['publ_end'] && ($now > $section['publ_start'] || (int)$section['publ_start'] == 0) || $now > $section['publ_start'] && (int)$section['publ_end'] == 0) {

damit verschwindet zumindest schon mal die Meldung "Kein aktiver Abschnitt vorhanden".

Aber wo wird nun für die Ausgabe konkret geprüft, ob ein Abschnitt angezeigt werden soll oder noch nicht/nicht mehr? Ich dachte, das würde in der  class.frontend.php, Zeile 97ff passieren:

$sSql = 'SELECT `p`.`page_id`, `link` ';
        $sSql .= 'FROM `{TP}pages` AS `p` INNER JOIN `{TP}sections` USING(`page_id`) ';
        $sSql .= 'WHERE `parent`=0 AND `visibility`=\'public\' ';
        $sSql .= 'AND ((' . $now . '>=`publ_start` OR `publ_start`=0) ';
        $sSql .= 'AND (' . $now . '<=`publ_end` OR `publ_end`=0)) ';

Aber eine Änderung zu

 $sSql = 'SELECT `p`.`page_id`, `link` ';
        $sSql .= 'FROM `{TP}pages` AS `p` INNER JOIN `{TP}sections` USING(`page_id`) ';
        $sSql .= 'WHERE `parent`=0 AND `visibility`=\'public\' ';
        $sSql .= 'AND ((' . $now . '>=`publ_start` OR `publ_start`=0 OR `publ_start`=\'\') ';
        $sSql .= 'AND (' . $now . '<=`publ_end` OR `publ_end`=0 OR `publ_end`=\'\')) ';		

bringt leider nichts, die Seite bleibt leer.

Klicke ich hingegen im Backend in der nun wieder verfügbaren Ansicht "Abschnitte verwalten"  auf Speichern, wird der Abschnitt bzw. werden die Abschnitte wie gewünscht im Frontend angezeigt.

Frage an die Profis: wo/wie muss der Query für die Abschnitte angepasst werden, dass eine leere Spalte wie eine mit 0 gefüllte Spalte behandelt wird?
Oder gibt es eine einfache Möglichkeit, scriptgesteuert bei hunderten Tabellenzeilen nachträglich Nullwerte zu setzen?

Beitrag geändert von florian (14.12.2022 18:43:29)

Offline

#10 15.12.2022 08:37:12

florian
Administrator

Re: [gelöst] Probleme nach Upgrade auf WBCE 1.5.4 - Seiten nicht bearbeitbar

Gefunden.
framework/frontend.functions.php, Zeile 361ff ändern zu

// skip this section if it is out of publication date
                $now = time();
                if (!(
                    ($now <= $aSection['publ_end'] || (int)$aSection['publ_end'] == 0)
                    &&
                    ($now >= $aSection['publ_start'] || (int)$aSection['publ_start'] == 0)
                )) {
                    continue;
                }

Offline

#11 15.12.2022 11:38:17

astralman
Mitglied

Re: [gelöst] Probleme nach Upgrade auf WBCE 1.5.4 - Seiten nicht bearbeitbar

Super - mit den Änderungen in den Dateien ist das Problem gelöst!
Vielen Dank .

Offline

Liked by:

florian

Fußzeile des Forums

up