MEG Venture Posted June 26, 2014 Share Posted June 26, 2014 (edited) Hi When I use the validator, I get the "Use of globals is forbidden" message for two lines. I declare global smarty in those two places. This is because my module is compatible from 1.4 through 1.6. Therefore it is technically declined. I believe that for 1.4, I need to keep those two lines. What can I do? Thanks. Edited June 28, 2014 by MEG Venture (see edit history) Link to comment Share on other sites More sharing options...
bellini13 Posted June 26, 2014 Share Posted June 26, 2014 you may not need those lines if you use backwards compatibility. Link to comment Share on other sites More sharing options...
MEG Venture Posted June 26, 2014 Author Share Posted June 26, 2014 What is backwards compatibilty? Can you elaborate, please? Link to comment Share on other sites More sharing options...
vekia Posted June 26, 2014 Share Posted June 26, 2014 backward compability is a library that will add support of new functions (from ps 1.6) for "backward" methods used in prestashop 1.4 1.3 1.2. 1.1 1.0 for example, in old ps 1.4 you used global variables like $cookie or $smarty since 1.5 globals are deprecated, instead of them you have to use context object. backward compability - in simple words - change old deprecated functions to new from 1.5.x and 1.6.x releases, so, the effect is fact that you can use 1.5.x functions in old releases check this one: http://addons.prestashop.com/en/administration-tools-prestashop-modules/6222-backward-compatibility.html everything will be clear then :-) Link to comment Share on other sites More sharing options...
MEG Venture Posted June 27, 2014 Author Share Posted June 27, 2014 Thank you Vekia. How will I use this module in my module? Do we have any written guidance on this? Or do the customers will download and use it? Link to comment Share on other sites More sharing options...
Kamel Boukhateb Posted June 27, 2014 Share Posted June 27, 2014 Hello, The backward compatibility is available on prestashop addons for free and maintained by the dev core team. It allows you the use of Context on a 1.1->1.4 module and you include it on your module. http://doc.prestashop.com/display/PS16/Using+the+backward+compatibility+toolkit However we know that everybody isn't using it so on our validation (prestashop addons), if we see globals on a module compatible from 1.3 for example, we don't decline it for this reason. 1 Link to comment Share on other sites More sharing options...
MEG Venture Posted June 27, 2014 Author Share Posted June 27, 2014 But my module has been declined, recently although it is compatible from 1.4 to 1.6. Link to comment Share on other sites More sharing options...
vekia Posted June 27, 2014 Share Posted June 27, 2014 check how gsitemap or paypal module uses backward compatibility library <?php /* * 2007-2014 PrestaShop * * NOTICE OF LICENSE * * This source file is subject to the Open Software License (OSL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/osl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to [email protected] so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to http://www.prestashop.com for more information. * * @author PrestaShop SA <[email protected]> * @copyright 2007-2014 PrestaShop SA * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * International Registered Trademark & Property of PrestaShop SA */ /** * Backward function compatibility * Need to be called for each module in 1.4 */ // Get out if the context is already defined if (!in_array('Context', get_declared_classes())) require_once(dirname(__FILE__).'/Context.php'); // Get out if the Display (BWDisplay to avoid any conflict)) is already defined if (!in_array('BWDisplay', get_declared_classes())) require_once(dirname(__FILE__).'/Display.php'); // If not under an object we don't have to set the context if (!isset($this)) return; else if (isset($this->context)) { // If we are under an 1.5 version and backoffice, we have to set some backward variable if (_PS_VERSION_ >= '1.5' && isset($this->context->employee->id) && $this->context->employee->id && isset(AdminController::$currentIndex) && !empty(AdminController::$currentIndex)) { global $currentIndex; $currentIndex = AdminController::$currentIndex; } return; } $this->context = Context::getContext(); $this->smarty = $this->context->smarty; 1 Link to comment Share on other sites More sharing options...
bellini13 Posted June 27, 2014 Share Posted June 27, 2014 you can also review this guide http://doc.prestashop.com/display/PS15/Using+the+backward+compatibility+toolkit 2 Link to comment Share on other sites More sharing options...
MEG Venture Posted June 27, 2014 Author Share Posted June 27, 2014 Thank you guys. Those information is very beneficial for me and I guess for other developers like me Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now