Пример #1
0
function upgrade_module_1_5($object, $install = false)
{
    // Install overrides
    try {
        $object->installOverrides();
    } catch (Exception $e) {
        Tools::displayError(sprintf(Tools::displayError('Unable to install override: %s'), $e->getMessage()));
        //$this->uninstallOverrides(); remove this line because if module a install an override, then module b install same override, this line will remove override of module a (if you find a bug related to this line please don't forget what i say before)
        return false;
    }
    $classindex = realpath(dirname(__FILE__) . '/../..') . '/cache/class_index.php';
    unset($classindex);
    if (version_compare(_PS_VERSION_, '1.6', '>=')) {
        PrestashopAutoload::getInstance()->generateIndex();
    } else {
        Autoload::getInstance()->generateIndex();
    }
    if (!Hook::getIdByName('actionBeforeAddOrder')) {
        $hook = new Hook();
        $hook->name = 'actionBeforeAddOrder';
        $hook->title = 'Execute actions before order is added to database';
        $hook->description = 'Custom hook for Order Add function';
        $hook->position = true;
        $hook->live_edit = false;
        $hook->add();
    }
    if (!Hook::getIdByName('actionBeforeAddOrderInvoice')) {
        $hook2 = new Hook();
        $hook2->name = 'actionBeforeAddOrderInvoice';
        $hook2->title = 'Execute actions before invoice is added to database';
        $hook2->description = 'Custom hook for Order setLastInvoiceNumber function';
        $hook2->position = true;
        $hook2->live_edit = false;
        $hook2->add();
    }
    if (!Hook::getIdByName('actionBeforeAddDeliveryNumber')) {
        $hook3 = new Hook();
        $hook3->name = 'actionBeforeAddDeliveryNumber';
        $hook3->title = 'Execute actions before delivery number is added to database';
        $hook3->description = 'Custom hook for Order setDeliveryNumber function';
        $hook3->position = true;
        $hook3->live_edit = false;
        $hook3->add();
    }
    $id_new_hook = Hook::getIdByName('actionBeforeAddOrder');
    $id_new_hook2 = Hook::getIdByName('actionBeforeAddOrderInvoice');
    $id_new_hook3 = Hook::getIdByName('actionBeforeAddDeliveryNumber');
    $id_old_hook = Hook::getIdByName('actionValidateOrder');
    $mod_new_hook = Hook::getModulesFromHook($id_new_hook, $object->id);
    $mod_new_hook2 = Hook::getModulesFromHook($id_new_hook2, $object->id);
    $mod_new_hook3 = Hook::getModulesFromHook($id_new_hook3, $object->id);
    $mod_old_hook = Hook::getModulesFromHook($id_old_hook, $object->id);
    if (empty($mod_new_hook)) {
        $object->registerHook('actionBeforeAddOrder');
    }
    if (empty($mod_new_hook2)) {
        $object->registerHook('actionBeforeAddOrderInvoice');
    }
    if (empty($mod_new_hook3)) {
        $object->registerHook('actionBeforeAddDeliveryNumber');
    }
    if (!empty($mod_old_hook)) {
        $object->unregisterHook('actionValidateOrder');
    }
    return true;
}
Пример #2
0
 public function install()
 {
     $hook = new Hook(Hook::getIdByName('actionBeforeAddOrder'));
     $hook->delete();
     unset($hook);
     $hook2 = new Hook(Hook::getIdByName('actionBeforeAddOrderInvoice'));
     $hook2->delete();
     unset($hook2);
     $hook3 = new Hook(Hook::getIdByName('actionBeforeAddDeliveryNumber'));
     $hook3->delete();
     unset($hook3);
     if (!Hook::getIdByName('actionBeforeAddOrder')) {
         $hook = new Hook();
         $hook->name = 'actionBeforeAddOrder';
         $hook->title = 'Execute actions before order is added to database';
         $hook->description = 'Custom hook for Order Add function';
         $hook->position = true;
         $hook->live_edit = false;
         if (!$hook->add()) {
             return $this->_abortInstall('Error while adding hook actionBeforeAddOrder', 0);
         }
         unset($hook);
     }
     if (!Hook::getIdByName('actionBeforeAddOrderInvoice')) {
         $hook2 = new Hook();
         $hook2->name = 'actionBeforeAddOrderInvoice';
         $hook2->title = 'Execute actions before invoice is added to database';
         $hook2->description = 'Custom hook for OrderInvoice Add function';
         $hook2->position = true;
         $hook2->live_edit = false;
         if (!$hook2->add()) {
             return $this->_abortInstall('Error while adding hook actionBeforeAddOrderInvoice', 1);
         }
         unset($hook2);
     }
     if (!Hook::getIdByName('actionBeforeAddDeliveryNumber')) {
         $hook3 = new Hook();
         $hook3->name = 'actionBeforeAddDeliveryNumber';
         $hook3->title = 'Execute actions before delivery number is added to database';
         $hook3->description = 'Custom hook for Order setDeliveryNumber function';
         $hook3->position = true;
         $hook3->live_edit = false;
         if (!$hook3->add()) {
             return $this->_abortInstall('Error while adding hook actionBeforeAddDeliveryNumber', 2);
         }
     }
     if (!$this->installDB()) {
         return $this->_abortInstall('Error while installing module database settings', 3);
     }
     if (!parent::install()) {
         return $this->_abortInstall('Error while installing module class', 4);
     }
     if (!$this->installXtraOverrides()) {
         return $this->_abortInstall('Error while installing OrderPayment definition override', 5);
     }
     if (!$this->registerHook('actionBeforeAddOrder')) {
         return $this->_abortInstall('Error while adding module to hook actionBeforeAddOrder', 6);
     }
     if (!$this->registerHook('actionBeforeAddOrderInvoice')) {
         return $this->_abortInstall('Error while adding module to hook actionBeforeAddOrderInvoice', 7);
     }
     if (!$this->registerHook('actionBeforeAddDeliveryNumber')) {
         return $this->_abortInstall('Error while adding module to hook actionBeforeAddDeliveryNumber', 8);
     }
     if (!Configuration::updateValue('ORD_REF_ORDERID', 0)) {
         return $this->_abortInstall('Error while adding configuration setting ORD_REF_ORDERID', 9);
     }
     if (!Configuration::updateValue('ORD_REF_PREFIXNULO', 0)) {
         return $this->_abortInstall('Error while adding configuration setting ORD_REF_PREFIXNULO', 10);
     }
     if (!Configuration::updateValue('ORD_REF_PREFIXNULNRO', 9)) {
         return $this->_abortInstall('Error while adding configuration setting ORD_REF_PREFIXNULNRO', 11);
     }
     if (!Configuration::updateValue('ORD_REF_PREFIXNULNRC', 9)) {
         return $this->_abortInstall('Error while adding configuration setting ORD_REF_PREFIXNULNRC', 12);
     }
     if (!Configuration::updateValue('ORD_REF_PREFIXSIGNO', '')) {
         return $this->_abortInstall('Error while adding configuration setting ORD_REF_PREFIXSIGNO', 13);
     }
     if (!Configuration::updateValue('ORD_REF_CARTID', 0)) {
         return $this->_abortInstall('Error while adding configuration setting ORD_REF_PREFIX_CARTID', 14);
     }
     if (!Configuration::updateValue('ORD_REF_PREFIXNULC', 0)) {
         return $this->_abortInstall('Error while adding configuration setting ORD_REF_PREFIXNULC', 15);
     }
     if (!Configuration::updateValue('ORD_REF_PREFIXSIGNC', '')) {
         return $this->_abortInstall('Error while adding configuration setting ORD_REF_PREFIXSIGNC', 16);
     }
     if (!Configuration::updateValue('ORD_REF_PREFIXSIGN', '')) {
         return $this->_abortInstall('Error while adding configuration setting ORD_REF_PREFIXSIGN', 17);
     }
     if (!Configuration::updateValue('INV_REF_ORDERID', 0)) {
         return $this->_abortInstall('Error while adding configuration setting INV_REF_ORDERID', 18);
     }
     if (!Configuration::updateValue('INV_REF_CARTID', 0)) {
         return $this->_abortInstall('Error while adding configuration setting INV_REF_CARTID', 19);
     }
     if (!Configuration::updateValue('INV_REF_PREFIXSIGN', 0)) {
         return $this->_abortInstall('Error while adding configuration setting INV_REF_PREFIXSIGN', 20);
     }
     $classindex = realpath(dirname(__FILE__) . '/../..') . '/cache/class_index.php';
     unset($classindex);
     if (version_compare(_PS_VERSION_, '1.6', '>=')) {
         PrestashopAutoload::getInstance()->generateIndex();
     } else {
         Autoload::getInstance()->generateIndex();
     }
     return true;
 }