Commit cc4e7c12a841551f98acf2996d7af02195392bfc
1 parent
5077a0ec
test
Showing
6 changed files
with
140 additions
and
8 deletions
Show diff stats
1 | +<?php | ||
2 | + | ||
3 | +namespace common\models; | ||
4 | + | ||
5 | +use Yii; | ||
6 | + | ||
7 | +/** | ||
8 | + * This is the model class for table "bookmark". | ||
9 | + * | ||
10 | + * @property integer $bookmark_id | ||
11 | + * @property integer $user_id | ||
12 | + * @property string $model | ||
13 | + * @property integer $model_id | ||
14 | + * @property integer $type | ||
15 | + * | ||
16 | + * @property User $user | ||
17 | + */ | ||
18 | +class Bookmark extends \yii\db\ActiveRecord | ||
19 | +{ | ||
20 | + | ||
21 | + const TYPE_PERFORMER = 1; | ||
22 | + const TYPE_CUSTOMER = 2; | ||
23 | + const TYPE_PROJECT = 3; | ||
24 | + const TYPE_VACANCY = 4; | ||
25 | + /** | ||
26 | + * @inheritdoc | ||
27 | + */ | ||
28 | + public static function tableName() | ||
29 | + { | ||
30 | + return 'bookmark'; | ||
31 | + } | ||
32 | + | ||
33 | + /** | ||
34 | + * @inheritdoc | ||
35 | + */ | ||
36 | + public function rules() | ||
37 | + { | ||
38 | + return [ | ||
39 | + [['user_id', 'model', 'model_id', 'type'], 'required'], | ||
40 | + [['user_id', 'model_id', 'type'], 'integer'], | ||
41 | + [['model'], 'string', 'max' => 255], | ||
42 | + [['user_id'], 'exist', 'skipOnError' => true, 'targetClass' => User::className(), 'targetAttribute' => ['user_id' => 'id']], | ||
43 | + ]; | ||
44 | + } | ||
45 | + | ||
46 | + /** | ||
47 | + * @inheritdoc | ||
48 | + */ | ||
49 | + public function attributeLabels() | ||
50 | + { | ||
51 | + return [ | ||
52 | + 'bookmark_id' => Yii::t('app', 'Bookmark ID'), | ||
53 | + 'user_id' => Yii::t('app', 'User ID'), | ||
54 | + 'model' => Yii::t('app', 'Model'), | ||
55 | + 'model_id' => Yii::t('app', 'Model ID'), | ||
56 | + 'type' => Yii::t('app', 'Type'), | ||
57 | + ]; | ||
58 | + } | ||
59 | + | ||
60 | + /** | ||
61 | + * @return \yii\db\ActiveQuery | ||
62 | + */ | ||
63 | + public function getUser() | ||
64 | + { | ||
65 | + return $this->hasOne(User::className(), ['id' => 'user_id']); | ||
66 | + } | ||
67 | +} |
common/models/Project.php
@@ -34,6 +34,7 @@ | @@ -34,6 +34,7 @@ | ||
34 | { | 34 | { |
35 | 35 | ||
36 | public $files; | 36 | public $files; |
37 | + | ||
37 | /** | 38 | /** |
38 | * @inheritdoc | 39 | * @inheritdoc |
39 | */ | 40 | */ |
@@ -60,10 +61,10 @@ | @@ -60,10 +61,10 @@ | ||
60 | 'value' => new Expression('NOW()'), | 61 | 'value' => new Expression('NOW()'), |
61 | ], | 62 | ], |
62 | 'slug' => [ | 63 | 'slug' => [ |
63 | - 'class' => 'common\behaviors\Slug', | ||
64 | - 'in_attribute' => 'name', | 64 | + 'class' => 'common\behaviors\Slug', |
65 | + 'in_attribute' => 'name', | ||
65 | 'out_attribute' => 'link', | 66 | 'out_attribute' => 'link', |
66 | - 'translit' => true | 67 | + 'translit' => true |
67 | ] | 68 | ] |
68 | ]; | 69 | ]; |
69 | } | 70 | } |
@@ -75,7 +76,10 @@ | @@ -75,7 +76,10 @@ | ||
75 | { | 76 | { |
76 | return [ | 77 | return [ |
77 | [ | 78 | [ |
78 | - [ 'name', 'link' ], | 79 | + [ |
80 | + 'name', | ||
81 | + 'link' | ||
82 | + ], | ||
79 | 'required', | 83 | 'required', |
80 | ], | 84 | ], |
81 | [ | 85 | [ |
@@ -181,7 +185,6 @@ | @@ -181,7 +185,6 @@ | ||
181 | ->viaTable('project_payment', [ 'project_id' => 'project_id' ]); | 185 | ->viaTable('project_payment', [ 'project_id' => 'project_id' ]); |
182 | } | 186 | } |
183 | 187 | ||
184 | - | ||
185 | /** | 188 | /** |
186 | * @return \yii\db\ActiveQuery | 189 | * @return \yii\db\ActiveQuery |
187 | */ | 190 | */ |
@@ -198,8 +201,6 @@ | @@ -198,8 +201,6 @@ | ||
198 | return $this->hasOne(self::className(), [ 'project_id' => 'project_pid' ]); | 201 | return $this->hasOne(self::className(), [ 'project_id' => 'project_pid' ]); |
199 | } | 202 | } |
200 | 203 | ||
201 | - | ||
202 | - | ||
203 | public function getBudgetCurrency() | 204 | public function getBudgetCurrency() |
204 | { | 205 | { |
205 | return $this->hasOne(Currency::className(), [ 'currency_id' => 'budget_currency' ]); | 206 | return $this->hasOne(Currency::className(), [ 'currency_id' => 'budget_currency' ]); |
@@ -273,4 +274,9 @@ | @@ -273,4 +274,9 @@ | ||
273 | return [ ]; | 274 | return [ ]; |
274 | } | 275 | } |
275 | } | 276 | } |
277 | + | ||
278 | + public function getIsBookmarked() | ||
279 | + { | ||
280 | + return false; | ||
281 | + } | ||
276 | } | 282 | } |
console/migrations/m160316_134249_bookmarks_table.php
0 → 100644
1 | +<?php | ||
2 | + | ||
3 | + use yii\db\Migration; | ||
4 | + | ||
5 | + class m160316_134249_bookmarks_table extends Migration | ||
6 | + { | ||
7 | + | ||
8 | + public function up() | ||
9 | + { | ||
10 | + $this->createTable('{{%bookmark}}', [ | ||
11 | + 'bookmark_id' => $this->primaryKey(), | ||
12 | + 'user_id' => $this->integer() | ||
13 | + ->notNull(), | ||
14 | + 'model' => $this->string() | ||
15 | + ->notNull(), | ||
16 | + 'model_id' => $this->integer() | ||
17 | + ->notNull(), | ||
18 | + 'type' => $this->integer() | ||
19 | + ->notNull(), | ||
20 | + ]); | ||
21 | + $this->addForeignKey('bookmark_user', '{{%bookmark}}', 'user_id', '{{%user}}', 'id', 'CASCADE', 'CASCADE'); | ||
22 | + } | ||
23 | + | ||
24 | + public function down() | ||
25 | + { | ||
26 | + $this->dropForeignKey('bookmark_user', '{{%bookmark}}'); | ||
27 | + $this->dropTable('{{%bookmark}}'); | ||
28 | + } | ||
29 | + | ||
30 | + } |
frontend/views/tender/view.php
@@ -65,7 +65,27 @@ $this->title = 'My Yii Application'; | @@ -65,7 +65,27 @@ $this->title = 'My Yii Application'; | ||
65 | <?= Html::a(Html::img('/images/ico-vk.png'),"{$model->user->userInfo->social_vk}",['target'=>'_blank'])?> | 65 | <?= Html::a(Html::img('/images/ico-vk.png'),"{$model->user->userInfo->social_vk}",['target'=>'_blank'])?> |
66 | </div> | 66 | </div> |
67 | </div> | 67 | </div> |
68 | - <div class="performance-vacancy-add-favorite"><a href="#"></a></div> | 68 | + <?php |
69 | + if(!empty( \Yii::$app->user->identity )) { | ||
70 | + ?> | ||
71 | + <div class="performance-vacancy-add-favorite"> | ||
72 | + <?php | ||
73 | + if($model->isBookmarked) { | ||
74 | + echo Html::a('', [ '#' ], [ | ||
75 | + 'class' => 'artbox_bookmark_remove_performer', | ||
76 | + 'data-id' => $model->project_id, | ||
77 | + ]); | ||
78 | + } else { | ||
79 | + echo Html::a('', [ '#' ], [ | ||
80 | + 'class' => 'artbox_bookmark_add_performer', | ||
81 | + 'data-id' => $model->project_id, | ||
82 | + ]); | ||
83 | + } | ||
84 | + ?> | ||
85 | + </div> | ||
86 | + <?php | ||
87 | + } | ||
88 | + ?> | ||
69 | <div class="cab-mes-read-last-visit"> | 89 | <div class="cab-mes-read-last-visit"> |
70 | <div class="cab-mes-read-min-bl" style="width: 204px"> | 90 | <div class="cab-mes-read-min-bl" style="width: 204px"> |
71 | <div class="profile-phone-site style"> | 91 | <div class="profile-phone-site style"> |
frontend/web/css/style.css
@@ -1571,6 +1571,15 @@ input[type=file]::-webkit-file-upload-button { | @@ -1571,6 +1571,15 @@ input[type=file]::-webkit-file-upload-button { | ||
1571 | .performance-vacancy-add-favorite a.artbox_bookmark_remove_performer{ | 1571 | .performance-vacancy-add-favorite a.artbox_bookmark_remove_performer{ |
1572 | background: url("/images/button_add_fav_01.png") no-repeat; | 1572 | background: url("/images/button_add_fav_01.png") no-repeat; |
1573 | } | 1573 | } |
1574 | +.performance-vacancy-add-favorite a.artbox_bookmark_remove_customer{ | ||
1575 | + background: url("/images/button_add_fav_01.png") no-repeat; | ||
1576 | +} | ||
1577 | +.performance-vacancy-add-favorite a.artbox_bookmark_remove_project{ | ||
1578 | + background: url("/images/button_add_fav_01.png") no-repeat; | ||
1579 | +} | ||
1580 | +.performance-vacancy-add-favorite a.artbox_bookmark_remove_vacancy{ | ||
1581 | + background: url("/images/button_add_fav_01.png") no-repeat; | ||
1582 | +} | ||
1574 | .performance-vacancy-add-favorite a:hover{opacity: 0.95} | 1583 | .performance-vacancy-add-favorite a:hover{opacity: 0.95} |
1575 | .menu-content-wr { | 1584 | .menu-content-wr { |
1576 | height: 43px; | 1585 | height: 43px; |
19.3 KB