protected function saveImages($images) { if (count($images) > 0) { foreach ($images as $key => $url) { $image_entity = ProductImageModel::findOneByUrl($url); if (!$image_entity) { // save image to local HDD $filename = 'p_' . $this->product->id . '_i_' . $key . '.jpg'; $filepath = 'd:\\workspace\\newhtf\\data\\images\\' . $filename; $image_bin = file_get_contents($url); file_put_contents($filepath, $image_bin); // save image to DB if (file_exists($filepath)) { $image_entity = new ProductImage(); $image_entity->fromArray(['product_id' => $this->product->id, 'url' => $url, 'filename' => $filename]); $image_entity->save(); } } else { $image_entity->id; } } } }
public function GetProduct($params = null) { $arrReturnMe = array(); if (empty($params[self::PROD_ID])) { return false; } $szSQL = self::SELECT_FROM_JOIN(array(self::tblFld(self::PROD_ID), self::tblFld(self::PROD_NAME), \Av\Image\ImageModel::tblFld(\Av\Image\ImageModel::IMG_PATH), \Av\Image\ImageModel::tblFld(\Av\Image\ImageModel::IMG_ID), ProductDescriptionModel::tblFld(ProductDescriptionModel::DESCRIPTION), ProductAttributeModel::ATTR_GROUP_ID, ProductAttributeModel::ATTR_ID, ProductAttributeModel::ATTR_VALUE), array(self::tbl(), ProductDescriptionModel::leftJoin(array(array(self::tblFld(self::PROD_ID), ProductDescriptionModel::tblFld(ProductDescriptionModel::PROD_ID)))), ProductImageModel::leftJoin(array(array(self::tblFld(self::PROD_ID), ProductImageModel::tblFld(ProductImageModel::PROD_ID)))), \Av\Image\ImageModel::leftJoin(array(array(ProductImageModel::tblFld(ProductImageModel::IMG_ID), \Av\Image\ImageModel::tblFld(\Av\Image\ImageModel::IMG_ID)))), ProductAttributeModel::leftJoin(array(array(self::tblFld(self::PROD_ID), ProductAttributeModel::tblFld(ProductAttributeModel::PROD_ID))), array(ProductAttributeModel::tblFld(ProductAttributeModel::STATUS)))), array(self::tblFld(self::STATUS), self::tblFld(self::PROD_ID))); $arrSQL = array(1, 1, $params[self::PROD_ID]); $cDB =& $this->GetDBAdapter(); $rs = $cDB->Execute($szSQL, $arrSQL); $error = $cDB->ErrorMsg(); $this->AddDebugAsObject($rs->sql, __METHOD__ . " line #" . __LINE__); if (!empty($error)) { $this->AddDebugAsObject($szSQL, __METHOD__ . " failed SQL: line #" . __LINE__); $this->AddDebugAsObject($arrSQL, __METHOD__ . " failed SQL params are: line #" . __LINE__); $this->AddDebugAsObject($error, __METHOD__ . " SQL error: line #" . __LINE__); return false; } while ($this->isValid($rs)) { $this->AddRecord($arrReturnMe, $rs->fields); $rs->MoveNext(); } return empty($arrReturnMe) ? false : $arrReturnMe; }
private static function processPost($product) { $errors = array(); if (!empty($_POST)) { if (empty($_POST['name'][DEF_LANG])) { $errors['name'] = 'Укажите название на языке по умолчанию'; } else { $langs = App::getLangs(); foreach ($langs as $lang) { if (empty($_POST['name'][$lang->getId()])) { $_POST['name'][$lang->getId()] = $_POST['name'][DEF_LANG]; } } $product->name = $_POST['name']; } if (empty($_POST['id_brand'])) { $errors['id_brand'] = 'Не выбран производитель'; } else { $product->id_brand = $_POST['id_brand']; } if (empty($_POST['id_category'])) { $errors['id_category'] = 'Не выбрана категория'; } else { $product->id_category = $_POST['id_category']; } if (empty($_POST['articul'])) { $errors['articul'] = 'Введите артикул'; } else { $product->articul = $_POST['articul']; } if ($_POST['price'] < 0) { $errors['price'] = 'Цена некорректна'; } else { $product->price = $_POST['price']; } $product->active = isset($_POST['active']) ? 1 : 0; $langs = App::getLangs(); foreach ($langs as $lang) { if (empty($_POST['description'][$lang->getId()])) { $_POST['description'][$lang->getId()] = $_POST['description'][DEF_LANG]; } } $product->description = $_POST['description']; if (empty($errors)) { $is_new = $product->getId() ? false : true; $product->save(); if ($is_new) { $images = json_decode($_POST['image_post_params'], true); $images = !empty($images['images']) ? explode(',', $images['images']) : array(); foreach ($images as $index => $image) { rename(ROOT_DIR . '/assets/images/temp/' . $image . '.png', ROOT_DIR . '/assets/images/products/' . $image . '.png'); rename(ROOT_DIR . '/assets/images/temp/' . $image . '_85x84.png', ROOT_DIR . '/assets/images/products/' . $image . '_85x84.png'); rename(ROOT_DIR . '/assets/images/temp/' . $image . '_110x110.png', ROOT_DIR . '/assets/images/products/' . $image . '_110x110.png'); rename(ROOT_DIR . '/assets/images/temp/' . $image . '_184x162.png', ROOT_DIR . '/assets/images/products/' . $image . '_184x162.png'); rename(ROOT_DIR . '/assets/images/temp/' . $image . '_255x128.png', ROOT_DIR . '/assets/images/products/' . $image . '_255x128.png'); rename(ROOT_DIR . '/assets/images/temp/' . $image . '_255x237.png', ROOT_DIR . '/assets/images/products/' . $image . '_255x237.png'); rename(ROOT_DIR . '/assets/images/temp/' . $image . '_329x380.png', ROOT_DIR . '/assets/images/products/' . $image . '_329x380.png'); $productImage = new ProductImageModel(); $productImage->id_product = $product->getId(); $productImage->file = $image; $productImage->position = $index + 1; $productImage->save(); } } self::redirect(App::getLink('AdminProducts')); } } return $errors; }