Jump to content

Patrick

Members
  • Posts

    243
  • Joined

  • Last visited

  • Days Won

    20

Posts posted by Patrick

  1. Hi Catalina,

     

    I think you find a small bug, but you can change the sql request by this. It must resolve your problem.

     

    bm_page_manager

     $Qpages = $CLICSHOPPING_Db->prepare('select count(*) as count
                                              from :table_pages_manager
                                              where status = 1
                                              and page_box = 0
                                              and page_type = 4
                                              and (customers_group_id = :customers_group_id or customers_group_id = 99)
                                             ');
          $Qpages->bindInt(':customers_group_id', (int)$CLICSHOPPING_Customer->getCustomersGroupID() );

    and 

    bm_page_manager_customize

     

          $QpagesSecondary = $CLICSHOPPING_Db->prepare('select count(*) as count
                                                  from :table_pages_manager
                                                  where status = 1
                                                  and page_box = 1
                                                  and page_type = 4
                                                  and (customers_group_id = :customers_group_id or customers_group_id = 99)
                                                ');
          $QpagesSecondary->bindInt(':customers_group_id', (int)$CLICSHOPPING_Customer->getCustomersGroupID() );

     

    • Thanks 1
  2. 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.

     

     

     

     

    • Like 2
  3. The difference :

    Hooks can not be removed or put offline (except if you make something inside apps for example)
    Hooks can not have option than you can activate (except if you make something inside apps for example)

    Hooks can display or make action on your website

    --> bootstrap is inside a hooks, it better that to include inside a header tag.

     

    Header_tag
    Yyou can choose if you want to put in header or footer
    You can activate or deactivate
    You can install or not

    You can make some different option
    There is more flexibility than a hooks?

    --> google analytics is better to be included inside header tag

     

    Which use ?
    Depend what you want to do. If you want to include some options, header tags is better.

     

    In summary

    • Thanks 1
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use