Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 13776|Odgovoriti: 1

[Medsebojna pomoč] Kako popraviti napako Includes\cls_template.php na vrstici 418 v ecshopu

[Kopiraj povezavo]
Objavljeno na 20. 02. 2015 17:20:02 | | |

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.




Prejšnji:QQ vmesnik za informacijo o prostoru
Naslednji:Kateri sistem osebnih blogov je boljši, pogovorimo se o njem
Objavljeno na 21. 02. 2015 21:13:21 |
Priporočljivo je, da neposredno zmanjšate PHP različico na PHP5.2.x
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com