Problem, s katerim sem se srečal prej, sem bil zelo v stiski, kako ga rešiti, zdaj pa sem končno našel rešitev in jo bom zdaj delil z vami, težava je naslednja: Strogi standardi: Le spremenljivke naj se posredujejo po referenci v upload\include\cls_template.php na vrstici 418 Vrstica 418: $tag_sel = array_shift(explode(' ', $tag));
Rešitev 1: Težava z različicami 5.3 in višjimi naj bi bila povezana tudi s konfiguracijo. Dokler vrstica 418 ta stavek razdeli na dva stavka, ni težav $tag_sel = array_shift(explode(' ', $tag)); Spremenjeno v:
$tag_arr = eksplodirati(' ', $tag); $tag_sel = array_shift($tag_arr); Ker se parametri array_shift prenašajo po referenci, je mogoče privzeto prenesti le določene spremenljivke nad 5.3, vrednost pa ni mogoče vrniti skozi funkcijo Na enak način, ko naletimo na napake pri gnezdenju funkcij, jih lahko zapišemo ločeno, napake pa se naravno rešijo
Kot: funkcija get_dyna_libs($theme, $tmp)
{ $extsub = eksplodirati('.', $tmp); $ext = konec($extsub); $tmp = osnovno ime($tmp,".$ext"); $sql = 'IZBERI regijo, knjižnico, sort_order, id, številko, tip'. ' OD '. $GLOBALS['ecs']->tabela('predloga'). " WHERE tema = '$theme' AND ime datoteke = '" . $tmp. "' AND vtipkaj > 0 AND remarks=''". 'VRSTNI RED PO REGIJI, KNJIŽNICI, sort_order'; $res = $GLOBALS['db']->getAll($sql); $dyna_libs = array(); foreach ($res AS $row)
{ $dyna_libs[$row['region']][$row['library']][] = array( 'id' => $row['id'], 'number' => $row['number'], 'tip' => $row['tip'] );
} return $dyna_libs;
}
set $ext = end(explode('.', $tmp)); Sprememba $extsub = eksplodirati('.', $tmp); $ext = konec($extsub);
Rešitev 2 (Napaka pri maskiranju):
Ali če je konfigurirano takole: error_reporting = E_ALL | E_STRICT V php.ini so na voljo naslednje nastavitve: error_reporting = E_ALL | E_STRICT
To pomeni, da se prikažejo opozorila o standardih kodiranja. Joomla dejansko priporoča preklic izhoda napake, kar je treba spremeniti v po potrebi za razhroščevanje error_reporting = E_ALL & ~E_NOTICE
Problem je bil rešen. |