コード例 #1
0
ファイル: actioner.php プロジェクト: kostiukoleg/all4web.loc
 /**
  * Сохраняет и обновляет параметры товара.
  * @return type
  */
 public function saveProduct()
 {
     $this->messageSucces = $this->lang['ACT_SAVE_PROD'];
     $this->messageError = $this->lang['ACT_NOT_SAVE_PROD'];
     $model = new Models_Product();
     $itemId = 0;
     //Перед сохранением удалим все помеченные  картинки продукта физически с диска.
     $_POST = $model->prepareImageName($_POST);
     $images = explode("|", $_POST['image_url']);
     foreach ($_POST['variants'] as $cell => $variant) {
         $images[] = $variant['image'];
     }
     if (!is_numeric($_POST['count'])) {
         $_POST['count'] = "-1";
     }
     // исключаем дублированные артикулы в строке связаных товаров
     if (!empty($_POST['related'])) {
         $_POST['related'] = implode(',', array_unique(explode(',', $_POST['related'])));
     }
     if (!empty($_POST['userProperty'])) {
         foreach ($_POST['userProperty'] as $k => $v) {
             $_POST['userProperty'][$k] = htmlspecialchars_decode($v);
         }
     }
     //Обновление
     if (!empty($_POST['id'])) {
         $itemId = $_POST['id'];
         $_POST['updateFromModal'] = true;
         // флаг, чтобы отличить откуда было обновление  товара
         $model->updateProduct($_POST);
         $_POST['image_url'] = $images[0];
         $_POST['currency'] = MG::getSetting('currency');
         $_POST['recommend'] = $_POST['recommend'];
         $tempProd = $model->getProduct($_POST['id']);
         $arrVar = $model->getVariants($_POST['id']);
         foreach ($arrVar as $key => $variant) {
             $variant['image'] = basename($variant['image']);
             $tempProd['variants'][] = $variant;
         }
         // $tempProd['variants'] = array($arrVar);
         $tempProd['real_price'] = $tempProd['price'];
         $this->data = $tempProd;
     } else {
         // добавление
         unset($_POST['delete_image']);
         $newProd = $model->addProduct($_POST);
         $itemId = $newProd['id'];
         $this->data['image_url'] = $images[0];
         $this->data['currency'] = MG::getSetting('currency');
         $this->data['recommend'] = $_POST['recommend'];
         $tempProd = $model->getProduct($newProd['id']);
         $arrVar = $model->getVariants($newProd['id']);
         foreach ($arrVar as $key => $variant) {
             $tempProd['variants'][] = $variant;
         }
         // $tempProd['variants'] = array($arrVar);
         $tempProd['real_price'] = $tempProd['price'];
         $this->data = $tempProd;
     }
     if ($arImages = explode('|', $_POST['delete_image'])) {
         $model->deleteImagesProduct($arImages, $itemId);
     }
     $model->movingProductImage($images, $itemId, 'uploads/prodtmpimg');
     $image = empty($images[0]) ? 0 : $images[0];
     $this->data['image_url'] = mgImageProductPath($image, $itemId);
     //    viewData($this->data['image_url']);
     //    exit();
     return true;
 }