In der Urlaubsmeldung sind ja bei der SQL-Datei die Sprachen englisch und deutsch bereits vorgegeben. Nun wollte ich für einen Shop in ausschließlich französischer Sprache (deutsch und englisch aber installiert) diese Meldung auch integrieren. Deshalb habe ich entsprechende zusätzliche Einträge in der install.sql vorgenommen. In der Datei includes/init_includes/overwrite/init_header.php habe ich den Eintrag auch erweitert. Nun ist die Situation so, dass ich im Admin die entsprechenden Einträge angezeigt bekommen, in der jeweils gewählten Sprache, diese auch bearbeiten kann. Im Frontend wird mir die Meldung aber nur in der deutschen und der englischen Version angezeigt, in der französischen Version wird nichts angezeigt. Ich setze hier mal die zwei geänderten Dateien komplett rein, die Änderungen sind rot markiert.
install.sql
init_header.php
Wo liegt mein Fehler? Danke schon mal für Tipps.
install.sql
Code:
################################################################## # Urlaubsmeldung 1.1 Install - 2019-09-18 - webchills ################################################################## INSERT INTO configuration_group (configuration_group_title, configuration_group_description, sort_order, visible) VALUES ('Urlaubsmeldung', 'Holiday Notice Settings', '1', '1'); SET @gid=last_insert_id(); UPDATE configuration_group SET sort_order = last_insert_id() WHERE configuration_group_id = last_insert_id(); INSERT INTO configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added, use_function, set_function) VALUES ('Holiday Notice - Enable', 'URLAUBSMELDUNG_STATUS', 'false', 'Do you want to activate the holiday notice?', @gid, 1, NOW(), NULL, 'zen_cfg_select_option(array(\'true\', \'false\'), '), ('Holiday Notice - Text German', 'URLAUBSMELDUNG_TEXT_DE', 'Bitte beachten Sie, dass wir uns in der Zeit vom XXX bis XXX im Betriebsurlaub befinden und in diesem Zeitraum eingehende Bestellungen erst nach unserer Rückkehr bearbeiten können. Die bei unseren Artikeln angegebenen Lieferzeiten verlängern sich daher jeweils um XXX Tage. Wir danken für Ihr Verständnis.', 'Enter your text for the holiday notice in the German version.', @gid, 3, NOW(), NULL, 'zen_cfg_textarea('), ('Holiday Notice - Text English', 'URLAUBSMELDUNG_TEXT_EN', 'We are on holiday during XXX and XXX. Orders are possible but will not be shipped before XXX.', 'Enter your text for the holiday notice in the English version.', @gid, 4, NOW(), NULL, 'zen_cfg_textarea('), [COLOR=#ff0000]('Holiday Notice - Text Français', 'URLAUBSMELDUNG_TEXT_FR', 'Nous sommes en vacances pendant XXX et XXX. Les commandes sont possibles mais ne seront pas expédiées avant XXX.', 'Entrez votre texte pour l\'avis de vacances dans la version française.', @gid, 5, NOW(), NULL, 'zen_cfg_textarea(');[/COLOR] ############################## # Add values for German admin ############################## INSERT INTO configuration_group (configuration_group_id, language_id, configuration_group_title, configuration_group_description, sort_order, visible ) VALUES (@gid, 43, 'Urlaubsmeldung', 'Einstellungen für die Urlaubsmeldung', '1', '1'); REPLACE INTO configuration_language (configuration_title, configuration_key, configuration_description, configuration_language_id) VALUES ('Urlaubsmeldung aktivieren?', 'URLAUBSMELDUNG_STATUS', 'Wollen Sie die Urlaubsmeldung mit dem Hinweis auf die längeren Lieferzeiten aktivieren?', 43), ('Urlaubsmeldung Text Deutsch', 'URLAUBSMELDUNG_TEXT_DE', 'Geben Sie hier den Text für Ihre Urlaubsmeldung der deutschen Version mit dem Hinweis auf die längeren Versandzeiten ein.', 43), ('Urlaubsmeldung Text Englisch', 'URLAUBSMELDUNG_TEXT_EN', 'Geben Sie hier den Text für Ihre Urlaubsmeldung der englischen Version mit dem Hinweis auf die längeren Versandzeiten ein.', 43); [COLOR=#ff0000]INSERT INTO configuration_group (configuration_group_id, language_id, configuration_group_title, configuration_group_description, sort_order, visible ) VALUES (@gid, 33, 'Message de vacances', 'Paramètres pour la notification de vacances', '1', '1'); REPLACE INTO configuration_language (configuration_title, configuration_key, configuration_description, configuration_language_id) VALUES ('Activer le message de vacances?', 'URLAUBSMELDUNG_STATUS', 'Si vous souhaitez activer le message de vacances avec une référence aux délais de livraison plus longs?', 33), ('Urlaubsmeldung Text Deutsch', 'URLAUBSMELDUNG_TEXT_DE', 'Geben Sie hier den Text für Ihre Urlaubsmeldung der deutschen Version mit dem Hinweis auf die längeren Versandzeiten ein.', 33), ('Texte du message de vacances en français', 'URLAUBSMELDUNG_TEXT_FR', 'Saisissez ici le texte de votre message de vacances de la version française avec la référence aux délais de livraison plus longs.', 33);[/COLOR] ################################### # Register for Admin Access Control ################################### INSERT INTO admin_pages (page_key,language_key,main_page,page_params,menu_key,display_on_menu,sort_order) VALUES ('configUrlaubsmeldung','BOX_CONFIGURATION_URLAUBSMELDUNG','FILENAME_CONFIGURATION',CONCAT('gID=',@gid),'configuration','Y',@gid);
Code:
<?php /** * header code, mainly concerned with adding to messagestack when certain warnings are applicable * * @package templateStructure * @copyright Copyright 2003-2019 Zen Cart Development Team * @copyright Portions Copyright 2003 osCommerce * @license https://www.zen-cart-pro.at/license/3_0.txt GNU General Public License V3.0 * @version $Id: init_header.php for Urlaubsmeldung 2019-09-15 15:49:16Z webchills $ */ if (!defined('IS_ADMIN_FLAG')) { die('Illegal Access'); } if (URLAUBSMELDUNG_STATUS == 'true') { if ($_SESSION['language']=='german') { $messageStack->add('header', URLAUBSMELDUNG_TEXT_DE, 'warning'); } if ($_SESSION['language']=='english') { $messageStack->add('header', URLAUBSMELDUNG_TEXT_EN, 'warning'); } [COLOR=#ff0000] if ($_SESSION['language']=='french') { $messageStack->add('header', URLAUBSMELDUNG_TEXT_FR, 'warning'); } [/COLOR]} // give the visitors a message that the website will be down at ... time if ( (WARN_BEFORE_DOWN_FOR_MAINTENANCE == 'true') && (DOWN_FOR_MAINTENANCE == 'false') ) { $messageStack->add('header', TEXT_BEFORE_DOWN_FOR_MAINTENANCE . PERIOD_BEFORE_DOWN_FOR_MAINTENANCE); } // this will let the admin know that the website is DOWN FOR MAINTENANCE to the public if ( (DOWN_FOR_MAINTENANCE == 'true') && (strstr(EXCLUDE_ADMIN_IP_FOR_MAINTENANCE, $_SERVER['REMOTE_ADDR'])) ) { $messageStack->add('header', TEXT_ADMIN_DOWN_FOR_MAINTENANCE, 'warning'); } // Alerting about payment modules in testing/debug mode if ((defined('MODULE_PAYMENT_PAYPAL_IPN_DEBUG') && MODULE_PAYMENT_PAYPAL_IPN_DEBUG == 'true') || (defined('MODULE_PAYMENT_PAYPAL_TESTING') && MODULE_PAYMENT_PAYPAL_TESTING == 'Test')) { $messageStack->add('header', 'PAYPAL IS IN TESTING MODE', 'warning'); } if ((defined('MODULE_PAYMENT_AUTHORIZENET_AIM_STATUS') && MODULE_PAYMENT_AUTHORIZENET_AIM_STATUS == 'True' && defined('MODULE_PAYMENT_AUTHORIZENET_AIM_TESTMODE') && MODULE_PAYMENT_AUTHORIZENET_AIM_TESTMODE == 'Test') || (defined('MODULE_PAYMENT_AUTHORIZENET_STATUS') && MODULE_PAYMENT_AUTHORIZENET_STATUS == 'True' && defined('MODULE_PAYMENT_AUTHORIZENET_TESTMODE') && MODULE_PAYMENT_AUTHORIZENET_TESTMODE =='Test' ) ) { $messageStack->add('header', 'AUTHORIZENET IS IN TESTING MODE', 'warning'); } if (defined('MODULE_SHIPPING_USPS_SERVER') && MODULE_SHIPPING_USPS_SERVER == 'test' ) { $messageStack->add('header', 'USPS IS IN TESTING MODE', 'warning'); } // Alerts for EZ-Pages if (EZPAGES_STATUS_HEADER == '2' && (strstr(EXCLUDE_ADMIN_IP_FOR_MAINTENANCE, $_SERVER['REMOTE_ADDR']))) { $messageStack->add('header', TEXT_EZPAGES_STATUS_HEADER_ADMIN, 'caution'); } if (EZPAGES_STATUS_FOOTER == '2' && (strstr(EXCLUDE_ADMIN_IP_FOR_MAINTENANCE, $_SERVER['REMOTE_ADDR']))) { $messageStack->add('header', TEXT_EZPAGES_STATUS_FOOTER_ADMIN, 'caution'); } if (EZPAGES_STATUS_SIDEBOX == '2' && (strstr(EXCLUDE_ADMIN_IP_FOR_MAINTENANCE, $_SERVER['REMOTE_ADDR']))) { $messageStack->add('header', TEXT_EZPAGES_STATUS_SIDEBOX_ADMIN, 'caution'); } if (defined('STRICT_ERROR_REPORTING') && STRICT_ERROR_REPORTING == true) { $messageStack->add('header', 'STRICT ERROR REPORTING IS ON', 'warning'); } // if down for maintenance, prevent indexing if ( (DOWN_FOR_MAINTENANCE == 'true') && (!strstr(EXCLUDE_ADMIN_IP_FOR_MAINTENANCE, $_SERVER['REMOTE_ADDR'])) ) { header("HTTP/1.1 503 Service Unavailable"); } /* Check for invalid countries in customer's address book. * If a customer is logged in, check to see that the customers' address(es) still contain valid countries. * If not, redirect to the address-book page for changes. */ if (!empty($_SESSION['customer_id']) && $_GET['main_page'] != FILENAME_ADDRESS_BOOK_PROCESS && $_GET['main_page'] != FILENAME_LOGOFF) { $addresses_query = "SELECT address_book_id, entry_country_id as country_id, entry_firstname as firstname, entry_lastname as lastname FROM " . TABLE_ADDRESS_BOOK . " WHERE customers_id = :customersID ORDER BY firstname, lastname"; $addresses_query = $db->bindVars($addresses_query, ':customersID', $_SESSION['customer_id'], 'integer'); $addresses = $db->Execute($addresses_query); foreach ($addresses as $address) { if (zen_get_country_name($address['country_id'], TRUE) == '') { $messageStack->add_session('addressbook', sprintf(ERROR_TEXT_COUNTRY_DISABLED_PLEASE_CHANGE, zen_get_country_name($address['country_id'], FALSE)), 'error'); zen_redirect (zen_href_link(FILENAME_ADDRESS_BOOK_PROCESS, 'edit=' . $address['address_book_id'], 'SSL')); } } }
Kommentar