WBCE CMS – Way Better Content Editing.
Du bist nicht angemeldet.
Hallo!
Seit dem Ubdate auf 1.5.0 hab ich in einigen Errorlogs haufenweise diese Zeile:
[Exception] There was an unknown exception: Undefined constant "SM2_DEBUG" in line (38) of /modules/show_menu2/include.php
Ich behelfe mir, indem ich die Konstante in der config.php angebe: define('SM2_DEBUG', false);
Aber die eigentliche Ursache kann ich nicht feststellen.
PHP ist meist 8 soweit ich das sehe.
[Exception] There was an unknown exception: Undefined constant "SM2_DEBUG" in line (38) of /modules/show_menu2/include.php
Das sollte auf GitHub als Known-Bug hinzugefügt werden, damit es nicht in Vergessenheit gerät.
“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale
Offline
Da gab es schon eine Lösung, das ist wohl irgendwie untergegangen.
https://forum.wbce.org/viewtopic.php?pid=36320#p36320
Code allein macht nicht glücklich. Jetzt spenden!
Online
stefanek
:-) Sag ich doch.
“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale
Offline
Eine "Ursache" des Fehlers = Warum er da auftritt und dort nicht:
Der falsche Parameter 4 im SM2 Aufruf, also "" statt zb SM2_TRIM
Kommt bei älteren Templates noch öfter vor, weil ja lustig von einem Template zum nächsten kopiert worden ist.
"Ursache" in Anführungszeichen, weil die wahre Ursache natürlich ist, dass eine Konstante/Variable verwendet wird, ohne dass sie definiert ist. Passiert und fällt wegen anderen Fehlern dann eben auf.
Beitrag geändert von choppopo (01.07.2021 12:53:55)
Da gab es schon eine Lösung, das ist wohl irgendwie untergegangen.
https://forum.wbce.org/viewtopic.php?pid=36320#p36320
Die Lösung bezog sich nur auf die eine Zeile aber nicht auf die komplette function:
function sm2_error_logs($error_str)
{
$log_error = (SM2_DEBUG and SM2_DEBUG === true) ? true : false;
if (!function_exists('error_log')) {
$log_error = false;
}
$log_file = @ini_get('error_log');
if (!empty($log_file) && ('syslog' != $log_file) && !@is_writable($log_file)) {
$log_error = false;
}
if ($log_error) {
@error_log($error_str, 0);
}
}
Die function ist per se immer true außer man sagt dass diese false ist bzw. einer der oberen Fälle eintritt.
wenn ich dann bei 1/3 sage dass $log_error per se false ist, funktioniert der Rest nicht mehr.
Lösung Variante 1:
Laut der Fehlermeldung sollte ein:
SM2_DEBUG ='';
vor der function reichen
Lösung Variante 2:
Man ersetzt SM2_DEBUG durch WB_DEBUG dann wird aber nichts mehr geloggt außer man aktiviert explizit WB_DEBUG
Lösung Variante 3:
Aufgrund der @ schreibt man das Ganze neu (mit oder ohne Lösung Variante 2)
Beitrag geändert von colinax (03.07.2021 12:42:42)
Offline
Könntet ihr einmal testen, wenn die eine Zeile ersetzt wird:
$log_error = (defined('SM2_DEBUG') && SM2_DEBUG == true) ? true : false;
Die Exception sollte dann nicht mehr auftauchen.
Gruß,
Christian
“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale
Offline
Nachdem der Fix aus #7 hier erfolgreich angewendet werden konnte.
Hab ich den Fix auf GitHub hochgeladen und den Thread als gelöst markiert.
Offline
florian