Leaderboard
Popular Content
Showing content with the highest reputation on 01/02/20 in all areas
-
Hi @Catalina, You must decide where you want to implement this module. - Header, footer, boxe ? - You can look after an exististing module and you can include the information that you want inside. - Generally you have this inside the module(structure) - module_header_google_translate (case of header) he_header_google_translate.php content (directory) header_google_translate.php (html content) and the languages synthaxe (do forget to reset your language in admin if you make a mistake because it's included in cache) On this example : For he_header_google_translate.php <?php /** * * @copyright 2008 - https://www.clicshopping.org * @Brand : ClicShopping(Tm) at Inpi all right Reserved * @Licence GPL 2 & MIT * @licence MIT - Portion of osCommerce 2.4 * @Info : https://www.clicshopping.org/forum/trademark/ * */ use ClicShopping\OM\Registry; use ClicShopping\OM\CLICSHOPPING; class module_header_google_translate { public $code; public $group; public $title; public $description; public $sort_order; public $enabled = false; public $pages; public function __construct() { $this->code = get_class($this); $this->group = basename(__DIR__); $this->title = CLICSHOPPING::getDef('module_header_google_translate_title'); $this->description = CLICSHOPPING::getDef('module_header_google_translate_description'); if ( defined('MODULE_HEADER_GOOGLE_TRANSLATE_STATUS') ) { $this->sort_order = MODULE_HEADER_GOOGLE_TRANSLATE_SORT_ORDER; $this->enabled = (MODULE_HEADER_GOOGLE_TRANSLATE_STATUS == 'True'); $this->pages = MODULE_BOXES_GOOGLE_TRANSLATE_DISPLAY_PAGES; } } public function execute() { $CLICSHOPPING_Template = Registry::get('Template'); $content_width = (int)MODULE_HEADER_GOOGLE_TRANSLATE_CONTENT_WIDTH; $data = '<!-- header_google_translate start -->' . "\n"; $data .= '<script type="text/javascript">'; $data .= 'function googleTranslateElementInit() {'; $data .= 'new google.translate.TranslateElement({pageLanguage: \'en\'}, \'google_translate_element\');'; $data .= '}'; $data .= '</script>' . "\n"; $data .='<script defer src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>' . "\n"; ob_start(); require_once($CLICSHOPPING_Template->getTemplateModules($this->group . '/content/header_google_translate')); $data .= ob_get_clean(); $data .='<!-- header_google_translate end -->' . "\n"; $CLICSHOPPING_Template->addBlock($data, $this->group); } public function isEnabled() { return $this->enabled; } public function check() { return defined('MODULE_HEADER_GOOGLE_TRANSLATE_STATUS'); } public function install() { $CLICSHOPPING_Db = Registry::get('Db'); $CLICSHOPPING_Db->save('configuration', [ 'configuration_title' => 'Do you want to enable this module ?', 'configuration_key' => 'MODULE_HEADER_GOOGLE_TRANSLATE_STATUS', 'configuration_value' => 'True', 'configuration_description' => 'Do you want to enable this module in your shop ?', 'configuration_group_id' => '6', 'sort_order' => '1', 'set_function' => 'clic_cfg_set_boolean_value(array(\'True\', \'False\'))', 'date_added' => 'now()' ] ); $CLICSHOPPING_Db->save('configuration', [ 'configuration_title' => 'Please indicate the width of the content', 'configuration_key' => 'MODULE_HEADER_GOOGLE_TRANSLATE_CONTENT_WIDTH', 'configuration_value' => '12', 'configuration_description' => 'Please specify a display width', 'configuration_group_id' => '6', 'sort_order' => '2', 'set_function' => 'clic_cfg_set_content_module_width_pull_down', 'date_added' => 'now()' ] ); $CLICSHOPPING_Db->save('configuration', [ 'configuration_title' => 'Sort order', 'configuration_key' => 'MODULE_HEADER_GOOGLE_TRANSLATE_SORT_ORDER', 'configuration_value' => '500', 'configuration_description' => 'Sort order of display. Lowest is displayed first. The sort order must be different on every module', 'configuration_group_id' => '6', 'sort_order' => '3', 'set_function' => '', 'date_added' => 'now()' ] ); $CLICSHOPPING_Db->save('configuration', [ 'configuration_title' => 'Please indicate where boxing should be displayed', 'configuration_key' => 'MODULE_HEADER_GOOGLE_TRANSLATE_DISPLAY_PAGES', 'configuration_value' => 'all', 'configuration_description' => 'Sélectionnez les pages où la boxe doit être présente', 'configuration_group_id' => '6', 'sort_order' => '7', 'set_function' => 'clic_cfg_set_select_pages_list', 'date_added' => 'now()' ] ); } public function remove() { return Registry::get('Db')->exec('delete from :table_configuration where configuration_key in ("' . implode('", "', $this->keys()) . '")'); } public function keys() { return array('MODULE_HEADER_GOOGLE_TRANSLATE_STATUS', 'MODULE_HEADER_GOOGLE_TRANSLATE_CONTENT_WIDTH', 'MODULE_HEADER_GOOGLE_TRANSLATE_SORT_ORDER', 'MODULE_HEADER_GOOGLE_TRANSLATE_DISPLAY_PAGES' ); } } Now the content : header_google_translate.php <div class="col-md-<?php echo $content_width; ?>"> <div class="separator"></div> <div id="google_translate_element"></div> </div> At the end the language : languages/english/modules/modules_header/he_header_google_translate.php module_header_google_translate_title = Do you want to enable google translate language module ? module_header_google_translate_description = Display google translate language Same for the french language. Now it's possible to improve the module and fix the script inside the footer by this code $footer_tag = '<script defer>'; $footer_tag .= 'function googleTranslateElementInit() {'; $footer_tag .= 'new google.translate.TranslateElement({pageLanguage: \'en\'}, \'google_translate_element\');'; $footer_tag .= '}'; $footer_tag .= '</script>' . "\n"; $footer_tag .= '<script defer src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>'; $CLICSHOPPING_Template->addBlock($footer_tag, 'footer_scripts'); 10 mn to do that.2 points