Problemet, jeg stødte på før, jeg har været meget bekymret for, hvordan jeg løser det, og nu har jeg endelig fundet en løsning, og nu vil jeg dele den med jer, problemet er som følger: Strenge standarder: Kun variabler må gives ved reference i upload\includes\cls_template.php på linje 418 Linje 418: $tag_sel = array_shift(eksplodere(' ', $tag));
Workaround 1: Problemet med versioner 5.3 og ovenfor bør også relateres til konfigurationen. Så længe linje 418 deler denne sætning op i to sætninger, er der ikke noget problem $tag_sel = array_shift(explode(' ', $tag)); Ændret til:
$tag_arr = eksplodere(' ', $tag); $tag_sel = array_shift($tag_arr); Fordi parametrene for array_shift sendes ved reference, kan kun specifikke variabler som standard gives over 5,3, og værdien kan ikke returneres gennem funktionen På samme måde kan funktionsindlejringsfejl skrives separat, og fejlene vil blive løst naturligt
Som: funktion get_dyna_libs($theme, $tmp)
{ $extsub = eksplodere('.', $tmp); $ext = slut($extsub); $tmp = basename($tmp,".$ext"); $sql = 'VÆLG region, bibliotek, sort_order, id, nummer, type'. ' FRA ' . $GLOBALS['ecs']->table('template') . " HVOR tema = '$theme' OG filnavn = '" . $tmp . "' OG skriv > 0 OG bemærkninger=''". ' ORDEN EFTER region, bibliotek, sort_order'; $res = $GLOBALS['db']->getAll($sql); $dyna_libs = array(); foreach ($res SOM $row)
{ $dyna_libs[$row['region']][$row['library']][] = array( 'id' => $row['id'], 'number' => $row['number'], 'type' => $row['type'] );
} return $dyna_libs;
}
sæt $ext = slut(eksplodere('.', $tmp)); Forandring $extsub = eksplodere('.', $tmp); $ext = slut($extsub);
Løsning 2 (Maskeringsfejl):
Eller hvis konfigureret sådan her: error_reporting = E_ALL | E_STRICT Følgende indstillinger er tilgængelige i php.ini: error_reporting = E_ALL | E_STRICT
Det betyder, at advarsler om kodningsstandarder vises. Joomla anbefaler faktisk at annullere fejloutput, hvilket bør ændres til, hvis det er nødvendigt til fejlfinding error_reporting = E_ALL & ~E_NOTICE
Problemet var løst. |