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;
             }
         }
     }
 }
示例#2
0
 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;
 }
示例#3
0
 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;
 }