ähm hab gerade mal versucht ne sprache zu löschen und bin wieder auf das problem gestossen das die con_template_conf und con_container_conf nicht korrekt gelöscht wird.
in der 4.4.x serie war es ja so das wenn ein artikel oder eine kategorie online war ein löschen der sprache nicht durchgeführt wurde.
dies wurde ja am anfang definiert wo überprüft wird ob noch ein artikel online war.
nun ist es so das bei einem online artikel die funktion conDeleteArt aufgerufen wird. hiebei werden die einträge korrekt entfernt. bei offline artikel jedoch nicht.
ebenso ist es mit den kategorien.
dort wird strDeleteCategory aufgerufen welche anscheinend noch ein relikt aus der 4.2 zeit zu sein scheint.
ich sehe mir das mal ein wenig weiter an.
Bug: CVS_HEAD function langDeleteLanguage
ähm lustig... einen kleinen fehler hab ich mal gefunden
in der function langDeleteLanguage
findet sich
das sollte
sein.
damit siehts etwas besser aus, verbleiben aber immer noch ein paar einträge..
am begin sollte glaube ich bei conDeleteArt und strDeleteCategory
in einer while schleife laufen. kann ja sein das mehrere artikel oder kategorien online sind.
in der function langDeleteLanguage
findet sich
Code: Alles auswählen
if (is_array($a_idtplcfg))
{
foreach ($a_idtplcfg as $tplcfg)
{
if ($idtplcfg != 0)
{
//********** delete from 'tpl_conf'-table *************
$sql = "DELETE FROM ".$cfg["tab"]["tpl_conf"]." WHERE idtplcfg='".$tplcfg."'";
$db->query($sql);
//********** delete from 'container_conf'-table *************
$sql = "DELETE FROM ".$cfg["tab"]["container_conf"]." WHERE idtplcfg='".$tplcfg."'";
$db->query($sql);
}
}
}
Code: Alles auswählen
if (is_array($a_idtplcfg))
{
foreach ($a_idtplcfg as $tplcfg)
{
if ($tplcfg != 0)
{
//********** delete from 'tpl_conf'-table *************
$sql = "DELETE FROM ".$cfg["tab"]["tpl_conf"]." WHERE idtplcfg='".$tplcfg."'";
$db->query($sql);
//********** delete from 'container_conf'-table *************
$sql = "DELETE FROM ".$cfg["tab"]["container_conf"]." WHERE idtplcfg='".$tplcfg."'";
$db->query($sql);
}
}
}
damit siehts etwas besser aus, verbleiben aber immer noch ein paar einträge..
am begin sollte glaube ich bei conDeleteArt und strDeleteCategory
in einer while schleife laufen. kann ja sein das mehrere artikel oder kategorien online sind.
*** make your own tools (wishlist :: thx)
na egal, abgesehen davon hab ich den zweiten fehler gefunden (jetzt unabhängig von der while schleife)
ganz was simples...
es wird nur die idtplcfg der con_art_lang in den array geschrieben.
alle teile der con_cat_lang konfigurationswerte bleiben unberührt.
selbe funktion:
sollte wie folgt aussehen:
somit werden zumindestens bei mir alle einträge ordnungsgemäß entsorgt 
auch ganz intressant ist dass bei der 4.4.x serie bei langDuplicateFromFirstLanguage einige einträge in der template_conf und container_conf vorgenommen werden die keinerlei zuordnung haben. aber egal wird in der 4.5.x serie ja nicht mehr verwendet.
ganz was simples...
es wird nur die idtplcfg der con_art_lang in den array geschrieben.
alle teile der con_cat_lang konfigurationswerte bleiben unberührt.
selbe funktion:
Code: Alles auswählen
//********** delete from 'cat_lang'-table *************
$sql = "SELECT idcatlang, A.idcat FROM ".$cfg["tab"]["cat_lang"]." AS A, ".$cfg["tab"]["cat"]." AS B WHERE A.idcat=B.idcat AND B.idclient='$client' AND idlang!='0' AND idlang='$idlang'";
$db->query($sql);
while ($db->next_record()) {
$a_idcatlang[] = $db->f("idcatlang");
$a_idcat[] = $db->f("idcat");
}
Code: Alles auswählen
//********** delete from 'cat_lang'-table *************
$sql = "SELECT A.idtplcfg AS idtplcfg, idcatlang, A.idcat FROM ".$cfg["tab"]["cat_lang"]." AS A, ".$cfg["tab"]["cat"]." AS B WHERE A.idcat=B.idcat AND B.idclient='$client' AND idlang!='0' AND idlang='$idlang'";
$db->query($sql);
while ($db->next_record()) {
$a_idcatlang[] = $db->f("idcatlang");
$a_idcat[] = $db->f("idcat");
$a_idtplcfg[] = $db->f("idtplcfg"); // added
}

auch ganz intressant ist dass bei der 4.4.x serie bei langDuplicateFromFirstLanguage einige einträge in der template_conf und container_conf vorgenommen werden die keinerlei zuordnung haben. aber egal wird in der 4.5.x serie ja nicht mehr verwendet.
*** make your own tools (wishlist :: thx)
ähm einen hab ich da noch der doch etwas verwunderung bei mir ausgelöst hat.
bei langDuplicateFromFirstLanguage (keine ahnung ob es wieder mal benutzt wird)
beim updaten für die werte der neuen idtplcfg werden nicht die einträge der neuen sprache auf die kopierten idtplcfg geändert sondern die der bestehenden sprache. hmm...
sagen wir mal die einträge der neuen sprache sind aus irgendeinem grund nicht vollständig, könnte es passieren das die konfiguration der kategorien und artikel der ersten sprache in der luft hängen. oder noch besser das sich artikel die selbe idtplcfg teilen.
bei langDuplicateFromFirstLanguage (keine ahnung ob es wieder mal benutzt wird)
beim updaten für die werte der neuen idtplcfg werden nicht die einträge der neuen sprache auf die kopierten idtplcfg geändert sondern die der bestehenden sprache. hmm...
sagen wir mal die einträge der neuen sprache sind aus irgendeinem grund nicht vollständig, könnte es passieren das die konfiguration der kategorien und artikel der ersten sprache in der luft hängen. oder noch besser das sich artikel die selbe idtplcfg teilen.
*** make your own tools (wishlist :: thx)