Commit 9532b442e1b30e3c7f1aed4f7b3018a845a9121f

Authored by Yarik
1 parent cc658b4c

"current" function fix

common/components/artboximage/ArtboxImageHelper.php
1 1 <?php
2   -
3   -namespace common\components\artboximage;
4   -
5   -use Yii;
6   -use yii\base\Object;
7   -use yii\helpers\ArrayHelper;
8   -use yii\helpers\Html;
9   -
10   -class ArtboxImageHelper extends Object {
11   - /** @var ArtboxImage $imageDriver */
12   - private static $imageDriver;
13   - private static $presets;
14   -
15   - public function getDriver() {
16   - if (empty(self::$imageDriver)) {
17   - self::$imageDriver = Yii::$app->artboximage;
  2 +
  3 + namespace common\components\artboximage;
  4 +
  5 + use Yii;
  6 + use yii\base\Object;
  7 + use yii\helpers\ArrayHelper;
  8 + use yii\helpers\Html;
  9 +
  10 + class ArtboxImageHelper extends Object
  11 + {
  12 +
  13 + /** @var ArtboxImage $imageDriver */
  14 + private static $imageDriver;
  15 +
  16 + private static $presets;
  17 +
  18 + public static function getDriver()
  19 + {
  20 + if(empty( self::$imageDriver )) {
  21 + self::$imageDriver = Yii::$app->artboximage;
  22 + }
  23 + return self::$imageDriver;
18 24 }
19   - return self::$imageDriver;
20   - }
21   -
22   - public function getPreset($preset) {
23   -
24   - if (empty(self::$presets)) {
25   - self::$presets = self::getDriver()->presets;
  25 +
  26 + public static function getPreset($preset)
  27 + {
  28 +
  29 + if(empty( self::$presets )) {
  30 + self::$presets = self::getDriver()->presets;
  31 + }
  32 + return empty( self::$presets[ $preset ] ) ? NULL : self::$presets[ $preset ];
26 33 }
27   - return empty(self::$presets[$preset]) ? null : self::$presets[$preset];
28   - }
29   -
30   - public static function getImage($file, $preset, $imgOptions = []) {
31   - $preset_alias = is_array($preset) ? array_keys($preset)[0] : null;
32   - return Html::img(self::getImageSrc($file, $preset, $preset_alias), $imgOptions);
33   - }
34   -
35   - public static function getImageSrc($file, $preset, $preset_alias = null) {
36   - if (is_string($preset)) {
37   - $preset_alias = $preset;
38   - $preset = self::getPreset($preset);
  34 +
  35 + public static function getImage($file, $preset, $imgOptions = [])
  36 + {
  37 + $preset_alias = is_array($preset) ? array_keys($preset)[ 0 ] : NULL;
  38 + return Html::img(self::getImageSrc($file, $preset, $preset_alias), $imgOptions);
39 39 }
40   - if (empty($preset) || empty($preset_alias)) {
41   - return $file;
  40 +
  41 + public static function getImageSrc($file, $preset, $preset_alias = NULL)
  42 + {
  43 + if(is_string($preset)) {
  44 + $preset_alias = $preset;
  45 + $preset = self::getPreset($preset);
  46 + }
  47 + if(empty( $preset ) || empty( $preset_alias )) {
  48 + return $file;
  49 + }
  50 +
  51 + $filePath = self::getPathFromUrl($file);
  52 + if(!file_exists($filePath) || !preg_match('#^(.*)\.(' . self::getExtensionsRegexp() . ')$#', $file, $matches)) {
  53 + return $file;
  54 + }
  55 + return self::getPresetUrl($filePath, $preset, $preset_alias);
42 56 }
43   -
44   - $filePath = self::getPathFromUrl($file);
45   - if (!file_exists($filePath) || !preg_match('#^(.*)\.(' . self::getExtensionsRegexp() . ')$#', $file, $matches)) {
46   - return $file;
  57 +
  58 + public static function fileinputWidget($model, $modelField, $formField = 'fileUpload', $multiple = false)
  59 + {
  60 + return Yii::$app->artboximage->fileinputWidget($model, $modelField, $formField, $multiple);
47 61 }
48   - return self::getPresetUrl($filePath, $preset, $preset_alias);
49   - }
50   -
51   - public static function fileinputWidget($model, $modelField, $formField = 'fileUpload', $multiple = false) {
52   - return Yii::$app->artboximage->fileinputWidget($model, $modelField, $formField, $multiple);
53   - }
54   -
55   - private static function getPathFromUrl($url) {
56   - return substr_replace($url, self::getDriver()->rootPath, 0, strlen(self::getDriver()->rootUrl));
57   - }
58   -
59   - private static function getUrlFromPath($path) {
60   - return substr_replace($path, self::getDriver()->rootUrl, 0, strlen(self::getDriver()->rootPath));
61   - }
62   -
63   - private static function getPresetUrl($filePath, $preset, $preset_alias) {
64   - $pathinfo = pathinfo($filePath);
65   - $presetPath = $pathinfo['dirname'] .'/styles/'. strtolower($preset_alias);
66   - $presetFilePath = $presetPath .'/'. $pathinfo['basename'];
67   - $presetUrl = self::getUrlFromPath($presetFilePath);
68   - if (file_exists($presetFilePath)) {
69   - return $presetUrl;
  62 +
  63 + private static function getPathFromUrl($url)
  64 + {
  65 + return substr_replace($url, self::getDriver()->rootPath, 0, strlen(self::getDriver()->rootUrl));
70 66 }
71   - if (!file_exists($presetPath)) {
72   - @mkdir($presetPath, 0777, true);
  67 +
  68 + private static function getUrlFromPath($path)
  69 + {
  70 + return substr_replace($path, self::getDriver()->rootUrl, 0, strlen(self::getDriver()->rootPath));
73 71 }
74   - $output = self::createPresetImage($filePath, $preset, $preset_alias);
75   - if ( !empty($output) ) {
76   - $f = fopen($presetFilePath, 'w');
77   - fwrite($f, $output);
78   - fclose($f);
79   - return $presetUrl;
  72 +
  73 + private static function getPresetUrl($filePath, $preset, $preset_alias)
  74 + {
  75 + $pathinfo = pathinfo($filePath);
  76 + $presetPath = $pathinfo[ 'dirname' ] . '/styles/' . strtolower($preset_alias);
  77 + $presetFilePath = $presetPath . '/' . $pathinfo[ 'basename' ];
  78 + $presetUrl = self::getUrlFromPath($presetFilePath);
  79 + if(file_exists($presetFilePath)) {
  80 + return $presetUrl;
  81 + }
  82 + if(!file_exists($presetPath)) {
  83 + @mkdir($presetPath, 0777, true);
  84 + }
  85 + $output = self::createPresetImage($filePath, $preset, $preset_alias);
  86 + if(!empty( $output )) {
  87 + $f = fopen($presetFilePath, 'w');
  88 + fwrite($f, $output);
  89 + fclose($f);
  90 + return $presetUrl;
  91 + }
  92 + return false;
80 93 }
81   - return false;
82   - }
83   -
84   - private static function createPresetImage($filePath, $preset, $preset_alias)
85   - {
86   - $image = self::getDriver()->load($filePath);
87   - foreach ($preset as $action => $data) {
88   - switch($action) {
89   - case 'resize':
90   - $width = empty($data['width']) ? null : $data['width'];
91   - $height = empty($data['height']) ? null : $data['height'];
92   - $master = empty($data['master']) ? null : $data['master'];
93   - $image->resize($width, $height, $master);
94   - break;
95   - case 'flip':
96   - $image->flip(@$data['direction']);
97   - break;
98   - default:
99   - break;
  94 +
  95 + private static function createPresetImage($filePath, $preset, $preset_alias)
  96 + {
  97 + $image = self::getDriver()
  98 + ->load($filePath);
  99 + foreach($preset as $action => $data) {
  100 + switch($action) {
  101 + case 'resize':
  102 + $width = empty( $data[ 'width' ] ) ? NULL : $data[ 'width' ];
  103 + $height = empty( $data[ 'height' ] ) ? NULL : $data[ 'height' ];
  104 + $master = empty( $data[ 'master' ] ) ? NULL : $data[ 'master' ];
  105 + $image->resize($width, $height, $master);
  106 + break;
  107 + case 'flip':
  108 + $image->flip(@$data[ 'direction' ]);
  109 + break;
  110 + default:
  111 + break;
  112 + }
100 113 }
  114 + return $image->render();
101 115 }
102   - return $image->render();
103   - }
104   -
105   - /**
106   - * Get extensions regexp
107   - * @return string regexp
108   - */
109   - private function getExtensionsRegexp()
110   - {
111   - $keys = array_keys(self::getDriver()->extensions);
112   - return '(?i)' . join('|', $keys);
113   - }
114   -
115   - /**
116   - * Get size from suffix
117   - * @param string $suffix
118   - * @return string size
119   - */
120   - private function getSizeFromSuffix($suffix)
121   - {
122   - return array_search($suffix, $this->getSizeSuffixes());
123   - }
124   -
125   - /**
126   - * Get suffix from size
127   - * @param string $size
128   - * @return string suffix
129   - */
130   - private function getSufixFromSize($size)
131   - {
132   - return ArrayHelper::getValue($this->getSizeSuffixes(), $size);
133   - }
134   -
135   - private function getSizeSuffixes()
136   - {
137   - $suffixes = [];
138   - foreach ($this->sizes as $size => $sizeConf) {
139   - $suffixes[$size] = ArrayHelper::getValue($this->sizeSuffixes, $size, $this->defaultSizeSuffix . $size);
  116 +
  117 + /**
  118 + * Get extensions regexp
  119 + * @return string regexp
  120 + */
  121 + private static function getExtensionsRegexp()
  122 + {
  123 + $keys = array_keys(self::getDriver()->extensions);
  124 + return '(?i)' . join('|', $keys);
  125 + }
  126 +
  127 + /**
  128 + * Get size from suffix
  129 + *
  130 + * @param string $suffix
  131 + *
  132 + * @return string size
  133 + */
  134 + private function getSizeFromSuffix($suffix)
  135 + {
  136 + return array_search($suffix, $this->getSizeSuffixes());
  137 + }
  138 +
  139 + /**
  140 + * Get suffix from size
  141 + *
  142 + * @param string $size
  143 + *
  144 + * @return string suffix
  145 + */
  146 + private function getSufixFromSize($size)
  147 + {
  148 + return ArrayHelper::getValue($this->getSizeSuffixes(), $size);
  149 + }
  150 +
  151 + private function getSizeSuffixes()
  152 + {
  153 + $suffixes = [];
  154 + foreach($this->sizes as $size => $sizeConf) {
  155 + $suffixes[ $size ] = ArrayHelper::getValue($this->sizeSuffixes, $size, $this->defaultSizeSuffix . $size);
  156 + }
  157 + return $suffixes;
140 158 }
141   - return $suffixes;
142   - }
143   -}
144 159 \ No newline at end of file
  160 + }
145 161 \ No newline at end of file
... ...
frontend/views/filter/_brand_item.php
1 1 <?php
2 2 /**
3   - * @var Product $model
4   - * @var mixed $key
5   - * @var integer $index
  3 + * @var Product $model
  4 + * @var mixed $key
  5 + * @var integer $index
6 6 * @var ListView $widget
7 7 */
8 8 use common\components\artboximage\ArtboxImageHelper;
... ... @@ -16,7 +16,8 @@
16 16 /**
17 17 * @var ProductVariant $variant
18 18 */
19   - $variant = current($model->variants);
  19 + $variants = $model->variants;
  20 + $variant = current($variants);
20 21 $main_image = ArtboxImageHelper::getImage($variant->getImageUrl(), 'filter_image');
21 22 unset( $variant );
22 23 }
... ...
frontend/views/project/_list_item.php
1 1 <?php
2 2 /**
3 3 * @var Project $model
4   - * @var mixed $key
5   - * @var integer $index
  4 + * @var mixed $key
  5 + * @var integer $index
6 6 * @var ListView $widget
7 7 */
8 8 use common\components\artboximage\ArtboxImageHelper;
... ... @@ -11,20 +11,28 @@
11 11 use yii\helpers\Html;
12 12 use yii\helpers\Url;
13 13 use yii\widgets\ListView;
  14 +
14 15 ?>
15 16 <div class="col-xs-12 col-sm-12 new_articles_data-title">
16 17 <div class="articles-title">
17 18 <?php
18   - echo Html::a($model->title, [ 'project/view', 'id' => $model->project_id ]);
  19 + echo Html::a($model->title, [
  20 + 'project/view',
  21 + 'id' => $model->project_id,
  22 + ]);
19 23 ?>
20 24 </div>
21 25 </div>
22 26 <div class="articles col-xs-12 col-sm-12 col-md-12">
23 27 <div class="new_article-img">
24 28 <?php
25   - if(!empty($model->images)) {
26   - $image = current($model->images);
27   - echo Html::a(ArtboxImageHelper::getImage($image->getImageUrl(), 'article_list'), [ 'project/view', 'id' => $model->project_id ]);
  29 + if(!empty( $model->images )) {
  30 + $images = $model->images;
  31 + $image = current($images);
  32 + echo Html::a(ArtboxImageHelper::getImage($image->getImageUrl(), 'article_list'), [
  33 + 'project/view',
  34 + 'id' => $model->project_id,
  35 + ]);
28 36 }
29 37 ?>
30 38 <div class="brand-list-desc-txt">
... ... @@ -33,29 +41,35 @@
33 41 ?>
34 42 <p>
35 43 <?php
36   - echo Html::a('подробнее', [ 'project/view', 'id' => $model->project_id ]);
  44 + echo Html::a('подробнее', [
  45 + 'project/view',
  46 + 'id' => $model->project_id,
  47 + ]);
37 48 ?>
38 49 </p>
39 50 </div>
40 51 </div>
41 52 <?php
42   - if(!empty($model->images) && count($model->images) > 1) {
43   - $images = array_slice($model->images, 1);
44   - ?>
45   - <div class="galery-obj-img col-xs-12 col-sm-12">
46   - <a href="<?= Url::to([ 'project/view', 'id' => $model->project_id ]); ?>">
47   - <!----размер картинок макс ширина 165, макс высота 100--->
48   - <?php
49   - foreach($images as $img) {
50   - /**
51   - * @var ProjectImage $img
52   - */
53   - echo ArtboxImageHelper::getImage($img->getImageUrl(), 'project_list');
54   - }
55   - ?>
56   - </a>
57   - </div>
58   - <?php
59   - }
  53 + if(!empty( $model->images ) && count($model->images) > 1) {
  54 + $images = array_slice($model->images, 1);
  55 + ?>
  56 + <div class="galery-obj-img col-xs-12 col-sm-12">
  57 + <a href="<?= Url::to([
  58 + 'project/view',
  59 + 'id' => $model->project_id,
  60 + ]); ?>">
  61 + <!----размер картинок макс ширина 165, макс высота 100--->
  62 + <?php
  63 + foreach($images as $img) {
  64 + /**
  65 + * @var ProjectImage $img
  66 + */
  67 + echo ArtboxImageHelper::getImage($img->getImageUrl(), 'project_list');
  68 + }
  69 + ?>
  70 + </a>
  71 + </div>
  72 + <?php
  73 + }
60 74 ?>
61 75 </div>
62 76 \ No newline at end of file
... ...
frontend/views/project/view.php
... ... @@ -27,7 +27,8 @@
27 27 <div class="new_article-img">
28 28 <?php
29 29 if(!empty( $model->images )) {
30   - $image = current($model->images);
  30 + $images = $model->images;
  31 + $image = current($images);
31 32 echo ArtboxImageHelper::getImage($image->getImageUrl(), 'article_list');
32 33 } else {
33 34 echo ArtboxImageHelper::getImage('/storage/no-image', 'article_list');
... ...
frontend/views/search/_search_item.php
1 1 <?php
2 2 /**
3   - * @var Product $model
4   - * @var mixed $key
5   - * @var integer $index
  3 + * @var Product $model
  4 + * @var mixed $key
  5 + * @var integer $index
6 6 * @var ListView $widget
7 7 */
8 8 use common\components\artboximage\ArtboxImageHelper;
... ... @@ -13,10 +13,11 @@
13 13  
14 14 $main_image = ArtboxImageHelper::getImage('/storage/no-image.png', 'filter_image');
15 15 if(!empty( $model->variants )) {
  16 + $variants = $model->variants;
16 17 /**
17 18 * @var ProductVariant $variant
18 19 */
19   - $variant = current($model->variants);
  20 + $variant = current($variants);
20 21 $main_image = ArtboxImageHelper::getImage($variant->getImageUrl(), 'filter_image');
21 22 unset( $variant );
22 23 }
... ...