Commit b3ee7cf048a8d025f5b408e06747c3f92ff1cd19

Authored by Alexey Boroda
1 parent 8a724a04

-Brand description WYSIWYG

backend/views/brand/_form.php
1 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 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 104 <?php ActiveForm::end(); ?>
56 105  
57 106 </div>
... ...
common/modules/product/models/Brand.php
1 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 46 <h1 class="title"><?= Seo::widget(['row' => 'h1']) ?></h1>
47 47  
48 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 52 </div>
51 53 <div class="clearfix"></div>
52 54  
... ...