Commit b3ee7cf048a8d025f5b408e06747c3f92ff1cd19
1 parent
8a724a04
-Brand description WYSIWYG
Showing
4 changed files
with
284 additions
and
167 deletions
Show diff stats
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->params['breadcrumbs'][] = $brand->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 | ... | ... |