b5becf98
Yarik
test
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
<?php
namespace common\modules\comment\models;
use common\models\Project;
use common\models\User;
use yii\db\ActiveQuery;
use yii\helpers\Url;
/**
* Class Comment
* @property bool $guestComment
* @property integer $comment_id
* @property string $text
* @property int $user_id
* @property string $user_name
* @property string $user_email
* @property int $comment_pid
* @property int $status
* @property string $date_add
* @property string $date_update
* @property string $date_delete
* @property string $model
* @property int $model_id
* @property Rating $rating
* @property User $user
* @property User $author
* @package common\modules\comment\models
*/
class CommentProjectAnswer extends Comment
{
public function rules()
{
return [
[
[
'text',
'user_name',
'user_email',
],
'required',
],
[
[
'rating',
],
'safe',
],
[
[ 'user_email' ],
'email',
],
[
[ 'user_name' ],
'string',
],
[
[
'comment_id',
'comment_pid',
],
'integer',
],
[
[ 'status' ],
'default',
'value' => 1,
],
[
[ 'comment_pid' ],
'exist',
'targetAttribute' => 'comment_id',
'filter' => [
'model' => $this->model,
'model_id' => $this->model_id,
],
],
|
d0f3b99f
Yarik
test
|
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
[
['comment_pid'],
'required',
'when' => function($model, $attribute) {
/**
* @var CommentProjectAnswer $model
* @var string $attribute
*/
if(!empty(\Yii::$app->user->id) && $model->isNewRecord && !empty($model->model) && !empty($model->model_id)) {
$project = Project::findOne($model->model_id);
if(!empty($project) && $project->user_id == \Yii::$app->user->id) {
return true;
}
}
return false;
}
],
|
b5becf98
Yarik
test
|
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
];
}
/**
* @param string $model
* @param integer $model_id
*
* @return ActiveQuery
*/
public static function getComments($model, $model_id)
{
$query = self::find()
->where([
'comment.model' => $model,
'comment.model_id' => $model_id,
'comment.status' => 1,
'comment.comment_pid' => NULL,
])
->with('parent');
$project = Project::findOne($model_id);
$user = \Yii::$app->user;
if(empty( $user ) || $project->user_id != $user->id) {
$query->innerJoin([ 'child' => 'comment' ], 'comment.comment_id = child.comment_pid')
->andWhere([
'not',
[ 'child.comment_id' => NULL ],
]);
}
return $query;
}
|
b5becf98
Yarik
test
|
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
|
public function checkCreate()
{
if($this->getGuestComment()) {
return true;
} else {
return \Yii::$app->user->can(\common\modules\comment\Permissions::CREATE, [
'model' => $this->model,
'model_id' => $this->model_id,
'comment_model' => $this,
]);
}
}
public function checkUpdate()
{
if($this->scenario == self::SCENARIO_GUEST) {
return false;
} else {
|
b5becf98
Yarik
test
|
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
|
}
public function checkDelete()
{
if($this->scenario == self::SCENARIO_GUEST) {
return false;
} else {
return ( \Yii::$app->user->can(\common\modules\comment\Permissions::DELETE, [
'model' => $this->model,
'model_id' => $this->model_id,
'comment' => $this,
]) || \Yii::$app->user->can(\common\modules\comment\Permissions::DELETE_OWN, [
'model' => $this->model,
'model_id' => $this->model_id,
'comment' => $this,
]) );
}
}
public function checkReply()
{
if($this->scenario != self::SCENARIO_GUEST) {
if(!$this->isNewRecord && empty( $this->comment_pid )) {
$project = Project::findOne($this->model_id);
|