Child pages
  • Using the backward compatibility toolkit

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
public function __construct()
{
    $this->name = 'testmodule';
    $this->tab = 'other';
    $this->version = '0.1';
    $this->author = 'Firstname Lastname';
    $this->need_instance = 0;

    parent::__construct();

    $this->displayName = $this->l('Test module');
    $this->description = $this->l('This is a test module');
    $this->confirmUninstall = $this->l('Warning: all the data saved in your database will be deleted. Are you sure you want uninstall this module?');

    /* Backward compatibility */
    if (_PS_VERSION_ < '1.5')
    {
        $this->backward_error = $this->l('In order to work properly in PrestaShop v1.4, the Test module requiers the backward compatibility module at least v0.3.').'<br />'.
            $this->l('You can download this module for free here: http://addons.prestashop.com/en/modules-prestashop/6222-backwardcompatibility.html');
        if (file_exists(_PS_MODULE_DIR_.'backwardcompatibility/backward_compatibility/backward.php'))
        {
            include(_PS_MODULE_DIR_.'backwardcompatibility/backward_compatibility/backward.php');
            $this->backward = true;
        }
        else
            $this->warning = $this->backward_error;
    }
    else
        $this->backward = true;
}

Once this is in place, you can call $this->backward and $this->backward_error in your module in order to pinpoint 1.5- or 1.4-specific code:

Code Block
public function install()
{
    if (!$this->backward && _PS_VERSION_ < 1.5)
    {
        echo '<div class="error">'.Tools::safeOutput($this->backward_error).'</div>';
        return false;
    }

    ...

...or if you want to prevent code from being used under PrestaShop 1.4 as long as the Backward Compatibility module is not available:

Code Block
/* If 1.4 and no backward, then leave */
if (!$this->backward)
    return;