コード例 #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;
 }
コード例 #2
0
 /**
  * Right Column
  * @param $params
  * @return mixed
  */
 public function hookRightColumn($params)
 {
     if (Configuration::get('NOW_CUST_REFERENCE_ENABLE')) {
         if (Context::getContext()->controller->php_self == 'product') {
             require_once _PS_MODULE_DIR_ . 'now_product_type/classes/NowProductTypeProduct.php';
             $nowProductTypeProduct = NowProductTypeProduct::getObjectByProductId(Tools::getValue('id_product'));
             if (!$nowProductTypeProduct || !Validate::isLoadedObject($nowProductTypeProduct)) {
                 // Si il s'agit d'un type de produit, on n'affiche pas le module
                 return false;
             }
         }
         // Lists of items
         $aItems = NowBlockCustomerReferences::getItems();
         $this->context->smarty->assign(array('module_dir' => $this->module_uri . 'uploads/', 'aItems' => $aItems));
         return $this->context->smarty->fetch($this->module_dir . 'views/templates/hook/footer.tpl');
     }
 }
コード例 #3
0
 /**
  * @param $aDataToImported
  * @param $aDataImported
  */
 public function importFile($aDataToImported, &$aDataImported)
 {
     foreach ($aDataToImported as $aData) {
         if (empty($aData['error'])) {
             // Get product information
             $aProduct = NowProduct::getProductLight($aData['id_product']);
             // Gestion des accessoires
             // Delete old accessories
             if (!NowProduct::deleteAccessories($aData['id_product'])) {
                 $aData['error'] = sprintf($this->module->l('Impossible to deleting old accesories to this product: %s', 'AdminNowAllImport'), $aProduct['reference']);
             }
             // Insert new accesssories
             if (!NowProduct::changeAccessories($aData['id_product'], explode('::', $aData['accessories']))) {
                 $aData['error'] = sprintf($this->module->l('Impossible to adding the new accesories to this product: %s', 'AdminNowAllImport'), $aProduct['reference']);
             }
             // Gestion des types de produits
             // On récupère le type de produit
             $oNowProductTypeProduct = NowProductTypeProduct::getObjectByProductId($aData['id_product']);
             if (Validate::isLoadedObject($oNowProductTypeProduct)) {
                 // Il est valide, on le supprime
                 $oNowProductTypeProduct->delete();
             }
             if (isset($aData['id_now_product_type']) && (bool) $aData['id_now_product_type']) {
                 // On l'ajoute de nouveau
                 $oNowProductTypeProduct = new NowProductTypeProduct();
                 $oNowProductTypeProduct->id_product = (int) $aData['id_product'];
                 $oNowProductTypeProduct->id_now_product_type = (int) $aData['id_now_product_type'];
                 $oNowProductTypeProduct->active = (bool) $aData['active'];
                 $oNowProductTypeProduct->add();
             }
             // Gestion des conseils ou idées
             // Delete old ideas or tips
             if (!NowIdeasOrTips::deleteIdeasOrTips($aData['id_product'])) {
                 $aData['error'] = sprintf($this->module->l('Impossible to deleting old ideas or tips to this product: %s', 'AdminNowAllImport'), $aProduct['reference']);
             }
             // Insert new ideas or tips
             if (!NowIdeasOrTips::changeIdeasOrTips($aData['id_product'], explode('::', $aData['ideas_tips']))) {
                 $aData['error'] = sprintf($this->module->l('Impossible to adding the new ideas or tips to this product: %s', 'AdminNowAllImport'), $aProduct['reference']);
             }
             // Gestion des packs de produits
             // Delete old products pack
             if (!Pack::deleteItems($aData['id_product'])) {
                 $aData['error'] = sprintf($this->module->l('Impossible to deleting old product to this product pack: %s', 'AdminNowAllImport'), $aProduct['reference']);
             }
             // Insert new products pack
             if (!NowProduct::changeProductsPacks($aData['id_product'], explode('::', $aData['products_pack']))) {
                 $aData['error'] = sprintf($this->module->l('Impossible to adding the new product to this product pack: %s', 'AdminNowAllImport'), $aProduct['reference']);
             }
             $aDataImported[] = array('id_product' => $aProduct['id_product'], 'product_reference' => $aProduct['reference'], 'product_name' => $aProduct['name'], 'active' => $aData['active'], 'accessories' => isset($aData['accessories']) && $aData['accessories'] ? $this->getNewAccessories($aData['accessories']) : '', 'id_now_product_type' => Validate::isLoadedObject($oNowProductTypeProduct) ? $oNowProductTypeProduct->id_now_product_type : '', 'ideas_tips' => isset($aData['ideas_tips']) && $aData['ideas_tips'] ? $this->getNewIdeasOrTips($aData['ideas_tips']) : '', 'products_pack' => isset($aData['products_pack']) && $aData['products_pack'] ? $this->getNewProductsPacks($aData['products_pack']) : '', 'error' => $aData['error']);
         } else {
             $this->errors[] = $aData['error'];
         }
     }
 }
コード例 #4
0
 /**
  * Permet de récupèrer le type de produit à partir de l'id du produit
  * @param int $iIdProduct
  * @param string $lang
  * @return array
  */
 public static function getObjectByIdProduct($iIdProduct, $lang = null)
 {
     $oNowProductTypeProduct = NowProductTypeProduct::getObjectByProductId($iIdProduct, $lang);
     return new NowProductType($oNowProductTypeProduct->id_now_product_type, $lang);
 }
コード例 #5
0
 /**
  * @param $aDataToImported
  * @param $aDataImported
  */
 public function importProductTypes($aDataToImported, &$aDataImported)
 {
     foreach ($aDataToImported as $aData) {
         if (empty($aData['error'])) {
             // On récupère le type de produit
             $oNowProductTypeProduct = NowProductTypeProduct::getObjectByProductId($aData['id_product']);
             if (Validate::isLoadedObject($oNowProductTypeProduct)) {
                 // Il est valide, on le modifie
                 $oNowProductTypeProduct->id_now_product_type = (int) $aData['id_now_product_type'];
                 $oNowProductTypeProduct->active = (bool) $aData['active'];
                 $oNowProductTypeProduct->update();
             } else {
                 // On l'ajoute de nouveau
                 $oNowProductTypeProduct = new NowProductTypeProduct();
                 $oNowProductTypeProduct->id_product = (int) $aData['id_product'];
                 $oNowProductTypeProduct->id_now_product_type = (int) $aData['id_now_product_type'];
                 $oNowProductTypeProduct->active = (bool) $aData['active'];
                 $oNowProductTypeProduct->add();
             }
             // get product information
             $aProduct = NowProduct::getProductLight($aData['id_product']);
             $aDataImported[] = array('id_product' => $aProduct['id_product'], 'product_reference' => $aProduct['reference'], 'product_name' => $aProduct['name'], 'id_now_product_type' => $oNowProductTypeProduct->id_now_product_type, 'active' => $aData['active'], 'error' => $aData['error']);
         } else {
             $this->errors[] = $aData['error'];
         }
     }
 }
コード例 #6
0
 /**
  * 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'])));
     }
 }