$a_languages in functions.str.php
Verfasst: Di 22. Apr 2008, 16:56
Hallo zusammen,
arbeite gerade an einer Erweiterung und bin auf folgenden Code in der Datei functions.str.php gestossen:
Da wird der Liste $a_languages die aktuelle Sprache $lang hinzugefügt. Die Variable $a_languages taucht dort aber zum ersten Mal auf, d. h. Sie ist weder aus dem globalen Namensraum noch irgendwie vorher innerhalb der Funktion deklariert.
Daher hat die Liste natürlich nur die aktuelle Sprache, und die Schleife danach scheint keinen Sinn zu ergeben. Der if-Zweig "if ($tmp_lang == $lang) {" wird immer ausgeführt, und der Code im if- sowie im else-Zweig sind identisch.
Das kommmt ein paar mal vor, auch in der functions.con.php
Ist das ein Übrigbleibsel aus früheren Zeiten oder wie ist das zu Verstehen?
Grüße
xmurrix
arbeite gerade an einer Erweiterung und bin auf folgenden Code in der Datei functions.str.php gestossen:
Code: Alles auswählen
function strNewCategory(...){
...
//********* enter name of cat in 'cat_lang'-table ******
$a_languages[] = $lang;
foreach ($a_languages as $tmp_lang) {
if ($tmp_lang == $lang) {
$sql = "INSERT INTO ".$cfg["tab"]["cat_lang"]." (idcatlang, idcat, idlang, name, visible, public, idtplcfg, urlname, author, created, lastmodified) VALUES('".$db->nextid($cfg["tab"]["cat_lang"])."','$tmp_newid','$tmp_lang','".htmlspecialchars($catname, ENT_QUOTES)."','$bVisible','$bPublic','0', '".htmlspecialchars(capiStrCleanURLCharacters($catalias), ENT_QUOTES)."','".$auth->auth['uname']."','".date("Y-m-d H:i:s")."','".date("Y-m-d H:i:s")."')";
$db->query($sql);
} else {
$sql = "INSERT INTO ".$cfg["tab"]["cat_lang"]." (idcatlang, idcat, idlang, name, visible, public, idtplcfg, urlname, author, created, lastmodified) VALUES('".$db->nextid($cfg["tab"]["cat_lang"])."','$tmp_newid','$tmp_lang','".htmlspecialchars($catname, ENT_QUOTES)."','$bVisible','$bPublic','0', '".htmlspecialchars(capiStrCleanURLCharacters($catalias), ENT_QUOTES)."','".$auth->auth['uname']."','".date("Y-m-d H:i:s")."','".date("Y-m-d H:i:s")."')";
$db->query($sql);
}
}
...
}
Daher hat die Liste natürlich nur die aktuelle Sprache, und die Schleife danach scheint keinen Sinn zu ergeben. Der if-Zweig "if ($tmp_lang == $lang) {" wird immer ausgeführt, und der Code im if- sowie im else-Zweig sind identisch.
Das kommmt ein paar mal vor, auch in der functions.con.php
Ist das ein Übrigbleibsel aus früheren Zeiten oder wie ist das zu Verstehen?
Grüße
xmurrix