Jump to content


Popular Content

Showing content with the highest reputation since 02/26/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. 6 points
    An example : $CLICSHOPPING_ProductsLength->convert($products_dimension_depth, $products_length_class_id, 2) In this case, all the products_dimension_depth will be converted in cm. You can also use the default unit (can be defined in configuration store)
  3. 5 points
    Hello @Patrick, The product length has been introduced because some shipping module takes the length (ups, postcanada, boxtal, fedex ..) You can define different length in function your need. When you create a new shipping app, you can convert the length in function of characteristics of the service. For example, in France, we use the cm but in USA, this is the inch. If you have your length in cm, you can convert automatically in inch . Some others updates resolve bug fix.
  4. 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>
  5. 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.
  6. 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(); } } }
  7. 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.
  8. 2 points
    Hello @McJordadino, look this module : https://www.clicshopping.org/forum/files/file/124-modules-checkout-shipping-warning/ https://www.clicshopping.org/forum/files/file/123-modules-checkout-shipping-information-banner/ I think ,it can be a response at your problem.
  9. 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 ?
  10. 1 point
    @Julie, This code can help you, replace the product name by this : <?php $products = $CLICSHOPPING_ShoppingCart->get_products(); foreach ($products as $k => $v) { $name = $v['name']; $image = HTML::image($CLICSHOPPING_Template->getDirectoryTemplateImages() . $v['image'], HTML::outputProtected($name), 50, 50, null, true); echo ' <div class="row"> <div class="col-md-12"> <li class="headerMultiTemplateDefaultLi">&nbsp;&nbsp; <div class="float-md-left">' . $v['quantity'] . ' - ' . $name . '</div> <div class="float-md-right text-md-right">' . $CLICSHOPPING_Currencies->display_price($v['final_price'], $CLICSHOPPING_Tax->getTaxRate($v['tax_class_id']), $v['quantity']) . '</div> </li> </div> </div> '; } ?>
  11. 1 point
    Yes, of course A very simple approach. Inside modules_header/template/ add this files below After go in your administration Design/Layout/Header, edit your multi-template option and select your new template This example displays the logo and the login link and log off link if you are connected. create a file: my_new_header_test.php add this inside : <?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\HTML; use ClicShopping\OM\CLICSHOPPING; ?> <div class="col-md-<?php echo $content_width; ?>"> <div class="row"> <div class="separator"></div> <span class="col-md-4"><?php echo $logo_header; ?><br /><br /></span> <?php if (!$CLICSHOPPING_Customer->isLoggedOn()) { ?> <span class="col-md-8 text-md-right"><?php echo HTML::link(CLICSHOPPING::link(null, 'Account&Login'), CLICSHOPPING::getDef('modules_header_multi_template_create_account')); ?></span> <?php } else { ?> <span class="col-md-8 text-md-right"><?php echo HTML::link(CLICSHOPPING::link(null, 'Account&LogOff'), CLICSHOPPING::getDef('modules_header_multi_template_account_logoff'));?></span> <?php } ?> </div> </div>
  12. 1 point
    @Grimoire, @Julie, Thank you, a newbie like me it's interesting to understand how works ClicShopping. It's simple when we tried to use a new tool.
  13. 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.
  14. 1 point
    @Patrick, Thank you, like the development is to continue, if a problem is identified, it will be rectified.
  15. 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 :
  16. 1 point
    @Drack, Thank you, it's usefull
  17. 1 point
    @Julie, Nice work, thank you for your explanation
  18. 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.
  19. 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.
  20. 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