Jump to content

[Solved] Need some guidance on backward compatibility


MEG Venture

Recommended Posts

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 by MEG Venture (see edit history)
Link to comment
Share on other sites

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

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.

  • Like 1
Link to comment
Share on other sites

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;

  • Like 1
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...