/** * 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']))); } }