Example #1
0
 /**
  * Permet d'ajouter des propriété supplémentaires
  * @param $id_lang
  * @param $query_result
  * @return array
  * @module now_product_type
  */
 public static function getProductsProperties($id_lang, $query_result)
 {
     $products = parent::getProductsProperties($id_lang, $query_result);
     require_once _PS_MODULE_DIR_ . 'now_product_type/classes/NowProductType.php';
     require_once _PS_MODULE_DIR_ . 'now_product_type/classes/NowProductTypeProduct.php';
     if ((int) count($products) > 0) {
         $aProductsTypesProducts = NowProductTypeProduct::getProductsById();
         $aProductsTypes = NowProductType::getByIdProductTypes($aProductsTypesProducts);
         foreach ($products as &$aProduct) {
             if (array_key_exists($aProduct['id_product'], $aProductsTypesProducts) && array_key_exists($aProductsTypesProducts[$aProduct['id_product']], $aProductsTypes)) {
                 $aProduct['product_type'] = $aProductsTypes[$aProductsTypesProducts[$aProduct['id_product']]];
             }
         }
     }
     return $products;
 }
 public function checkProductTypes($aDatas, &$aNewData)
 {
     foreach ($aDatas as $aData) {
         // Initialisation
         $aData['error'] = "";
         if (!array_key_exists('product_reference', $aData)) {
             $aData['product_reference'] = '';
         }
         if (!array_key_exists('product_id', $aData)) {
             $aData['product_id'] = '';
         }
         if (empty($aData['product_reference']) && empty($aData['product_id'])) {
             $aData['error'] = $this->module->l('Product reference and product ID is empty.', 'AdminNowImportProductType');
         }
         // On vérifie l'Id produit si il existe
         if (empty($aData['product_id']) || !NowProduct::isRealProduct($aData['product_id'])) {
             // Get product by product reference
             if (empty($aData['product_reference']) || !($aData['product_id'] = NowProduct::getIdProductByProductReference($aData['product_reference']))) {
                 $aData['error'] = sprintf($this->module->l('Product reference doesn\'t exist: "%s".', 'AdminNowImportProductType'), $aData['product_reference']);
             }
         }
         // On récuprère les informations du produit
         $aProduct = NowProduct::getProductLight($aData['product_id']);
         // On récupère le nouveau type de produit
         $oNewNowProductType = NowProductType::getObjectByIdProductType($aData['id_now_product_type'], Context::getContext()->language->id);
         if (Validate::isLoadedObject($oNewNowProductType)) {
             $aData['new_product_type'] = $oNewNowProductType->name;
         } else {
             $aData['error'] = sprintf($this->module->l('Product type ID doesn\'t exist: "%s".', 'AdminNowImportProductType'), $aData['id_now_product_type']);
         }
         // On récupère l'ancien type de produit
         $oOldNowProductType = NowProductType::getObjectByIdProduct($aProduct['id_product'], Context::getContext()->language->id);
         if (Validate::isLoadedObject($oOldNowProductType)) {
             $aData['old_product_type'] = $oOldNowProductType->name;
         } else {
             $aData['old_product_type'] = '';
         }
         $aNewData[] = array('id_product' => $aProduct['id_product'], 'product_reference' => $aProduct['reference'], 'product_name' => $aProduct['name'], 'id_now_product_type' => $aData['id_now_product_type'], 'new_product_type' => $aData['new_product_type'], 'old_product_type' => $aData['old_product_type'], 'active' => $aData['active'], 'error' => $aData['error']);
     }
 }
 /**
  * @param $aDatas
  * @param $aNewData
  */
 public function checkImport($aDatas, &$aNewData)
 {
     foreach ($aDatas as $aData) {
         // Initialisation
         $aData['error'] = "";
         if (!array_key_exists('product_reference', $aData)) {
             $aData['product_reference'] = '';
         }
         if (!array_key_exists('product_id', $aData)) {
             $aData['product_id'] = '';
         }
         if (empty($aData['product_reference']) && empty($aData['product_id'])) {
             $aData['error'] = $this->module->l('Product reference and product ID is empty.', 'AdminNowAllImport');
             continue;
         } else {
             // On vérifie l'Id produit si il existe
             if (empty($aData['product_id']) || !NowProduct::isRealProduct($aData['product_id'])) {
                 // Get product by product reference
                 if (empty($aData['product_reference']) || !($aData['product_id'] = NowProduct::getIdProductByProductReference($aData['product_reference']))) {
                     $aData['error'] = sprintf($this->module->l('Product reference doesn\'t exist: "%s".', 'AdminNowAllImport'), $aData['product_reference']);
                 }
             }
             // On récuprère les informations du produit
             $aProduct = NowProduct::getProductLight($aData['product_id']);
             // On récupère le nouveau type de produit
             if (!empty($aData['id_now_product_type'])) {
                 $oNewNowProductType = NowProductType::getObjectByIdProductType($aData['id_now_product_type'], Context::getContext()->language->id);
                 if (Validate::isLoadedObject($oNewNowProductType)) {
                     // On récupère l'ancien type de produit
                     $oOldNowProductType = NowProductType::getObjectByIdProduct($aProduct['id_product'], Context::getContext()->language->id);
                     if (Validate::isLoadedObject($oOldNowProductType)) {
                         $oldproductTypeName = $oOldNowProductType->name;
                     }
                     $aData['product_type'] = $oNewNowProductType->name . ' ' . (isset($oldproductTypeName) && $oOldNowProductType->id != $oNewNowProductType->id ? sprintf($this->module->l('(Old: %s)', 'AdminNowAllImport'), $oldproductTypeName) : '');
                 } else {
                     $aData['error'] = sprintf($this->module->l('Product type ID doesn\'t exist: "%s".', 'AdminNowAllImport'), $aData['id_now_product_type']);
                 }
             }
         }
         $aNewData[] = array('id_product' => isset($aProduct['id_product']) ? $aProduct['id_product'] : '', 'product_name' => isset($aProduct['name']) ? $aProduct['name'] : '', 'product_reference' => isset($aProduct['reference']) ? $aProduct['reference'] : '', 'active' => isset($aData['active']) ? $aData['active'] : '', 'accessories' => isset($aData['accessories']) ? $aData['accessories'] : '', 'new_accessories' => isset($aData['accessories']) ? $this->getNewAccessories($aData['accessories']) : '', 'old_accessories' => isset($aData['product_id']) ? $this->getOldAccessories($aData['product_id']) : '', 'id_now_product_type' => isset($aData['id_now_product_type']) ? $aData['id_now_product_type'] : '', 'product_type' => isset($aData['product_type']) ? $aData['product_type'] : '', 'ideas_tips' => isset($aData['ideas_tips']) ? $aData['ideas_tips'] : '', 'new_ideas_tips' => isset($aData['ideas_tips']) ? $this->getNewIdeasOrTips($aData['ideas_tips']) : '', 'old_ideas_tips' => isset($aData['product_id']) ? $this->getOldIdeasOrTips($aData['product_id']) : '', 'products_pack' => isset($aData['products_pack']) ? $aData['products_pack'] : '', 'new_products_pack' => isset($aData['products_pack']) ? $this->getNewProductsPacks($aData['products_pack']) : '', 'old_products_pack' => isset($aData['product_id']) ? $this->getOldProductsPacks($aData['product_id']) : '', 'error' => isset($aData['error']) ? $aData['error'] : '');
     }
 }
 /**
  * Hook displayBackOfficeHeader
  * @param $aParams
  * @return bool
  */
 public function hookDisplayBackOfficeHeader($aParams)
 {
     if (in_array(get_class($this->context->controller), array('AdminProductsController', 'AdminProductsControllerCore')) && isset($_GET['id_product'])) {
         $this->context->smarty->assign(array('aNowProductTypes' => NowProductType::getItems(), 'oNowProductTypeProduct' => NowProductTypeProduct::getObjectByProductId($_GET['id_product'])));
     }
 }