nachdem ich zeitlich die nächsten Tage nicht selber weiter suchen kann, hier mal ne kleine Beschreibung was bei mir auf mehreren System und 4.5.x Installationen auftritt: ( auch schon bei den 2 davor !!! )
habe es gerade eine reinen neuinstallation mit Demomandant + Modulen von dem Snapshot vom 22.10.2004 durchgeführt.
Danach habe ich im Outputteil vom Modul "BILD1" folgendes hinzugefügt:
Code:
Code: Alles auswählen
mi18n("blub");
und das Modul dann gespeichert.
Danach bin ich auf Modul-Übersetzung gegangen, und es erscheint eine Reihe dieser Meldung:
Zitat:
[26-Oct-2004 09:22:44] PHP Warning: d:\wwwroot\htdocs\tbfdev\contenido\classes\class.genericdb.php 1185: Tried to load a single line with field idmodtranslation and value 3 from con_mod_translations but found more than one row in d:\wwwroot\htdocs\tbfdev\contenido\includes\functions.general.php on line 1717
Hab nun den ganzen Morgen den Core durchgeschaut und mehrere Debugs/Tests durchgeführt um die Stelle zu finden an der es schief geht.
Bis jetzt konnte ich nur folgende finden, und zwar in der Datei class.module.php - CLASS cApiModuleTranslationCollection Funktion create(...).
Code:
Code: Alles auswählen
function create ($idmod, $idlang, $original, $translation = false)
{
/* Check if the original already exists. If it does,
update the translation if passed */
$mod = new cApiModuleTranslation;
$sorg = $mod->_inFilter($original);
$this->select("idmod = '$idmod' AND idlang = '$idlang' AND original = '$sorg'");
if ($item = $this->next())
{
if ($translation !== false)
{
$item->set("translation", $translation);
$item->store();
}
return $item;
} else {
$item = parent::create();
$item->set("idmod", $idmod);
$item->set("idlang", $idlang);
$item->set("original", $original);
$item->set("translation", $translation);
$item->store();
return $item;
}
}
Der Else zweig erzeugt dann den eintrag in der mod_translation .... Nur leider tut er dies 3 Mal !!!!!!
Habe zum Test den Else-Zeig auskommentiert, und es wird dann gar kein eintrag generiert.
Aus Zeitgründen muß ich leider erstmal unterbrechen, aber vlt schaff ich es die Tage daran weiter zu suchen ( außer ihr habt die Lösung nicht schon. )
Gruß
Stefan