Commit b3ee7cf048a8d025f5b408e06747c3f92ff1cd19

Authored by Alexey Boroda
1 parent 8a724a04

-Brand description WYSIWYG

backend/views/brand/_form.php
1 <?php 1 <?php
2 -  
3 -use yii\helpers\Html;  
4 -use yii\widgets\ActiveForm;  
5 -  
6 -/* @var $this yii\web\View */  
7 -/* @var $model common\modules\product\models\Brand */  
8 -/* @var $form yii\widgets\ActiveForm */ 2 +
  3 + use mihaildev\ckeditor\CKEditor;
  4 + use mihaildev\elfinder\ElFinder;
  5 + use yii\helpers\Html;
  6 + use yii\widgets\ActiveForm;
  7 +
  8 + /* @var $this yii\web\View */
  9 + /* @var $model common\modules\product\models\Brand */
  10 + /* @var $form yii\widgets\ActiveForm */
9 ?> 11 ?>
10 12
11 <div class="brand-form"> 13 <div class="brand-form">
  14 +
  15 + <?php $form = ActiveForm::begin(
  16 + [
  17 + 'enableClientValidation' => false,
  18 + 'options' => [ 'enctype' => 'multipart/form-data' ],
  19 + ]
  20 + ); ?>
  21 +
  22 + <?= $form->field($model, 'name')
  23 + ->textInput() ?>
  24 +
  25 + <?= $form->field($model, 'alias')
  26 + ->textInput([ 'maxlength' => true ]) ?>
  27 +
  28 + <?= $form->field($model, 'image')
  29 + ->widget(
  30 + \kartik\file\FileInput::classname(),
  31 + [
  32 + 'language' => 'ru',
  33 + 'options' => [
  34 + 'accept' => 'image/*',
  35 + 'multiple' => false,
  36 + ],
  37 + 'pluginOptions' => [
  38 + 'allowedFileExtensions' => [
  39 + 'jpg',
  40 + 'gif',
  41 + 'png',
  42 + ],
  43 + 'initialPreview' => !empty($model->imageUrl) ? \common\components\artboximage\ArtboxImageHelper::getImage(
  44 + $model->imageUrl,
  45 + 'list'
  46 + ) : '',
  47 + 'overwriteInitial' => true,
  48 + 'showRemove' => false,
  49 + 'showUpload' => false,
  50 + 'previewFileType' => 'image',
  51 + ],
  52 + ]
  53 + ); ?>
  54 +
  55 + <?= $form->field($model, 'description')
  56 + ->widget(
  57 + CKEditor::className(),
  58 + [
  59 + 'editorOptions' => ElFinder::ckeditorOptions(
  60 + 'elfinder',
  61 + [
  62 + 'preset' => 'full',
  63 + //разработанны стандартные настройки basic, standard, full данную возможность не обязательно использовать
  64 + 'inline' => false,
  65 + //по умолчанию false]),
  66 + 'filebrowserUploadUrl' => Yii::$app->getUrlManager()
  67 + ->createUrl('file/uploader/images-upload'),
  68 + ]
  69 + ),
  70 + ]
  71 + ) ?>
  72 +
  73 + <?= $form->field($model, 'meta_title')
  74 + ->textInput([ 'maxlength' => true ]) ?>
  75 +
  76 + <?= $form->field($model, 'meta_desc')
  77 + ->textarea([ 'rows' => 6 ]) ?>
  78 +
  79 + <?= $form->field($model, 'meta_robots')
  80 + ->textInput([ 'maxlength' => true ]) ?>
  81 +
  82 + <?= $form->field($model, 'seo_text')
  83 + ->textarea([ 'rows' => 6 ]) ?>
  84 +
  85 + <?= $form->field($model, 'in_menu')
  86 + ->checkbox() ?>
12 87
13 - <?php $form = ActiveForm::begin([  
14 - 'enableClientValidation' => false,  
15 - 'options' => ['enctype' => 'multipart/form-data']  
16 - ]); ?>  
17 -  
18 - <?= $form->field($model, 'name')->textInput() ?>  
19 -  
20 - <?= $form->field($model, 'alias')->textInput(['maxlength' => true]) ?>  
21 -  
22 - <?= $form->field($model, 'image')->widget(\kartik\file\FileInput::classname(), [  
23 - 'language' => 'ru',  
24 - 'options' => [  
25 - 'accept' => 'image/*',  
26 - 'multiple' => false,  
27 - ],  
28 - 'pluginOptions' => [  
29 - 'allowedFileExtensions' => ['jpg', 'gif', 'png'],  
30 - 'initialPreview' => !empty($model->imageUrl) ? \common\components\artboximage\ArtboxImageHelper::getImage($model->imageUrl, 'list') : '',  
31 - 'overwriteInitial' => true,  
32 - 'showRemove' => false,  
33 - 'showUpload' => false,  
34 - 'previewFileType' => 'image',  
35 - ],  
36 - ]); ?>  
37 -  
38 - <?= $form->field($model, 'meta_title')->textInput(['maxlength' => true]) ?>  
39 -  
40 - <?= $form->field($model, 'meta_desc')->textarea(['rows' => 6]) ?>  
41 -  
42 - <?= $form->field($model, 'meta_robots')->textInput(['maxlength' => true]) ?>  
43 -  
44 - <?= $form->field($model, 'seo_text')->textarea(['rows' => 6]) ?>  
45 -  
46 - <?= $form->field($model, 'in_menu')->checkbox()?>  
47 -  
48 - <div class="form-group">  
49 - <?= Html::submitButton($model->isNewRecord ? Yii::t('product', 'Create') : Yii::t('product', 'Update'), ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>  
50 - <?php if ($model->isNewRecord) :?>  
51 - <?= Html::submitButton(Yii::t('product', 'Create and continue'), ['name' => 'create_and_new', 'class' => 'btn btn-primary']) ?>  
52 - <?php endif?>  
53 - </div>  
54 - 88 + <div class="form-group">
  89 + <?= Html::submitButton(
  90 + $model->isNewRecord ? Yii::t('product', 'Create') : Yii::t('product', 'Update'),
  91 + [ 'class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary' ]
  92 + ) ?>
  93 + <?php if ($model->isNewRecord) : ?>
  94 + <?= Html::submitButton(
  95 + Yii::t('product', 'Create and continue'),
  96 + [
  97 + 'name' => 'create_and_new',
  98 + 'class' => 'btn btn-primary',
  99 + ]
  100 + ) ?>
  101 + <?php endif ?>
  102 + </div>
  103 +
55 <?php ActiveForm::end(); ?> 104 <?php ActiveForm::end(); ?>
56 105
57 </div> 106 </div>
common/modules/product/models/Brand.php
1 <?php 1 <?php
2 -  
3 -namespace common\modules\product\models;  
4 -  
5 -use common\behaviors\SaveImgBehavior;  
6 -use common\behaviors\Slug;  
7 -use common\modules\rubrication\behaviors\ArtboxSynonymBehavior;  
8 -use yii\web\UploadedFile;  
9 -use Yii;  
10 -  
11 -/**  
12 - * This is the model class for table "brand".  
13 - *  
14 - * @property integer $brand_id  
15 -  
16 - * @property integer $brand_name_id  
17 - * @property string $alias  
18 - * @property string $image  
19 - * @property string $meta_title  
20 - * @property string $meta_desc  
21 - * @property string $meta_robots  
22 - * @property string $seo_text  
23 - * @property string $name  
24 - *  
25 - * @property BrandName $brandName  
26 - * @property BrandName[] $brandNames  
27 - * @property Product[] $products  
28 - */  
29 -class Brand extends \yii\db\ActiveRecord  
30 -{  
31 - public $imageUpload;  
32 -  
33 - public $_items_count = 0;  
34 - 2 +
  3 + namespace common\modules\product\models;
  4 +
  5 + use common\behaviors\SaveImgBehavior;
  6 + use yii\db\ActiveRecord;
  7 + use Yii;
  8 +
35 /** 9 /**
36 - * @inheritdoc 10 + * This is the model class for table "brand".
  11 + *
  12 + * @property integer $brand_id
  13 + * @property integer $brand_name_id
  14 + * @property string $alias
  15 + * @property string $image
  16 + * @property string $meta_title
  17 + * @property string $meta_desc
  18 + * @property string $meta_robots
  19 + * @property string $seo_text
  20 + * @property string $name
  21 + * @property string $description
  22 + * @property Product[] $products
37 */ 23 */
38 - public static function tableName() 24 + class Brand extends ActiveRecord
39 { 25 {
40 - return 'brand'; 26 + public $imageUpload;
  27 +
  28 + public $_items_count = 0;
  29 +
  30 + /**
  31 + * @inheritdoc
  32 + */
  33 + public static function tableName()
  34 + {
  35 + return 'brand';
  36 + }
  37 +
  38 + /**
  39 + * @inheritdoc
  40 + */
  41 +
  42 + public function behaviors()
  43 + {
  44 + return [
  45 + [
  46 + 'class' => SaveImgBehavior::className(),
  47 + 'fields' => [
  48 + [
  49 + 'name' => 'image',
  50 + 'directory' => 'brands',
  51 + ],
  52 + ],
  53 + ],
  54 + 'slug' => [
  55 + 'class' => 'common\behaviors\Slug',
  56 + 'in_attribute' => 'name',
  57 + 'out_attribute' => 'alias',
  58 + 'translit' => true,
  59 + ],
  60 + ];
  61 + }
  62 +
  63 + /**
  64 + * @inheritdoc
  65 + */
  66 + public function rules()
  67 + {
  68 + return [
  69 + [
  70 + [
  71 + 'name',
  72 + 'description',
  73 + ],
  74 + 'string',
  75 + ],
  76 + [
  77 + [ 'brand_name_id' ],
  78 + 'integer',
  79 + ],
  80 + [
  81 + [ 'in_menu' ],
  82 + 'boolean',
  83 + ],
  84 + [
  85 + [
  86 + 'meta_desc',
  87 + 'seo_text',
  88 + ],
  89 + 'string',
  90 + ],
  91 + [
  92 + [
  93 + 'alias',
  94 + 'name',
  95 + ],
  96 + 'string',
  97 + 'max' => 250,
  98 + ],
  99 + [
  100 + [
  101 + 'meta_title',
  102 + 'image',
  103 + ],
  104 + 'string',
  105 + 'max' => 255,
  106 + ],
  107 + [
  108 + [ 'meta_robots' ],
  109 + 'string',
  110 + 'max' => 50,
  111 + ],
  112 + [
  113 + [ 'imageUpload' ],
  114 + 'safe',
  115 + ],
  116 + [
  117 + [ 'imageUpload' ],
  118 + 'file',
  119 + 'extensions' => 'jpg, gif, png',
  120 + ],
  121 + ];
  122 + }
  123 +
  124 + /**
  125 + * @inheritdoc
  126 + */
  127 + public function attributeLabels()
  128 + {
  129 + return [
  130 + 'name' => Yii::t('product', 'Name of the brand'),
  131 + 'brand_id' => Yii::t('product', 'Brand ID'),
  132 + 'brand_name_id' => Yii::t('product', 'Brand Name ID'),
  133 + 'alias' => Yii::t('product', 'Alias'),
  134 + 'image' => Yii::t('product', 'Image'),
  135 + 'imageUrl' => Yii::t('product', 'Image'),
  136 + 'meta_title' => Yii::t('product', 'Meta Title'),
  137 + 'meta_desc' => Yii::t('product', 'Meta Desc'),
  138 + 'meta_robots' => Yii::t('product', 'Meta Robots'),
  139 + 'seo_text' => Yii::t('product', 'Seo Text'),
  140 + 'in_menu' => Yii::t('product', 'Выводить в меню'),
  141 + 'description' => Yii::t('product', 'Описание'),
  142 + ];
  143 + }
  144 +
  145 + /**
  146 + * @return \yii\db\ActiveQuery
  147 + */
  148 + public function getProducts()
  149 + {
  150 + return $this->hasMany(Product::className(), [ 'brand_id' => 'brand_id' ]);
  151 + }
  152 +
  153 + public function getImageFile()
  154 + {
  155 + return empty($this->image) ? NULL : '/storage/brands/' . $this->image;
  156 + }
  157 +
  158 + public function getImageUrl()
  159 + {
  160 + return empty($this->image) ? NULL : '/storage/brands/' . $this->image;
  161 + }
  162 +
41 } 163 }
42 -  
43 -  
44 - /**  
45 - * @inheritdoc  
46 - */  
47 -  
48 - public function behaviors()  
49 - {  
50 - return [  
51 - [  
52 - 'class' => SaveImgBehavior::className(),  
53 - 'fields' => [  
54 - ['name'=>'image','directory' => 'brands' ]  
55 - ]  
56 - ],  
57 - 'slug' => [  
58 - 'class' => 'common\behaviors\Slug',  
59 - 'in_attribute' => 'name',  
60 - 'out_attribute' => 'alias',  
61 - 'translit' => true  
62 - ],  
63 - ];  
64 - }  
65 -  
66 - /**  
67 - * @inheritdoc  
68 - */  
69 - public function rules()  
70 - {  
71 - return [  
72 - [['name'], 'string'],  
73 - [['brand_name_id'], 'integer'],  
74 - [['in_menu'], 'boolean'],  
75 - [['meta_desc', 'seo_text'], 'string'],  
76 - [['alias', 'name'], 'string', 'max' => 250],  
77 - [['meta_title', 'image'], 'string', 'max' => 255],  
78 - [['meta_robots'], 'string', 'max' => 50],  
79 - [['imageUpload'], 'safe'],  
80 - [['imageUpload'], 'file', 'extensions' => 'jpg, gif, png'],  
81 - ];  
82 - }  
83 -  
84 - /**  
85 - * @inheritdoc  
86 - */  
87 - public function attributeLabels()  
88 - {  
89 - return [  
90 - 'name' => Yii::t('product', 'Name of the brand'),  
91 - 'brand_id' => Yii::t('product', 'Brand ID'),  
92 - 'brand_name_id' => Yii::t('product', 'Brand Name ID'),  
93 - 'alias' => Yii::t('product', 'Alias'),  
94 - 'image' => Yii::t('product', 'Image'),  
95 - 'imageUrl' => Yii::t('product', 'Image'),  
96 - 'meta_title' => Yii::t('product', 'Meta Title'),  
97 - 'meta_desc' => Yii::t('product', 'Meta Desc'),  
98 - 'meta_robots' => Yii::t('product', 'Meta Robots'),  
99 - 'seo_text' => Yii::t('product', 'Seo Text'),  
100 - 'in_menu' => Yii::t('product', 'Выводить в меню'),  
101 - ];  
102 - }  
103 -  
104 -  
105 -  
106 - /**  
107 - * @return \yii\db\ActiveQuery  
108 - */  
109 - public function getProducts()  
110 - {  
111 - return $this->hasMany(Product::className(), ['brand_id' => 'brand_id']);  
112 - }  
113 -  
114 - public function getImageFile() {  
115 - return empty($this->image) ? null : '/storage/brands/'. $this->image;  
116 - }  
117 -  
118 - public function getImageUrl() {  
119 - return empty($this->image) ? null : '/storage/brands/'. $this->image;  
120 - }  
121 -  
122 -}  
console/migrations/m170202_140836_add_description_column_to_brand_table.php 0 → 100644
  1 +<?php
  2 +
  3 +use yii\db\Migration;
  4 +
  5 +/**
  6 + * Handles adding description to table `brand`.
  7 + */
  8 +class m170202_140836_add_description_column_to_brand_table extends Migration
  9 +{
  10 + /**
  11 + * @inheritdoc
  12 + */
  13 + public function up()
  14 + {
  15 + $this->addColumn('brand', 'description', $this->text());
  16 + }
  17 +
  18 + /**
  19 + * @inheritdoc
  20 + */
  21 + public function down()
  22 + {
  23 + $this->dropColumn('brand', 'description');
  24 + }
  25 +}
frontend/views/catalog/brand.php
@@ -46,7 +46,9 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $brand-&gt;name; @@ -46,7 +46,9 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $brand-&gt;name;
46 <h1 class="title"><?= Seo::widget(['row' => 'h1']) ?></h1> 46 <h1 class="title"><?= Seo::widget(['row' => 'h1']) ?></h1>
47 47
48 <div class="brand-seo-text"> 48 <div class="brand-seo-text">
49 - <?= !empty(Seo::widget(['row' => Seo::SEO_TEXT])) ? Seo::widget(['row' => Seo::SEO_TEXT]) : $brand->seo_text?> 49 + <?php
  50 + if(!empty($brand->description)) echo $brand->description;
  51 + ?>
50 </div> 52 </div>
51 <div class="clearfix"></div> 53 <div class="clearfix"></div>
52 54