Es kann ein Problem sein immer alle Content-Seiten aktuell zu halten, wenn man viele Sprachen im Shop zu verwalten hat.
Meine Lösung dafür war bisher zuerst zu schauen ob es in der verlangten Sprache einen Eintrag gibt, und wenn nicht den englischen Eintrag zu selektieren und anzuzeigen.
Ist hässlich, aber funktioniert.
$shop_content_query = xtc_db_query
("SELECT
content_id,
content_title,
content_heading,
content_text,
content_file
FROM ".TABLE_CONTENT_MANAGER
."
WHERE content_group='".(int
) $_GET['coID']."' ".$group_check."
AND languages_id='".(int
) $_SESSION['languages_id']."'");$shop_content_data = xtc_db_fetch_array
($shop_content_query);if(empty($shop_content_data)){ /// wenn es diesen content in der sprache noch nicht gibt, dann zeig mir englisch an bitte $shop_content_query = xtc_db_query
("SELECT
content_id,
content_title,
content_heading,
content_text,
content_file
FROM ".TABLE_CONTENT_MANAGER
."
WHERE content_group='".(int
) $_GET['coID']."' ".$group_check."
AND languages_id='1'"); $shop_content_data = xtc_db_fetch_array
($shop_content_query);} Einfacher geht's so:
$shop_content_query = xtc_db_query("SELECT
content_id,
content_title,
content_heading,
content_text,
content_file
FROM ".TABLE_CONTENT_MANAGER."
WHERE content_group='".(int) $_GET['coID']."' ".$group_check."
AND languages_id=(SELECT MAX(languages_id) FROM ".TABLE_CONTENT_MANAGER."
WHERE content_group='".(int) $_GET['coID']."' ".$group_check." AND (languages_id='1' || languages_id='".(int) $_SESSION['languages_id']."'))");
$shop_content_data = xtc_db_fetch_array($shop_content_query);
Vielleicht nützt es jemandem was. Wichtig: Fallback-Sprache muss kleinste languages_id haben und muss alle Seiten definiert haben natürlich.
Anwendungsbeispiel: erst den Shop in englisch fertig stellen und dann langsam Übersetzungen adden ohne Stress dass es irgendwo keine Anzeige gibt.
Greetz!
Linkback: https://www.modified-shop.org/forum/index.php?topic=9260.0