Hui, das ist sogar ein schwerer Fehler. Das Löschsymbol erscheint, wenn die Funktion hasLanguageAssigned aus class.client.php ein false zurückgibt. Das ist der Fall, wenn in der con_clients_lang-Tabelle kein Eintrag zu Mandant und Sprache mehr existiert.
Es existiert aber noch ein Eintrag nach Löschen der Sprache. Grund ist, dass in der Funktion langDeleteLanguage($idlang) die folgende Abfrage zum Löschen des entsprechenden Eintrags aus der clients_lang verwendet wird:
Code: Alles auswählen
$sql = "DELETE FROM ".$cfg["tab"]["clients_lang"]." WHERE idclient='$client' AND idlang='$idlang'";
Die Variable $client wird aber nicht als Funktionsparameter, sondern als globale Variable übergeben. Jedoch wird in Administration -> Sprachen links oben beim Wechsel auf den nicht-aktuellen Mandanten die Mandanten-ID nur temporär gewechselt, die $client ändert sich nicht.
Damit versagt die Funktion zum Löschen der Sprache (die übrigens eigentlich auch alle sonstigen DB-Inhalte des Mandanten löschen sollte) fast komplett, da sie jeweils versucht, alle Elemente der gewählten Sprache, jedoch im aktuellen Mandanten zu löschen - auch wenn links oben ein anderer Mandant gewählt wurde (d.h. es betrifft alle SQL-Statements dieser Funktion, die $client enthalten...).
Lange Rede, kurzer Sinn: Habe gerade keine Lösung, da die Funktion aus der DB aus ausgerufen wird und zur Lösung vermutlich der gewählte (und nicht der aktuelle Client) übergeben werden müsste...
Gruß
HerrB