Das Problem mit der Mehrsprachigkeit der Länderauswahl scheint sich ja schon etwas länger hinzuziehen.
Vielleicht kann ich eine Idee einbringen, wie es praktikabel gelöst werden könnte.
Ich kann derzeit nur die Idee liefern und bitte die erfahrenen Coder es, sofern sinnvoll und machbar, umzusetzen.
Zur Veranschaulichung hab ich mal nen Screenshot gebastelt. Siehe unten.
Aus der Tabelle countries lösen wir countries_name heraus und legen eine neue Tabelle an. Diese hat die Spalten id, countries_id, language_id, countries_name. Das setzen von Indizes und Schlüsseln muß ich mal den Experten überlassen. Das Abrufen per Join sollte dann kein Problem sein. Ist also die Kür.
Nun kommen wir zur Pflicht.
Damit die Mehrsprachigkeit bearbeitet werden kann, erweitern wir die Datei admin/countries.php
case new: ab Zeile 170
$languagesforcountries_query_raw = "select languages_id, name, code from " . TABLE_LANGUAGES . " order by name";
$languagesforcountries_query = xtc_db_query($languagesforcountries_query_raw);
$field_to_edit = '';
while ($languagesforcountries = xtc_db_fetch_array($languagesforcountries_query)) {
$field_to_edit .= TEXT_INFO_COUNTRY_NAME . ' '.$languagesforcountries['name'].'<br />' . xtc_draw_input_field('countries_name').xtc_draw_hidden_field($languagesforcountries['languages_id']).'<br />';
}
Statt
$contents[] = array('text' => '<br />' . TEXT_INFO_COUNTRY_NAME
. '<br />' . xtc_draw_input_field
('countries_name')); jetzt
$contents[] = array('text' => '<br />' . $field_to_edit); Das Hidden-Feld kann für die Zuordnung beim Speichern genutzt werden. Denke ich
case edit: ab Zeile 181
$languagesforcountries_query_raw = "select languages_id, name, code from " . TABLE_LANGUAGES . " order by name";
$languagesforcountries_query = xtc_db_query($languagesforcountries_query_raw);
$field_to_edit = '';
while ($languagesforcountries = xtc_db_fetch_array($languagesforcountries_query)) {
$field_to_edit .= TEXT_INFO_COUNTRY_NAME . ' '.$languagesforcountries['name'].'<br />' . xtc_draw_input_field('countries_name', $cInfo->countries_name).xtc_draw_hidden_field($languagesforcountries['languages_id']).'<br />';
}
Statt
$contents[] = array('text' => '<br />' . TEXT_INFO_COUNTRY_NAME
. '<br />' . xtc_draw_input_field
('countries_name', $cInfo->countries_name)); jetzt
$contents[] = array('text' => '<br />' . $field_to_edit); Das case default kann auch angepasst werden.
Die Speicherung der Daten müßte dann auch noch angepasst werden.
Im Bild habe ich noch einen Button integriert. Dieser soll eine Funktion anschieben, welche jedes Land aufruft und prüft, ob für jede Sprache ein Eintrag vorhanden ist (ggf. auch ob dieser leer ist). Ist kein Eintrag vorhanden, wird der Ländername mit language_id = 1 (english) für die Sprache gespeichert. Deshalb heißt der Button Sprachen-Grundeinstellung. Ist halt für Faule, damit aber ein Eintrag für jede Sprache vorliegt.
Wie gesagt, ich bin Laie und hab da mal ne Idee
Entweder haut ihr mich jetzt wegen dem Blödsinn oder ich lieg doch nicht so falsch.
Linkback: https://www.modified-shop.org/forum/index.php?topic=32732.0