Das Problem, dem ich zuvor begegnet bin, war sehr beunruhigt, wie ich es lösen kann, und jetzt habe ich endlich eine Lösung gefunden und werde sie mit euch teilen, das Problem ist wie folgt: Strenge Standards: Nur Variablen dürfen durch Referenz im Upload\includes\cls_template.php in Zeile 418 weitergegeben werden Zeile 418: $tag_sel = array_shift(explode(' ', $tag));
Workaround 1: Das Problem mit den Versionen 5.3 und höher sollte auch mit der Konfiguration zusammenhängen. Solange Zeile 418 diesen Satz in zwei Sätze aufteilt, gibt es kein Problem $tag_sel = array_shift(explode(' ', $tag)); Geändert zu:
$tag_arr = explodieren(' ', $tag); $tag_sel = array_shift($tag_arr); Da die Parameter von array_shift durch Referenz übermittelt werden, können standardmäßig nur spezifische Variablen über 5,3 übergeben werden, und der Wert kann nicht über die Funktion zurückgegeben werden Ebenso können bei Funktionsverschachtelungsfehlern diese separat geschrieben werden, und die Fehler werden auf natürliche Weise gelöst
Wie: Funktion get_dyna_libs($theme, $tmp)
{ $extsub = explodieren('.', $tmp); $ext = End($extsub); $tmp = Basisname($tmp,".$ext"); $sql = 'WÄHLE Region, Bibliothek, sort_order, id, Nummer, Typ'. 'VON ' . $GLOBALS['ecs']->table('template') . " WO theme = '$theme' UND Dateiname = '" . $tmp . "' UND tippen > 0 UND bemerkungen=''". 'ORDNUNG NACH Region, Bibliothek, sort_order'; $res = $GLOBALS['db']->getAll($sql); $dyna_libs = Array(); foreach ($res ALS $row)
{ $dyna_libs[$row['region']][$row['library']][] = Array( 'id' => $row['id'], 'number' => $row['number'], 'type' => $row['type'] );
} return $dyna_libs;
}
set $ext = end(explode('.', $tmp)); Veränderung $extsub = explodieren('.', $tmp); $ext = End($extsub);
Lösung 2 (Maskierungsfehler):
Oder wenn es so konfiguriert ist: error_reporting = E_ALL | E_STRICT Die folgenden Einstellungen sind im php.ini verfügbar: error_reporting = E_ALL | E_STRICT
Das bedeutet, dass Warnhinweise für Codierungsstandards angezeigt werden. Joomla empfiehlt tatsächlich, die Fehlerausgabe zu unterbrechen, was bei Bedarf für das Debugging geändert werden sollte. error_reporting = E_ALL & ~E_NOTICE
Das Problem war gelöst. |