diff --git a/common/components/artboximage/ArtboxImageHelper.php b/common/components/artboximage/ArtboxImageHelper.php index 3cf795c..0c6b32e 100644 --- a/common/components/artboximage/ArtboxImageHelper.php +++ b/common/components/artboximage/ArtboxImageHelper.php @@ -1,143 +1,159 @@ artboximage; + + namespace common\components\artboximage; + + use Yii; + use yii\base\Object; + use yii\helpers\ArrayHelper; + use yii\helpers\Html; + + class ArtboxImageHelper extends Object + { + + /** @var ArtboxImage $imageDriver */ + private static $imageDriver; + + private static $presets; + + public static function getDriver() + { + if(empty( self::$imageDriver )) { + self::$imageDriver = Yii::$app->artboximage; + } + return self::$imageDriver; } - return self::$imageDriver; - } - - public function getPreset($preset) { - - if (empty(self::$presets)) { - self::$presets = self::getDriver()->presets; + + public static function getPreset($preset) + { + + if(empty( self::$presets )) { + self::$presets = self::getDriver()->presets; + } + return empty( self::$presets[ $preset ] ) ? NULL : self::$presets[ $preset ]; } - return empty(self::$presets[$preset]) ? null : self::$presets[$preset]; - } - - public static function getImage($file, $preset, $imgOptions = []) { - $preset_alias = is_array($preset) ? array_keys($preset)[0] : null; - return Html::img(self::getImageSrc($file, $preset, $preset_alias), $imgOptions); - } - - public static function getImageSrc($file, $preset, $preset_alias = null) { - if (is_string($preset)) { - $preset_alias = $preset; - $preset = self::getPreset($preset); + + public static function getImage($file, $preset, $imgOptions = []) + { + $preset_alias = is_array($preset) ? array_keys($preset)[ 0 ] : NULL; + return Html::img(self::getImageSrc($file, $preset, $preset_alias), $imgOptions); } - if (empty($preset) || empty($preset_alias)) { - return $file; + + public static function getImageSrc($file, $preset, $preset_alias = NULL) + { + if(is_string($preset)) { + $preset_alias = $preset; + $preset = self::getPreset($preset); + } + if(empty( $preset ) || empty( $preset_alias )) { + return $file; + } + + $filePath = self::getPathFromUrl($file); + if(!file_exists($filePath) || !preg_match('#^(.*)\.(' . self::getExtensionsRegexp() . ')$#', $file, $matches)) { + return $file; + } + return self::getPresetUrl($filePath, $preset, $preset_alias); } - - $filePath = self::getPathFromUrl($file); - if (!file_exists($filePath) || !preg_match('#^(.*)\.(' . self::getExtensionsRegexp() . ')$#', $file, $matches)) { - return $file; + + public static function fileinputWidget($model, $modelField, $formField = 'fileUpload', $multiple = false) + { + return Yii::$app->artboximage->fileinputWidget($model, $modelField, $formField, $multiple); } - return self::getPresetUrl($filePath, $preset, $preset_alias); - } - - public static function fileinputWidget($model, $modelField, $formField = 'fileUpload', $multiple = false) { - return Yii::$app->artboximage->fileinputWidget($model, $modelField, $formField, $multiple); - } - - private static function getPathFromUrl($url) { - return substr_replace($url, self::getDriver()->rootPath, 0, strlen(self::getDriver()->rootUrl)); - } - - private static function getUrlFromPath($path) { - return substr_replace($path, self::getDriver()->rootUrl, 0, strlen(self::getDriver()->rootPath)); - } - - private static function getPresetUrl($filePath, $preset, $preset_alias) { - $pathinfo = pathinfo($filePath); - $presetPath = $pathinfo['dirname'] .'/styles/'. strtolower($preset_alias); - $presetFilePath = $presetPath .'/'. $pathinfo['basename']; - $presetUrl = self::getUrlFromPath($presetFilePath); - if (file_exists($presetFilePath)) { - return $presetUrl; + + private static function getPathFromUrl($url) + { + return substr_replace($url, self::getDriver()->rootPath, 0, strlen(self::getDriver()->rootUrl)); } - if (!file_exists($presetPath)) { - @mkdir($presetPath, 0777, true); + + private static function getUrlFromPath($path) + { + return substr_replace($path, self::getDriver()->rootUrl, 0, strlen(self::getDriver()->rootPath)); } - $output = self::createPresetImage($filePath, $preset, $preset_alias); - if ( !empty($output) ) { - $f = fopen($presetFilePath, 'w'); - fwrite($f, $output); - fclose($f); - return $presetUrl; + + private static function getPresetUrl($filePath, $preset, $preset_alias) + { + $pathinfo = pathinfo($filePath); + $presetPath = $pathinfo[ 'dirname' ] . '/styles/' . strtolower($preset_alias); + $presetFilePath = $presetPath . '/' . $pathinfo[ 'basename' ]; + $presetUrl = self::getUrlFromPath($presetFilePath); + if(file_exists($presetFilePath)) { + return $presetUrl; + } + if(!file_exists($presetPath)) { + @mkdir($presetPath, 0777, true); + } + $output = self::createPresetImage($filePath, $preset, $preset_alias); + if(!empty( $output )) { + $f = fopen($presetFilePath, 'w'); + fwrite($f, $output); + fclose($f); + return $presetUrl; + } + return false; } - return false; - } - - private static function createPresetImage($filePath, $preset, $preset_alias) - { - $image = self::getDriver()->load($filePath); - foreach ($preset as $action => $data) { - switch($action) { - case 'resize': - $width = empty($data['width']) ? null : $data['width']; - $height = empty($data['height']) ? null : $data['height']; - $master = empty($data['master']) ? null : $data['master']; - $image->resize($width, $height, $master); - break; - case 'flip': - $image->flip(@$data['direction']); - break; - default: - break; + + private static function createPresetImage($filePath, $preset, $preset_alias) + { + $image = self::getDriver() + ->load($filePath); + foreach($preset as $action => $data) { + switch($action) { + case 'resize': + $width = empty( $data[ 'width' ] ) ? NULL : $data[ 'width' ]; + $height = empty( $data[ 'height' ] ) ? NULL : $data[ 'height' ]; + $master = empty( $data[ 'master' ] ) ? NULL : $data[ 'master' ]; + $image->resize($width, $height, $master); + break; + case 'flip': + $image->flip(@$data[ 'direction' ]); + break; + default: + break; + } } + return $image->render(); } - return $image->render(); - } - - /** - * Get extensions regexp - * @return string regexp - */ - private function getExtensionsRegexp() - { - $keys = array_keys(self::getDriver()->extensions); - return '(?i)' . join('|', $keys); - } - - /** - * Get size from suffix - * @param string $suffix - * @return string size - */ - private function getSizeFromSuffix($suffix) - { - return array_search($suffix, $this->getSizeSuffixes()); - } - - /** - * Get suffix from size - * @param string $size - * @return string suffix - */ - private function getSufixFromSize($size) - { - return ArrayHelper::getValue($this->getSizeSuffixes(), $size); - } - - private function getSizeSuffixes() - { - $suffixes = []; - foreach ($this->sizes as $size => $sizeConf) { - $suffixes[$size] = ArrayHelper::getValue($this->sizeSuffixes, $size, $this->defaultSizeSuffix . $size); + + /** + * Get extensions regexp + * @return string regexp + */ + private static function getExtensionsRegexp() + { + $keys = array_keys(self::getDriver()->extensions); + return '(?i)' . join('|', $keys); + } + + /** + * Get size from suffix + * + * @param string $suffix + * + * @return string size + */ + private function getSizeFromSuffix($suffix) + { + return array_search($suffix, $this->getSizeSuffixes()); + } + + /** + * Get suffix from size + * + * @param string $size + * + * @return string suffix + */ + private function getSufixFromSize($size) + { + return ArrayHelper::getValue($this->getSizeSuffixes(), $size); + } + + private function getSizeSuffixes() + { + $suffixes = []; + foreach($this->sizes as $size => $sizeConf) { + $suffixes[ $size ] = ArrayHelper::getValue($this->sizeSuffixes, $size, $this->defaultSizeSuffix . $size); + } + return $suffixes; } - return $suffixes; - } -} \ No newline at end of file + } \ No newline at end of file diff --git a/frontend/views/filter/_brand_item.php b/frontend/views/filter/_brand_item.php index c712547..be2f37e 100644 --- a/frontend/views/filter/_brand_item.php +++ b/frontend/views/filter/_brand_item.php @@ -1,8 +1,8 @@ variants); + $variants = $model->variants; + $variant = current($variants); $main_image = ArtboxImageHelper::getImage($variant->getImageUrl(), 'filter_image'); unset( $variant ); } diff --git a/frontend/views/project/_list_item.php b/frontend/views/project/_list_item.php index e1ea3f6..98a5ab1 100644 --- a/frontend/views/project/_list_item.php +++ b/frontend/views/project/_list_item.php @@ -1,8 +1,8 @@
title, [ 'project/view', 'id' => $model->project_id ]); + echo Html::a($model->title, [ + 'project/view', + 'id' => $model->project_id, + ]); ?>
images)) { - $image = current($model->images); - echo Html::a(ArtboxImageHelper::getImage($image->getImageUrl(), 'article_list'), [ 'project/view', 'id' => $model->project_id ]); + if(!empty( $model->images )) { + $images = $model->images; + $image = current($images); + echo Html::a(ArtboxImageHelper::getImage($image->getImageUrl(), 'article_list'), [ + 'project/view', + 'id' => $model->project_id, + ]); } ?>
@@ -33,29 +41,35 @@ ?>

$model->project_id ]); + echo Html::a('подробнее', [ + 'project/view', + 'id' => $model->project_id, + ]); ?>

images) && count($model->images) > 1) { - $images = array_slice($model->images, 1); - ?> -
- - - getImageUrl(), 'project_list'); - } - ?> - -
- images ) && count($model->images) > 1) { + $images = array_slice($model->images, 1); + ?> +
+ + + getImageUrl(), 'project_list'); + } + ?> + +
+
\ No newline at end of file diff --git a/frontend/views/project/view.php b/frontend/views/project/view.php index 1bd9b17..fea8ef6 100755 --- a/frontend/views/project/view.php +++ b/frontend/views/project/view.php @@ -27,7 +27,8 @@
images )) { - $image = current($model->images); + $images = $model->images; + $image = current($images); echo ArtboxImageHelper::getImage($image->getImageUrl(), 'article_list'); } else { echo ArtboxImageHelper::getImage('/storage/no-image', 'article_list'); diff --git a/frontend/views/search/_search_item.php b/frontend/views/search/_search_item.php index c712547..73ade94 100644 --- a/frontend/views/search/_search_item.php +++ b/frontend/views/search/_search_item.php @@ -1,8 +1,8 @@ variants )) { + $variants = $model->variants; /** * @var ProductVariant $variant */ - $variant = current($model->variants); + $variant = current($variants); $main_image = ArtboxImageHelper::getImage($variant->getImageUrl(), 'filter_image'); unset( $variant ); } -- libgit2 0.21.4