From 28331485c80a4788cefb744786d95d16aba0507e Mon Sep 17 00:00:00 2001 From: noumo Date: Wed, 25 Mar 2015 12:59:21 +0300 Subject: [PATCH 1/5] module title fix --- views/layouts/main.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/views/layouts/main.php b/views/layouts/main.php index 77b1672..e621e86 100644 --- a/views/layouts/main.php +++ b/views/layouts/main.php @@ -38,7 +38,7 @@ icon != '') : ?> - title) ?> + title ?> notice > 0) : ?> notice ?> @@ -85,4 +85,4 @@ endBody() ?> -endPage() ?> \ No newline at end of file +endPage() ?> From 42bdc7176688c1bed057fb9ab3c782f52b01da08 Mon Sep 17 00:00:00 2001 From: noumo Date: Fri, 3 Apr 2015 19:56:08 +0300 Subject: [PATCH 2/5] fix issue #24 --- components/ActiveRecord.php | 2 +- modules/article/ArticleModule.php | 3 --- modules/article/api/Article.php | 2 +- modules/article/models/Category.php | 41 +++++++++-------------------- modules/article/models/Item.php | 28 +++----------------- modules/catalog/CatalogModule.php | 3 --- modules/catalog/api/Catalog.php | 2 +- modules/catalog/models/Category.php | 27 +++++-------------- modules/catalog/models/Item.php | 27 +++++-------------- modules/file/FileModule.php | 4 --- modules/file/api/File.php | 2 +- modules/file/models/File.php | 29 +++++--------------- modules/gallery/GalleryModule.php | 2 -- modules/gallery/api/Gallery.php | 2 +- modules/gallery/models/Album.php | 27 +++++-------------- modules/news/NewsModule.php | 2 +- modules/news/models/News.php | 10 +++---- modules/page/PageModule.php | 4 --- modules/page/api/Page.php | 2 +- modules/page/models/Page.php | 24 ++--------------- modules/text/api/Text.php | 2 +- modules/text/models/Text.php | 2 +- 22 files changed, 58 insertions(+), 189 deletions(-) diff --git a/components/ActiveRecord.php b/components/ActiveRecord.php index 57bc35e..76d9e40 100644 --- a/components/ActiveRecord.php +++ b/components/ActiveRecord.php @@ -3,7 +3,7 @@ class ActiveRecord extends \yii\db\ActiveRecord { - public static $slugPattern = '/^[0-9a-z-]{0,128}$/'; + public static $SLUG_PATTERN = '/^[0-9a-z-]{0,128}$/'; public static function find() { diff --git a/modules/article/ArticleModule.php b/modules/article/ArticleModule.php index 9e9b476..4950acf 100644 --- a/modules/article/ArticleModule.php +++ b/modules/article/ArticleModule.php @@ -16,9 +16,6 @@ class ArticleModule extends \yii\easyii\components\Module 'enableShort' => true, 'shortMaxLength' => 255, - - 'categoryAutoSlug' => true, - 'itemAutoSlug' => true, ]; public static $installConfig = [ diff --git a/modules/article/api/Article.php b/modules/article/api/Article.php index b9747e8..945bcec 100644 --- a/modules/article/api/Article.php +++ b/modules/article/api/Article.php @@ -206,7 +206,7 @@ private function notFound($id_slug) if(Yii::$app->user->isGuest) { return $this->createCatObject(''); } - elseif(preg_match(Category::$slugPattern, $id_slug)){ + elseif(preg_match(Category::$SLUG_PATTERN, $id_slug)){ return $this->createCatObject(''.Yii::t('easyii/article/api', 'Create category').''); } else{ diff --git a/modules/article/models/Category.php b/modules/article/models/Category.php index 7976ad7..3259ee4 100644 --- a/modules/article/models/Category.php +++ b/modules/article/models/Category.php @@ -21,9 +21,9 @@ public static function tableName() public static function findWithItemCount() { return self::find() - ->select([self::tableName().'.*', 'COUNT('.Item::tableName().'.item_id) as item_count']) - ->joinWith('items') - ->groupBy(self::tableName().'.category_id'); + ->select([self::tableName() . '.*', 'COUNT(' . Item::tableName() . '.item_id) as item_count']) + ->joinWith('items') + ->groupBy(self::tableName() . '.category_id'); } public function rules() @@ -34,11 +34,9 @@ public function rules() ['title', 'string', 'max' => 128], ['thumb', 'image'], ['item_count', 'integer'], - ['slug', 'match', 'pattern' => self::$slugPattern, 'message' => Yii::t('easyii', 'Slug can contain only 0-9, a-z and "-" characters (max: 128).')], + ['slug', 'match', 'pattern' => self::$SLUG_PATTERN, 'message' => Yii::t('easyii', 'Slug can contain only 0-9, a-z and "-" characters (max: 128).')], ['slug', 'default', 'value' => null], - ['slug', 'unique', 'when' => function($model){ - return $model->slug && !self::autoSlug(); - }], + ['slug', 'unique'], ]; } @@ -57,19 +55,11 @@ public function behaviors() return [ SortableModel::className(), 'seo' => SeoBehavior::className(), - ]; - } - - public function beforeValidate() - { - if(self::autoSlug() && (!$this->isNewRecord || ($this->isNewRecord && $this->slug == ''))){ - $this->attachBehavior('sluggable', [ + 'sluggable' => [ 'class' => SluggableBehavior::className(), - 'attribute' => 'title', - 'ensureUnique' => true - ]); - } - return parent::beforeValidate(); + 'attribute' => 'title' + ] + ]; } public function getItems() @@ -80,8 +70,8 @@ public function getItems() public function beforeSave($insert) { if (parent::beforeSave($insert)) { - if(!$this->isNewRecord && $this->thumb != $this->oldAttributes['thumb']){ - @unlink(Yii::getAlias('@webroot').$this->oldAttributes['thumb']); + if (!$this->isNewRecord && $this->thumb != $this->oldAttributes['thumb']) { + @unlink(Yii::getAlias('@webroot') . $this->oldAttributes['thumb']); } return true; } else { @@ -93,17 +83,12 @@ public function afterDelete() { parent::afterDelete(); - foreach($this->getItems()->all() as $item){ + foreach ($this->getItems()->all() as $item) { $item->delete(); } - if($this->thumb) { + if ($this->thumb) { @unlink(Yii::getAlias('@webroot') . $this->thumb); } } - - public static function autoSlug() - { - return Yii::$app->getModule('admin')->activeModules['article']->settings['categoryAutoSlug']; - } } \ No newline at end of file diff --git a/modules/article/models/Item.php b/modules/article/models/Item.php index b7c75a9..292f194 100644 --- a/modules/article/models/Item.php +++ b/modules/article/models/Item.php @@ -25,11 +25,9 @@ public function rules() ['title', 'string', 'max' => 128], ['thumb', 'image'], ['views', 'number', 'integerOnly' => true], - ['slug', 'match', 'pattern' => self::$slugPattern, 'message' => Yii::t('easyii', 'Slug can contain only 0-9, a-z and "-" characters (max: 128).')], + ['slug', 'match', 'pattern' => self::$SLUG_PATTERN, 'message' => Yii::t('easyii', 'Slug can contain only 0-9, a-z and "-" characters (max: 128).')], ['slug', 'default', 'value' => null], - ['slug', 'unique', 'when' => function($model){ - return $model->slug && !self::autoSlug(); - }] + ['slug', 'unique'] ]; } @@ -49,10 +47,9 @@ public function behaviors() return [ SortableModel::className(), 'seo' => SeoBehavior::className(), - [ + 'sluggable' => [ 'class' => SluggableBehavior::className(), - 'attribute' => 'title', - 'ensureUnique' => true + 'attribute' => 'title' ] ]; } @@ -62,18 +59,6 @@ public function getCategory() return $this->hasOne(Category::className(), ['category_id' => 'category_id']); } - public function beforeValidate() - { - if(self::autoSlug() && (!$this->isNewRecord || ($this->isNewRecord && $this->slug == ''))){ - $this->attachBehavior('sluggable', [ - 'class' => SluggableBehavior::className(), - 'attribute' => 'title', - 'ensureUnique' => true - ]); - } - return parent::beforeValidate(); - } - public function beforeSave($insert) { if (parent::beforeSave($insert)) { @@ -100,9 +85,4 @@ public function afterDelete() @unlink(Yii::getAlias('@webroot').$this->thumb); } } - - public static function autoSlug() - { - return Yii::$app->getModule('admin')->activeModules['article']->settings['itemAutoSlug']; - } } \ No newline at end of file diff --git a/modules/catalog/CatalogModule.php b/modules/catalog/CatalogModule.php index 87261e5..52c8b62 100644 --- a/modules/catalog/CatalogModule.php +++ b/modules/catalog/CatalogModule.php @@ -21,9 +21,6 @@ class CatalogModule extends \yii\easyii\components\Module 'photoThumbCrop' => true, 'photoThumbWidth' => 100, 'photoThumbHeight' => 100, - - 'categoryAutoSlug' => true, - 'itemAutoSlug' => true, ]; public static $installConfig = [ diff --git a/modules/catalog/api/Catalog.php b/modules/catalog/api/Catalog.php index 4308db3..311183c 100644 --- a/modules/catalog/api/Catalog.php +++ b/modules/catalog/api/Catalog.php @@ -222,7 +222,7 @@ private function notFound($id_slug) if(Yii::$app->user->isGuest) { return $this->createCatObject(''); } - elseif(preg_match(Category::$slugPattern, $id_slug)){ + elseif(preg_match(Category::$SLUG_PATTERN, $id_slug)){ return $this->createCatObject(''.Yii::t('easyii/catalog/api', 'Create category').''); } else{ diff --git a/modules/catalog/models/Category.php b/modules/catalog/models/Category.php index 33ad014..fb31fcc 100644 --- a/modules/catalog/models/Category.php +++ b/modules/catalog/models/Category.php @@ -42,11 +42,9 @@ public function rules() ['title', 'string', 'max' => 128], ['thumb', 'image'], ['item_count', 'integer'], - ['slug', 'match', 'pattern' => self::$slugPattern, 'message' => Yii::t('easyii', 'Slug can contain only 0-9, a-z and "-" characters (max: 128).')], + ['slug', 'match', 'pattern' => self::$SLUG_PATTERN, 'message' => Yii::t('easyii', 'Slug can contain only 0-9, a-z and "-" characters (max: 128).')], ['slug', 'default', 'value' => null], - ['slug', 'unique', 'when' => function($model){ - return $model->slug && !self::autoSlug(); - }], + ['slug', 'unique'], ]; } @@ -65,6 +63,10 @@ public function behaviors() return [ SortableModel::className(), 'seo' => SeoBehavior::className(), + 'sluggable' => [ + 'class' => SluggableBehavior::className(), + 'attribute' => 'title' + ] ]; } @@ -82,18 +84,6 @@ public function beforeSave($insert) } } - public function beforeValidate() - { - if(self::autoSlug() && (!$this->isNewRecord || ($this->isNewRecord && $this->slug == ''))){ - $this->attachBehavior('sluggable', [ - 'class' => SluggableBehavior::className(), - 'attribute' => 'title', - 'ensureUnique' => true - ]); - } - return parent::beforeValidate(); - } - public function afterFind() { parent::afterFind(); @@ -117,9 +107,4 @@ public function afterDelete() @unlink(Yii::getAlias('@webroot') . $this->thumb); } } - - public static function autoSlug() - { - return Yii::$app->getModule('admin')->activeModules['catalog']->settings['categoryAutoSlug']; - } } \ No newline at end of file diff --git a/modules/catalog/models/Item.php b/modules/catalog/models/Item.php index b4ec4cd..f4469eb 100644 --- a/modules/catalog/models/Item.php +++ b/modules/catalog/models/Item.php @@ -23,11 +23,9 @@ public function rules() ['title', 'string', 'max' => 128], ['thumb', 'image'], ['description', 'safe'], - ['slug', 'match', 'pattern' => self::$slugPattern, 'message' => Yii::t('easyii', 'Slug can contain only 0-9, a-z and "-" characters (max: 128).')], + ['slug', 'match', 'pattern' => self::$SLUG_PATTERN, 'message' => Yii::t('easyii', 'Slug can contain only 0-9, a-z and "-" characters (max: 128).')], ['slug', 'default', 'value' => null], - ['slug', 'unique', 'when' => function($model){ - return $model->slug && !self::autoSlug(); - }] + ['slug', 'unique'] ]; } @@ -46,6 +44,10 @@ public function behaviors() return [ SortableModel::className(), 'seo' => SeoBehavior::className(), + 'sluggable' => [ + 'class' => SluggableBehavior::className(), + 'attribute' => 'title' + ] ]; } @@ -62,18 +64,6 @@ public function beforeSave($insert) } } - public function beforeValidate() - { - if(self::autoSlug() && (!$this->isNewRecord || ($this->isNewRecord && $this->slug == ''))){ - $this->attachBehavior('sluggable', [ - 'class' => SluggableBehavior::className(), - 'attribute' => 'title', - 'ensureUnique' => true - ]); - } - return parent::beforeValidate(); - } - public function afterFind() { parent::afterFind(); @@ -102,9 +92,4 @@ public function afterDelete() @unlink(Yii::getAlias('@webroot') . $this->thumb); } } - - public static function autoSlug() - { - return Yii::$app->getModule('admin')->activeModules['catalog']->settings['itemAutoSlug']; - } } \ No newline at end of file diff --git a/modules/file/FileModule.php b/modules/file/FileModule.php index dcdcc91..72bc269 100644 --- a/modules/file/FileModule.php +++ b/modules/file/FileModule.php @@ -3,10 +3,6 @@ class FileModule extends \yii\easyii\components\Module { - public $settings = [ - 'autoSlug' => true - ]; - public static $installConfig = [ 'title' => [ 'en' => 'Files', diff --git a/modules/file/api/File.php b/modules/file/api/File.php index 8e10619..7ec7f60 100644 --- a/modules/file/api/File.php +++ b/modules/file/api/File.php @@ -139,7 +139,7 @@ private function notFound($id_slug) if(Yii::$app->user->isGuest) { return $this->createObject(''); } - elseif(preg_match(FileModel::$slugPattern, $id_slug)){ + elseif(preg_match(FileModel::$SLUG_PATTERN, $id_slug)){ return $this->createObject(''.Yii::t('easyii/file/api', 'Create file').''); } else{ diff --git a/modules/file/models/File.php b/modules/file/models/File.php index 6e9a512..4c867fd 100644 --- a/modules/file/models/File.php +++ b/modules/file/models/File.php @@ -20,11 +20,9 @@ public function rules() ['title', 'required'], ['title', 'string', 'max' => 128], ['title', 'trim'], - ['slug', 'match', 'pattern' => self::$slugPattern, 'message' => Yii::t('easyii', 'Slug can contain only 0-9, a-z and "-" characters (max: 128).')], + ['slug', 'match', 'pattern' => self::$SLUG_PATTERN, 'message' => Yii::t('easyii', 'Slug can contain only 0-9, a-z and "-" characters (max: 128).')], ['slug', 'default', 'value' => null], - ['slug', 'unique', 'when' => function($model){ - return $model->slug && !self::autoSlug(); - }], + ['slug', 'unique'], [['downloads', 'size'], 'integer'], ['time', 'default', 'value' => time()] ]; @@ -43,7 +41,11 @@ public function behaviors() { return [ SortableModel::className(), - 'seo' => SeoBehavior::className() + 'seo' => SeoBehavior::className(), + 'sluggable' => [ + 'class' => SluggableBehavior::className(), + 'attribute' => 'title' + ] ]; } @@ -59,27 +61,10 @@ public function beforeSave($insert) } } - public function beforeValidate() - { - if(self::autoSlug() && (!$this->isNewRecord || ($this->isNewRecord && $this->slug == ''))){ - $this->attachBehavior('sluggable', [ - 'class' => SluggableBehavior::className(), - 'attribute' => 'title', - 'ensureUnique' => true - ]); - } - return parent::beforeValidate(); - } - public function afterDelete() { parent::afterDelete(); @unlink(Yii::getAlias('@webroot').$this->file); } - - public static function autoSlug() - { - return Yii::$app->getModule('admin')->activeModules['file']->settings['autoSlug']; - } } \ No newline at end of file diff --git a/modules/gallery/GalleryModule.php b/modules/gallery/GalleryModule.php index d8ecd0d..af1ee9a 100644 --- a/modules/gallery/GalleryModule.php +++ b/modules/gallery/GalleryModule.php @@ -13,8 +13,6 @@ class GalleryModule extends \yii\easyii\components\Module 'albumThumbWidth' => 100, 'albumThumbHeight' => 100, 'albumThumbCrop' => true, - - 'autoSlug' => true ]; public static $installConfig = [ diff --git a/modules/gallery/api/Gallery.php b/modules/gallery/api/Gallery.php index a72598a..52ba66c 100644 --- a/modules/gallery/api/Gallery.php +++ b/modules/gallery/api/Gallery.php @@ -195,7 +195,7 @@ private function notFound($id_slug) if(Yii::$app->user->isGuest) { return $this->createObject(''); } - elseif(preg_match(Album::$slugPattern, $id_slug)){ + elseif(preg_match(Album::$SLUG_PATTERN, $id_slug)){ return $this->createObject(''.Yii::t('easyii/gallery/api', 'Create album').''); } else{ diff --git a/modules/gallery/models/Album.php b/modules/gallery/models/Album.php index b4ad51f..de25a55 100644 --- a/modules/gallery/models/Album.php +++ b/modules/gallery/models/Album.php @@ -34,11 +34,9 @@ public function rules() ['title', 'trim'], ['title', 'string', 'max' => 128], ['thumb', 'image'], - ['slug', 'match', 'pattern' => self::$slugPattern, 'message' => Yii::t('easyii', 'Slug can contain only 0-9, a-z and "-" characters (max: 128).')], + ['slug', 'match', 'pattern' => self::$SLUG_PATTERN, 'message' => Yii::t('easyii', 'Slug can contain only 0-9, a-z and "-" characters (max: 128).')], ['slug', 'default', 'value' => null], - ['slug', 'unique', 'when' => function($model){ - return $model->slug && !self::autoSlug(); - }], + ['slug', 'unique'], ]; } @@ -56,19 +54,11 @@ public function behaviors() return [ SortableModel::className(), 'seo' => SeoBehavior::className(), - ]; - } - - public function beforeValidate() - { - if(self::autoSlug() && (!$this->isNewRecord || ($this->isNewRecord && $this->slug == ''))){ - $this->attachBehavior('sluggable', [ + 'sluggable' => [ 'class' => SluggableBehavior::className(), - 'attribute' => 'title', - 'ensureUnique' => true - ]); - } - return parent::beforeValidate(); + 'attribute' => 'title' + ] + ]; } public function getPhotos() @@ -88,9 +78,4 @@ public function afterDelete() @unlink(Yii::getAlias('@webroot').$this->thumb); } } - - public static function autoSlug() - { - return Yii::$app->getModule('admin')->activeModules['gallery']->settings['autoSlug']; - } } \ No newline at end of file diff --git a/modules/news/NewsModule.php b/modules/news/NewsModule.php index bf48834..ed875e5 100644 --- a/modules/news/NewsModule.php +++ b/modules/news/NewsModule.php @@ -10,7 +10,7 @@ class NewsModule extends \yii\easyii\components\Module 'thumbCrop' => false, 'enableShort' => true, - 'shortMaxLength' => 256 + 'shortMaxLength' => 256, ]; public static $installConfig = [ diff --git a/modules/news/models/News.php b/modules/news/models/News.php index ab24a9f..5487ecd 100644 --- a/modules/news/models/News.php +++ b/modules/news/models/News.php @@ -25,8 +25,9 @@ public function rules() ['thumb', 'image'], ['time', 'default', 'value' => time()], ['views', 'number', 'integerOnly' => true], - ['slug', 'match', 'pattern' => self::$slugPattern, 'message' => Yii::t('easyii', 'Slug can contain only 0-9, a-z and "-" characters (max: 128).')], - ['slug', 'default', 'value' => null] + ['slug', 'match', 'pattern' => self::$SLUG_PATTERN, 'message' => Yii::t('easyii', 'Slug can contain only 0-9, a-z and "-" characters (max: 128).')], + ['slug', 'default', 'value' => null], + ['slug', 'unique'] ]; } @@ -45,10 +46,9 @@ public function behaviors() { return [ 'seo' => SeoBehavior::className(), - [ + 'sluggable' => [ 'class' => SluggableBehavior::className(), - 'attribute' => 'title', - 'ensureUnique' => true + 'attribute' => 'title' ] ]; } diff --git a/modules/page/PageModule.php b/modules/page/PageModule.php index ea29383..93f9dea 100644 --- a/modules/page/PageModule.php +++ b/modules/page/PageModule.php @@ -5,10 +5,6 @@ class PageModule extends \yii\easyii\components\Module { - public $settings = [ - 'autoSlug' => true - ]; - public static $installConfig = [ 'title' => [ 'en' => 'Pages', diff --git a/modules/page/api/Page.php b/modules/page/api/Page.php index 10a7955..d8c3e45 100644 --- a/modules/page/api/Page.php +++ b/modules/page/api/Page.php @@ -62,7 +62,7 @@ private function notFound($id_slug) if(Yii::$app->user->isGuest) { return $this->createObject(''); } - elseif(preg_match(PageModel::$slugPattern, $id_slug)){ + elseif(preg_match(PageModel::$SLUG_PATTERN, $id_slug)){ return $this->createObject(''.Yii::t('easyii/page/api', 'Create page').''); } else{ diff --git a/modules/page/models/Page.php b/modules/page/models/Page.php index 5053629..0029298 100644 --- a/modules/page/models/Page.php +++ b/modules/page/models/Page.php @@ -2,7 +2,6 @@ namespace yii\easyii\modules\page\models; use Yii; -use yii\behaviors\SluggableBehavior; use yii\easyii\behaviors\SeoBehavior; class Page extends \yii\easyii\components\ActiveRecord @@ -18,11 +17,9 @@ public function rules() [['title','text'], 'required'], [['title', 'text'], 'trim'], ['title', 'string', 'max' => 128], - ['slug', 'match', 'pattern' => self::$slugPattern, 'message' => Yii::t('easyii', 'Slug can contain only 0-9, a-z and "-" characters (max: 128).')], + ['slug', 'match', 'pattern' => self::$SLUG_PATTERN, 'message' => Yii::t('easyii', 'Slug can contain only 0-9, a-z and "-" characters (max: 128).')], ['slug', 'default', 'value' => null], - ['slug', 'unique', 'when' => function($model){ - return $model->slug && !self::autoSlug(); - }], + ['slug', 'unique'], ]; } @@ -41,21 +38,4 @@ public function behaviors() 'seo' => SeoBehavior::className(), ]; } - - public function beforeValidate() - { - if(self::autoSlug() && (!$this->isNewRecord || ($this->isNewRecord && $this->slug == ''))){ - $this->attachBehavior('sluggable', [ - 'class' => SluggableBehavior::className(), - 'attribute' => 'title', - 'ensureUnique' => true - ]); - } - return parent::beforeValidate(); - } - - public static function autoSlug() - { - return Yii::$app->getModule('admin')->activeModules['page']->settings['autoSlug']; - } } \ No newline at end of file diff --git a/modules/text/api/Text.php b/modules/text/api/Text.php index 8f73e50..0bf5cf8 100644 --- a/modules/text/api/Text.php +++ b/modules/text/api/Text.php @@ -56,7 +56,7 @@ private function notFound($id_slug) if(Yii::$app->user->isGuest) { return ''; } - elseif(preg_match(TextModel::$slugPattern, $id_slug)){ + elseif(preg_match(TextModel::$SLUG_PATTERN, $id_slug)){ return ''.Yii::t('easyii/text/api', 'Create text').''; } else{ diff --git a/modules/text/models/Text.php b/modules/text/models/Text.php index 8be8e06..11e17ab 100644 --- a/modules/text/models/Text.php +++ b/modules/text/models/Text.php @@ -19,7 +19,7 @@ public function rules() ['text_id', 'number', 'integerOnly' => true], ['text', 'required'], ['text', 'trim'], - ['slug', 'match', 'pattern' => self::$slugPattern, 'message' => Yii::t('easyii', 'Slug can contain only 0-9, a-z and "-" characters (max: 128).')], + ['slug', 'match', 'pattern' => self::$SLUG_PATTERN, 'message' => Yii::t('easyii', 'Slug can contain only 0-9, a-z and "-" characters (max: 128).')], ['slug', 'default', 'value' => null], ['slug', 'unique'] ]; From 81b3e997d6f2709aa3014f999876e5c077a8ce7c Mon Sep 17 00:00:00 2001 From: noumo Date: Sat, 4 Apr 2015 10:26:48 +0300 Subject: [PATCH 3/5] fix issue #24 final --- modules/article/models/Category.php | 6 +++--- modules/article/models/Item.php | 4 ++-- modules/catalog/models/Category.php | 6 +++--- modules/catalog/models/Item.php | 4 ++-- modules/file/models/File.php | 6 +++--- modules/gallery/models/Album.php | 4 ++-- modules/news/models/News.php | 4 ++-- 7 files changed, 17 insertions(+), 17 deletions(-) diff --git a/modules/article/models/Category.php b/modules/article/models/Category.php index 3259ee4..9e777ec 100644 --- a/modules/article/models/Category.php +++ b/modules/article/models/Category.php @@ -35,8 +35,7 @@ public function rules() ['thumb', 'image'], ['item_count', 'integer'], ['slug', 'match', 'pattern' => self::$SLUG_PATTERN, 'message' => Yii::t('easyii', 'Slug can contain only 0-9, a-z and "-" characters (max: 128).')], - ['slug', 'default', 'value' => null], - ['slug', 'unique'], + ['slug', 'default', 'value' => null] ]; } @@ -57,7 +56,8 @@ public function behaviors() 'seo' => SeoBehavior::className(), 'sluggable' => [ 'class' => SluggableBehavior::className(), - 'attribute' => 'title' + 'attribute' => 'title', + 'ensureUnique' => true ] ]; } diff --git a/modules/article/models/Item.php b/modules/article/models/Item.php index 292f194..022e7b3 100644 --- a/modules/article/models/Item.php +++ b/modules/article/models/Item.php @@ -27,7 +27,6 @@ public function rules() ['views', 'number', 'integerOnly' => true], ['slug', 'match', 'pattern' => self::$SLUG_PATTERN, 'message' => Yii::t('easyii', 'Slug can contain only 0-9, a-z and "-" characters (max: 128).')], ['slug', 'default', 'value' => null], - ['slug', 'unique'] ]; } @@ -49,7 +48,8 @@ public function behaviors() 'seo' => SeoBehavior::className(), 'sluggable' => [ 'class' => SluggableBehavior::className(), - 'attribute' => 'title' + 'attribute' => 'title', + 'ensureUnique' => true ] ]; } diff --git a/modules/catalog/models/Category.php b/modules/catalog/models/Category.php index fb31fcc..8ffd125 100644 --- a/modules/catalog/models/Category.php +++ b/modules/catalog/models/Category.php @@ -43,8 +43,7 @@ public function rules() ['thumb', 'image'], ['item_count', 'integer'], ['slug', 'match', 'pattern' => self::$SLUG_PATTERN, 'message' => Yii::t('easyii', 'Slug can contain only 0-9, a-z and "-" characters (max: 128).')], - ['slug', 'default', 'value' => null], - ['slug', 'unique'], + ['slug', 'default', 'value' => null] ]; } @@ -65,7 +64,8 @@ public function behaviors() 'seo' => SeoBehavior::className(), 'sluggable' => [ 'class' => SluggableBehavior::className(), - 'attribute' => 'title' + 'attribute' => 'title', + 'ensureUnique' => true ] ]; } diff --git a/modules/catalog/models/Item.php b/modules/catalog/models/Item.php index f4469eb..f58a712 100644 --- a/modules/catalog/models/Item.php +++ b/modules/catalog/models/Item.php @@ -25,7 +25,6 @@ public function rules() ['description', 'safe'], ['slug', 'match', 'pattern' => self::$SLUG_PATTERN, 'message' => Yii::t('easyii', 'Slug can contain only 0-9, a-z and "-" characters (max: 128).')], ['slug', 'default', 'value' => null], - ['slug', 'unique'] ]; } @@ -46,7 +45,8 @@ public function behaviors() 'seo' => SeoBehavior::className(), 'sluggable' => [ 'class' => SluggableBehavior::className(), - 'attribute' => 'title' + 'attribute' => 'title', + 'ensureUnique' => true ] ]; } diff --git a/modules/file/models/File.php b/modules/file/models/File.php index 4c867fd..4679eb9 100644 --- a/modules/file/models/File.php +++ b/modules/file/models/File.php @@ -22,7 +22,6 @@ public function rules() ['title', 'trim'], ['slug', 'match', 'pattern' => self::$SLUG_PATTERN, 'message' => Yii::t('easyii', 'Slug can contain only 0-9, a-z and "-" characters (max: 128).')], ['slug', 'default', 'value' => null], - ['slug', 'unique'], [['downloads', 'size'], 'integer'], ['time', 'default', 'value' => time()] ]; @@ -33,7 +32,7 @@ public function attributeLabels() return [ 'title' => Yii::t('easyii', 'Title'), 'file' => Yii::t('easyii', 'File'), - 'slug' => Yii::t('easyii', 'Slug'), + 'slug' => Yii::t('easyii', 'Slug') ]; } @@ -44,7 +43,8 @@ public function behaviors() 'seo' => SeoBehavior::className(), 'sluggable' => [ 'class' => SluggableBehavior::className(), - 'attribute' => 'title' + 'attribute' => 'title', + 'ensureUnique' => true ] ]; } diff --git a/modules/gallery/models/Album.php b/modules/gallery/models/Album.php index de25a55..689424f 100644 --- a/modules/gallery/models/Album.php +++ b/modules/gallery/models/Album.php @@ -36,7 +36,6 @@ public function rules() ['thumb', 'image'], ['slug', 'match', 'pattern' => self::$SLUG_PATTERN, 'message' => Yii::t('easyii', 'Slug can contain only 0-9, a-z and "-" characters (max: 128).')], ['slug', 'default', 'value' => null], - ['slug', 'unique'], ]; } @@ -56,7 +55,8 @@ public function behaviors() 'seo' => SeoBehavior::className(), 'sluggable' => [ 'class' => SluggableBehavior::className(), - 'attribute' => 'title' + 'attribute' => 'title', + 'ensureUnique' => true ] ]; } diff --git a/modules/news/models/News.php b/modules/news/models/News.php index 5487ecd..54bad80 100644 --- a/modules/news/models/News.php +++ b/modules/news/models/News.php @@ -27,7 +27,6 @@ public function rules() ['views', 'number', 'integerOnly' => true], ['slug', 'match', 'pattern' => self::$SLUG_PATTERN, 'message' => Yii::t('easyii', 'Slug can contain only 0-9, a-z and "-" characters (max: 128).')], ['slug', 'default', 'value' => null], - ['slug', 'unique'] ]; } @@ -48,7 +47,8 @@ public function behaviors() 'seo' => SeoBehavior::className(), 'sluggable' => [ 'class' => SluggableBehavior::className(), - 'attribute' => 'title' + 'attribute' => 'title', + 'ensureUnique' => true ] ]; } From 9b9c0617678b824da684c18986dc6906aa432c23 Mon Sep 17 00:00:00 2001 From: noumo Date: Sun, 5 Apr 2015 18:21:22 +0300 Subject: [PATCH 4/5] issue #27 fix --- modules/subscribe/controllers/AController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/subscribe/controllers/AController.php b/modules/subscribe/controllers/AController.php index 4b0b591..4dec10d 100644 --- a/modules/subscribe/controllers/AController.php +++ b/modules/subscribe/controllers/AController.php @@ -93,7 +93,7 @@ private function send($model) "--------------------------------------------------------------------------------"; foreach(Subscriber::find()->all() as $subscriber){ - $unsubscribeLink = '
'.Yii::t('easyii/unsubscribe', 'Unsubscribe').''; + $unsubscribeLink = '
'.Yii::t('easyii/subscribe', 'Unsubscribe').''; if(Yii::$app->mailer->compose() ->setFrom(Setting::get('robot_email')) @@ -109,4 +109,4 @@ private function send($model) return $model->save(); } -} \ No newline at end of file +} From 7e5721198bca97c773af6504bca09afe257554fd Mon Sep 17 00:00:00 2001 From: noumo Date: Tue, 7 Apr 2015 20:45:21 +0300 Subject: [PATCH 5/5] merge with viniter/bugfix --- assets/photos/photos.js | 5 +++-- components/API.php | 2 +- components/Controller.php | 2 +- controllers/AdminsController.php | 6 +++--- controllers/InstallController.php | 4 ++-- controllers/ModulesController.php | 6 +++--- controllers/PhotosController.php | 7 ++++--- controllers/RedactorController.php | 3 ++- controllers/SettingsController.php | 2 +- controllers/SignController.php | 2 +- helpers/Image.php | 3 +++ helpers/Upload.php | 3 ++- media/js/admin.js | 2 +- media/js/frontend.js | 2 +- modules/article/api/Article.php | 5 ++++- modules/article/controllers/AController.php | 4 ++-- modules/article/controllers/ItemsController.php | 10 +++++----- modules/article/views/a/_form.php | 5 +++-- modules/article/views/a/_menu.php | 6 ++++-- modules/article/views/a/index.php | 13 +++++++------ modules/article/views/items/_form.php | 9 +++++---- modules/article/views/items/_menu.php | 8 +++++--- modules/article/views/items/index.php | 10 ++++++---- modules/carousel/api/Carousel.php | 3 ++- modules/carousel/controllers/AController.php | 4 ++-- modules/carousel/views/a/_form.php | 2 +- modules/carousel/views/a/_menu.php | 6 ++++-- modules/carousel/views/a/index.php | 11 ++++++----- modules/catalog/api/Catalog.php | 5 ++++- modules/catalog/controllers/AController.php | 6 +++--- modules/catalog/controllers/ItemsController.php | 12 ++++++------ modules/catalog/views/a/_form.php | 5 +++-- modules/catalog/views/a/_menu.php | 8 +++++--- modules/catalog/views/a/_submenu.php | 6 ++++-- modules/catalog/views/a/index.php | 13 +++++++------ modules/catalog/views/items/_form.php | 9 +++++---- modules/catalog/views/items/_menu.php | 8 +++++--- modules/catalog/views/items/_submenu.php | 6 ++++-- modules/catalog/views/items/index.php | 10 ++++++---- modules/faq/controllers/AController.php | 4 ++-- modules/faq/views/a/_menu.php | 8 +++++--- modules/faq/views/a/index.php | 11 ++++++----- modules/feedback/api/Feedback.php | 3 ++- modules/feedback/controllers/AController.php | 2 +- modules/feedback/views/a/_menu.php | 10 ++++++---- modules/feedback/views/a/index.php | 5 +++-- modules/file/api/File.php | 13 +++++++++---- modules/file/controllers/AController.php | 4 ++-- modules/file/views/a/_menu.php | 6 ++++-- modules/file/views/a/index.php | 10 ++++++---- modules/gallery/api/Gallery.php | 5 ++++- modules/gallery/controllers/AController.php | 6 +++--- modules/gallery/views/a/_form.php | 5 +++-- modules/gallery/views/a/_menu.php | 6 ++++-- modules/gallery/views/a/_submenu.php | 6 ++++-- modules/gallery/views/a/index.php | 11 ++++++----- modules/guestbook/api/Guestbook.php | 3 ++- modules/guestbook/controllers/AController.php | 4 ++-- modules/guestbook/views/a/_menu.php | 12 +++++++----- modules/guestbook/views/a/index.php | 7 ++++--- modules/news/api/News.php | 3 ++- modules/news/controllers/AController.php | 4 ++-- modules/news/views/a/_form.php | 7 ++++--- modules/news/views/a/_menu.php | 6 ++++-- modules/news/views/a/index.php | 7 ++++--- modules/page/api/Page.php | 5 ++++- modules/page/controllers/AController.php | 4 ++-- modules/page/views/a/_form.php | 5 +++-- modules/page/views/a/_menu.php | 8 +++++--- modules/page/views/a/index.php | 6 ++++-- modules/subscribe/api/Subscribe.php | 3 ++- modules/subscribe/controllers/AController.php | 10 +++++----- modules/subscribe/views/a/_menu.php | 8 +++++--- modules/subscribe/views/a/history.php | 4 +++- modules/subscribe/views/a/index.php | 4 +++- modules/text/api/Text.php | 5 ++++- modules/text/controllers/AController.php | 4 ++-- modules/text/views/a/_menu.php | 8 +++++--- modules/text/views/a/index.php | 6 ++++-- views/admins/_menu.php | 6 ++++-- views/admins/index.php | 6 ++++-- views/install/finish.php | 4 +++- views/layouts/frontend-toolbar.php | 7 ++++--- views/layouts/main.php | 17 +++++++++-------- views/logs/_menu.php | 4 +++- views/modules/_menu.php | 6 ++++-- views/modules/_submenu.php | 6 ++++-- views/modules/index.php | 11 ++++++----- views/modules/settings.php | 4 +++- views/settings/_menu.php | 4 +++- views/settings/index.php | 5 +++-- views/system/index.php | 7 ++++--- views/system/update.php | 4 +++- widgets/views/photos.php | 17 +++++++++-------- 94 files changed, 354 insertions(+), 235 deletions(-) diff --git a/assets/photos/photos.js b/assets/photos/photos.js index dab2e0a..7804282 100644 --- a/assets/photos/photos.js +++ b/assets/photos/photos.js @@ -72,12 +72,13 @@ $(function(){ photosBody.on('input propertychange', '.photo-description', function(){ var saveBtn = $(this).siblings('.save-photo-description'); if(saveBtn.hasClass('disabled')){ - saveBtn.removeClass('disabled').on('click', function(){ + saveBtn.removeClass('disabled').on('click', function(e){ + e.preventDefault(); var $this = $(this).unbind('click').addClass('disabled'); var tr = $this.closest('tr'); var text = $this.siblings('.photo-description').val(); $.post( - '/admin/photos/description/'+ tr.data('id'), + $this.attr('href'), {description: text}, function(response){ if(response.result === 'success'){ diff --git a/components/API.php b/components/API.php index 44ed268..1ddcbed 100644 --- a/components/API.php +++ b/components/API.php @@ -27,7 +27,7 @@ public static function __callStatic($method, $params) public function wrapLiveEdit($text, $path, $tag = 'span') { - return '<'.$tag.' class="easyiicms-edit" data-edit="/admin/'.$this->module.'/'.$path.'">'.$text.''; + return '<'.$tag.' class="easyiicms-edit" data-edit="'. Yii::$app->urlManager->createAbsoluteUrl(["/admin/$this->module/$path"]) . '">'.$text.''; } public function errorText($text) diff --git a/components/Controller.php b/components/Controller.php index 07d0040..b304843 100644 --- a/components/Controller.php +++ b/components/Controller.php @@ -18,7 +18,7 @@ public function beforeAction($action) if(Yii::$app->user->isGuest){ Yii::$app->user->setReturnUrl(Yii::$app->request->url); - return $this->redirect('/admin/sign/in'); + return $this->redirect(['/admin/sign/in']); } else{ diff --git a/controllers/AdminsController.php b/controllers/AdminsController.php index cab0e01..e0c1e8a 100644 --- a/controllers/AdminsController.php +++ b/controllers/AdminsController.php @@ -15,7 +15,7 @@ public function actionIndex() $data = new ActiveDataProvider([ 'query' => Admin::find()->desc(), ]); - Yii::$app->user->setReturnUrl('/admin/admins'); + Yii::$app->user->setReturnUrl(['/admin/admins']); return $this->render('index', [ 'data' => $data @@ -35,7 +35,7 @@ public function actionCreate() else{ if($model->save()){ $this->flash('success', Yii::t('easyii', 'Admin created')); - return $this->redirect('/admin/admins'); + return $this->redirect(['/admin/admins']); } else{ $this->flash('error', Yii::t('easyii', 'Create error. {0}', $model->formatErrors())); @@ -56,7 +56,7 @@ public function actionEdit($id) if($model === null){ $this->flash('error', Yii::t('easyii', 'Not found')); - return $this->redirect('/admin/admins'); + return $this->redirect(['/admin/admins']); } if ($model->load(Yii::$app->request->post())) { diff --git a/controllers/InstallController.php b/controllers/InstallController.php index d6544b9..4d2a949 100644 --- a/controllers/InstallController.php +++ b/controllers/InstallController.php @@ -47,7 +47,7 @@ public function actionIndex() Yii::$app->cache->flush(); Yii::$app->session->setFlash('root_password', $installForm->root_password); - return $this->redirect('/admin/install/finish'); + return $this->redirect(['/admin/install/finish']); } else { $installForm->robot_email = 'noreply@'.Yii::$app->request->serverName; @@ -68,7 +68,7 @@ public function actionFinish() 'password' => $root_password, ]); if($loginForm->login()){ - return $this->redirect('/admin/'); + return $this->redirect(['/admin/']); } } diff --git a/controllers/ModulesController.php b/controllers/ModulesController.php index 2a9bd15..038fbe7 100644 --- a/controllers/ModulesController.php +++ b/controllers/ModulesController.php @@ -51,7 +51,7 @@ public function actionCreate() else{ if($model->save()){ $this->flash('success', Yii::t('easyii', 'Module created')); - return $this->redirect('/admin/modules'); + return $this->redirect(['/admin/modules']); } else{ $this->flash('error', Yii::t('Create error. {0}', $model->formatErrors())); @@ -72,7 +72,7 @@ public function actionEdit($id) if($model === null){ $this->flash('error', Yii::t('easyii', 'Not found')); - return $this->redirect('/admin/modules'); + return $this->redirect(['/admin/modules']); } if ($model->load(Yii::$app->request->post())) { @@ -103,7 +103,7 @@ public function actionSettings($id) if($model === null){ $this->flash('error', Yii::t('easyii', 'Not found')); - return $this->redirect('/admin/modules'); + return $this->redirect(['/admin/modules']); } if (Yii::$app->request->post('Settings')) { diff --git a/controllers/PhotosController.php b/controllers/PhotosController.php index 9847b35..6da5be7 100644 --- a/controllers/PhotosController.php +++ b/controllers/PhotosController.php @@ -2,6 +2,7 @@ namespace yii\easyii\controllers; use Yii; +use yii\helpers\Url; use yii\web\UploadedFile; use yii\web\Response; @@ -37,7 +38,7 @@ public function behaviors() public function actionUpload($model, $item_id, $maxWidth, $thumbWidth, $thumbHeight = null, $thumbCrop = true) { $success = null; - + $photo = new Photo; $photo->model = $model; $photo->item_id = $item_id; @@ -59,8 +60,8 @@ public function actionUpload($model, $item_id, $maxWidth, $thumbWidth, $thumbHei ]; } else{ - @unlink(Yii::getAlias('@webroot').$photo->image); - @unlink(Yii::getAlias('@webroot').$photo->thumb); + @unlink(Yii::getAlias('@webroot') . str_replace(Url::base(true), '', $photo->image)); + @unlink(Yii::getAlias('@webroot') . str_replace(Url::base(true), '', $photo->thumb)); $this->error = Yii::t('easyii', 'Create error. {0}', $photo->formatErrors()); } } diff --git a/controllers/RedactorController.php b/controllers/RedactorController.php index 6d7597f..bf95108 100644 --- a/controllers/RedactorController.php +++ b/controllers/RedactorController.php @@ -4,6 +4,7 @@ use Yii; use yii\web\HttpException; use yii\helpers\FileHelper; +use yii\helpers\Url; use yii\web\UploadedFile; use yii\web\Response; @@ -116,7 +117,7 @@ public function actionUpload($dir = '') private function getResponse($fileName) { return [ - 'filelink' => 'http://'.Yii::$app->request->serverName.$fileName, + 'filelink' => $fileName, 'filename' => basename($fileName) ]; } diff --git a/controllers/SettingsController.php b/controllers/SettingsController.php index 469928a..0b3ff7d 100644 --- a/controllers/SettingsController.php +++ b/controllers/SettingsController.php @@ -55,7 +55,7 @@ public function actionEdit($id) if($model === null || ($model->visibility < (IS_ROOT ? Setting::VISIBLE_ROOT : Setting::VISIBLE_ALL))){ $this->flash('error', Yii::t('easyii', 'Not found')); - return $this->redirect('/admin/settings'); + return $this->redirect(['/admin/settings']); } if ($model->load(Yii::$app->request->post())) { diff --git a/controllers/SignController.php b/controllers/SignController.php index 9206499..b846444 100644 --- a/controllers/SignController.php +++ b/controllers/SignController.php @@ -14,7 +14,7 @@ public function actionIn() $model = new models\LoginForm; if (!Yii::$app->user->isGuest || ($model->load(Yii::$app->request->post()) && $model->login())) { - return $this->redirect(Yii::$app->user->getReturnUrl('/admin')); + return $this->redirect(Yii::$app->user->getReturnUrl(['/admin'])); } else { return $this->render('in', [ 'model' => $model, diff --git a/helpers/Image.php b/helpers/Image.php index ee5c39b..340927d 100644 --- a/helpers/Image.php +++ b/helpers/Image.php @@ -5,6 +5,7 @@ use yii\web\UploadedFile; use yii\web\HttpException; use yii\helpers\FileHelper; +use yii\helpers\Url; use yii\easyii\helpers\GD; class Image @@ -26,6 +27,8 @@ public static function upload(UploadedFile $fileInstance, $dir = '', $resizeWidt static function createThumbnail($fileName, $width, $height = null, $crop = true) { + $fileName = str_replace(Url::base(true), '', $fileName); + $webRoot = Yii::getAlias('@webroot'); if(!strstr($fileName, $webRoot)){ $fileName = $webRoot . $fileName; diff --git a/helpers/Upload.php b/helpers/Upload.php index aa8410f..1ba28bf 100644 --- a/helpers/Upload.php +++ b/helpers/Upload.php @@ -7,6 +7,7 @@ use yii\helpers\Inflector; use yii\helpers\StringHelper; use yii\helpers\FileHelper; +use yii\helpers\Url; class Upload { @@ -33,7 +34,7 @@ static function getUploadPath($dir) static function getLink($fileName) { - return str_replace('\\', '/', str_replace(Yii::getAlias('@webroot'), '', $fileName)); + return Url::base(true) . str_replace('\\', '/', str_replace(Yii::getAlias('@webroot'), '', $fileName)); } static function getFileName($fileInstanse, $namePostfix = true) diff --git a/media/js/admin.js b/media/js/admin.js index f09d4f5..7aeacd0 100644 --- a/media/js/admin.js +++ b/media/js/admin.js @@ -51,7 +51,7 @@ $(function(){ var checkbox = $(this); checkbox.switcher('setDisabled', true); - $.getJSON(checkbox.data('link') + (checkbox.is(':checked') ? 'on' : 'off') + '/' + checkbox.data('id'), function(response){ + $.getJSON(checkbox.data('link') + '/' + (checkbox.is(':checked') ? 'on' : 'off') + '/' + checkbox.data('id'), function(response){ if(response.result === 'error'){ alert(response.error); } diff --git a/media/js/frontend.js b/media/js/frontend.js index 004b514..3dc43a8 100644 --- a/media/js/frontend.js +++ b/media/js/frontend.js @@ -6,6 +6,6 @@ $(function(){ $('#easyii-navbar input').switcher({copy: {en: {yes: '', no: ''}}}).on('change', function(){ var checkbox = $(this); checkbox.switcher('setDisabled', true); - location.href = '/admin/system/live-edit/'+(checkbox.is(':checked') ? 1 : 0); + location.href = checkbox.attr('data-link') + '/' + (checkbox.is(':checked') ? 1 : 0); });; }); \ No newline at end of file diff --git a/modules/article/api/Article.php b/modules/article/api/Article.php index 945bcec..ad59309 100644 --- a/modules/article/api/Article.php +++ b/modules/article/api/Article.php @@ -3,6 +3,7 @@ use Yii; use yii\data\ActiveDataProvider; +use yii\helpers\Url; use yii\widgets\LinkPager; use yii\easyii\widgets\Colorbox; @@ -206,8 +207,10 @@ private function notFound($id_slug) if(Yii::$app->user->isGuest) { return $this->createCatObject(''); } + elseif(preg_match(Category::$SLUG_PATTERN, $id_slug)){ - return $this->createCatObject(''.Yii::t('easyii/article/api', 'Create category').''); + + return $this->createCatObject(''.Yii::t('easyii/article/api', 'Create category').''); } else{ return $this->createCatObject($this->errorText('WRONG CATEGORY IDENTIFIER')); diff --git a/modules/article/controllers/AController.php b/modules/article/controllers/AController.php index 8ec5b38..e82653f 100644 --- a/modules/article/controllers/AController.php +++ b/modules/article/controllers/AController.php @@ -62,7 +62,7 @@ public function actionCreate($slug = null) if($model->save()){ $this->flash('success', Yii::t('easyii/article', 'Category created')); - return $this->redirect('/admin/article/items/'.$model->primaryKey); + return $this->redirect(['/admin/article/items/index', 'id' => $model->primaryKey]); } else{ $this->flash('error', Yii::t('easyii', 'Create error. {0}', $model->formatErrors())); @@ -82,7 +82,7 @@ public function actionCreate($slug = null) public function actionEdit($id) { if(!($model = Category::findOne($id))){ - return $this->redirect('/admin/article'); + return $this->redirect(['/admin/article/']); } if ($model->load(Yii::$app->request->post())) { diff --git a/modules/article/controllers/ItemsController.php b/modules/article/controllers/ItemsController.php index 2c121b1..a8ccf74 100644 --- a/modules/article/controllers/ItemsController.php +++ b/modules/article/controllers/ItemsController.php @@ -26,7 +26,7 @@ public function behaviors() public function actionIndex($id) { if(!($model = Category::findOne($id))){ - return $this->redirect('/admin/article'); + return $this->redirect(['/admin/article']); } return $this->render('index', [ @@ -38,7 +38,7 @@ public function actionIndex($id) public function actionCreate($id) { if(!($category = Category::findOne($id))){ - return $this->redirect('/admin/article'); + return $this->redirect(['/admin/article']); } $model = new Item; @@ -62,7 +62,7 @@ public function actionCreate($id) if ($model->save()) { $this->flash('success', Yii::t('easyii/article', 'Article created')); - return $this->redirect('/admin/article/items/edit/' . $model->primaryKey); + return $this->redirect(['/admin/article/items/edit', 'id' => $model->primaryKey]); } else { $this->flash('error', Yii::t('easyii', 'Create error. {0}', $model->formatErrors())); return $this->refresh(); @@ -80,7 +80,7 @@ public function actionCreate($id) public function actionEdit($id) { if(!($model = Item::findOne($id))){ - return $this->redirect('/admin/article'); + return $this->redirect(['/admin/article']); } if ($model->load(Yii::$app->request->post())) { @@ -100,7 +100,7 @@ public function actionEdit($id) if ($model->save()) { $this->flash('success', Yii::t('easyii/article', 'Article updated')); - return $this->redirect('/admin/article/items/edit/' . $model->primaryKey); + return $this->redirect(['/admin/article/items/edit', 'id' => $model->primaryKey]); } else { $this->flash('error', Yii::t('easyii', 'Update error. {0}', $model->formatErrors())); return $this->refresh(); diff --git a/modules/article/views/a/_form.php b/modules/article/views/a/_form.php index abd05a0..e58ee41 100644 --- a/modules/article/views/a/_form.php +++ b/modules/article/views/a/_form.php @@ -1,5 +1,6 @@ field($model, 'title') ?> thumb) : ?> - - + + field($model, 'thumb')->fileInput() ?> diff --git a/modules/article/views/a/_menu.php b/modules/article/views/a/_menu.php index c8bafb8..4b9d678 100644 --- a/modules/article/views/a/_menu.php +++ b/modules/article/views/a/_menu.php @@ -1,15 +1,17 @@ context->action->id; ?>
\ No newline at end of file diff --git a/modules/article/views/a/index.php b/modules/article/views/a/index.php index 88a0ed5..36a7173 100644 --- a/modules/article/views/a/index.php +++ b/modules/article/views/a/index.php @@ -1,5 +1,6 @@ title = Yii::t('easyii/article', 'Articles'); @@ -26,21 +27,21 @@ primaryKey ?> - title ?> + title ?> item_count ?> status == Category::STATUS_ON, [ 'class' => 'switch', 'data-id' => $item->primaryKey, - 'data-link' => '/admin/article/a/' + 'data-link' => Url::to(['/admin/article/a/']), ]) ?>
- - - - + + + +
diff --git a/modules/article/views/items/_form.php b/modules/article/views/items/_form.php index 6469d91..6d74d14 100644 --- a/modules/article/views/items/_form.php +++ b/modules/article/views/items/_form.php @@ -1,5 +1,6 @@ field($model, 'title') ?> context->module->settings['articleThumb']) : ?> thumb) : ?> - - + + field($model, 'thumb')->fileInput() ?> @@ -22,8 +23,8 @@ field($model, 'text')->widget(Redactor::className(),[ 'options' => [ 'minHeight' => 400, - 'imageUpload' => '/admin/redactor/upload?dir=article', - 'fileUpload' => '/admin/redactor/upload?dir=article', + 'imageUpload' => Url::to(['/admin/redactor/upload', 'dir' => 'article'], true), + 'fileUpload' => Url::to(['/admin/redactor/upload', 'dir' => 'article'], true), 'plugins' => ['fullscreen'] ] ]) ?> diff --git a/modules/article/views/items/_menu.php b/modules/article/views/items/_menu.php index e5b2df3..e75d3f7 100644 --- a/modules/article/views/items/_menu.php +++ b/modules/article/views/items/_menu.php @@ -1,11 +1,13 @@ context->action->id; ?>
\ No newline at end of file diff --git a/modules/article/views/items/index.php b/modules/article/views/items/index.php index 79360c3..108ae9a 100644 --- a/modules/article/views/items/index.php +++ b/modules/article/views/items/index.php @@ -1,4 +1,6 @@ title = Yii::t('easyii/article', 'Articles'); ?> render('_menu', ['category' => $model]) ?> @@ -21,13 +23,13 @@ primaryKey ?> - title ?> + title ?> views ?>
- - - + + +
diff --git a/modules/carousel/api/Carousel.php b/modules/carousel/api/Carousel.php index c19e817..5a1a98e 100644 --- a/modules/carousel/api/Carousel.php +++ b/modules/carousel/api/Carousel.php @@ -2,6 +2,7 @@ namespace yii\easyii\modules\carousel\api; use Yii; +use yii\helpers\Url; use yii\easyii\helpers\Data; use yii\easyii\modules\carousel\models\Carousel as CarouselModel; @@ -37,7 +38,7 @@ public function init() public function api_widget() { if(!count($this->_items)){ - return ''.Yii::t('easyii/carousel/api', 'Create carousel').''; + return ''.Yii::t('easyii/carousel/api', 'Create carousel').''; } $widget = \yii\bootstrap\Carousel::widget([ diff --git a/modules/carousel/controllers/AController.php b/modules/carousel/controllers/AController.php index 9cbc188..44d201c 100644 --- a/modules/carousel/controllers/AController.php +++ b/modules/carousel/controllers/AController.php @@ -58,7 +58,7 @@ public function actionCreate() if($model->save()){ $this->flash('success', Yii::t('easyii/carousel', 'Carousel created')); - return $this->redirect('/admin/carousel'); + return $this->redirect(['/admin/carousel']); } else{ $this->flash('error', Yii::t('easyii', 'Create error. {0}', $model->formatErrors())); @@ -87,7 +87,7 @@ public function actionEdit($id) if($model === null){ $this->flash('error', Yii::t('easyii', 'Not found')); - return $this->redirect('/admin/carousel'); + return $this->redirect(['/admin/carousel']); } if ($model->load(Yii::$app->request->post())) { diff --git a/modules/carousel/views/a/_form.php b/modules/carousel/views/a/_form.php index b56d25d..37dc071 100644 --- a/modules/carousel/views/a/_form.php +++ b/modules/carousel/views/a/_form.php @@ -7,7 +7,7 @@ 'options' => ['enctype' => 'multipart/form-data'] ]); ?> image) : ?> - + field($model, 'image')->fileInput() ?> context->module->settings['enableTitle']) : ?> diff --git a/modules/carousel/views/a/_menu.php b/modules/carousel/views/a/_menu.php index eeccc3c..0b05a09 100644 --- a/modules/carousel/views/a/_menu.php +++ b/modules/carousel/views/a/_menu.php @@ -1,15 +1,17 @@ context->action->id; ?>
\ No newline at end of file diff --git a/modules/carousel/views/a/index.php b/modules/carousel/views/a/index.php index 3cd56b1..a1b8d98 100644 --- a/modules/carousel/views/a/index.php +++ b/modules/carousel/views/a/index.php @@ -1,6 +1,7 @@ title = Yii::t('easyii/carousel', 'Carousel'); ?> @@ -25,19 +26,19 @@ primaryKey ?> - + status == Carousel::STATUS_ON, [ 'class' => 'switch', 'data-id' => $item->primaryKey, - 'data-link' => '/admin/carousel/a/' + 'data-link' => Url::to(['/admin/carousel/a/']), ]) ?>
- - - + + +
diff --git a/modules/catalog/api/Catalog.php b/modules/catalog/api/Catalog.php index 311183c..e127793 100644 --- a/modules/catalog/api/Catalog.php +++ b/modules/catalog/api/Catalog.php @@ -3,6 +3,7 @@ use Yii; use yii\data\ActiveDataProvider; +use yii\helpers\Url; use yii\widgets\LinkPager; use yii\easyii\widgets\Fancybox; @@ -222,8 +223,10 @@ private function notFound($id_slug) if(Yii::$app->user->isGuest) { return $this->createCatObject(''); } + elseif(preg_match(Category::$SLUG_PATTERN, $id_slug)){ - return $this->createCatObject(''.Yii::t('easyii/catalog/api', 'Create category').''); + + return $this->createCatObject(''.Yii::t('easyii/catalog/api', 'Create category').''); } else{ return $this->createCatObject($this->errorText('WRONG CATEGORY IDENTIFIER')); diff --git a/modules/catalog/controllers/AController.php b/modules/catalog/controllers/AController.php index ef04797..fee2d15 100644 --- a/modules/catalog/controllers/AController.php +++ b/modules/catalog/controllers/AController.php @@ -64,7 +64,7 @@ public function actionCreate($slug = null) if($model->save()){ $this->flash('success', Yii::t('easyii/catalog', 'Category created')); - return $this->redirect('/admin/catalog/a/fields/'.$model->primaryKey); + return $this->redirect(['/admin/catalog/a/fields', 'id' => $model->primaryKey]); } else{ $this->flash('error', Yii::t('easyii', 'Create error. {0}', $model->formatErrors())); @@ -84,7 +84,7 @@ public function actionCreate($slug = null) public function actionEdit($id) { if(!($model = Category::findOne($id))){ - return $this->redirect('/admin/catalog'); + return $this->redirect(['/admin/catalog']); } if ($model->load(Yii::$app->request->post())) { @@ -120,7 +120,7 @@ public function actionEdit($id) public function actionFields($id) { if(!($model = Category::findOne($id))){ - return $this->redirect('/admin/catalog'); + return $this->redirect(['/admin/catalog']); } if (Yii::$app->request->post('save')) diff --git a/modules/catalog/controllers/ItemsController.php b/modules/catalog/controllers/ItemsController.php index 411857c..8d46399 100644 --- a/modules/catalog/controllers/ItemsController.php +++ b/modules/catalog/controllers/ItemsController.php @@ -27,7 +27,7 @@ public function behaviors() public function actionIndex($id) { if(!($model = Category::findOne($id))){ - return $this->redirect('/admin/catalog'); + return $this->redirect(['/admin/catalog']); } return $this->render('index', [ @@ -39,7 +39,7 @@ public function actionIndex($id) public function actionCreate($id) { if(!($category = Category::findOne($id))){ - return $this->redirect('/admin/catalog'); + return $this->redirect(['/admin/catalog']); } $model = new Item; @@ -64,7 +64,7 @@ public function actionCreate($id) if ($model->save()) { $this->flash('success', Yii::t('easyii/catalog', 'Item created')); - return $this->redirect('/admin/catalog/items/edit/' . $model->primaryKey); + return $this->redirect(['/admin/catalog/items/edit/', 'id' => $model->primaryKey]); } else { $this->flash('error', Yii::t('easyii', 'Create error. {0}', $model->formatErrors())); return $this->refresh(); @@ -83,7 +83,7 @@ public function actionCreate($id) public function actionEdit($id) { if(!($model = Item::findOne($id))){ - return $this->redirect('/admin/catalog'); + return $this->redirect(['/admin/catalog']); } if ($model->load(Yii::$app->request->post())) { @@ -105,7 +105,7 @@ public function actionEdit($id) if ($model->save()) { $this->flash('success', Yii::t('easyii/catalog', 'Item updated')); - return $this->redirect('/admin/catalog/items/edit/' . $model->primaryKey); + return $this->redirect(['/admin/catalog/items/edit', 'id' => $model->primaryKey]); } else { $this->flash('error', Yii::t('easyii', 'Update error. {0}', $model->formatErrors())); return $this->refresh(); @@ -123,7 +123,7 @@ public function actionEdit($id) public function actionPhotos($id) { if(!($model = Item::findOne($id))){ - return $this->redirect('/admin/catalog'); + return $this->redirect(['/admin/catalog']); } return $this->render('photos', [ diff --git a/modules/catalog/views/a/_form.php b/modules/catalog/views/a/_form.php index d393d72..59f0046 100644 --- a/modules/catalog/views/a/_form.php +++ b/modules/catalog/views/a/_form.php @@ -1,5 +1,6 @@ field($model, 'title') ?> thumb) : ?> - - + + field($model, 'thumb')->fileInput() ?> diff --git a/modules/catalog/views/a/_menu.php b/modules/catalog/views/a/_menu.php index 6c5fcd8..8426d5b 100644 --- a/modules/catalog/views/a/_menu.php +++ b/modules/catalog/views/a/_menu.php @@ -1,23 +1,25 @@ context->action->id; ?>
diff --git a/modules/guestbook/views/a/index.php b/modules/guestbook/views/a/index.php index 4fcf5ce..cf7eb8c 100644 --- a/modules/guestbook/views/a/index.php +++ b/modules/guestbook/views/a/index.php @@ -1,6 +1,7 @@ title = Yii::t('easyii/guestbook', 'Guestbook'); @@ -32,7 +33,7 @@ new) : ?> NEW - + title != '') ? $item->title : StringHelper::truncate($item->text, 120, '...') ?> @@ -48,10 +49,10 @@ status == Guestbook::STATUS_ON, [ 'class' => 'switch', 'data-id' => $item->primaryKey, - 'data-link' => '/admin/guestbook/a/' + 'data-link' => Url::to(['/admin/guestbook/a/']), ]) ?> - + diff --git a/modules/news/api/News.php b/modules/news/api/News.php index f9ddb83..b0d8e1c 100644 --- a/modules/news/api/News.php +++ b/modules/news/api/News.php @@ -3,6 +3,7 @@ use Yii; use yii\data\ActiveDataProvider; +use yii\helpers\Url; use yii\widgets\LinkPager; use yii\easyii\modules\news\models\News as NewsModel; @@ -40,7 +41,7 @@ public function api_last($limit = 1) $result[] = $this->parseNews($news); } if(!count($result)) { - $result[] = $this->createObject(''.Yii::t('easyii/news/api', 'Create news').''); + $result[] = $this->createObject(''.Yii::t('easyii/news/api', 'Create news').''); return $limit > 1 ? $result : $result[0]; } diff --git a/modules/news/controllers/AController.php b/modules/news/controllers/AController.php index 404395d..4251bd7 100644 --- a/modules/news/controllers/AController.php +++ b/modules/news/controllers/AController.php @@ -57,7 +57,7 @@ public function actionCreate() if($model->save()){ $this->flash('success', Yii::t('easyii/news', 'News created')); - return $this->redirect('/admin/news'); + return $this->redirect(['/admin/news']); } else{ $this->flash('error', Yii::t('easyii', 'Create error. {0}', $model->formatErrors())); @@ -78,7 +78,7 @@ public function actionEdit($id) if($model === null){ $this->flash('error', Yii::t('easyii', 'Not found')); - return $this->redirect('/admin/news'); + return $this->redirect(['/admin/news']); } if ($model->load(Yii::$app->request->post())) { diff --git a/modules/news/views/a/_form.php b/modules/news/views/a/_form.php index 3537e41..9a411b0 100644 --- a/modules/news/views/a/_form.php +++ b/modules/news/views/a/_form.php @@ -1,5 +1,6 @@ context->module->settings['enableThumb']) : ?> thumb) : ?> - + field($model, 'thumb')->fileInput() ?> @@ -22,8 +23,8 @@ field($model, 'text')->widget(Redactor::className(),[ 'options' => [ 'minHeight' => 400, - 'imageUpload' => '/admin/redactor/upload?dir=news', - 'fileUpload' => '/admin/redactor/upload?dir=news', + 'imageUpload' => Url::to(['/admin/redactor/upload', 'dir' => 'news']), + 'fileUpload' => Url::to(['/admin/redactor/upload', 'dir' => 'news']), 'plugins' => ['fullscreen'] ] ]) ?> diff --git a/modules/news/views/a/_menu.php b/modules/news/views/a/_menu.php index b868fdf..3ce2bac 100644 --- a/modules/news/views/a/_menu.php +++ b/modules/news/views/a/_menu.php @@ -1,15 +1,17 @@ context->action->id; ?>
\ No newline at end of file diff --git a/modules/news/views/a/index.php b/modules/news/views/a/index.php index 267f113..1db80a4 100644 --- a/modules/news/views/a/index.php +++ b/modules/news/views/a/index.php @@ -1,6 +1,7 @@ title = Yii::t('easyii/news', 'News'); ?> @@ -26,16 +27,16 @@ primaryKey ?> - title ?> + title ?> views ?> status == News::STATUS_ON, [ 'class' => 'switch', 'data-id' => $item->primaryKey, - 'data-link' => '/admin/news/a/' + 'data-link' => Url::to(['/admin/news/a/']), ]) ?> - + diff --git a/modules/page/api/Page.php b/modules/page/api/Page.php index d8c3e45..c7a321b 100644 --- a/modules/page/api/Page.php +++ b/modules/page/api/Page.php @@ -2,6 +2,7 @@ namespace yii\easyii\modules\page\api; use Yii; +use yii\helpers\Url; use yii\easyii\modules\page\models\Page as PageModel; class Page extends \yii\easyii\components\API @@ -62,8 +63,10 @@ private function notFound($id_slug) if(Yii::$app->user->isGuest) { return $this->createObject(''); } + elseif(preg_match(PageModel::$SLUG_PATTERN, $id_slug)){ - return $this->createObject(''.Yii::t('easyii/page/api', 'Create page').''); + + return $this->createObject(''.Yii::t('easyii/page/api', 'Create page').''); } else{ return $this->createObject($this->errorText('WRONG PAGE IDENTIFIER')); diff --git a/modules/page/controllers/AController.php b/modules/page/controllers/AController.php index 425fc9c..146ce97 100644 --- a/modules/page/controllers/AController.php +++ b/modules/page/controllers/AController.php @@ -34,7 +34,7 @@ public function actionCreate($slug = null) else{ if($model->save()){ $this->flash('success', Yii::t('easyii/page', 'Page created')); - return $this->redirect('/admin/page'); + return $this->redirect(['/admin/page']); } else{ $this->flash('error', Yii::t('easyii', 'Create error. {0}', $model->formatErrors())); @@ -57,7 +57,7 @@ public function actionEdit($id) if($model === null){ $this->flash('error', Yii::t('easyii', 'Not found')); - return $this->redirect('/admin/page'); + return $this->redirect(['/admin/page']); } if ($model->load(Yii::$app->request->post())) { diff --git a/modules/page/views/a/_form.php b/modules/page/views/a/_form.php index 65bdbe4..ca5e603 100644 --- a/modules/page/views/a/_form.php +++ b/modules/page/views/a/_form.php @@ -1,5 +1,6 @@ field($model, 'text')->widget(Redactor::className(),[ 'options' => [ 'minHeight' => 400, - 'imageUpload' => '/admin/redactor/upload?dir=pages', - 'fileUpload' => '/admin/redactor/upload?dir=pages', + 'imageUpload' => Url::to(['/admin/redactor/upload', 'dir' => 'pages']), + 'fileUpload' => Url::to(['/admin/redactor/upload', 'dir' => 'pages']), 'plugins' => ['fullscreen'] ] ]) ?> diff --git a/modules/page/views/a/_menu.php b/modules/page/views/a/_menu.php index 6732570..364914a 100644 --- a/modules/page/views/a/_menu.php +++ b/modules/page/views/a/_menu.php @@ -1,23 +1,25 @@ context->action->id; ?>