Wie kann man bei GX3 die LanguageTextManager.inc.php überladen? Es soll eine neue Shipping-Modul.lang.inc.php Datei unter lang/german/user_sections/modules/shipping ablesen können.
Hi, Dateien im Ordner /lang/german/user_sections/ werden automatisch eingelesen, dafür muss der LanguageTextManager nicht überladen werden. Wenn du eine eigenes Versandmodul erstellst, kann du mit folgenden Befehlen die Texte auch aus deiner eigenen Datei direkt auslesen: PHP: $languageTextManager = MainFactory::create('LanguageTextManager', 'Shipping-Modul');$meineTextVariable = $languageTextManager->get_text('mein_text1'); Wichtig ist dass der 2. Parameter der Name der Datei ohne Endungen ist. Die Befehle müssen im Versandmodul oder an der Stelle wo die Texte erscheinen sollen eingefügt werden.
In unserer Doku wird das Sprachsystem auch thematisiert: https://developers.gambio.de/tutorials.html?v=2.7.2.0&p=sprachdateien
Nachtrag: Wenn ich ein Shipping-Modul Namens "xy.php" in dem Ordner "includes/modules/shipping/" anlege und die passende Textdatei "xy.lang.inc.php" in dem Ordner "/lang/german/user_sections/" anlege (alte Methode), wird diese Text-Datei NICHT AUTOMATISCH eingelesen! Drastisch geänder ist die Namensvergabe. Nämlich muss man jetzt die Sprachdatei "modules.xy.lang.inc.php" nennen!!! Bleibt es jetzt bei dieser Variante? Oder wird die Methode wieder geändert? Bei der zweiten Varianten: finde ich nicht für so praktisch. Letztendlich man muss jede Textpharase in der Shipping-Modul mit einpacken! Oder habe ich das falsch verstanden?
Genau das selbe problem hatte ich zuletzt ja auch gehabt. Da wurde mir aber nichts von PHP: $languageTextManager = MainFactory::create('LanguageTextManager', 'Shipping-Modul');$meineTextVariable = $languageTextManager->get_text('mein_text1'); gesagt.
Die Versandmodule, die im Standard enthalten sind, arbeiten noch mit Sprachkonstanten. Wenn man das in einem neuen Modul beibehalten möchte, was hier nicht cool aber ok ist, kann man am Anfang der Datei über dem class ... wie folgt die Sprachvariablen als Konstanten laden: PHP: $languageTextManager = MainFactory::create_object('LanguageTextManager', array(), true);$languageTextManager->init_from_lang_file('SECTIONNAME', $_SESSION['languages_id']); An der Namensvergabe der Sprachdateien wird sich auf absehbare Zeit nichts mehr verändern.