public function actionElement($param) { //разбираем URL $paramArr = explode("/", $param); $url = array_pop($paramArr); if ($model = CatalogRubrics::model()->find('url LIKE ("' . $url . '")')) { //Это раздел - выводим список $this->actionIndex($model); exit; } //Это карточка товара if (!($model = CatalogElements::model()->find('url LIKE "' . $url . '" OR id = ' . (int) $url))) { throw new CHttpException(404, 'The page can not be found.'); } $this->setSEOData($model); //$modelRubric = CatalogRubrics::model()->findByPk($model->parent_id); if (!$model) { throw new CHttpException(404, 'The page can not be found.'); } $modelChars = CatalogChars::model()->findAll('parent_id=' . $model->id . ' AND status = 1'); $data['modelChars'] = $modelChars; $data['model'] = $model; $data['modelImages'] = CatalogElementsImages::model()->findAll('elements_id = ' . $model->id); $this->render('show', $data); }
public function actionDeleteimages($id) { if ($model = CatalogElementsImages::model()->findByPk((int) $id)) { $id = $model->elements_id; foreach (array('admin', 'small', 'medium', 'large') as $name) { $url_to_file = YiiBase::getPathOfAlias('webroot') . '/../uploads/filestorage/catalog/elements/' . $name . '-' . $model->image_name . '.' . $model->image; if (file_exists($url_to_file)) { unlink($url_to_file); } } $model->delete(); } $this->redirect(array('updateproduct', 'id' => $id)); }
margin-left: -10px; margin-top: -10px; position: absolute; } </style> <div class="control-group"> <?php echo CHtml::activeLabel($model, 'imagefiles'); ?> <div class="controls" style="margin-top: 15px"> <?php if (!$model->isNewRecord) { ?> <?php foreach (CatalogElementsImages::model()->findAll('elements_id = ' . $model->id) as $data) { ?> <div style="margin-bottom: 15px;"> <?php echo CHtml::link(CHtml::image($data->getImageLink('admin', true), $data->image_name . '.' . $data->image), $data->getImageLink('', true), array('target' => '_blank')); ?> <?php echo CHtml::link('X', Yii::app()->urlManager->createUrl('/catalog/catalog/deleteimages', array('id' => $data->id)), array('class' => 'btn-mini deleteBlock')); ?> <span><?php echo $data->image_name . '.' . $data->image; ?> </span> </div> <?php }
/** * Создает изображения для загруженых дополнительных изображений (мультизагрузка) в каталоге товаров(элементы) * @param null $id_element_model * @param string $driver * @return bool */ public function chgImgagesCatalogModel($id_element_model = null, $driver = 'GD') { $filepatch = '../uploads/filestorage/catalog/elements/'; $model = SiteModuleSettings::model()->find('site_module_id = 4'); set_time_limit(0); $param = array(); $param['small'] = array('coords' => $model->e_cover_small, 'crop' => $model->e_cover_small_crop, 'color' => $model->e_small_color); $param['medium'] = array('coords' => $model->e_cover_medium, 'crop' => $model->e_cover_medium_crop, 'color' => $model->e_medium_color); $param['large'] = array('coords' => $model->e_cover_large, 'crop' => $model->e_cover_large_crop, 'color' => $model->e_large_color); $param['admin'] = array('coords' => '100x100', 'crop' => 'Resize', 'color' => 'ffffff'); foreach (CatalogElementsImages::model()->findAll(!empty($id_element_model) ? 'elements_id = ' . $id_element_model : '') as $dataModel) { foreach ($param as $name => $data) { if (!file_exists($filepatch . $dataModel->image_name . '.' . $dataModel->image)) { continue; } $image = new EasyImage($filepatch . $dataModel->image_name . '.' . $dataModel->image, $driver); //$image = new EasyImage($fileOrigin, 'Imagick'); - для Imagic //Накладываем возяной знак $watermark = YiiBase::getPathOfAlias('webroot') . '/../uploads/filestorage/catalog/watermark.png'; if ($model->watermark_type == 1 && file_exists($watermark) && $name != 'admin') { $opacity = 20; $watermark_pos = $model->watermark_pos; //Получаем размеры водяного знака $mark = new EasyImage($watermark); //Позиции водной марки $sizeWm = getimagesize($watermark); $size = getimagesize($filepatch . $dataModel->image_name . '.' . $dataModel->image); switch ($watermark_pos) { case 1: //Замостить for ($y_i = 0; $y_i < $size[1]; $y_i = $y_i + $sizeWm[1]) { for ($x_i = 0; $x_i < $size[0]; $x_i = $x_i + $sizeWm[0]) { $image->watermark($mark, $x_i, $y_i, $opacity); } } break; case 2: //Изображение в нижнем левом углу $x_i = 0; $y_i = $size[1] - $sizeWm[1]; $image->watermark($mark, $x_i, $y_i, $opacity); break; case 3: //Изображение внизу по центру $x_i = $size[0] / 2 - $sizeWm[0] / 2; $y_i = $size[1] - $sizeWm[1]; $image->watermark($mark, $x_i, $y_i, $opacity); break; case 4: //Изображение в центре //$x_i =($x/2)-($sizeWm[0]/2); $x_i = $size[0] / 2 - $sizeWm[0] / 2; $y_i = $size[1] / 2 - $sizeWm[1] / 2; $image->watermark($mark, $x_i, $y_i, $opacity); break; case 5: //Изображение в левом верхнем углу $image->watermark($mark, 0, 0, $opacity); break; case 6: //Изображение в нижнем правом углу $x_i = $size[0] - $sizeWm[0]; $y_i = $size[1] - $sizeWm[1]; $image->watermark($mark, $x_i, $y_i, $opacity); break; default: $image->watermark($mark, 0, 0, $opacity); } } $coords = explode("x", strtolower($data['coords'])); $x = $coords[0]; $y = $coords[1]; switch ($data['crop']) { case 'Resize': $image->resize($x, $y, EasyImage::RESIZE_AUTO); break; case 'horResize': $image->resize($x, $y, EasyImage::RESIZE_WIDTH); break; case 'verResize': $image->resize($x, $y, EasyImage::RESIZE_HEIGHT); break; case 'insertResize': $image->resize($x, $y, EasyImage::RESIZE_AUTO); $image->background('#' . str_replace("#", "", $data['color']), 100); break; case 'exactResize': $image->crop($x, $y); break; default: $image->resize($x, $y, EasyImage::RESIZE_AUTO); } //$filepatch.$dataModel->image_name.'.'.$dataModel->image $image->save($filepatch . $name . '-' . $dataModel->image_name . '.' . $dataModel->image); } } return true; }