Commit fd5e93c2822b728adca597ce562526eec4524ff0
1 parent
faff2c48
Artbox comment premoderate
Showing
4 changed files
with
32 additions
and
9 deletions
Show diff stats
Module.php
| @@ -62,7 +62,14 @@ | @@ -62,7 +62,14 @@ | ||
| 62 | * | 62 | * |
| 63 | * @var bool | 63 | * @var bool |
| 64 | */ | 64 | */ |
| 65 | - public static $enableRating = true; | 65 | + public $enableRating = true; |
| 66 | + | ||
| 67 | + /** | ||
| 68 | + * Whether to enable comment premoderate or not. | ||
| 69 | + * | ||
| 70 | + * @var bool | ||
| 71 | + */ | ||
| 72 | + public $enablePremoderate = true; | ||
| 66 | 73 | ||
| 67 | /** | 74 | /** |
| 68 | * Initializes the module. | 75 | * Initializes the module. |
| @@ -76,7 +83,7 @@ | @@ -76,7 +83,7 @@ | ||
| 76 | if ($this->commentModelClass === null) { | 83 | if ($this->commentModelClass === null) { |
| 77 | $this->commentModelClass = CommentModel::className(); | 84 | $this->commentModelClass = CommentModel::className(); |
| 78 | } | 85 | } |
| 79 | - if (self::$enableRating && $this->ratingModelClass === null) { | 86 | + if ($this->enableRating && $this->ratingModelClass === null) { |
| 80 | $this->ratingModelClass = RatingModel::className(); | 87 | $this->ratingModelClass = RatingModel::className(); |
| 81 | } | 88 | } |
| 82 | if (\Yii::$app instanceof Application) { | 89 | if (\Yii::$app instanceof Application) { |
controllers/DefaultController.php
| @@ -79,7 +79,7 @@ | @@ -79,7 +79,7 @@ | ||
| 79 | if ($model->load(\Yii::$app->request->post())) { | 79 | if ($model->load(\Yii::$app->request->post())) { |
| 80 | $model->setAttributes($entity_data); | 80 | $model->setAttributes($entity_data); |
| 81 | if ($model->save()) { | 81 | if ($model->save()) { |
| 82 | - if (empty($model->parent_id) && $module::$enableRating) { | 82 | + if (empty($model->parent_id) && $module->enableRating) { |
| 83 | $ratingModelClass = $module->ratingModelClass; | 83 | $ratingModelClass = $module->ratingModelClass; |
| 84 | /** | 84 | /** |
| 85 | * @var RatingModel $rating | 85 | * @var RatingModel $rating |
models/CommentModel.php
| @@ -4,6 +4,7 @@ | @@ -4,6 +4,7 @@ | ||
| 4 | 4 | ||
| 5 | use artbox\webcomment\behaviors\ParentBehavior; | 5 | use artbox\webcomment\behaviors\ParentBehavior; |
| 6 | use artbox\webcomment\models\interfaces\CommentInterface; | 6 | use artbox\webcomment\models\interfaces\CommentInterface; |
| 7 | + use artbox\webcomment\Module; | ||
| 7 | use yii\behaviors\AttributeBehavior; | 8 | use yii\behaviors\AttributeBehavior; |
| 8 | use yii\behaviors\BlameableBehavior; | 9 | use yii\behaviors\BlameableBehavior; |
| 9 | use yii\behaviors\TimestampBehavior; | 10 | use yii\behaviors\TimestampBehavior; |
| @@ -131,11 +132,6 @@ | @@ -131,11 +132,6 @@ | ||
| 131 | 'integer', | 132 | 'integer', |
| 132 | ], | 133 | ], |
| 133 | [ | 134 | [ |
| 134 | - [ 'status' ], | ||
| 135 | - 'default', | ||
| 136 | - 'value' => 0, | ||
| 137 | - ], | ||
| 138 | - [ | ||
| 139 | [ 'parent_id' ], | 135 | [ 'parent_id' ], |
| 140 | 'exist', | 136 | 'exist', |
| 141 | 'targetAttribute' => 'id', | 137 | 'targetAttribute' => 'id', |
| @@ -168,6 +164,26 @@ | @@ -168,6 +164,26 @@ | ||
| 168 | }, | 164 | }, |
| 169 | ], | 165 | ], |
| 170 | [ | 166 | [ |
| 167 | + 'class' => AttributeBehavior::className(), | ||
| 168 | + 'attributes' => [ | ||
| 169 | + ActiveRecord::EVENT_BEFORE_INSERT => 'status', | ||
| 170 | + ], | ||
| 171 | + 'value' => function () { | ||
| 172 | + /** | ||
| 173 | + * @var Module $module | ||
| 174 | + */ | ||
| 175 | + $module = \Yii::$app->getModule('artbox-comment'); | ||
| 176 | + if (!$module) { | ||
| 177 | + Module::registerMe(); | ||
| 178 | + } | ||
| 179 | + if ($module->enablePremoderate) { | ||
| 180 | + return self::STATUS_HIDDEN; | ||
| 181 | + } else { | ||
| 182 | + return self::STATUS_ACTIVE; | ||
| 183 | + } | ||
| 184 | + }, | ||
| 185 | + ], | ||
| 186 | + [ | ||
| 171 | 'class' => ParentBehavior::className(), | 187 | 'class' => ParentBehavior::className(), |
| 172 | ], | 188 | ], |
| 173 | ]; | 189 | ]; |
widgets/CommentWidget.php
| @@ -254,7 +254,7 @@ | @@ -254,7 +254,7 @@ | ||
| 254 | ) ? CommentModel::SCENARIO_GUEST : CommentModel::SCENARIO_USER, | 254 | ) ? CommentModel::SCENARIO_GUEST : CommentModel::SCENARIO_USER, |
| 255 | ] | 255 | ] |
| 256 | ); | 256 | ); |
| 257 | - if ($module::$enableRating) { | 257 | + if ($module->enableRating) { |
| 258 | $ratingModelClass = $module->ratingModelClass; | 258 | $ratingModelClass = $module->ratingModelClass; |
| 259 | $ratingModel = $this->createRating($ratingModelClass); | 259 | $ratingModel = $this->createRating($ratingModelClass); |
| 260 | } else { | 260 | } else { |