/** * Сохраняет и обновляет параметры товара. * @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; }