Jump to content


Popular Content

Showing content with the highest reputation since 02/19/19 in all areas

  1. 11 points
    Hi everybody You will find inside the zip a folder called update in the root. Open it and include the DB modification. Before to make that, look inside your DB if you have not these fields. Else, if you have installed modules use the products table, you must make an update . The most impact is inside ClicShopping, I recommend you to make before your update, a copy of your version and make the upgrade. If you have o problem, it's cool, else you can make a comment here. About the modules (free and paid) header_menu :slimmenu, upcomming products header_tag : grdp, analytics, facebook pixel, twitter_card, apps : antispam, frontpage_specials, favorites, featured, image, manufacturer modules_products_info : also_purchased, products_related, reviews, download This is the most of apps and modules impacted by the update. Note : the paid modules will be updated today
  2. 5 points
    @Victorious, I will help you, it's very simple to make a new file. You mus create 6 files modules_footer/fo_footer_my_template.php modules_footer/content/fo_footer_my_template.php language/english/modules/modules_footer/fo_footer_my_template.php language/french/modules/modules_footer/fo_footer_my_template.php css/english/modules/modules_footer/fo_footer_my_template.php css/french/modules/modules_footer/fo_footer_my_template.php (if it used) Below an example, make that quickly, it can have litle error inside the files. The most important files (after you can make the other) modules_footer/fo_footer_my_template.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 fo_footer_my_template { public $code; public $group; public $title; public $description; public $sort_order; public $enabled = false; public $pages; protected $rewriteUrl; public function __construct() { $this->code = get_class($this); $this->group = basename(__DIR__); $this->title = CLICSHOPPING::getDef('module_footer_my_template_title'); $this->description = CLICSHOPPING::getDef('module_footer_my_template_description'); $this->rewriteUrl = Registry::get('RewriteUrl'); if ( defined('MODULES_FOOTER_MY_TEMPLATE_STATUS') ) { $this->sort_order = MODULES_FOOTER_MY_TEMPLATE_SORT_ORDER; $this->enabled = (MODULES_FOOTER_MY_TEMPLATE_STATUS == 'True'); $this->pages = MODULE_FOOTER_MY_TEMPLATE_DISPLAY_PAGES; } } public function execute() { $CLICSHOPPING_Template = Registry::get('Template'); $CLICSHOPPING_Customer = Registry::get('Customer'); $CLICSHOPPING_PageManagerShop = Registry::get('PageManagerShop'); $CLICSHOPPING_Db = Registry::get('Db'); if ( MODE_VENTE_PRIVEE == 'false' || (MODE_VENTE_PRIVEE == 'true' && $CLICSHOPPING_Customer->isLoggedOn() )) { // change pages_id = 55 by your id $Qpages = $CLICSHOPPING_Db->prepare('select pd.pages_title, p.links_target from :table_pages_manager p, :table_pages_manager_description pd where p.status = 1 and ( p.customers_group_id = :customers_group_id or p.customers_group_id = 99) and p.pages_id = pd.pages_id and p.pages_id = 55 '); $Qpages->bindInt(':customers_group_id', (int)$CLICSHOPPING_Customer->getCustomersGroupID() ); $Qpages->execute(); $content = HTML::link($this->rewriteUrl->getPageManagerContentUrl($Qpages->valueInt('pages_id')), $Qpages->value('pages_title'), 'target="' . $Qpages->value('links_target') . '"') $content_width = (int)MODULE_FOOTER_MY_TEMPLATE_CONTENT_WIDTH; $my_template_footer = '<!-- footer page manager start -->' . "\n"; ob_start(); require($CLICSHOPPING_Template->getTemplateModules($this->group . '/content/footer_my_template')); $my_template_footer .= ob_get_clean(); $my_template_footer .='<!-- footer page manager end -->' . "\n"; $CLICSHOPPING_Template->addBlock($my_template_footer, $this->group); } } public function isEnabled() { return $this->enabled; } public function check() { return defined('MODULES_FOOTER_MY_TEMPLATE_STATUS'); } public function install() { $CLICSHOPPING_Db = Registry::get('Db'); $CLICSHOPPING_Db->save('configuration', [ 'configuration_title' => 'Do you want activate this module ?', 'configuration_key' => 'MODULES_FOOTER_MY_TEMPLATE_STATUS', 'configuration_value' => 'True', 'configuration_description' => 'Do you want activate 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 select the width of the module', 'configuration_key' => 'MODULE_FOOTER_MY_TEMPLATE_CONTENT_WIDTH', 'configuration_value' => '12', 'configuration_description' => 'Select a number between 1 and 12', 'configuration_group_id' => '6', 'sort_order' => '1', 'set_function' => 'clic_cfg_set_content_module_width_pull_down', 'date_added' => 'now()' ] ); $CLICSHOPPING_Db->save('configuration', [ 'configuration_title' => 'Sort order', 'configuration_key' => 'MODULES_FOOTER_MY_TEMPLATE_SORT_ORDER', 'configuration_value' => '10', 'configuration_description' => 'Sort order of display. Lowest is displayed first', 'configuration_group_id' => '6', 'sort_order' => '4', 'set_function' => '', 'date_added' => 'now()' ] ); $CLICSHOPPING_Db->save('configuration', [ 'configuration_title' => 'Indicate the page where the module is displayed', 'configuration_key' => 'MODULE_FOOTER_MY_TEMPLATE_DISPLAY_PAGES', 'configuration_value' => 'all', 'configuration_description' => 'Select the page where the module is displayed.', 'configuration_group_id' => '6', 'sort_order' => '5', '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 ['MODULES_FOOTER_MY_TEMPLATE_STATUS', 'MODULE_FOOTER_MY_TEMPLATE_CONTENT_WIDTH', 'MODULES_FOOTER_MY_TEMPLATE_SORT_ORDER', 'MODULE_FOOTER_MY_TEMPLATE_DISPLAY_PAGES' ]; } } modules_footer/content/footer_my_template.php <div class="col-md-<?php echo $content_width; ?> moduleFooterMyTemplater"> <span class="moduleFooterMyTemplate"> <span class="footerMyTemplate"><?php echo $content; ?></span> </span> </div>
  3. 3 points
    @Grimoire, It's could be better if you can include a code to create automatically the new field inside the database. you can include this in your code (in AccountGdprSms) private static function installNewField() { $CLICSHOPPING_Db = Registry::get('Db'); $Qcheck = $CLICSHOPPING_Db->query("show columns from :table_account_grpd 'no_sms'"); $check = $Qcheck->fetch(); if ($check === false) { $sql = <<<EOD ALTER TABLE :table_account_grpd ADD no_sms tynint(1) NULL AFTER no_ip_address; EOD; $CLICSHOPPING_Db->exec($sql); } } and write inside display() function this code static::installNewField() It must work.
  4. 3 points
    Hello, Could you help me to create a new GRPD hooks, It's in relation with this post https://www.clicshopping.org/forum/topic/98-adverttisement-sms/?tab=comments#comment-308 If I understand well I must create 2 files, One to display called AccountGdprSms and one AccountGdprDeleteSms. After I must create a new field inside customers_gdpr called no_sms Is like this AccountGdprSms namespace ClicShopping\OM\Module\Hooks\Shop\Account; use ClicShopping\OM\CLICSHOPPING; use ClicShopping\OM\Registry; use ClicShopping\OM\HTML; class AccountGdprNoIp { protected $sms; public function getSms() { $CLICSHOPPING_Db = Registry::get('Db'); $CLICSHOPPING_Customer = Registry::get('Customer'); $Qgdpr = $CLICSHOPPING_Db->prepare('select no_sms from :table_customers_gdpr where customers_id = :customers_id '); $Qgdpr->bindInt(':customers_id', $CLICSHOPPING_Customer->getID()); $Qgdpr->execute(); $sms = $Qgdpr->valueInt('no_sms'); return $sms; } public function display() { $output = '<div>'; $output .= '<label class="checkbox-inline">'; $output .= HTML::checkboxField('no_sms', $this->getSms(), $this->getSms()); $output .= '</label>'; $output .= CLICSHOPPING::getDef('module_account_customers_gdpr_no_sms'); $output .= '</div>'; return $output; } } and for AccountGdprDeleteSms <?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/ * */ namespace ClicShopping\OM\Module\Hooks\Shop\Account; use ClicShopping\OM\CLICSHOPPING; use ClicShopping\OM\Registry; use ClicShopping\OM\HTML; class AccountGdprCallNoSms { public function execute() { $CLICSHOPPING_Db = Registry::get('Db'); $CLICSHOPPING_Customer = Registry::get('Customer'); $Qcheck = $CLICSHOPPING_Db->prepare('select customers_id, no_sms from :table_customers_gdpr where customers_id = :customers_id '); $Qcheck->bindInt(':customers_id', $CLICSHOPPING_Customer->getID()); $Qcheck->execute(); if ($Qcheck->fetch() === false) { $CLICSHOPPING_Db->save('customers_gdpr', ['customers_id' => $CLICSHOPPING_Customer->getID()]); } else { if (!is_null($_POST['no_sms'])) { $no_sms = 1; } else { $no_sms = 0; } $Qupdate = $CLICSHOPPING_Db->prepare('update :table_customers_gdpr set no_sms = :no_sms, customers_id = :customers_id '); $Qupdate->bindInt(':customers_id', $CLICSHOPPING_Customer->getID()); $Qupdate->bindInt(':no_sms', no_sms); $Qupdate->execute(); } } }
  5. 3 points
    It seems to be becarefull of that. I recommend you to make a GRDP hooks to ask the permission at your customer to use their data for sms. With that, you have a protecttion and the customers can remove this option when they want.
  6. 2 points
    Hello @ClicShopping , Thank you for this new version, could you tell us if there something specific and make attention to update the website ?
  7. 2 points
    Hello, First, on you right, you have a dynamic statistic information, These elements appear in function on your website. Some elements can be included inside when you create a new app. Inside this directory, you can find some Hooks : Modules/Hooks/ClicShoppingAdmin/Dashboard I looked the code and all the file starts by this synthax IndexDahboardTop , will displayed information on the top on the dasboard. For example you want to display statistics, news ..., you have to create a file like that IndexDahboardTop.php Litle example : <?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/ * */ namespace ClicShopping\OM\Module\Hooks\ClicShoppingAdmin\Dashboard; use ClicShopping\OM\CLICSHOPPING; class IndexDahboardTopOrder { public function __construct() { if (CLICSHOPPING::getSite() != 'ClicShoppingAdmin') { CLICSHOPPING::redirect(); } } public function execute() { $test = '<span class="col-md-4 alert alert-danger">--------------</span>'; $test .= '<span class="col-md-4 alert alert-info">--------------</span>'; return $test; } } It displays 2 information elements in the dashboard top. Pu the files and it's done
  8. 1 point
    @Patrick, Thank you for your deep test. You have right, but if a category is on Off, it's supposedly all his other must be on OFF. In this case, there is no problem. But you have reason if inside an Off category there is a category on On, in this case, the product is displayed. About the products attributes, the system must be rewritten in the future, no delay on that. it could be an on next release, now, like always, the focus is to discover the bugs.
  9. 1 point
    @Patrick, Thank you, like the development is to continue, if a problem is identified, it will be rectified.
  10. 1 point
    Hello, I have just created a new product new template. The approach is very basic and you can if you want to include some features inside like flash discount, qty, stock ... How it works, Inside directory template_html, create new files like template_boostrap_simple.php and insert this code below. You can copy this files in other template directory if you want to have a new design. I take the orginal design, but if you want to change the css parameters, It's better to create a new css. what do you think ? <?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\CLICSHOPPING; ?> <div class="col-md-<?php echo $bootstrap_column; ?> col-md-<?php echo $bootstrap_column; ?>"> <div class="card-deck-wrapper" itemprop="itemListElement" itemscope="" itemtype="https://schema.org/Product"> <div class="card-deck"> <div class="card card-footer"> <div> <div class="col-md-6 float-md-left"> <div class="ModulesFrontPageBoostrapColumn6Image"> <?php echo $products_image; ?></div> </div> <div class="col-md-6 float-md-right"> <div class="ModulesFrontPageBoostrapColumn6Title"><h3><a href="<?php echo $products_name_url; ?> "><?php echo $products_name; ?></a></h3></div> <div class="separator"></div> <div class="separator"></div> </div> </div> <div class="separator"></div> <div class="hr"></div> <div> <ul class="list-inline"> <div class="ModulesFrontPageBoostrapColumn6TextPrice" itemprop="offers" itemscope itemtype="https://schema.org/Offer"><?php echo CLICSHOPPING::getDef('text_price') . ' ' . $product_price; ?></div> </ul> </div> </div> </div> <div class="separator"></div> </div> </div> the result :
  11. 1 point
    @Julie, Nice work, thank you for your explanation
  12. 1 point
    Just for your information you can look the class includes/Apps/Communication/PageManager/Classes/Shop/PageManagerShop you will some code you can use.
  13. 1 point
    ClicShopping supports the use of SMTP to send email which is required when sending mail from our servers. If you are on a server that does not allow the PHP mail() function or you just wish to use SMTP to send mail, this guide will help you through how to set up SMTP with your shopping cart. First thing to do is log in to go inside you administrative panel, then go to MyStore => Email options and choose "SMTP" as the Transport Method. Also verify these other settings or fill the empty settings Email Line Feels: LF Use MIME EMail when sending email: YES Verify E-Mail Addresses Through DNS : FALSE Use MIME HTML When Sending Emails: FALSE Port SMTP : must be 25 or 594 SMTP Host : SMTP hostssmtp.gmail.com ==> if you want use gmail SMTP authentication : True SMTP Password : ===> your email password SMTP User Name : ===> you email user mame SMTP Reply To : Email if you want to receive on anoher email Do you want use the SMTP secured protocol : Choose one method Do you want the SMTP port : 25 or 597 (depends of your hoster) Also check the the General Store configuration to see that the Email Address and Email From fields are the same as the outgoing email address you'll be using for the setup. Note : If you are under linux, it's better to use sendmail. That' all.
  14. 1 point
    There is 3 choices , hidden, numeric, recaptcha. Now what is the best to use. In my sens, hidden id the better because the customer does not have nothing to do. Do not forget more is simple for the customer, more is better. after if it's not enought, you can use the numeric or the recaptcha.
  15. 1 point
    I use the hidden antispam. I have no problem until now. If you have not installed this apps, I recommend you to do that.
  16. 1 point
    @Josephine : https://www.clicshopping.org/forum/topic/14-how-to-display-information-inside-the-template/ I let you the css .ModulesFrontPageBoostrapColumn5Image { text-align: center; } .ModulesFrontPageBoostrapColumn5Title h3 { font-size: 0.6875rem; text-align:center; vertical-align:text-top; padding-top: 0.3125rem; height: 0.625rem; padding-left: 0.3125rem; padding-right:5px; } .ModulesFrontPageBoostrapColumn5Title A { text-decoration: none; } .ModulesFrontPageBoostrapColumn5TextPrice { color:#000000; text-align:center; vertical-align:text-top; font-size: 0.75rem!important; padding-top: 0.625rem; }


  • Create New...

Important Information

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