Commit 64a022e69d17e39aab76b875f1e26d299ee9dda8

Authored by Eugeny Galkovskiy
2 parents 19fc24d1 87b556b5

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	frontend/web/css/style.css
Showing 61 changed files with 2029 additions and 1106 deletions   Show diff stats
.gitignore
  1 +/frontend/models/ValidateHelper.php
1 2 /tests
2 3 /frontend/web/js/Validation.ts
3 4 /frontend/web/js/typescript.ts
... ...
common/behaviors/ShowImage.php
... ... @@ -84,4 +84,12 @@
84 84  
85 85 }
86 86  
  87 + public function ShowAvatar($dir, $width, $height = NULL) {
  88 + if(empty($dir)) {
  89 + return '/images/avatar-bg.png';
  90 + } else {
  91 + return $this->minImg($dir, $width, $height);
  92 + }
  93 + }
  94 +
87 95 }
88 96 \ No newline at end of file
... ...
common/models/FeedbackCompany.php 0 → 100644
  1 +<?php
  2 +
  3 +namespace common\models;
  4 +
  5 +use Yii;
  6 +use yii\behaviors\TimestampBehavior;
  7 +
  8 +/**
  9 + * This is the model class for table "feedback_company".
  10 + *
  11 + * @property integer $feedback_company_id
  12 + * @property integer $date_add
  13 + * @property string $name
  14 + * @property string $phone
  15 + * @property string $ip
  16 + * @property integer $user_id
  17 + * @property integer $status
  18 + *
  19 + * @property User $user
  20 + */
  21 +class FeedbackCompany extends \yii\db\ActiveRecord
  22 +{
  23 +
  24 + const STATUS_NEW = 1;
  25 + const STATUS_READ = 2;
  26 + /**
  27 + * @inheritdoc
  28 + */
  29 + public static function tableName()
  30 + {
  31 + return 'feedback_company';
  32 + }
  33 +
  34 + /**
  35 + * @inheritdoc
  36 + */
  37 + public function rules()
  38 + {
  39 + return [
  40 + [['name', 'phone', 'user_id'], 'required'],
  41 + [['user_id'], 'integer'],
  42 + [['name', 'phone'], 'string', 'max' => 255],
  43 + [['phone'], 'match', 'pattern' => '/^\+?(?:\d{0,3})?[\(\s]?\d{0,5}[\)\s]?\d{3}[-\s]?\d{2}[-\s]?\d{2}$/'],
  44 + [['user_id'], 'exist', 'skipOnError' => true, 'targetClass' => User::className(), 'targetAttribute' => ['user_id' => 'id'], 'filter' => ['type' => 2]],
  45 + ];
  46 + }
  47 +
  48 + /**
  49 + * @inheritdoc
  50 + */
  51 + public function attributeLabels()
  52 + {
  53 + return [
  54 + 'feedback_company_id' => 'Feedback Company ID',
  55 + 'date_add' => Yii::t('app', 'Feedback date add'),
  56 + 'name' => Yii::t('app', 'Feedback name'),
  57 + 'phone' => Yii::t('app', 'Feedback phone'),
  58 + 'ip' => 'Ip',
  59 + 'user_id' => 'User ID',
  60 + 'status' => Yii::t('app', 'status'),
  61 + ];
  62 + }
  63 +
  64 + /**
  65 + * @inheritdoc
  66 + */
  67 + public function behaviors()
  68 + {
  69 + return [
  70 + [
  71 + 'class' => TimestampBehavior::className(),
  72 + 'createdAtAttribute' => 'date_add',
  73 + 'updatedAtAttribute' => false,
  74 + ],
  75 + ];
  76 + }
  77 +
  78 + /**
  79 + * @return \yii\db\ActiveQuery
  80 + */
  81 + public function getUser()
  82 + {
  83 + return $this->hasOne(User::className(), ['id' => 'user_id']);
  84 + }
  85 +}
... ...
common/models/FeedbackCompanySearch.php 0 → 100644
  1 +<?php
  2 +
  3 + namespace common\models;
  4 +
  5 + use Yii;
  6 + use yii\data\ActiveDataProvider;
  7 +
  8 + /**
  9 + * FeedbackCompanySearch represents the model behind the search form about
  10 + * `common\models\FeedbackCompany`.
  11 + */
  12 + class FeedbackCompanySearch extends FeedbackCompany
  13 + {
  14 +
  15 + public $date_add_from;
  16 +
  17 + public $date_add_to;
  18 +
  19 + /**
  20 + * @inheritdoc
  21 + */
  22 + public function rules()
  23 + {
  24 + return [
  25 + [
  26 + [
  27 + 'name',
  28 + 'date_add',
  29 + 'phone',
  30 + 'date_add_from',
  31 + 'date_add_to',
  32 + ],
  33 + 'safe',
  34 + ],
  35 + [
  36 + [ 'status' ],
  37 + 'integer',
  38 + ],
  39 + [
  40 + 'date_add_to',
  41 + 'compare',
  42 + 'compareAttribute' => 'date_add_from',
  43 + 'operator' => '>=',
  44 + ],
  45 + ];
  46 + }
  47 +
  48 + public function search($params)
  49 + {
  50 + $query = FeedbackCompany::find();
  51 +
  52 + $query->where([ 'user_id' => \Yii::$app->user->id ]);
  53 +
  54 + $dataProvider = new ActiveDataProvider([
  55 + 'query' => $query,
  56 + ]);
  57 +
  58 + $this->load($params);
  59 +
  60 + if(!$this->validate()) {
  61 + return $dataProvider;
  62 + }
  63 +
  64 + $query->andFilterWhere([
  65 + 'like',
  66 + 'LOWER(name)',
  67 + mb_strtolower($this->name),
  68 + ])
  69 + ->andFilterWhere([
  70 + 'like',
  71 + 'LOWER(phone)',
  72 + mb_strtolower($this->phone),
  73 + ])
  74 + ->andFilterWhere([ 'status' => $this->status ]);
  75 +
  76 + $date_add_from = $this->date_add_from;
  77 + $date_add_to = $this->date_add_to;
  78 + if(!empty( $date_add_from )) {
  79 + $date_add_from = strtotime($date_add_from);
  80 + }
  81 + if(!empty( $date_add_to )) {
  82 + $date_add_to = strtotime($date_add_to) + 86400;
  83 + }
  84 + if(!empty( $date_add_from ) && !empty( $date_add_to )) {
  85 + $query->andWhere([
  86 + 'between',
  87 + 'date_add',
  88 + $date_add_from,
  89 + $date_add_to,
  90 + ]);
  91 + } elseif(!empty( $date_add_from )) {
  92 + $query->andWhere([
  93 + '>=',
  94 + 'date_add',
  95 + $date_add_from,
  96 + ]);
  97 + } elseif(!empty( $date_add_to )) {
  98 + $query->andWhere([
  99 + '<=',
  100 + 'date_add',
  101 + $date_add_to,
  102 + ]);
  103 + }
  104 +
  105 + return $dataProvider;
  106 +
  107 + }
  108 + }
... ...
common/models/Gallery.php
... ... @@ -61,7 +61,7 @@
61 61 {
62 62 return [
63 63 [
64   - [ 'name' ],
  64 + [ 'name', 'cover' ],
65 65 'required',
66 66 ],
67 67 [
... ...
common/models/PortfolioUser.php
... ... @@ -136,6 +136,7 @@
136 136 $gallery = new Gallery([
137 137 'user_id' => $this->user_id,
138 138 'name' => $this->portfolio->name,
  139 + 'cover' => '/images/imageNotFound.jpg',
139 140 ]);
140 141 if($gallery->save()) {
141 142 $portfolioGallery = new PortfolioGallery([
... ...
common/models/TenderSearch.php
... ... @@ -26,6 +26,8 @@
26 26  
27 27 public $payment;
28 28  
  29 + public $info;
  30 +
29 31 /**
30 32 * @inheritdoc
31 33 */
... ... @@ -44,6 +46,7 @@
44 46 [
45 47 'city',
46 48 'payment',
  49 + 'info',
47 50 ],
48 51 'safe',
49 52 ],
... ... @@ -87,13 +90,13 @@
87 90 public function attributeLabels()
88 91 {
89 92 return [
90   - 'specialization' => Yii::t('app', 'specialization'),
  93 + 'specialization' => Yii::t('app', 'specialization'),
91 94 'budget_currency' => Yii::t('app', 'budget_currency'),
92   - 'contractual' => Yii::t('app', 'contractual'),
93   - 'city' => Yii::t('app', 'city'),
94   - 'payment' => Yii::t('app', 'payment'),
95   - 'budget_from' => Yii::t('app', 'budget_from'),
96   - 'budget_to' => Yii::t('app', 'budget_to'),
  95 + 'contractual' => Yii::t('app', 'contractual'),
  96 + 'city' => Yii::t('app', 'city'),
  97 + 'payment' => Yii::t('app', 'payment'),
  98 + 'budget_from' => Yii::t('app', 'budget_from'),
  99 + 'budget_to' => Yii::t('app', 'budget_to'),
97 100 ];
98 101 }
99 102  
... ... @@ -196,6 +199,11 @@
196 199 'project_payment.payment_id' => $this->payment,
197 200 'city' => $this->city,
198 201 ])
  202 + ->andFilterWhere([
  203 + 'like',
  204 + 'LOWER(project.name)',
  205 + mb_strtolower($this->info),
  206 + ])
199 207 ->andWhere([
200 208 'project_payment.payment_id' => $this->payment,
201 209 ]);
... ...
common/models/User.php
... ... @@ -101,6 +101,10 @@
101 101 {
102 102 return [
103 103 [
  104 + [ 'firstname' ],
  105 + 'required',
  106 + ],
  107 + [
104 108 'status',
105 109 'default',
106 110 'value' => self::STATUS_ACTIVE,
... ... @@ -467,7 +471,7 @@
467 471 array_splice($result, 2);
468 472 }
469 473  
470   - return implode(',', $result);
  474 + return implode('', $result);
471 475 }
472 476  
473 477 /**
... ... @@ -835,11 +839,42 @@
835 839 ->scalar();
836 840 }
837 841  
  842 + public function getNewMessagesCount()
  843 + {
  844 + $chats = Chat::find()
  845 + ->select([ 'chat_id' ])
  846 + ->where([
  847 + 'or',
  848 + [ 'from_user' => $this->id ],
  849 + [ 'to_user' => $this->id ],
  850 + ])
  851 + ->column();
  852 + return Message::find()->select(['chat_id'])->distinct()->where(['chat_id' => $chats, 'status' => Message::NEW_MESSAGE])->andWhere(['not', ['user_id' => $this->id]])->count();
  853 + }
  854 +
838 855 public function getCommentProjects()
839 856 {
840 857 return $this->hasMany(CommentProject::className(), [ 'user_id' => 'id' ]);
841 858 }
842 859  
  860 + public function getCommentProjectsActive()
  861 + {
  862 + return $this->getCommentProjects()
  863 + ->where([
  864 + 'between',
  865 + 'state',
  866 + CommentProject::STATE_NEW,
  867 + CommentProject::STATE_PERFORMER,
  868 + ])
  869 + ->andWhere([
  870 + 'status' => [
  871 + CommentProject::STATUS_ACTIVE,
  872 + CommentProject::STATUS_ANONYMOUS,
  873 + CommentProject::STATUS_PERSONAL,
  874 + ],
  875 + ]);
  876 + }
  877 +
843 878 public function getChat($user_id)
844 879 {
845 880 return Chat::find()
... ...
common/models/UserInfo.php
... ... @@ -82,6 +82,7 @@
82 82 [
83 83 [
84 84 'email',
  85 + 'city',
85 86 ],
86 87 'required',
87 88 ],
... ...
common/modules/comment/widgets/CommentWidget.php
... ... @@ -277,6 +277,7 @@
277 277 $this->comment_class->checkRating();
278 278 if($this->comment_class->rating->load($data) && $this->comment_class->rating->save()) {
279 279 $this->isSuccess = true;
  280 + \Yii::$app->response->redirect('');
280 281 }
281 282 } else {
282 283 $this->isSuccess = true;
... ...
common/modules/comment/widgets/views/_project_comment_view.php
... ... @@ -17,11 +17,11 @@
17 17 <div class="performer-vacancy-sidebar-left">
18 18 <div class="performer-vacancy-sidebar-img style">
19 19 <?php
20   - if(!empty($user->userInfo->image)) {
21   - echo Html::img($user->userInfo->image);
22   - } else {
23   - echo Html::img('/images/avatar-bg.png');
24   - }
  20 + if(!empty( $user->userInfo->image )) {
  21 + echo Html::img($user->userInfo->image);
  22 + } else {
  23 + echo Html::img('/images/avatar-bg.png');
  24 + }
25 25 ?>
26 26 </div>
27 27 <div class="performer-vacancy-sidebar-all style">
... ... @@ -69,7 +69,9 @@
69 69 </div>
70 70 </li>
71 71 </ul>
72   - <?= Html::a('Посмотреть профиль', $user->link, [ 'class' => 'tender-see-profile style', 'target' => '_blank' ]) ?>
  72 + <?= Html::a('Посмотреть профиль', $user->link, [ 'class' => 'tender-see-profile style',
  73 + 'target' => '_blank',
  74 + ]) ?>
73 75 </div>
74 76 </div>
75 77 </div>
... ... @@ -87,9 +89,15 @@
87 89 <div class="search-worker-blocks-title-title"><?= $user->name ?></div>
88 90 <?php
89 91 echo StarRating::widget([
90   - 'name' => 'rating_review_comment',
91   - 'value' => $user->userInfo->rating,
92   - 'pluginOptions' => ['displayOnly' => true, 'size' => 'xxs']
  92 + 'name' => 'rating_review_comment',
  93 + 'value' => $user->userInfo->rating,
  94 + 'pluginOptions' => [
  95 + 'displayOnly' => true,
  96 + 'size' => 'xxs',
  97 + 'min' => 0,
  98 + 'max' => 10,
  99 + 'stars' => 10,
  100 + ],
93 101 ]);
94 102 ?>
95 103 <?= Html::a(count($user->comments) . ' отзывов', $user->getLink('review'), [ 'class' => 'link-to-comm' ]) ?>
... ... @@ -104,8 +112,8 @@
104 112 <li>
105 113 <span></span>
106 114 <?= Html::a($file->name, $file->dir, [
107   - 'class' => 'download-link-file',
108   - 'download' => 'download'
  115 + 'class' => 'download-link-file',
  116 + 'download' => 'download',
109 117 ]) ?>
110 118 <?= Html::a('Скачать', $file->dir, [
111 119 'class' => 'download-link',
... ... @@ -122,68 +130,68 @@
122 130 <?= Html::a('Контакты', $user->link, [ 'class' => 'get-list-new' ]) ?>
123 131  
124 132 <?php
125   - if($model->status == $model::STATUS_ANONYMOUS) {
126   - echo Html::tag('div', 'Анонимное предложение', [ 'class' => 'project_status' ]);
127   - }
128   - if(\Yii::$app->user->getId() == $model->owner->user_id) {
129   - ?>
130   - <div class="project_owner_state">
131   - <p>
132   - <?php
133   - switch($model->state) {
134   - case 1:
135   - echo 'Предложение не рассмотрено';
136   - break;
137   - case 2:
138   - echo 'Исполнитель поставлен на рассмотрение';
139   - break;
140   - case 3:
141   - echo 'Исполнитель назначен исполнителем';
142   - break;
143   - case 4:
144   - echo 'Вы отказали данному исполнителю';
145   - break;
146   - case 5:
147   - echo 'Исполнитель отказался от данного предложения';
148   - break;
149   - }
150   - ?>
151   - </p>
152   - </div>
153   - <?php
154   - if($model->state != $model::STATE_TRASH) {
  133 + if($model->status == $model::STATUS_ANONYMOUS) {
  134 + echo Html::tag('div', 'Анонимное предложение', [ 'class' => 'project_status' ]);
  135 + }
  136 + if(\Yii::$app->user->getId() == $model->owner->user_id) {
155 137 ?>
156   - <div class="project_owner_control">
157   - <span>Отметить как: </span>
158   - <p class="new_mark_"></p>
159   - <div>
  138 + <div class="project_owner_state">
  139 + <p>
160 140 <?php
161   - echo Html::a('новый', [ '#' ], [
162   - 'data-project-id' => $model->owner->project_id,
163   - 'data-comment-id' => $model->comment_id,
164   - 'class' => 'artbox_project_make_new'.(($model->state == $model::STATE_NEW)?' active':''),
165   - ]);
166   - echo Html::a('кандидат', [ '#' ], [
167   - 'data-project-id' => $model->owner->project_id,
168   - 'data-comment-id' => $model->comment_id,
169   - 'class' => 'artbox_project_make_candidate'.(($model->state == $model::STATE_CANDIDATE)?' active':''),
170   - ]);
171   - echo Html::a('исполнитель', [ '#' ], [
172   - 'data-project-id' => $model->owner->project_id,
173   - 'data-comment-id' => $model->comment_id,
174   - 'class' => 'artbox_project_make_performer'.(($model->state == $model::STATE_PERFORMER)?' active':''),
175   - ]);
176   - echo Html::a('отказать', [ '#' ], [
177   - 'data-project-id' => $model->owner->project_id,
178   - 'data-comment-id' => $model->comment_id,
179   - 'class' => 'artbox_project_make_deny'.(($model->state == $model::STATE_DENY)?' active':''),
180   - ]);
  141 + switch($model->state) {
  142 + case 1:
  143 + echo 'Предложение не рассмотрено';
  144 + break;
  145 + case 2:
  146 + echo 'Исполнитель поставлен на рассмотрение';
  147 + break;
  148 + case 3:
  149 + echo 'Исполнитель назначен исполнителем';
  150 + break;
  151 + case 4:
  152 + echo 'Вы отказали данному исполнителю';
  153 + break;
  154 + case 5:
  155 + echo 'Исполнитель отказался от данного предложения';
  156 + break;
  157 + }
181 158 ?>
182   - </div>
  159 + </p>
183 160 </div>
184 161 <?php
  162 + if($model->state != $model::STATE_TRASH) {
  163 + ?>
  164 + <div class="project_owner_control">
  165 + <span>Отметить как: </span>
  166 + <p class="new_mark_"></p>
  167 + <div>
  168 + <?php
  169 + echo Html::a('новый', [ '#' ], [
  170 + 'data-project-id' => $model->owner->project_id,
  171 + 'data-comment-id' => $model->comment_id,
  172 + 'class' => 'artbox_project_make_new' . ( ( $model->state == $model::STATE_NEW ) ? ' active' : '' ),
  173 + ]);
  174 + echo Html::a('кандидат', [ '#' ], [
  175 + 'data-project-id' => $model->owner->project_id,
  176 + 'data-comment-id' => $model->comment_id,
  177 + 'class' => 'artbox_project_make_candidate' . ( ( $model->state == $model::STATE_CANDIDATE ) ? ' active' : '' ),
  178 + ]);
  179 + echo Html::a('исполнитель', [ '#' ], [
  180 + 'data-project-id' => $model->owner->project_id,
  181 + 'data-comment-id' => $model->comment_id,
  182 + 'class' => 'artbox_project_make_performer' . ( ( $model->state == $model::STATE_PERFORMER ) ? ' active' : '' ),
  183 + ]);
  184 + echo Html::a('отказать', [ '#' ], [
  185 + 'data-project-id' => $model->owner->project_id,
  186 + 'data-comment-id' => $model->comment_id,
  187 + 'class' => 'artbox_project_make_deny' . ( ( $model->state == $model::STATE_DENY ) ? ' active' : '' ),
  188 + ]);
  189 + ?>
  190 + </div>
  191 + </div>
  192 + <?php
  193 + }
185 194 }
186   - }
187 195 ?>
188 196 </div>
189 197  
... ...
common/modules/comment/widgets/views/_review_comment_view.php
... ... @@ -15,7 +15,7 @@
15 15 * @var User $user
16 16 */
17 17 $user = $model->user;
18   - $model->buildButtons(['delete']);
  18 + $model->buildButtons([ 'delete' ]);
19 19 ?>
20 20 <div class="comments-name <?= CommentWidget::$baseClass[ 'comment_author' ] ?>">
21 21 <?= $model->getAuthor(' (Гость)') ?>
... ... @@ -31,9 +31,14 @@
31 31 <?php
32 32 if(!empty( $model->rating )) {
33 33 echo StarRating::widget([
34   - 'name' => 'rating_review_comment',
35   - 'value' => $model->rating->value,
36   - 'pluginOptions' => ['displayOnly' => true]
  34 + 'name' => 'rating_review_comment',
  35 + 'value' => $model->rating->value,
  36 + 'pluginOptions' => [
  37 + 'displayOnly' => true,
  38 + 'min' => 0,
  39 + 'max' => 10,
  40 + 'stars' => 10,
  41 + ],
37 42 ]);
38 43 }
39 44 ?>
... ... @@ -43,7 +48,7 @@
43 48 <div>
44 49 <?php
45 50 if(!empty( $model->buttons[ 'delete' ] )) {
46   - echo Html::a(($model->user_id != NULL && $model->user_id == \Yii::$app->user->id)?'Удалить':'Пожаловаться ', $model->buttons[ 'delete' ], [ 'class' => CommentWidget::$baseClass[ 'comment_delete' ] ]);
  51 + echo Html::a(( $model->user_id != NULL && $model->user_id == \Yii::$app->user->id ) ? 'Удалить' : 'Пожаловаться ', $model->buttons[ 'delete' ], [ 'class' => CommentWidget::$baseClass[ 'comment_delete' ] ]);
47 52 }
48 53 if(!empty( $model->buttons[ 'update' ] )) {
49 54 echo Html::a('Редактировать', $model->buttons[ 'update' ], [ 'class' => CommentWidget::$baseClass[ 'comment_update' ] ]);
... ...
common/modules/comment/widgets/views/form-comment-review.php
... ... @@ -11,6 +11,7 @@
11 11 use yii\web\View;
12 12 use yii\widgets\ActiveForm;
13 13 use yii\helpers\Html;
  14 +
14 15 ?>
15 16 <?php
16 17 if(!empty( $dataProvider )) {
... ... @@ -32,7 +33,17 @@
32 33 }
33 34 echo $form->field(( !empty( $model->rating ) ? $model->rating : $rating ), 'value')
34 35 ->label(false)
35   - ->widget(StarRating::className(), ['pluginOptions' => ['size'=>'xxs', 'step' => 1, 'value' => 2, 'showCaption' => false]]);
  36 + ->widget(StarRating::className(), [
  37 + 'pluginOptions' => [
  38 + 'size' => 'xxs',
  39 + 'step' => 1,
  40 + 'value' => 2,
  41 + 'showCaption' => false,
  42 + 'stars' => 10,
  43 + 'min' => 0,
  44 + 'max' => 10,
  45 + ],
  46 + ]);
36 47 if($model->scenario == $model::SCENARIO_GUEST) {
37 48 echo $form->field($model, 'user_name', [
38 49 'options' => [
... ... @@ -56,7 +67,7 @@
56 67 if(!empty( $model->comment_pid )) {
57 68 echo Html::tag('div', Html::activeHiddenInput($model, 'comment_pid') . Html::tag('p', $model->parent->author, [ 'class' => 'artbox_comment_reply_author' ]), [ 'class' => CommentWidget::$baseClass[ 'reply_block' ] ]);
58 69 } else {
59   - echo Html::tag('div', '', [ 'class' => CommentWidget::$baseClass[ 'reply_block' ].' test_class' ]);
  70 + echo Html::tag('div', '', [ 'class' => CommentWidget::$baseClass[ 'reply_block' ] . ' test_class' ]);
60 71 }
61 72 echo $form->field($model, 'text', [
62 73 'options' => [
... ...
common/modules/comment/widgets/views/form-comment.php
... ... @@ -19,11 +19,16 @@
19 19 if($rating) {
20 20 echo $form->field(( !empty( $model->rating ) ? $model->rating : $rating ), 'value')
21 21 ->label(false)
22   - ->widget(StarRating::className(), [ 'pluginOptions' => [ 'size' => 'xxs',
23   - 'step' => 1,
24   - 'value' => 2,
25   - 'showCaption' => false,
26   - ],
  22 + ->widget(StarRating::className(), [
  23 + 'pluginOptions' => [
  24 + 'size' => 'xxs',
  25 + 'step' => 1,
  26 + 'value' => 2,
  27 + 'showCaption' => false,
  28 + 'min' => 0,
  29 + 'max' => 10,
  30 + 'stars' => 10,
  31 + ],
27 32 ]);
28 33 }
29 34  
... ...
common/modules/comment/widgets/views/project_comment_view.php
... ... @@ -19,7 +19,7 @@
19 19 ->with('userInfo')
20 20 ->one();
21 21 }
22   - $model->buildButtons(['delete']);
  22 + $model->buildButtons([ 'delete' ]);
23 23 ?>
24 24 <div class="new-portf-comm-read artbox_comment_container" data-key="<?= $model->comment_id ?>" data-form="<?= $model->formName() ?>">
25 25 <div class="style">
... ... @@ -49,9 +49,15 @@
49 49 <?php
50 50 if($rating = $model->hasRating()) {
51 51 echo StarRating::widget([
52   - 'name' => 'rating_project_comment',
53   - 'value' => $rating->value,
54   - 'pluginOptions' => ['displayOnly' => true, 'size' => 'xxs']
  52 + 'name' => 'rating_project_comment',
  53 + 'value' => $rating->value,
  54 + 'pluginOptions' => [
  55 + 'displayOnly' => true,
  56 + 'size' => 'xxs',
  57 + 'min' => 0,
  58 + 'max' => 10,
  59 + 'stars' => 10,
  60 + ],
55 61 ]);
56 62 }
57 63 ?>
... ... @@ -69,7 +75,7 @@
69 75 <div>
70 76 <?php
71 77 if(!empty( $model->buttons[ 'delete' ] )) {
72   - echo Html::a(($model->user_id != NULL && $model->user_id == \Yii::$app->user->id)?'Удалить':'Пожаловаться ', $model->buttons[ 'delete' ], [ 'class' => CommentWidget::$baseClass[ 'comment_delete' ] ]);
  78 + echo Html::a(( $model->user_id != NULL && $model->user_id == \Yii::$app->user->id ) ? 'Удалить' : 'Пожаловаться ', $model->buttons[ 'delete' ], [ 'class' => CommentWidget::$baseClass[ 'comment_delete' ] ]);
73 79 }
74 80 if(!empty( $model->buttons[ 'update' ] )) {
75 81 echo Html::a('Редактировать', $model->buttons[ 'update' ], [ 'class' => CommentWidget::$baseClass[ 'comment_update' ] ]);
... ...
common/modules/file/widgets/ImageUploader.php
1 1 <?php
2   -/**
3   - * Created by PhpStorm.
4   - * User: vitaliy
5   - * Date: 05.10.15
6   - * Time: 16:18
7   - */
8 2  
9 3 namespace common\modules\file\widgets;
10 4 use yii\base\Widget;
... ...
common/modules/file/widgets/views/image_sizer.php
... ... @@ -4,7 +4,6 @@
4 4 $field_name = mb_strtolower($model->formName()) . "-" . $field;
5 5  
6 6 $id = $model->tableSchema->primaryKey[ 0 ];
7   -
8 7 ?>
9 8 <div class="file-uploader-block">
10 9 <?php if(!$multi): ?>
... ... @@ -40,7 +39,6 @@
40 39 $(
41 40 function()
42 41 {
43   -
44 42 $("#<?= $field?>").fileupload(
45 43 {
46 44 dataType : 'json', formData : {size : '<?= json_encode($size)?>'},
... ... @@ -66,7 +64,7 @@
66 64 block.append(img);
67 65 block.parents('.file-uploader-block').parent()
68 66 .addClass('success_download');
69   - $("#<?=$field_name?>").val(data.result.link);
  67 + $("#<?=$field_name?>").val(data.result.link).trigger('change');
70 68 $("#<?=$field?>_new_img").val(data.result.link);
71 69 }
72 70 }
... ... @@ -90,7 +88,7 @@
90 88 {
91 89 }
92 90 );
93   - $("#<?=$field_name?>").val(new_url);
  91 + $("#<?=$field_name?>").val(new_url).trigger('change');
94 92 }
95 93 );
96 94  
... ... @@ -101,7 +99,9 @@
101 99 .removeClass('success_download');
102 100 $("#<?= $field?>_img_block").parent().parent().find('.admin-ava-wr')
103 101 .remove();
104   -
  102 + if($(this).hasClass('remover_image')) {
  103 + $('#<?=$field?>_new_img').val('');
  104 + }
105 105 $("#<?=$field?>_buttons_block").remove();
106 106 var old_url = $('#<?=$field?>_old_img').val();
107 107 var new_url = $('#<?=$field?>_new_img').val();
... ... @@ -112,10 +112,16 @@
112 112 );
113 113 <?php
114 114 if($remover) {
115   - echo "$(\"#$field_name\").val('');
116   - $('#{$field}_img_block').find('img').remove();";
  115 + echo "if(old_url.length<1 || new_url.length<1) {
  116 + $(\"#$field_name\").val('');
  117 + $('#{$field}_img_block').find('img').remove();
  118 + } else {
  119 + $(\"#$field_name\").val(old_url).trigger('change');
  120 + $('#{$field}_remove_img').append('<img src=\'/images/delete-ico.png\'>');
  121 + $('#{$field}_img_block').find('.admin-avatar-pattern').append('<img src=\"'+old_url+'\">');
  122 + }";
117 123 } else {
118   - echo "$(\"#$field_name\").val(old_url);
  124 + echo "$(\"#$field_name\").val(old_url).trigger('change');
119 125 if(old_url.length<=1){
120 126 $('#{$field}_img_block').find('img').remove()
121 127 }
... ...
common/modules/fileloader/models/Fileloader.php
... ... @@ -46,6 +46,7 @@ class Fileloader extends \yii\db\ActiveRecord
46 46 public function rules()
47 47 {
48 48 return [
  49 + [['files'], 'file', 'maxSize' => 5242880],
49 50 [['status'], 'integer'],
50 51 [['name'], 'string', 'max' => 50],
51 52 [['dir'], 'string', 'max' => 255],
... ...
common/modules/fileloader/resources/handler.js
... ... @@ -23,6 +23,7 @@ $(function() {
23 23 data.result.result.input + '<p class="fileloader-item-name">'+
24 24 '<a href="'+data.result.result.file_href+'" target="_blank">'+data.result.result.file_name+'</a></p>'+'<span class="fileloader-item-remove glyphicon glyphicon-remove"></span>'+
25 25 '</div>';
  26 + $('#modal_form_contacts .contacts-form-help span').css({display:'none'});
26 27 if(!multiple) {
27 28 var inputs = $(wrapper).find('.fileloader-item-remove');
28 29 $.each(inputs, function(i, v) {
... ... @@ -36,7 +37,6 @@ $(function() {
36 37 }
37 38 });
38 39 }
39   -
40 40 $(document).on('click', '.fileloader-item-remove', function(e) {
41 41 var wrapper = $(this).parents('.fileloader-item-wrapper').first();
42 42 var id = $(wrapper).data('id');
... ... @@ -47,6 +47,7 @@ $(function() {
47 47 },
48 48 function(data) {}
49 49 );
  50 + $('#modal_form_contacts .contacts-form-help span').css({display:'block'});
50 51 $(wrapper).remove();
51 52 });
52 53 });
... ...
common/widgets/views/phone_field.php
1 1 <?php
2 2 use yii\helpers\Html;
3   - use yii\widgets\MaskedInput;
4 3  
5 4 ?>
6 5 <fieldset>
7 6  
8 7 <div class="field_list">
9 8  
  9 + <?php $t = 0;
10 10  
11   - <?php $t = 0;
  11 + $label = 0; // add this var
12 12  
13   - $label = 0; // add this var
14   -
15   - for($i=1; $i <= count($model); $i++):
16   - $row = $i;
17   -
18   - ?>
19   -
20   - <?= Html::beginTag('div',['class'=>'form-group','id'=>isset($model[$i]['parent_key']) ? $model[$i]['parent_key'] : 0 ])?>
21   - <div class="input-blocks">
22   - <label for="cont-phone-<?= ++$label ?>">Телефон</label>
23   - <input id="cont-phone-<?= $label ?>" type="tel" pattern="^\+?(?:\d{0,3})?[\(\s]?\d{0,5}[\)\s]?\d{3}[-\s]?\d{2}[-\s]?\d{2}$" placeholder="+xx(xxx)xxx-xx-xx" class="form-control custom-input-2" value="<?= isset($model[$t]['value']) ? $model[$t]['value'] : '' ?>" name="Fields[phone][<?=$row?>][0][phone]" />
24   - </div>
25   - <span data-id="<?= isset($model[$i]['parent_key']) ? $model[$i]['parent_key'] : 0 ?>" title="<?= Yii::t('app','add') ?>" class="glyphicon glyphicon-trash delete-field-item"></span>
26   - <?= Html::endTag('div')?>
27   - <?php $i = ++ $t; ?>
28   - <?php endfor; ?>
  13 + for($i = 1; $i <= count($model); $i++):
  14 + $row = $i;
  15 + ?>
  16 + <?= Html::beginTag('div', [
  17 + 'class' => 'form-group form-group-phone-' . ( isset( $model[ $i ][ 'parent_key' ] ) ? $model[ $i ][ 'parent_key' ] : 0 ),
  18 + 'id' => isset( $model[ $i ][ 'parent_key' ] ) ? $model[ $i ][ 'parent_key' ] : 0,
  19 + ]) ?>
  20 + <div class="input-blocks">
  21 + <label for="cont-phone-<?= ++$label ?>">Телефон</label>
  22 + <input id="cont-phone-<?= $label ?>" type="tel" placeholder="+xx(xxx)xxx-xx-xx" class="form-control custom-input-2" value="<?= isset( $model[ $t ][ 'value' ] ) ? $model[ $t ][ 'value' ] : '' ?>" name="Fields[phone][<?= $row ?>][0][phone]"/>
  23 + </div>
  24 + <div class="help-block"></div>
  25 + <span data-id="<?= isset( $model[ $i ][ 'parent_key' ] ) ? $model[ $i ][ 'parent_key' ] : 0 ?>" title="<?= Yii::t('app', 'add') ?>" class="glyphicon glyphicon-trash delete-field-item"></span>
  26 + <?php
  27 + $js = "
  28 + var id = 'cont-phone-" . $label . "';
  29 + $('#w0').yiiActiveForm('add', {
  30 + container: '.form-group-phone-" . ( isset( $model[ $i ][ 'parent_key' ] ) ? $model[ $i ][ 'parent_key' ] : 0 ) . "',
  31 + error: '.help-block',
  32 + id: id,
  33 + input: '#'+id,
  34 + name: 'Fields[phone][" . $row . "][0][phone]',
  35 + validate: function(attribute, value, messages, deferred) {yii.validation.regularExpression(value, messages, {'pattern':/^\+?(?:\d{0,3})?[\(\s]?\d{0,5}[\)\s]?\d{3}[-\s]?\d{2}[-\s]?\d{2}$/,'not':false,'message':'Телефон введен неверно . ','skipOnEmpty':1});}
  36 + });
  37 + ";
  38 + $this->registerJs($js, $this::POS_LOAD);
  39 + ?>
  40 + <?= Html::endTag('div') ?>
  41 + <?php $i = ++$t; ?>
  42 + <?php endfor; ?>
29 43  
30 44 </div>
31 45 <p class="btn btn-success add_field_<?= $this->context->id ?>">Добавить еще</p>
32 46  
33 47 </fieldset>
34   -<script>
35   - var start_i_<?=$this->context->id?> = <?=$i?>;
36   - var start_label_<?=$this->context->id?> = <?=$label?>; // add this var
37   - $( document ).ready(function(){
38   - $('.add_field_<?=$this->context->id?>').click(function(){
39   - var block = $ (this)
40   - .siblings('.field_list');
41   - var block_id = $(this).parent('fieldset');
42   - var sub_block = '<div class="form-group" >'+
43   - '<div class="input-blocks">'+
44   - '<label for="cont-phone-' + ++start_label_<?=$this->context->id?> +'">Телефон</label>'+
45   - '<input id="cont-phone-' + start_label_<?=$this->context->id?> +'" type="tel" pattern="^\\+?(?:\\d{0,3})?[\\(\\s]?\\d{0,5}[\\)\\s]?\\d{3}[-\\s]?\\d{2}[-\\s]?\\d{2}$" placeholder="+xx(xxx)xxx-xx-xx" class="form-control custom-input-2" value="" name="Fields[phone]['+ start_i_<?=$this->context->id?>++ +'][0][phone]" />'+
46   - '</div>'+
47   - '<span class="glyphicon glyphicon-trash delete-field-item custom-remove-ico"></span>'+
48   - '<div>';
49   -// console.log(block);
50   - block.append(sub_block);
51   -
52   - });
53   - });
54   -</script>
  48 +<?php
  49 + $js = "
  50 + var start_i_" . $this->context->id . " = " . $i . ";
  51 + var start_label_" . $this->context->id . " = " . $label . ";
  52 + $(document).on('click', '.add_field_" . $this->context->id . "', function() {
  53 + var block = $(this)
  54 + .siblings('.field_list');
  55 + var block_id = $(this).parent('fieldset');
  56 + ++start_label_" . $this->context->id . ";
  57 + var sub_block = '<div class=\"form-group form-group-phone-'+start_label_" . $this->context->id . "+'\" >' + '<div class=\"input-blocks\">' + '<label for=\"cont-phone-' + start_label_" . $this->context->id . " + '\">Телефон</label>' + '<input id=\"cont-phone-' + start_label_" . $this->context->id . " + '\" type=\"tel\" placeholder=\"+xx(xxx)xxx-xx-xx\" class=\"form-control custom-input-2\" value=\"\" name=\"Fields[phone][' + start_i_" . $this->context->id . "++ + '][0][phone]\" />' + '</div><div class=\"help-block\"></div><span class=\"glyphicon glyphicon-trash delete-field-item custom-remove-ico\"></span>' + '<div>';
  58 + block.append(sub_block);
  59 + $('#w0').yiiActiveForm('add', {
  60 + container: '.form-group-phone-'+start_label_" . $this->context->id . ",
  61 + error: '.help-block',
  62 + id: 'cont-phone-'+start_label_" . $this->context->id . ",
  63 + input: '#cont-phone-'+start_label_" . $this->context->id . ",
  64 + name: 'Fields[phone][' + start_label_" . $this->context->id . "++ + '][0][phone]',
  65 + validate: function(attribute, value, messages, deferred) {yii.validation.regularExpression(value, messages, {'pattern':/^\+?(?:\d{0,3})?[\(\s]?\d{0,5}[\)\s]?\d{3}[-\s]?\d{2}[-\s]?\d{2}$/,'not':false,'message':'Телефон введен неверно . ','skipOnEmpty':1});}
  66 + });
  67 + });
  68 + ";
  69 + $this->registerJs($js, $this::POS_LOAD);
  70 +?>
55 71  
56 72  
... ...
common/widgets/views/site_field.php
1 1 <?php
2   -use yii\behaviors\SluggableBehavior;
3   -use yii\helpers\Html;
  2 + use yii\helpers\Html;
4 3  
5 4 ?>
6 5 <fieldset>
7 6  
8   -
9 7 <div class="field_list">
10 8  
  9 + <?php $t = 0;
11 10  
12   - <?php $t = 0;
13   -
14   - $label = 0;
15   -
16   - for($i=1; $i <= count($model); $i++):
17   - $row = $i;
  11 + $label = 0;
18 12  
19   - ?>
20   -
21   - <?= Html::beginTag('div',['class'=>'form-group','id'=>isset($model[$i]['parent_key']) ? $model[$i]['parent_key'] : 0 ])?>
22   - <div class="input-blocks">
23   - <label for="cont-site-<?= ++$label ?>">Сайт</label>
24   - <input id="cont-site-<?= $label ?>" type="url" placeholder="http://" class="form-control custom-input-2" value="<?= isset($model[$t]['value']) ? $model[$t]['value'] : '' ?>" name="Fields[site][<?=$row?>][0][site]" />
25   - </div>
26   - <span data-id="<?= isset($model[$i]['parent_key']) ? $model[$i]['parent_key'] : 0 ?>" title="<?= Yii::t('app','add') ?>" class="glyphicon glyphicon-trash delete-field-item"></span>
27   - <?= Html::endTag('div')?>
28   - <?php $i = ++ $t; ?>
29   - <?php endfor; ?>
  13 + for($i = 1; $i <= count($model); $i++):
  14 + $row = $i;
  15 + ?>
  16 + <?= Html::beginTag('div', [
  17 + 'class' => 'form-group form-group-site-'. ( isset( $model[ $i ][ 'parent_key' ] ) ? $model[ $i ][ 'parent_key' ] : 0 ),
  18 + 'id' => isset( $model[ $i ][ 'parent_key' ] ) ? $model[ $i ][ 'parent_key' ] : 0,
  19 + ]) ?>
  20 + <div class="input-blocks">
  21 + <label for="cont-site-<?= ++$label ?>">Сайт</label>
  22 + <input id="cont-site-<?= $label ?>" type="text" placeholder="http://" class="form-control custom-input-2" value="<?= isset( $model[ $t ][ 'value' ] ) ? $model[ $t ][ 'value' ] : '' ?>" name="Fields[site][<?= $row ?>][0][site]"/>
  23 + </div>
  24 + <div class="help-block"></div>
  25 + <span data-id="<?= isset( $model[ $i ][ 'parent_key' ] ) ? $model[ $i ][ 'parent_key' ] : 0 ?>" title="<?= Yii::t('app', 'add') ?>" class="glyphicon glyphicon-trash delete-field-item"></span>
  26 + <?php
  27 + $js = "
  28 + var id = 'cont-site-" . $label . "';
  29 + $('#w0').yiiActiveForm('add', {
  30 + container: '.form-group-site-" . ( isset( $model[ $i ][ 'parent_key' ] ) ? $model[ $i ][ 'parent_key' ] : 0 ) . "',
  31 + error: '.help-block',
  32 + id: id,
  33 + input: '#'+id,
  34 + name: 'Fields[site][" . $row . "][0][site]',
  35 + validate: function(attribute, value, messages, deferred) {yii.validation.url(value, messages, {\"pattern\":/^(http|https):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(?::\d{1,5})?(?:$|[?\/#])/i,\"message\":\"Введенный адрес не является правильным URL.\",\"enableIDN\":false,\"skipOnEmpty\":1});}
  36 + });
  37 + ";
  38 + $this->registerJs($js, $this::POS_LOAD);
  39 + ?>
  40 + <?= Html::endTag('div') ?>
  41 + <?php $i = ++$t; ?>
  42 + <?php endfor; ?>
30 43 </div>
31   - <p class="btn btn-success add_field_<?= $this->context->id ?>"><?= Yii::t('app','add_more') ?></p>
  44 + <p class="btn btn-success add_field_<?= $this->context->id ?>"><?= Yii::t('app', 'add_more') ?></p>
32 45  
33 46 </fieldset>
34   -<script>
35   - var start_i_<?=$this->context->id?> = <?=$i?>;
36   - var start_label_<?=$this->context->id?> = <?=$label?>; // add this var
37   - $( document ).ready(function(){
38   - $('.add_field_<?=$this->context->id?>').click(function(){
39   - var block = $ (this)
40   - .siblings('.field_list');
41   - var block_id = $(this).parent('fieldset');
42   - var sub_block = '<div class="form-group" >'+
43   -
44   - '<div class="input-blocks">'+
45   - '<label for="cont-site-' + ++start_label_<?=$this->context->id?> +'">Сайт</label>'+
46   - '<input id="cont-site-' + start_label_<?=$this->context->id?> +'" type="url" placeholder="http://" class="form-control custom-input-2" value="" name="Fields[site]['+ start_i_<?=$this->context->id?>++ +'][0][site]" />'+
47   - '</div>'+
48   - '<span title="<?= Yii::t('app','add') ?>" class="glyphicon glyphicon-trash delete-field-item"></span>'+
49   - '<div>';
50   - block.append(sub_block);
51   -
52   - });
53   - });
54   -</script>
  47 +<?php
  48 + $js = "
  49 + var start_i_" . $this->context->id . " = " . $i . ";
  50 + var start_label_" . $this->context->id . " = " . $label . ";
  51 + $(document).on('click', '.add_field_" . $this->context->id . "', function() {
  52 + var block = $(this)
  53 + .siblings('.field_list');
  54 + var block_id = $(this).parent('fieldset');
  55 + ++start_label_" . $this->context->id . ";
  56 + var sub_block = '<div class=\"form-group form-group-site-'+start_label_" . $this->context->id . "+'\" >' + '<div class=\"input-blocks\">' + '<label for=\"cont-site-' + start_label_" . $this->context->id . " + '\">Сайт</label>' + '<input id=\"cont-site-' + start_label_" . $this->context->id . " + '\" type=\"text\" placeholder=\"http://\" class=\"form-control custom-input-2\" value=\"\" name=\"Fields[site][' + start_i_" . $this->context->id . "++ + '][0][site]\" />' + '</div><div class=\"help-block\"></div><span class=\"glyphicon glyphicon-trash delete-field-item custom-remove-ico\"></span>' + '<div>';
  57 + block.append(sub_block);
  58 + $('#w0').yiiActiveForm('add', {
  59 + container: '.form-group-site-'+start_label_" . $this->context->id . ",
  60 + error: '.help-block',
  61 + id: 'cont-site-'+start_label_" . $this->context->id . ",
  62 + input: '#cont-site-'+start_label_" . $this->context->id . ",
  63 + name: 'Fields[site][' + start_label_" . $this->context->id . "++ + '][0][site]',
  64 + validate: function(attribute, value, messages, deferred) {yii.validation.url(value, messages, {\"pattern\":/^(http|https):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(?::\d{1,5})?(?:$|[?\/#])/i,\"message\":\"Введенный адрес не является правильным URL.\",\"enableIDN\":false,\"skipOnEmpty\":1});}
  65 + });
  66 + });
  67 + ";
  68 + $this->registerJs($js, $this::POS_LOAD);
  69 +?>
55 70  
56 71  
... ...
console/migrations/m160519_124222_create_feedback_company.php 0 → 100644
  1 +<?php
  2 +
  3 +use yii\db\Migration;
  4 +
  5 +/**
  6 + * Handles the creation for table `feedback_company`.
  7 + */
  8 +class m160519_124222_create_feedback_company extends Migration
  9 +{
  10 + /**
  11 + * @inheritdoc
  12 + */
  13 + public function up()
  14 + {
  15 + $this->createTable('feedback_company', [
  16 + 'feedback_company_id' => $this->primaryKey(),
  17 + 'date_add' => $this->integer()->notNull(),
  18 + 'name' => $this->string()->notNull(),
  19 + 'phone' => $this->string()->notNull(),
  20 + 'ip' => $this->string()->notNull(),
  21 + 'user_id' => $this->integer()->notNull(),
  22 + 'status' => $this->integer()->notNull()->defaultValue(1),
  23 + ]);
  24 +
  25 + $this->addForeignKey('feedback_company_user', '{{%feedback_company}}', 'user_id', '{{%user}}', 'id', 'CASCADE', 'CASCADE');
  26 + }
  27 +
  28 + /**
  29 + * @inheritdoc
  30 + */
  31 + public function down()
  32 + {
  33 + $this->dropForeignKey('feedback_company_user', '{{%feedback_company}}');
  34 + $this->dropTable('feedback_company');
  35 + }
  36 +}
... ...
frontend/controllers/AccountsController.php
... ... @@ -8,6 +8,8 @@
8 8 use common\models\Currency;
9 9 use common\models\Department;
10 10 use common\models\Employment;
  11 + use common\models\FeedbackCompany;
  12 + use common\models\FeedbackCompanySearch;
11 13 use common\models\Fields;
12 14 use common\models\File;
13 15 use common\models\Gallery;
... ... @@ -40,6 +42,7 @@
40 42 use yii\filters\VerbFilter;
41 43 use yii\web\Controller;
42 44 use yii\web\NotFoundHttpException;
  45 + use yii\web\Response;
43 46 use yii\web\UploadedFile;
44 47  
45 48 /**
... ... @@ -59,7 +62,6 @@
59 62 'class' => AccessControl::className(),
60 63 'rules' => [
61 64 [
62   - //'actions' => ['cabinet','change-password', 'bookmarks', 'projects'],
63 65 'allow' => true,
64 66 'roles' => [ '@' ],
65 67 ],
... ... @@ -74,6 +76,8 @@
74 76 'projects-delete' => [ 'POST' ],
75 77 'blog-delete' => [ 'POST' ],
76 78 'gallery-cover' => [ 'POST' ],
  79 + 'feedback-delete' => [ 'POST' ],
  80 + 'feedback-read' => [ 'POST' ],
77 81 ],
78 82 ],
79 83 ];
... ... @@ -87,7 +91,14 @@
87 91 'status' => 2,
88 92 ])
89 93 ->count();
  94 + $feedback_company_count = FeedbackCompany::find()
  95 + ->where([
  96 + 'user_id' => \Yii::$app->user->id,
  97 + 'status' => FeedbackCompany::STATUS_NEW,
  98 + ])
  99 + ->count();
90 100 $this->view->params[ 'portfolio_user_count' ] = $portfolio_user_count;
  101 + $this->view->params[ 'feedback_company_count' ] = $feedback_company_count;
91 102 return parent::beforeAction($action); // TODO: Change the autogenerated stub
92 103 }
93 104  
... ... @@ -288,6 +299,86 @@
288 299 }
289 300  
290 301 /**
  302 + * Page of Company feedback
  303 + * @return string
  304 + */
  305 + public function actionFeedbackCompany()
  306 + {
  307 + $searchModel = new FeedbackCompanySearch();
  308 + $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
  309 + $dataProvider->pagination = [
  310 + 'pageSize' => 20,
  311 + ];
  312 + $dataProvider->sort = new Sort([
  313 + 'defaultOrder' => [
  314 + 'status' => SORT_ASC,
  315 + 'date_add' => SORT_DESC,
  316 + ],
  317 + ]);
  318 +
  319 + return $this->render('feedback-company', [
  320 + 'searchModel' => $searchModel,
  321 + 'dataProvider' => $dataProvider,
  322 + ]);
  323 + }
  324 +
  325 + /**
  326 + * Delete company feedback
  327 + *
  328 + * @param int $id
  329 + *
  330 + * @return Response
  331 + * @throws NotFoundHttpException
  332 + * @throws \Exception
  333 + */
  334 + public function actionFeedbackDelete($id)
  335 + {
  336 + $model = FeedbackCompany::find()
  337 + ->where([
  338 + 'feedback_company_id' => $id,
  339 + 'user_id' => \Yii::$app->user->id,
  340 + ])
  341 + ->one();
  342 +
  343 + if(empty( $model )) {
  344 + throw new NotFoundHttpException('Заявка не найдена');
  345 + } else {
  346 + $model->delete();
  347 + return $this->redirect([ 'accounts/feedback-company' ]);
  348 + }
  349 + }
  350 +
  351 + /**
  352 + * Mark feedback as read
  353 + *
  354 + * @param int $id
  355 + *
  356 + * @return Response
  357 + * @throws NotFoundHttpException
  358 + */
  359 + public function actionFeedbackRead($id)
  360 + {
  361 + $model = FeedbackCompany::find()
  362 + ->where([
  363 + 'feedback_company_id' => $id,
  364 + 'user_id' => \Yii::$app->user->id,
  365 + ])
  366 + ->andWhere([
  367 + 'not',
  368 + [ 'status' => FeedbackCompany::STATUS_READ ],
  369 + ])
  370 + ->one();
  371 +
  372 + if(empty( $model )) {
  373 + throw new NotFoundHttpException('Заявка не найдена');
  374 + } else {
  375 + $model->status = FeedbackCompany::STATUS_READ;
  376 + $model->save(false);
  377 + return $this->redirect([ 'accounts/feedback-company' ]);
  378 + }
  379 + }
  380 +
  381 + /**
291 382 * Page of User's image galleries
292 383 * @return string
293 384 */
... ... @@ -1041,7 +1132,7 @@
1041 1132 $user->new_password = $post[ 'new_password' ];
1042 1133 }
1043 1134 if(empty( $post[ 'old_password' ] )) {
1044   - $user->addError('old_password', 'Введите новый пароль');
  1135 + $user->addError('old_password', 'Введите старый пароль');
1045 1136 } else {
1046 1137 $user->old_password = $post[ 'old_password' ];
1047 1138 }
... ...
frontend/controllers/AjaxController.php
... ... @@ -2,6 +2,7 @@
2 2 namespace frontend\controllers;
3 3  
4 4 use common\models\Feedback;
  5 + use common\models\FeedbackCompany;
5 6 use common\models\Portfolio;
6 7 use common\models\PortfolioUser;
7 8 use common\models\User;
... ... @@ -27,6 +28,9 @@
27 28 public function actionProjectUser()
28 29 {
29 30 $ids = json_decode(\Yii::$app->request->get('ids'));
  31 + if(!empty(\Yii::$app->user->id)) {
  32 + array_push($ids, \Yii::$app->user->id);
  33 + }
30 34 $model = new UserSearch();
31 35 $dataProvider = $model->search(\Yii::$app->request->queryParams);
32 36 $dataProvider->query->andFilterWhere([
... ... @@ -185,4 +189,18 @@
185 189 return ['error' => 'Error detected', 'result' => ['form' => $form]];
186 190 }
187 191  
  192 + public function actionFeedbackCompany()
  193 + {
  194 + $request = \Yii::$app->request;
  195 + $response = \Yii::$app->response;
  196 + $response->format = $response::FORMAT_JSON;
  197 + $model = new FeedbackCompany(['ip' => $request->userIP]);
  198 + if($model->load($request->post())) {
  199 + if($model->save()) {
  200 + return ['result' => ['message' => 'Вопрос успешно отправлен, представители компании свяжутся с Вами в ближайшее время']];
  201 + }
  202 + }
  203 + return ['error' => 'Ошибка формы'];
  204 + }
  205 +
188 206 }
... ...
frontend/controllers/CompanyController.php
... ... @@ -16,6 +16,7 @@
16 16 use yii\data\ArrayDataProvider;
17 17 use yii\data\Pagination;
18 18 use yii\data\Sort;
  19 + use yii\db\ActiveQuery;
19 20 use yii\helpers\ArrayHelper;
20 21 use yii\web\BadRequestHttpException;
21 22 use yii\web\Controller;
... ... @@ -38,6 +39,19 @@
38 39 $company_id = $action->controller->actionParams[ 'company_id' ];
39 40 $user = User::findOne($company_id);
40 41 if(!empty( $user->userInfo )) {
  42 + if($user->userInfo->is_freelancer xor $user->userInfo->is_customer) {
  43 + $type = $action->controller->actionParams['type'];
  44 + $get = \Yii::$app->request->get();
  45 + if(!empty($type)) {
  46 + if($user->userInfo->is_freelancer && $type == 'customer') {
  47 + $get['type'] = 'implementer';
  48 + $this->redirect(array_merge([$action->id], $get));
  49 + } elseif($user->userInfo->is_customer && $type == 'implementer') {
  50 + $get['type'] = 'customer';
  51 + $this->redirect(array_merge([$action->id], $get));
  52 + }
  53 + }
  54 + }
41 55 $user->userInfo->updateCounters([ 'view_count' => 1 ]);
42 56 }
43 57 }
... ... @@ -178,7 +192,7 @@
178 192 'pagination' => [
179 193 'pageSize' => 9,
180 194 ],
181   - 'sort' => new Sort([
  195 + 'sort' => new Sort([
182 196 'defaultOrder' => [
183 197 'portfolio_id' => SORT_DESC,
184 198 ],
... ... @@ -248,15 +262,36 @@
248 262 $user = User::findOne($company_id);
249 263 $portfolio = $user->getPortfolios()
250 264 ->where([ 'portfolio_id' => $portfolio_id ])
251   - ->with('portfolioUsers')
  265 + ->with([
  266 + 'portfolioUsers' => function($query) {
  267 + /**
  268 + * @var ActiveQuery $query
  269 + */
  270 + $query->andWhere([ 'status' => 1 ]);
  271 + },
  272 + ])
252 273 ->with('portfolioUsers.gallery')
253 274 ->one();
  275 + if(empty($portfolio)) {
  276 + throw new NotFoundHttpException('Портфолио не найдено');
  277 + }
254 278 if(!empty( $portfolio_user )) {
255 279 $portfolio_user = PortfolioUser::find()
256   - ->where([ 'portfolio_user_id' => $portfolio_user ])
  280 + ->where([
  281 + 'portfolio_user_id' => $portfolio_user,
  282 + 'status' => 1,
  283 + ])
257 284 ->with('gallery')
258 285 ->with('user')
259 286 ->one();
  287 + if(empty( $portfolio_user )) {
  288 + $this->redirect([
  289 + 'portfolio-view',
  290 + 'performer_id' => $company_id,
  291 + 'portfolio_id' => $portfolio_id,
  292 + 'type' => $type,
  293 + ]);
  294 + }
260 295 } else {
261 296 $portfolio->updateCounters([ 'view_count' => 1 ]);
262 297 }
... ... @@ -328,7 +363,6 @@
328 363 if(!$company instanceof User) {
329 364 throw new BadRequestHttpException('Пользователь не найден');
330 365 }
331   -
332 366 $article = Blog::find()
333 367 ->where([
334 368 'link' => $link,
... ... @@ -336,6 +370,9 @@
336 370 ])
337 371 ->with('comments')
338 372 ->one();
  373 + if(empty($article)) {
  374 + throw new NotFoundHttpException('Запись не найдена');
  375 + }
339 376 $article->updateCounters([ 'view_count' => 1 ]);
340 377  
341 378 return $this->render('blog-view', [
... ... @@ -349,6 +386,10 @@
349 386 {
350 387 $company = User::findOne($company_id);
351 388  
  389 + if(empty($company)) {
  390 + throw new NotFoundHttpException('Company not found');
  391 + }
  392 +
352 393 return $this->render('review', [
353 394 'company' => $company,
354 395 ]);
... ...
frontend/controllers/PerformerController.php
... ... @@ -12,10 +12,12 @@
12 12 use yii\data\ArrayDataProvider;
13 13 use yii\data\Pagination;
14 14 use yii\data\Sort;
  15 + use yii\db\ActiveQuery;
15 16 use yii\helpers\ArrayHelper;
16 17 use yii\web\BadRequestHttpException;
17 18 use yii\web\Controller;
18 19 use common\models\User;
  20 + use yii\web\NotFoundHttpException;
19 21  
20 22 /**
21 23 * Site controller
... ... @@ -35,6 +37,19 @@
35 37 $performer_id = $action->controller->actionParams[ 'performer_id' ];
36 38 $user = User::findOne($performer_id);
37 39 if(!empty( $user->userInfo )) {
  40 + if($user->userInfo->is_freelancer xor $user->userInfo->is_customer) {
  41 + $type = $action->controller->actionParams['type'];
  42 + $get = \Yii::$app->request->get();
  43 + if(!empty($type)) {
  44 + if($user->userInfo->is_freelancer && $type == 'customer') {
  45 + $get['type'] = 'implementer';
  46 + $this->redirect(array_merge([$action->id], $get));
  47 + } elseif($user->userInfo->is_customer && $type == 'implementer') {
  48 + $get['type'] = 'customer';
  49 + $this->redirect(array_merge([$action->id], $get));
  50 + }
  51 + }
  52 + }
38 53 $user->userInfo->updateCounters([ 'view_count' => 1 ]);
39 54 }
40 55 }
... ... @@ -67,7 +82,7 @@
67 82 ->one();
68 83  
69 84 if(!$user instanceof User) {
70   - throw new BadRequestHttpException('Пользователь не найден');
  85 + throw new NotFoundHttpException('Пользователь не найден');
71 86 }
72 87  
73 88 $educations = Fields::getData($user->id, $user->className(), 'education');
... ... @@ -182,15 +197,36 @@
182 197 $user = User::findOne($performer_id);
183 198 $portfolio = $user->getPortfolios()
184 199 ->where([ 'portfolio_id' => $portfolio_id ])
185   - ->with('portfolioUsers')
  200 + ->with([
  201 + 'portfolioUsers' => function($query) {
  202 + /**
  203 + * @var ActiveQuery $query
  204 + */
  205 + $query->andWhere([ 'status' => 1 ]);
  206 + },
  207 + ])
186 208 ->with('portfolioUsers.gallery')
187 209 ->one();
  210 + if(empty($portfolio)) {
  211 + throw new NotFoundHttpException('Портфолио не найдено');
  212 + }
188 213 if(!empty( $portfolio_user )) {
189 214 $portfolio_user = PortfolioUser::find()
190   - ->where([ 'portfolio_user_id' => $portfolio_user ])
  215 + ->where([
  216 + 'portfolio_user_id' => $portfolio_user,
  217 + 'status' => 1,
  218 + ])
191 219 ->with('gallery')
192 220 ->with('user')
193 221 ->one();
  222 + if(empty( $portfolio_user )) {
  223 + $this->redirect([
  224 + 'portfolio-view',
  225 + 'performer_id' => $performer_id,
  226 + 'portfolio_id' => $portfolio_id,
  227 + 'type' => $type,
  228 + ]);
  229 + }
194 230 } else {
195 231 $portfolio->updateCounters([ 'view_count' => 1 ]);
196 232 }
... ... @@ -264,6 +300,9 @@
264 300 ])
265 301 ->with('comments')
266 302 ->one();
  303 + if(empty($article)) {
  304 + throw new NotFoundHttpException('Запись не найдена');
  305 + }
267 306 $article->updateCounters([ 'view_count' => 1 ]);
268 307  
269 308 return $this->render('blog-view', [
... ... @@ -309,7 +348,7 @@
309 348 }
310 349  
311 350 $gallery = new ActiveDataProvider([
312   - 'query' => $user->getGalleries(),
  351 + 'query' => $user->getGalleries()->andWhere(['not', ['photo' => '']])->andWhere(['not', ['photo' => NULL]]),
313 352 'pagination' => [
314 353 'pageSize' => 5,
315 354 ],
... ...
frontend/controllers/SearchController.php
... ... @@ -11,6 +11,7 @@ use frontend\models\SearchVacancyForm;
11 11 use Yii;
12 12 use frontend\models\Options;
13 13 use frontend\models\OptionValues;
  14 +use yii\base\InvalidParamException;
14 15 use yii\data\ActiveDataProvider;
15 16 use yii\data\Pagination;
16 17 use yii\web\Controller;
... ... @@ -42,6 +43,32 @@ use frontend\models\Option;
42 43 ];
43 44 }
44 45  
  46 + public function actionCommon($action)
  47 + {
  48 + $query = \Yii::$app->request->get('query');
  49 + $actions = [
  50 + 1 => 'project',
  51 + 2 => 'performer',
  52 + 3 => 'customer'
  53 + ];
  54 + if(!array_key_exists($action, $actions)) {
  55 + return $this->redirect(['/', 'query' => $query]);
  56 + } else {
  57 + switch($action) {
  58 + case 1:
  59 + return $this->redirect(['search/'.$actions[$action], 'TenderSearch[info]' => $query]);
  60 + break;
  61 + case 2:
  62 + return $this->redirect(['search/'.$actions[$action], 'SearchPerformerForm[search]' => $query]);
  63 + break;
  64 + case 3:
  65 + return $this->redirect(['search/'.$actions[$action], 'CustomerSearch[info]' => $query]);
  66 + break;
  67 + }
  68 + }
  69 + return false;
  70 + }
  71 +
45 72 public function actionProject()
46 73 {
47 74 $model = new TenderSearch();
... ...
frontend/messages/ru/app.php
... ... @@ -10,7 +10,7 @@
10 10 'description' => 'Описание',
11 11 'cover' => 'Фото главное',
12 12 'chat_id' => 'Chat ID',
13   - 'status' => 'Status',
  13 + 'status' => 'Статус',
14 14 'comment' => 'Comment',
15 15 'from_user' => 'From User',
16 16 'to_user' => 'To User',
... ... @@ -179,5 +179,4 @@
179 179 'Feedback answer' => 'Вопрос',
180 180 'Feedback file' => 'Файл',
181 181 'Feedback date add' => 'Дата обращения',
182   - 'Projects' => 'Проекты',
183 182 ];
184 183 \ No newline at end of file
... ...
frontend/views/accounts/_gallery_form.php
1 1 <?php
2 2 /**
3 3 * @var Gallery $gallery
4   - * @var User $user
  4 + * @var User $user
5 5 */
6 6 use common\components\Request;
7 7 use common\models\Gallery;
... ... @@ -24,7 +24,7 @@
24 24 <div class="input-blocks-wrapper">
25 25 <div class="input-blocks">
26 26 <?= $form->field($gallery, 'name')
27   - ->textInput (['class'=> 'custom-input-2']) ?>
  27 + ->textInput([ 'class' => 'custom-input-2' ]) ?>
28 28 </div>
29 29 </div>
30 30  
... ... @@ -32,27 +32,47 @@
32 32 <?= ImageUploader::widget([
33 33 'model' => $gallery,
34 34 'field' => 'cover',
35   - 'size' => [
  35 + 'size' => [
36 36 [
37   - 'width' => 210,
38   - 'height' => 150,
39   - ]
  37 + 'width' => 210,
  38 + 'height' => 150,
  39 + ],
40 40 ],
41   -
  41 + 'remover' => true,
42 42 'multi' => false,
43 43 'gallery' => $gallery->cover,
44 44 'name' => 'Загрузить главное фото',
45 45 ]); ?>
  46 + <div class="help-block"></div>
  47 + <?php
  48 + $client = '';
  49 + foreach($gallery->getActiveValidators('cover') as $validator) {
  50 + $client .= $validator->clientValidateAttribute($gallery, 'cover', $this);
  51 + }
  52 + $js = "
  53 + $('#".$form->id."').yiiActiveForm(
  54 + 'add', {
  55 + container : '.admin-avatar',
  56 + error : '.help-block',
  57 + id : 'gallery-cover',
  58 + input : '#gallery-cover',
  59 + name : 'Gallery[cover]',
  60 + validate: function(attribute, value, messages, deferred) { ".$client." }
  61 + }
  62 + );
  63 + ";
  64 + $this->registerJs($js, $this::POS_LOAD);
  65 + ?>
46 66 </div>
47 67 <div class="admin-gallery-photos-load-wr style">
48 68 <?= ImageUploader::widget([
49 69 'model' => $gallery,
50 70 'field' => 'photo',
51   - 'size' => [
  71 + 'size' => [
52 72 [
53   - 'width' => 152,
54   - 'height' => 108,
55   - ]
  73 + 'width' => 152,
  74 + 'height' => 108,
  75 + ],
56 76 ],
57 77 'multi' => true,
58 78 'gallery' => $gallery->photo,
... ... @@ -61,29 +81,28 @@
61 81 </div>
62 82  
63 83  
64   -
65 84 <div class="input-blocks-wrapper">
66 85 <div class="admin-save-btn skills-save-btn admin-add-remove-wr style">
67   - <?= Html::submitButton($gallery->isNewRecord? Yii::t('app', 'add'):'Обновить', [ 'class' => 'input-blocks-wrapper button' ]) ?>
  86 + <?= Html::submitButton($gallery->isNewRecord ? Yii::t('app', 'add') : 'Обновить', [ 'class' => 'input-blocks-wrapper button' ]) ?>
68 87 <div class="admin-remove-note">
69 88 <?php
70   - if(!$gallery->isNewRecord) {
71   - echo Html::a(Yii::t('app', 'delete'), [
72   - 'accounts/gallery-delete',
73   - 'id' => $gallery->gallery_id,
74   - ], [
75   - 'title' => Yii::t('app', 'delete'),
76   - 'aria-label' => Yii::t('app', 'delete'),
77   - 'data-confirm' => Yii::t('app', 'delete_confirm'),
78   - 'data-method' => 'post',
79   - 'data-pjax' => 0,
80   - ]);
81   - }
  89 + if(!$gallery->isNewRecord) {
  90 + echo Html::a(Yii::t('app', 'delete'), [
  91 + 'accounts/gallery-delete',
  92 + 'id' => $gallery->gallery_id,
  93 + ], [
  94 + 'title' => Yii::t('app', 'delete'),
  95 + 'aria-label' => Yii::t('app', 'delete'),
  96 + 'data-confirm' => Yii::t('app', 'delete_confirm'),
  97 + 'data-method' => 'post',
  98 + 'data-pjax' => 0,
  99 + ]);
  100 + }
82 101 ?>
83 102 </div>
84 103  
85 104 <div class="admin-back-note">
86   - <?= Html::a('вернуться', Request::getIsLocal(\Yii::$app->request->referrer)?\Yii::$app->request->referrer:['accounts/gallery' ]) ?>
  105 + <?= Html::a('вернуться', Request::getIsLocal(\Yii::$app->request->referrer) ? \Yii::$app->request->referrer : [ 'accounts/gallery' ]) ?>
87 106 </div>
88 107 </div>
89 108 </div>
... ...
frontend/views/accounts/_portfolio_form.php
... ... @@ -288,12 +288,11 @@ $form-&gt;end();
288 288 $.post(
289 289 "/accounts/gallery-cover", {gallery_id : gallery_id}, function(data)
290 290 {
291   - if(!($('#cover_old_img').val().length))
  291 + if(data.length && !($('#cover_old_img').val().length) && !($('#portfolio-cover').val().length))
292 292 {
293   - $('#cover_picture_link').val(data);
  293 + $('#portfolio-cover').val(data);
294 294 var newimg = document.createElement("img");
295 295 newimg.setAttribute("src", data);
296   -
297 296 $('#cover_img_block .admin-avatar-pattern').append(newimg);
298 297 }
299 298 }
... ...
frontend/views/accounts/feedback-company.php 0 → 100644
  1 +<?php
  2 + use common\models\FeedbackCompanySearch;
  3 + use yii\data\ActiveDataProvider;
  4 + use yii\grid\ActionColumn;
  5 + use yii\grid\GridView;
  6 + use yii\grid\SerialColumn;
  7 + use yii\helpers\Html;
  8 + use yii\jui\DatePicker;
  9 + use yii\web\View;
  10 +
  11 + /**
  12 + * @var View $this
  13 + * @var FeedbackCompanySearch $searchModel
  14 + * @var ActiveDataProvider $dataProvider
  15 + */
  16 + $this->title = 'Заявки';
  17 + $this->params[ 'breadcrumbs' ][] = $this->title;
  18 +?>
  19 +<div class="login-left-column-title fix"><?= $this->title ?></div>
  20 +<div class="admin-table-portfolio">
  21 + <?= GridView::widget([
  22 + 'options' => [ 'class' => 'style admin-all-pages-wr fix_last_td_' ],
  23 + 'dataProvider' => $dataProvider,
  24 + 'filterModel' => $searchModel,
  25 + 'columns' => [
  26 + [ 'class' => SerialColumn::className() ],
  27 + [
  28 + 'attribute' => 'date_add',
  29 + 'filter' => "<div class=\"input-group input-group-xs input-daterange\">
  30 +<span class='field-teamsearch-experience_from_from'>" . DatePicker::widget([
  31 + 'model' => $searchModel,
  32 + 'attribute' => 'date_add_from',
  33 + 'language' => 'ru',
  34 + 'dateFormat' => 'yyyy-MM-dd',
  35 + 'clientOptions' => [
  36 + 'changeYear' => true,
  37 + 'changeMonth' => true,
  38 + 'maxDate' => ($searchModel->date_add_to?:date('Y-m-d')),
  39 + ],
  40 + ]) . "</span>
  41 +<span class=\"input-group-addon kv-field-separator\">
  42 +<i class=\"glyphicon glyphicon-resize-horizontal\"></i>
  43 +</span>
  44 +<span class='field-teamsearch-experience_from_to'>" . DatePicker::widget([
  45 + 'model' => $searchModel,
  46 + 'attribute' => 'date_add_to',
  47 + 'language' => 'ru',
  48 + 'dateFormat' => 'yyyy-MM-dd',
  49 + 'clientOptions' => [
  50 + 'changeYear' => true,
  51 + 'changeMonth' => true,
  52 + 'minDate' => $searchModel->date_add_from,
  53 + 'maxDate' => date('Y-m-d'),
  54 + ],
  55 + ]) . "</span>
  56 +</div>",
  57 + 'value' => function($model, $key) {
  58 + return date('Y-m-d H:i:s', $model->date_add);
  59 + },
  60 + ],
  61 + [
  62 + 'attribute' => 'name',
  63 + 'label' => 'Имя и фамилия',
  64 + ],
  65 + 'phone',
  66 + [
  67 + 'attribute' => 'status',
  68 + 'filter' => [
  69 + 1 => 'Только непрочитанные',
  70 + ],
  71 + 'filterInputOptions' => [
  72 + 'prompt' => 'Все записи',
  73 + 'class' => 'form-control',
  74 + ],
  75 + ],
  76 + [
  77 + 'class' => ActionColumn::className(),
  78 + 'buttons' => [
  79 + 'delete' => function($url, $model, $key) {
  80 + return Html::a(Html::tag('span', '', [
  81 + 'class' => 'glyphicon glyphicon-trash',
  82 + ]), [
  83 + 'accounts/feedback-delete',
  84 + 'id' => $model->feedback_company_id,
  85 + ], [
  86 + 'title' => 'Удалить',
  87 + 'aria-label' => 'Удалить',
  88 + 'data-confirm' => 'Вы уверены, что хотите удалить данную заявку?',
  89 + 'data-method' => 'post',
  90 + 'data-pjax' => 0,
  91 + ]);
  92 + },
  93 + 'read' => function($url, $model, $key) {
  94 + if($model->status == $model::STATUS_NEW) {
  95 + return Html::a(Html::tag('span', '', [
  96 + 'class' => 'glyphicon glyphicon-ok',
  97 + ]), [
  98 + 'accounts/feedback-read',
  99 + 'id' => $model->feedback_company_id,
  100 + ], [
  101 + 'title' => 'Прочесть',
  102 + 'aria-label' => 'Прочесть',
  103 + 'data-confirm' => 'Вы уверены, что хотите отметить заявку прочтенной?',
  104 + 'data-method' => 'post',
  105 + 'data-pjax' => 0,
  106 + ]);
  107 + } else {
  108 + return false;
  109 + }
  110 + },
  111 + ],
  112 + 'template' => '{read}{delete}',
  113 + ],
  114 + ],
  115 + ]); ?>
  116 +</div>
... ...
frontend/views/accounts/general.php
... ... @@ -256,6 +256,7 @@
256 256 ],
257 257  
258 258 ],
  259 + 'remover' => true,
259 260 'multi' => false,
260 261 'gallery' => $user_info->image,
261 262 'name' => 'Выбрать файл',
... ...
frontend/views/accounts/projects.php
... ... @@ -66,7 +66,7 @@
66 66 [
67 67 'attribute' => 'budget',
68 68 'filter' => Html::activeInput('text', $searchModel, 'budget_approx', ['class'=>'form-control']),
69   - 'value' => function($model, $key, $index, $column) {
  69 + 'content' => function($model, $key, $index, $column) {
70 70 /**
71 71 * @var Project $model
72 72 */
... ...
frontend/views/ajax/feedback_form.php
... ... @@ -2,18 +2,18 @@
2 2 /**
3 3 * @var Feedback $model
4 4 */
  5 + use common\models\Feedback;
  6 + use common\modules\fileloader\widgets\FileloaderWidget;
  7 + use yii\helpers\Html;
  8 + use yii\widgets\ActiveForm;
5 9 ?>
6 10 <div id="modal_form_contacts">
7 11 <div class="closed-form"></div>
8 12 <div class="form-resume-wr">
9 13 <div class="form-resume-sub style">Отправить сообщение администрации МФП</div>
10 14 <?php
11   - use common\models\Feedback;
12   - use common\modules\fileloader\widgets\FileloaderWidget;
13   - use yii\helpers\Html;
14   - use yii\widgets\ActiveForm;
15   -
16 15 $form = ActiveForm::begin([
  16 + 'id' => 'feedback_'.\Yii::$app->security->generateRandomString(3),
17 17 'options' => [
18 18 'enctype' => 'multipart/form-data',
19 19 'class' => 'feedback_form',
... ... @@ -34,7 +34,7 @@
34 34 ->label(false)
35 35 ->widget(FileloaderWidget::className(), [
36 36 'labelOptions' => [
37   - 'label' => '<div class="contacts-form-wrapper style"><div class="contacts-form style"><span>Прикрепить файл</span></div><div class="contacts-form-help style"><span>Максимальный размер файла 5 МБ</span></div></div>',
  37 + 'label' => '<div class="contacts-form-wrapper style"><div class="contacts-form style"><span style="font-weight: normal">Прикрепить файл</span></div><div class="contacts-form-help style"><span>Максимальный размер файла 5 МБ</span></div></div>',
38 38 ],
39 39 'inputOptions' => [
40 40 'multiple' => false,
... ...
frontend/views/ajax/project_user.php
... ... @@ -46,10 +46,6 @@
46 46 <span class="project_user_remove" style="background: url('/images/delete-ico.png') no-repeat; width: 13px; height: 13px; display: block; background-size: cover; cursor:pointer"></span>
47 47 </div>
48 48 </div>
49   -
50   -
51   -
52   -
53 49 </div>
54 50 <script>
55 51 var blocks = $('.add_project_user_list .project_user_wrapper')
... ...
frontend/views/ajax/users.php
... ... @@ -22,7 +22,7 @@
22 22 BootstrapPluginAsset::register($this);
23 23 $pjax = Pjax::begin([
24 24 'enablePushState' => false,
25   - 'id' => 'pjax-user',
  25 + 'id' => 'pjax-user_'.\Yii::$app->security->generateRandomString(3),
26 26 ]);
27 27 $js = "$('.user_search_modal_input').tooltip({placement: 'top', title: function() { return $(this).data('error'); }, trigger: 'manual'});
28 28 $('.user_search_modal_input').tooltip('show');";
... ...
frontend/views/chat/message.php
... ... @@ -26,9 +26,15 @@
26 26 <div class="cab-mes-read-cont-stars">
27 27 <?php
28 28 echo StarRating::widget([
29   - 'name' => 'rating_messange',
30   - 'value' => $chat->interlocutor->userInfo->rating,
31   - 'pluginOptions' => ['displayOnly' => true, 'size' => 'xxs']
  29 + 'name' => 'rating_messange',
  30 + 'value' => $chat->interlocutor->userInfo->rating,
  31 + 'pluginOptions' => [
  32 + 'displayOnly' => true,
  33 + 'size' => 'xxs',
  34 + 'min' => 0,
  35 + 'max' => 10,
  36 + 'stars' => 10,
  37 + ],
32 38 ]);
33 39 ?>
34 40 </div>
... ... @@ -47,7 +53,7 @@
47 53 <div class="performance-vacancy-add-favorite">
48 54 <?php
49 55 echo Html::a('', [ '#' ], [
50   - 'class' => $chat->interlocutor->isBookmarked?'artbox_bookmark_remove_performer':'artbox_bookmark_add_performer',
  56 + 'class' => $chat->interlocutor->isBookmarked ? 'artbox_bookmark_remove_performer' : 'artbox_bookmark_add_performer',
51 57 'data' => [ 'id' => $chat->interlocutor->id ],
52 58 ]);
53 59 ?>
... ... @@ -147,7 +153,7 @@
147 153 </div>
148 154 <div class="comment_type">
149 155 <?php $form = ActiveForm::begin([
150   - 'method' => 'post',
  156 + 'method' => 'post',
151 157 'options' => [ 'enctype' => 'multipart/form-data' ],
152 158 ]); ?>
153 159  
... ...
frontend/views/company/_company_common_review.php
... ... @@ -9,9 +9,15 @@
9 9 <?php
10 10 if(!empty( $model->rating )) {
11 11 echo StarRating::widget([
12   - 'name' => 'rating_company_review',
13   - 'value' => $model->rating->value,
14   - 'pluginOptions' => ['displayOnly' => true, 'size' => 'xxs']
  12 + 'name' => 'rating_company_review',
  13 + 'value' => $model->rating->value,
  14 + 'pluginOptions' => [
  15 + 'displayOnly' => true,
  16 + 'size' => 'xxs',
  17 + 'min' => 0,
  18 + 'max' => 10,
  19 + 'stars' => 10,
  20 + ],
15 21 ]);
16 22 }
17 23 ?>
... ...
frontend/views/company/_company_team_review.php
... ... @@ -14,9 +14,15 @@
14 14 <?php
15 15 if(!empty( $model->rating )) {
16 16 echo StarRating::widget([
17   - 'name' => 'rating_company_team',
18   - 'value' => $model->rating->value,
19   - 'pluginOptions' => ['displayOnly' => true, 'size' => 'xxs']
  17 + 'name' => 'rating_company_team',
  18 + 'value' => $model->rating->value,
  19 + 'pluginOptions' => [
  20 + 'displayOnly' => true,
  21 + 'size' => 'xxs',
  22 + 'min' => 0,
  23 + 'max' => 10,
  24 + 'stars' => 10,
  25 + ],
20 26 ]);
21 27 }
22 28 ?>
... ...
frontend/views/company/_feedback_company.php 0 → 100644
  1 +<?php
  2 + /**
  3 + * @var User $company
  4 + * @var User $user
  5 + * @var View $this
  6 + */
  7 + use common\models\FeedbackCompany;
  8 + use common\models\User;
  9 + use yii\helpers\Html;
  10 + use yii\web\View;
  11 + use yii\widgets\ActiveForm;
  12 +
  13 + $user = \Yii::$app->user->identity;
  14 + $model = new FeedbackCompany([ 'user_id' => $company->id ]);
  15 + if(!empty( $user )) {
  16 + $model->name = $user->name;
  17 + $phones = $user->getPhones();
  18 + if(!empty( $phones )) {
  19 + $model->phone = $phones[ 1 ][ 'phone' ];
  20 + }
  21 + }
  22 +?>
  23 + <div class="performance-vacancy-call-back">
  24 + <div class="performance-vacancy-call-back-title">Оставьте заявку<br/>и мы вам перезвоним
  25 + </div>
  26 + <?php
  27 + $form = ActiveForm::begin([
  28 + 'action' => [ 'ajax/feedback-company' ],
  29 + 'method' => 'POST',
  30 + 'options' => [ 'class' => 'callback' ],
  31 + ]);
  32 + echo $form->field($model, 'user_id')
  33 + ->label(false)
  34 + ->hiddenInput();
  35 + echo $form->field($model, 'name', [ 'options' => [ 'class' => 'input-blocks-wrapper' ] ])
  36 + ->textInput([ 'placeholder' => 'Иванов Иван' ]);
  37 + echo $form->field($model, 'phone', [ 'options' => [ 'class' => 'input-blocks-wrapper' ] ])
  38 + ->textInput([ 'placeholder' => '+38(093)111-11-11' ]);
  39 + echo Html::submitInput('Перезвонить мне', [ 'id' => 'feedback_company_submit' ]);
  40 + $form->end();
  41 + ?>
  42 + <div class="performance-vacancy-call-back-conf">Гарантируем конфидециальность</div>
  43 + </div>
  44 +<?php
  45 + $js = "
  46 + $(document).on('click', '#feedback_company_submit', function(e) {
  47 + e.preventDefault();
  48 + var form = $(this).parents('form');
  49 + var action = $(form).attr('action');
  50 + var id = $(form).attr('id');
  51 + $('#'+id).data('yiiActiveForm').submitting = true;
  52 + $('#'+id).yiiActiveForm('validate');
  53 + if($(form).find('.input-blocks-wrapper.has-error').length <= 0) {
  54 + $.post(action, $(form).serialize(), function(data) {
  55 + if(data.error) {
  56 + alert(data.error);
  57 + } else {
  58 + alert(data.result.message);
  59 + document.getElementById(id).reset();
  60 + }
  61 + });
  62 + }
  63 + });
  64 + ";
  65 + $this->registerJs($js);
  66 +?>
0 67 \ No newline at end of file
... ...
frontend/views/company/_portfolio_list_view.php
... ... @@ -15,8 +15,8 @@
15 15 'company/portfolio-view',
16 16 'company_id' => $model->user_id,
17 17 'portfolio_id' => $model->portfolio_id,
18   - 'type' => (!empty($this->params['type']))?$this->params['type']:null,
19   - ])); ?>
  18 + 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
  19 + ]), [ 'data-pjax' => 0 ]); ?>
20 20 </div>
21 21 <div class="portfolio-project-blocks-title-wr">
22 22 <div class="portfolio-project-blocks-title">
... ... @@ -24,8 +24,8 @@
24 24 'company/portfolio-view',
25 25 'company_id' => $model->user_id,
26 26 'portfolio_id' => $model->portfolio_id,
27   - 'type' => (!empty($this->params['type']))?$this->params['type']:null,
28   - ])) ?>
  27 + 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
  28 + ]), [ 'data-pjax' => 0 ]) ?>
29 29 </div>
30 30 </div>
31 31 </div>
... ... @@ -35,21 +35,25 @@
35 35 <div class="portfolio-project-views-img">
36 36 <img src="/images/portfolio-project/ico-1.png"/></div>
37 37 </div>
38   - <div class="portfolio-project-views-txt"><?=$model->view_count?></div>
  38 + <div class="portfolio-project-views-txt"><?= $model->view_count ?></div>
39 39 </div>
40 40 <div class="portfolio-project-rati ico-views-bl">
41 41 <div class="portfolio-project-views-img-wr">
42 42 <div class="portfolio-project-views-img">
43 43 <img src="/images/portfolio-project/ico-2.png"/></div>
44 44 </div>
45   - <div class="portfolio-project-views-txt"><?php if(!empty($model->ratingValue)) { echo $model->ratingValue; } else { echo 'Нет'; } ?></div>
  45 + <div class="portfolio-project-views-txt"><?php if(!empty( $model->ratingValue )) {
  46 + echo $model->ratingValue;
  47 + } else {
  48 + echo 'Нет';
  49 + } ?></div>
46 50 </div>
47 51 <div class="ico-views-bl">
48 52 <div class="portfolio-project-views-img-wr">
49 53 <div class="portfolio-project-views-img">
50 54 <img src="/images/portfolio-project/ico-3.png"/></div>
51 55 </div>
52   - <div class="portfolio-project-views-txt"><?=count($model->comments)?></div>
  56 + <div class="portfolio-project-views-txt"><?= count($model->comments) ?></div>
53 57 </div>
54 58 </div>
55 59 <div title="<?= implode(', ', ArrayHelper::getColumn($model->specializations, 'specialization_name')) ?>" class="portfolio-project-blocks-tags"><?= implode(', ', ArrayHelper::getColumn($model->specializations, 'specialization_name')) ?></div>
... ...
frontend/views/company/gallery.php
... ... @@ -52,7 +52,9 @@
52 52 {
53 53 $('#demo5').scrollbox(
54 54 {
55   - direction : 'h', distance : 220, autoPlay : false
  55 + direction : 'h',
  56 + distance : 220,
  57 + autoPlay : false
56 58 }
57 59 );
58 60 $('#demo5-backward').click(
... ...
frontend/views/company/portfolio-view.php
... ... @@ -78,6 +78,9 @@
78 78 'pluginOptions' => [
79 79 'displayOnly' => true,
80 80 'size' => 'xxs',
  81 + 'min' => 0,
  82 + 'max' => 10,
  83 + 'stars' => 10,
81 84 ],
82 85 ]);
83 86 ?>
... ... @@ -118,7 +121,9 @@
118 121 <?php
119 122 foreach($portfolio->ShowGallery($portfolio->gallery->photo) as $one_photo) {
120 123 ?>
121   - <li><img src="<?= $one_photo ?>" alt=""/></li>
  124 + <li>
  125 + <img src="<?= $portfolio->minImg($one_photo, 210, 150) ?>" alt=""/>
  126 + </li>
122 127 <?php
123 128 }
124 129 ?>
... ... @@ -248,7 +253,10 @@
248 253 {
249 254 $('.new-portf-slider #demo5').scrollbox(
250 255 {
251   - direction : 'h', distance : 210, autoPlay : false, onMouseOverPause : false
  256 + direction : 'h',
  257 + distance : 210,
  258 + autoPlay : false,
  259 + onMouseOverPause : false
252 260 }
253 261 );
254 262 $('#demo5-backward').click(
... ...
frontend/views/layouts/admin.php
... ... @@ -59,7 +59,7 @@
59 59 'active' => preg_match('/^blog.*$/', $this->context->action->id) ? true : false,
60 60 ],
61 61 [
62   - 'label' => 'Галерея Изображения',
  62 + 'label' => 'Галерея Изображений',
63 63 'url' => [ 'accounts/gallery' ],
64 64 'active' => preg_match('/^gallery(?!-video).*$/', $this->context->action->id) ? true : false,
65 65 ],
... ... @@ -110,6 +110,10 @@
110 110 'label' => 'Вакансии',
111 111 'url' => [ 'accounts/vacancy' ],
112 112 'active' => preg_match('/^vacancy.*$/', $this->context->action->id) ? true : false,
  113 + ], [
  114 + 'label' => "Заявки <span class='ico_num'>{$this->params['feedback_company_count']}</span>",
  115 + 'url' => [ 'accounts/feedback-company' ],
  116 + 'encode' => false,
113 117 ]);
114 118  
115 119 }
... ...
frontend/views/layouts/company.php
... ... @@ -19,27 +19,9 @@
19 19 <div class="box-all">
20 20 <?php
21 21 if($this->params[ 'company' ]->id != \Yii::$app->user->getId()) {
22   - ?>
23   - <div class="performance-vacancy-call-back">
24   - <div class="performance-vacancy-call-back-title">Оставьте заявку<br/>и мы вам перезвоним
25   - </div>
26   - <form class="callback" action="">
27   -
28   - <div class="input-blocks-wrapper">
29   - <label for="callbac_name">Имя</label>
30   - <input id="callbac_name" type="text"/>
31   - </div>
32   -
33   - <div class="input-blocks-wrapper">
34   - <label for="callbac_phone">Телефон</label>
35   - <input id="callbac_phone" type="text"/>
36   - </div>
37   -
38   - <input id="callbac_submit" type="submit" value="Перезвонить мне"/>
39   - </form>
40   - <div class="performance-vacancy-call-back-conf">Гарантируем конфидециальность</div>
41   - </div>
42   - <?php
  22 + // Форма "оставить заявку"
  23 + echo $this->render('//company/_feedback_company', [ 'company' => $this->params[ 'company' ] ]);
  24 + // Конец формы "оставить заявку"
43 25 if(!empty( \Yii::$app->user->identity )) {
44 26 ?>
45 27 <div class="performance-vacancy-add-favorite">
... ... @@ -68,79 +50,88 @@
68 50 <div class="box-wr">
69 51 <div class="box-all">
70 52 <?php
71   - echo Menu::widget([
72   - 'options' => [
73   - 'class' => 'menu-content',
74   - ],
75   - 'activeCssClass' => 'active-menu-content',
76   - 'items' => [
77   - [
78   - 'label' => 'Общее',
79   - 'url' => [
80   - 'company/common',
81   - 'company_id' => $this->params[ 'company' ]->id,
82   - 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
83   - ],
  53 + $items = [
  54 + [
  55 + 'label' => 'Общее',
  56 + 'url' => [
  57 + 'company/common',
  58 + 'company_id' => $this->params[ 'company' ]->id,
  59 + 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
84 60 ],
85   - [
86   - 'label' => 'Выполненные работы',
87   - 'url' => [
88   - 'company/portfolio',
89   - 'company_id' => $this->params[ 'company' ]->id,
90   - 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
91   - ],
92   - 'visible' => ( empty( $this->params[ 'type' ] ) || $this->params[ 'type' ] == 'implementer' ) ? true : false,
  61 + ],
  62 + [
  63 + 'label' => 'Выполненные работы',
  64 + 'url' => [
  65 + 'company/portfolio',
  66 + 'company_id' => $this->params[ 'company' ]->id,
  67 + 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
93 68 ],
94   - [
95   - 'label' => 'Заказанные работы',
96   - 'url' => [
97   - 'company/projects',
98   - 'company_id' => $this->params[ 'company' ]->id,
99   - 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
100   - ],
101   - 'visible' => ( !empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'customer' ) ? true : false,
  69 + 'active' => preg_match('/^portfolio.*$/', $this->context->action->id) ? true : false,
  70 + 'visible' => ( empty( $this->params[ 'type' ] ) || $this->params[ 'type' ] == 'implementer' ) ? true : false,
  71 + ],
  72 + [
  73 + 'label' => 'Заказанные работы',
  74 + 'url' => [
  75 + 'company/projects',
  76 + 'company_id' => $this->params[ 'company' ]->id,
  77 + 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
102 78 ],
103   - [
104   - 'label' => 'Команда',
105   - 'url' => [
106   - 'company/team',
107   - 'company_id' => $this->params[ 'company' ]->id,
108   - 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
109   - ],
  79 + 'active' => preg_match('/^projects.*$/', $this->context->action->id) ? true : false,
  80 + 'visible' => ( !empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'customer' ) ? true : false,
  81 + ],
  82 + [
  83 + 'label' => 'Вакансии',
  84 + 'url' => [
  85 + 'company/vacancy-list',
  86 + 'company_id' => $this->params[ 'company' ]->id,
  87 + 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
110 88 ],
111   - [
112   - 'label' => 'Вакансии',
113   - 'url' => [
114   - 'company/vacancy-list',
115   - 'company_id' => $this->params[ 'company' ]->id,
116   - 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
117   - ],
  89 + 'active' => preg_match('/^vacancy.*$/', $this->context->action->id) ? true : false,
  90 + ],
  91 + [
  92 + 'label' => 'Мнения',
  93 + 'url' => [
  94 + 'company/review',
  95 + 'company_id' => $this->params[ 'company' ]->id,
  96 + 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
118 97 ],
119   - [
120   - 'label' => 'Блог',
121   - 'url' => [
122   - 'company/blog-list',
123   - 'company_id' => $this->params[ 'company' ]->id,
124   - 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
  98 + ],
  99 + ];
  100 + if(empty($this->params['type']) || $this->params[ 'type' ] == 'implementer') {
  101 + $items = array_merge($items, [
  102 + [
  103 + 'label' => 'Команда',
  104 + 'url' => [
  105 + 'company/team',
  106 + 'company_id' => $this->params[ 'company' ]->id,
  107 + 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
  108 + ],
125 109 ],
126   - ],
127   - [
128   - 'label' => 'Мнения',
129   - 'url' => [
130   - 'company/review',
131   - 'company_id' => $this->params[ 'company' ]->id,
132   - 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
  110 + [
  111 + 'label' => 'Блог',
  112 + 'url' => [
  113 + 'company/blog-list',
  114 + 'company_id' => $this->params[ 'company' ]->id,
  115 + 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
  116 + ],
  117 + 'active' => preg_match('/^blog.*$/', $this->context->action->id) ? true : false,
133 118 ],
134   - ],
135   - [
136   - 'label' => 'Галерея',
137   - 'url' => [
138   - 'company/gallery',
139   - 'company_id' => $this->params[ 'company' ]->id,
140   - 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
  119 + [
  120 + 'label' => 'Галерея',
  121 + 'url' => [
  122 + 'company/gallery',
  123 + 'company_id' => $this->params[ 'company' ]->id,
  124 + 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
  125 + ],
141 126 ],
142   - ],
  127 + ]);
  128 + }
  129 + echo Menu::widget([
  130 + 'options' => [
  131 + 'class' => 'menu-content',
143 132 ],
  133 + 'activeCssClass' => 'active-menu-content',
  134 + 'items' => $items,
144 135 ]);
145 136 ?>
146 137 </div>
... ... @@ -157,48 +148,64 @@
157 148 <ul>
158 149 <li class="activejob">
159 150 <?php
160   - if(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'implementer') {
161   - echo Html::a('Исполнитель', Url::current([ 'type' => 'implementer' ]));
162   - } elseif(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'customer') {
163   - echo Html::a('Заказчик', Url::current([ 'type' => NULL ]));
  151 + if($this->params[ 'company' ]->userInfo->is_freelancer xor $this->params[ 'company' ]->userInfo->is_customer) {
  152 + if(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'customer') {
  153 + echo Html::tag('span', 'Заказчик', [ 'class' => 'activejob_span' ]);
  154 + } else {
  155 + echo Html::tag('span', 'Исполнитель', [ 'class' => 'activejob_span' ]);
  156 + }
164 157 } else {
165   - echo Html::a('Исполнитель', Url::current([ 'type' => NULL ]));
  158 + if(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'implementer') {
  159 + echo Html::a('Исполнитель', Url::current([ 'type' => 'implementer' ]));
  160 + } elseif(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'customer') {
  161 + echo Html::a('Заказчик', Url::current([ 'type' => NULL ]));
  162 + } else {
  163 + echo Html::a('Исполнитель', Url::current([ 'type' => NULL ]));
  164 + }
  165 + ?>
  166 + <div class="sidebar-droped-wr style">
  167 + <ul>
  168 + <li>
  169 + <?php
  170 + if(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'implementer') {
  171 + echo Html::a('Заказчик', Url::current([ 'type' => 'customer' ]));
  172 + } elseif(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'customer') {
  173 + echo Html::a('Исполнитель', Url::current([ 'type' => NULL ]));
  174 + } else {
  175 + echo Html::a('Заказчик', Url::current([ 'type' => 'customer' ]));
  176 + }
  177 + ?>
  178 + </li>
  179 + <li style="display: none">
  180 + <?php
  181 + if(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'implementer') {
  182 + echo Html::a('Исполнитель', Url::current([ 'type' => 'implementer' ]));
  183 + } elseif(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'customer') {
  184 + echo Html::a('Заказчик', Url::current([ 'type' => NULL ]));
  185 + } else {
  186 + echo Html::a('Исполнитель', Url::current([ 'type' => NULL ]));
  187 + }
  188 + ?>
  189 + </ul>
  190 + </div>
  191 + <?php
166 192 }
167 193 ?>
168   - <div class="sidebar-droped-wr style">
169   - <ul>
170   - <li>
171   - <?php
172   - if(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'implementer') {
173   - echo Html::a('Заказчик', Url::current([ 'type' => 'customer' ]));
174   - } elseif(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'customer') {
175   - echo Html::a('Исполнитель', Url::current([ 'type' => NULL ]));
176   - } else {
177   - echo Html::a('Заказчик', Url::current([ 'type' => 'customer' ]));
178   - }
179   - ?>
180   - </li>
181   - <li style="display: none">
182   - <?php
183   - if(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'implementer') {
184   - echo Html::a('Исполнитель', Url::current([ 'type' => 'implementer' ]));
185   - } elseif(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'customer') {
186   - echo Html::a('Заказчик', Url::current([ 'type' => NULL ]));
187   - } else {
188   - echo Html::a('Исполнитель', Url::current([ 'type' => NULL ]));
189   - }
190   - ?>
191   - </ul>
192   - </div>
193 194 </li>
194 195 </ul>
195 196 </div>
196 197 <div class="performance-vacancy-sidebar-stars style">
197 198 <?php
198 199 echo StarRating::widget([
199   - 'name' => 'rating_company',
200   - 'value' => $this->params[ 'company' ]->userInfo->rating,
201   - 'pluginOptions' => ['displayOnly' => true, 'size' => 'xxs']
  200 + 'name' => 'rating_company',
  201 + 'value' => $this->params[ 'company' ]->userInfo->rating,
  202 + 'pluginOptions' => [
  203 + 'displayOnly' => true,
  204 + 'size' => 'xxs',
  205 + 'min' => 0,
  206 + 'max' => 10,
  207 + 'stars' => 10,
  208 + ],
202 209 ]);
203 210 ?>
204 211 </div>
... ... @@ -213,7 +220,7 @@
213 220 }
214 221 ?>
215 222 </div>
216   - <div class="performer-vacancy-sidebar-img style"><?= Html::img($this->params[ 'company' ]->userInfo->image); ?></div>
  223 + <div class="performer-vacancy-sidebar-img style"><?= Html::img($this->params[ 'company' ]->userInfo->ShowAvatar($this->params[ 'company' ]->userInfo->image, 180,180)); ?></div>
217 224 <div class="performer-vacancy-sidebar-all style">
218 225 <?= $this->render('/patrial/social_list', [
219 226 'params' => $this->params,
... ... @@ -244,11 +251,11 @@
244 251 <div class="sidebarvievstxt">
245 252 <span class="sidebar-views-txt">Сотрудники:<br/></span>
246 253 <?php
247   - if(!empty($this->params[ 'company' ]->companyInfo->staff)) {
248   - echo $this->params[ 'company' ]->companyInfo->staff;
249   - } else {
250   - echo 0;
251   - }
  254 + if(!empty( $this->params[ 'company' ]->companyInfo->staff )) {
  255 + echo $this->params[ 'company' ]->companyInfo->staff;
  256 + } else {
  257 + echo 0;
  258 + }
252 259 ?>
253 260 </div>
254 261 </li>
... ... @@ -294,7 +301,9 @@
294 301 <script>
295 302 $('div.rating').rating(
296 303 {
297   - fx : 'full', readOnly : 'true', url : 'rating.php'
  304 + fx : 'full',
  305 + readOnly : 'true',
  306 + url : 'rating.php'
298 307 }
299 308 );
300 309 </script>
... ...
frontend/views/layouts/gallery-company.php
... ... @@ -16,27 +16,9 @@
16 16 <div class="box-all">
17 17 <?php
18 18 if($this->params[ 'company' ]->id != \Yii::$app->user->getId()) {
19   - ?>
20   - <div class="performance-vacancy-call-back">
21   - <div class="performance-vacancy-call-back-title">Оставьте заявку<br/>и мы вам перезвоним
22   - </div>
23   - <form class="callback" action="">
24   -
25   - <div class="input-blocks-wrapper">
26   - <label for="callbac_name">Имя</label>
27   - <input id="callbac_name" type="text"/>
28   - </div>
29   -
30   - <div class="input-blocks-wrapper">
31   - <label for="callbac_phone">Телефон</label>
32   - <input id="callbac_phone" type="text"/>
33   - </div>
34   -
35   - <input id="callbac_submit" type="submit" value="Перезвонить мне"/>
36   - </form>
37   - <div class="performance-vacancy-call-back-conf">Гарантируем конфидециальность</div>
38   - </div>
39   - <?php
  19 + // Форма "оставить заявку"
  20 + echo $this->render('//company/_feedback_company', [ 'company' => $this->params[ 'company' ] ]);
  21 + // Конец формы "оставить заявку"
40 22 if(!empty( \Yii::$app->user->identity )) {
41 23 ?>
42 24 <div class="performance-vacancy-add-favorite">
... ... @@ -65,38 +47,55 @@
65 47 <div class="box-wr">
66 48 <div class="box-all">
67 49 <?php
68   - echo Menu::widget([
69   - 'options' => [
70   - 'class' => 'menu-content',
  50 + $items = [
  51 + [
  52 + 'label' => 'Общее',
  53 + 'url' => [
  54 + 'company/common',
  55 + 'company_id' => $this->params[ 'company' ]->id,
  56 + 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
  57 + ],
71 58 ],
72   - 'activeCssClass' => 'active-menu-content',
73   - 'items' => [
74   - [
75   - 'label' => 'Общее',
76   - 'url' => [
77   - 'company/common',
78   - 'company_id' => $this->params[ 'company' ]->id,
79   - 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
80   - ],
  59 + [
  60 + 'label' => 'Выполненные работы',
  61 + 'url' => [
  62 + 'company/portfolio',
  63 + 'company_id' => $this->params[ 'company' ]->id,
  64 + 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
81 65 ],
82   - [
83   - 'label' => 'Выполненные работы',
84   - 'url' => [
85   - 'company/portfolio',
86   - 'company_id' => $this->params[ 'company' ]->id,
87   - 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
88   - ],
89   - 'visible' => ( empty( $this->params[ 'type' ] ) || $this->params['type'] == 'implementer' ) ? true : false,
  66 + 'active' => preg_match('/^portfolio.*$/', $this->context->action->id) ? true : false,
  67 + 'visible' => ( empty( $this->params[ 'type' ] ) || $this->params[ 'type' ] == 'implementer' ) ? true : false,
  68 + ],
  69 + [
  70 + 'label' => 'Заказанные работы',
  71 + 'url' => [
  72 + 'company/projects',
  73 + 'company_id' => $this->params[ 'company' ]->id,
  74 + 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
90 75 ],
91   - [
92   - 'label' => 'Заказанные работы',
93   - 'url' => [
94   - 'company/projects',
95   - 'company_id' => $this->params[ 'company' ]->id,
96   - 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
97   - ],
98   - 'visible' => ( !empty( $this->params[ 'type' ] ) && $this->params['type'] == 'customer' ) ? true : false,
  76 + 'active' => preg_match('/^projects.*$/', $this->context->action->id) ? true : false,
  77 + 'visible' => ( !empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'customer' ) ? true : false,
  78 + ],
  79 + [
  80 + 'label' => 'Вакансии',
  81 + 'url' => [
  82 + 'company/vacancy-list',
  83 + 'company_id' => $this->params[ 'company' ]->id,
  84 + 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
99 85 ],
  86 + 'active' => preg_match('/^vacancy.*$/', $this->context->action->id) ? true : false,
  87 + ],
  88 + [
  89 + 'label' => 'Мнения',
  90 + 'url' => [
  91 + 'company/review',
  92 + 'company_id' => $this->params[ 'company' ]->id,
  93 + 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
  94 + ],
  95 + ],
  96 + ];
  97 + if(empty( $this->params[ 'type' ] ) || $this->params[ 'type' ] == 'implementer') {
  98 + $items = array_merge($items, [
100 99 [
101 100 'label' => 'Команда',
102 101 'url' => [
... ... @@ -106,28 +105,13 @@
106 105 ],
107 106 ],
108 107 [
109   - 'label' => 'Вакансии',
110   - 'url' => [
111   - 'company/vacancy-list',
112   - 'company_id' => $this->params[ 'company' ]->id,
113   - 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
114   - ],
115   - ],
116   - [
117 108 'label' => 'Блог',
118 109 'url' => [
119 110 'company/blog-list',
120 111 'company_id' => $this->params[ 'company' ]->id,
121 112 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
122 113 ],
123   - ],
124   - [
125   - 'label' => 'Мнения',
126   - 'url' => [
127   - 'company/review',
128   - 'company_id' => $this->params[ 'company' ]->id,
129   - 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
130   - ],
  114 + 'active' => preg_match('/^blog.*$/', $this->context->action->id) ? true : false,
131 115 ],
132 116 [
133 117 'label' => 'Галерея',
... ... @@ -137,7 +121,14 @@
137 121 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
138 122 ],
139 123 ],
  124 + ]);
  125 + }
  126 + echo Menu::widget([
  127 + 'options' => [
  128 + 'class' => 'menu-content',
140 129 ],
  130 + 'activeCssClass' => 'active-menu-content',
  131 + 'items' => $items,
141 132 ]);
142 133 ?>
143 134 </div>
... ... @@ -154,48 +145,64 @@
154 145 <ul>
155 146 <li class="activejob">
156 147 <?php
157   - if(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'implementer') {
158   - echo Html::a('Исполнитель', Url::current([ 'type' => 'implementer' ]));
159   - } elseif(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'customer') {
160   - echo Html::a('Заказчик', Url::current([ 'type' => NULL ]));
  148 + if($this->params[ 'company' ]->userInfo->is_freelancer xor $this->params[ 'company' ]->userInfo->is_customer) {
  149 + if(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'customer') {
  150 + echo Html::tag('span', 'Заказчик', [ 'class' => 'activejob_span' ]);
  151 + } else {
  152 + echo Html::tag('span', 'Исполнитель', [ 'class' => 'activejob_span' ]);
  153 + }
161 154 } else {
162   - echo Html::a('Исполнитель', Url::current([ 'type' => NULL ]));
  155 + if(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'implementer') {
  156 + echo Html::a('Исполнитель', Url::current([ 'type' => 'implementer' ]));
  157 + } elseif(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'customer') {
  158 + echo Html::a('Заказчик', Url::current([ 'type' => NULL ]));
  159 + } else {
  160 + echo Html::a('Исполнитель', Url::current([ 'type' => NULL ]));
  161 + }
  162 + ?>
  163 + <div class="sidebar-droped-wr style">
  164 + <ul>
  165 + <li>
  166 + <?php
  167 + if(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'implementer') {
  168 + echo Html::a('Заказчик', Url::current([ 'type' => 'customer' ]));
  169 + } elseif(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'customer') {
  170 + echo Html::a('Исполнитель', Url::current([ 'type' => NULL ]));
  171 + } else {
  172 + echo Html::a('Заказчик', Url::current([ 'type' => 'customer' ]));
  173 + }
  174 + ?>
  175 + </li>
  176 + <li style="display: none">
  177 + <?php
  178 + if(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'implementer') {
  179 + echo Html::a('Исполнитель', Url::current([ 'type' => 'implementer' ]));
  180 + } elseif(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'customer') {
  181 + echo Html::a('Заказчик', Url::current([ 'type' => NULL ]));
  182 + } else {
  183 + echo Html::a('Исполнитель', Url::current([ 'type' => NULL ]));
  184 + }
  185 + ?>
  186 + </ul>
  187 + </div>
  188 + <?php
163 189 }
164 190 ?>
165   - <div class="sidebar-droped-wr style">
166   - <ul>
167   - <li>
168   - <?php
169   - if(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'implementer') {
170   - echo Html::a('Заказчик', Url::current([ 'type' => 'customer' ]));
171   - } elseif(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'customer') {
172   - echo Html::a('Исполнитель', Url::current([ 'type' => NULL ]));
173   - } else {
174   - echo Html::a('Заказчик', Url::current([ 'type' => 'customer' ]));
175   - }
176   - ?>
177   - </li>
178   - <li style="display: none">
179   - <?php
180   - if(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'implementer') {
181   - echo Html::a('Исполнитель', Url::current([ 'type' => 'implementer' ]));
182   - } elseif(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'customer') {
183   - echo Html::a('Заказчик', Url::current([ 'type' => NULL ]));
184   - } else {
185   - echo Html::a('Исполнитель', Url::current([ 'type' => NULL ]));
186   - }
187   - ?>
188   - </ul>
189   - </div>
190 191 </li>
191 192 </ul>
192 193 </div>
193 194 <div class="performance-vacancy-sidebar-stars style">
194 195 <?php
195 196 echo StarRating::widget([
196   - 'name' => 'rating_company',
197   - 'value' => $this->params[ 'company' ]->userInfo->rating,
198   - 'pluginOptions' => ['displayOnly' => true, 'size' => 'xxs']
  197 + 'name' => 'rating_company',
  198 + 'value' => $this->params[ 'company' ]->userInfo->rating,
  199 + 'pluginOptions' => [
  200 + 'displayOnly' => true,
  201 + 'size' => 'xxs',
  202 + 'min' => 0,
  203 + 'max' => 10,
  204 + 'stars' => 10,
  205 + ],
199 206 ]);
200 207 ?>
201 208 </div>
... ... @@ -211,7 +218,7 @@
211 218 ?>
212 219 </div>
213 220 <div class="performer-vacancy-sidebar-img style">
214   - <?= Html::img($this->params[ 'company' ]->userInfo->image); ?>
  221 + <?= Html::img($this->params[ 'company' ]->userInfo->ShowAvatar($this->params[ 'company' ]->userInfo->image, 180,180)); ?>
215 222 </div>
216 223 </div>
217 224 </div>
... ... @@ -229,7 +236,9 @@
229 236 <script>
230 237 $('div.rating').rating(
231 238 {
232   - fx : 'full', readOnly : 'true', url : 'rating.php'
  239 + fx : 'full',
  240 + readOnly : 'true',
  241 + url : 'rating.php'
233 242 }
234 243 );
235 244 </script>
... ...
frontend/views/layouts/gallery.php
... ... @@ -2,16 +2,16 @@
2 2  
3 3 use kartik\rating\StarRating;
4 4 use yii\helpers\Html;
5   -use yii\helpers\Url;
6   -use yii\widgets\Breadcrumbs;
7   -use yii\widgets\Menu;
  5 + use yii\helpers\Url;
  6 + use yii\widgets\Breadcrumbs;
  7 + use yii\widgets\Menu;
8 8  
9   -\frontend\assets\AppAsset::register($this);
10   -/* @var $content string */
11   -$this->beginContent('@app/views/layouts/main.php');
  9 + \frontend\assets\AppAsset::register($this);
  10 + /* @var $content string */
  11 + $this->beginContent('@app/views/layouts/main.php');
12 12 ?>
13 13 <div class="section-box content">
14   - <div class="section-box-16" style="background: url('<?= $this->params['user']->userInfo->poster;?>') 50% no-repeat">
  14 + <div class="section-box-16" style="background: url('<?= $this->params[ 'user' ]->userInfo->poster; ?>') 50% no-repeat">
15 15 <div class="box-wr">
16 16 <div class="box-all">
17 17 <div class="blog-buttons-wr style">
... ... @@ -64,39 +64,44 @@ $this-&gt;beginContent(&#39;@app/views/layouts/main.php&#39;);
64 64 'url' => [
65 65 'performer/common',
66 66 'performer_id' => $this->params[ 'user' ]->id,
67   - 'type' => (!empty($this->params['type']))?$this->params['type']:null,
  67 + 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
68 68 ],
69 69 ],
70 70 [
71   - 'label' => 'Портфолио',
72   - 'url' => [
  71 + 'label' => 'Портфолио',
  72 + 'url' => [
73 73 'performer/portfolio',
74 74 'performer_id' => $this->params[ 'user' ]->id,
75   - 'type' => (!empty($this->params['type']))?$this->params['type']:null,
  75 + 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
76 76 ],
  77 + 'visible' => ( empty( $this->params[ 'type' ] ) || $this->params[ 'type' ] == 'implementer' ) ? true : false,
  78 + 'active' => preg_match('/^portfolio.*$/', $this->context->action->id) ? true : false,
77 79 ],
78 80 [
79   - 'label' => 'Заказанные работы',
80   - 'url' => [
  81 + 'label' => 'Заказанные работы',
  82 + 'url' => [
81 83 'performer/projects',
82 84 'performer_id' => $this->params[ 'user' ]->id,
83   - 'type' => (!empty($this->params['type']))?$this->params['type']:null,
  85 + 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
84 86 ],
  87 + 'visible' => ( !empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'customer' ) ? true : false,
  88 + 'active' => preg_match('/^projects.*$/', $this->context->action->id) ? true : false,
85 89 ],
86 90 [
87 91 'label' => 'Блог',
88 92 'url' => [
89 93 'performer/blog-list',
90 94 'performer_id' => $this->params[ 'user' ]->id,
91   - 'type' => (!empty($this->params['type']))?$this->params['type']:null,
  95 + 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
92 96 ],
  97 + 'active' => preg_match('/^blog.*$/', $this->context->action->id) ? true : false,
93 98 ],
94 99 [
95 100 'label' => 'Мнения',
96 101 'url' => [
97 102 'performer/review',
98 103 'performer_id' => $this->params[ 'user' ]->id,
99   - 'type' => (!empty($this->params['type']))?$this->params['type']:null,
  104 + 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
100 105 ],
101 106 ],
102 107 [
... ... @@ -104,7 +109,7 @@ $this-&gt;beginContent(&#39;@app/views/layouts/main.php&#39;);
104 109 'url' => [
105 110 'performer/workplace',
106 111 'performer_id' => $this->params[ 'user' ]->id,
107   - 'type' => (!empty($this->params['type']))?$this->params['type']:null,
  112 + 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
108 113 ],
109 114 ],
110 115 [
... ... @@ -112,7 +117,7 @@ $this-&gt;beginContent(&#39;@app/views/layouts/main.php&#39;);
112 117 'url' => [
113 118 'performer/gallery',
114 119 'performer_id' => $this->params[ 'user' ]->id,
115   - 'type' => (!empty($this->params['type']))?$this->params['type']:null,
  120 + 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
116 121 ],
117 122 ],
118 123 ],
... ... @@ -127,53 +132,69 @@ $this-&gt;beginContent(&#39;@app/views/layouts/main.php&#39;);
127 132 <div class="performer-vacancy-sidebar-left-wr gallery-page-sidebar">
128 133 <div class="performer-vacancy-sidebar-left">
129 134 <div class="performance-vacancy-sidebar-company-wr">
130   - <div class="performance-vacancy-sidebar-company-title style"><?=$this->params['user']->name?></div>
  135 + <div class="performance-vacancy-sidebar-company-title style"><?= $this->params[ 'user' ]->name ?></div>
131 136 <div class="performance-vacancy-sidebar-company-job style">
132 137 <ul>
133 138 <li class="activejob">
134 139 <?php
135   - if(!empty($this->params['type']) && $this->params['type'] == 'implementer') {
136   - echo Html::a('Исполнитель', Url::current(['type' => 'implementer']));
137   - } elseif(!empty($this->params['type']) && $this->params['type'] == 'customer') {
138   - echo Html::a('Заказчик', Url::current(['type' => null]));
  140 + if($this->params[ 'user' ]->userInfo->is_freelancer xor $this->params[ 'user' ]->userInfo->is_customer) {
  141 + if(!empty($this->params[ 'type' ]) && $this->params[ 'type' ] == 'customer') {
  142 + echo Html::tag('span', 'Заказчик', [ 'class' => 'activejob_span' ]);
  143 + } else {
  144 + echo Html::tag('span', 'Исполнитель', [ 'class' => 'activejob_span' ]);
  145 + }
139 146 } else {
140   - echo Html::a('Исполнитель', Url::current(['type' => null]));
  147 + if(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'implementer') {
  148 + echo Html::a('Исполнитель', Url::current([ 'type' => 'implementer' ]));
  149 + } elseif(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'customer') {
  150 + echo Html::a('Заказчик', Url::current([ 'type' => NULL ]));
  151 + } else {
  152 + echo Html::a('Исполнитель', Url::current([ 'type' => NULL ]));
  153 + }
  154 + ?>
  155 + <div class="sidebar-droped-wr style">
  156 + <ul>
  157 + <li>
  158 + <?php
  159 + if(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'implementer') {
  160 + echo Html::a('Заказчик', Url::current([ 'type' => 'customer' ]));
  161 + } elseif(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'customer') {
  162 + echo Html::a('Исполнитель', Url::current([ 'type' => NULL ]));
  163 + } else {
  164 + echo Html::a('Заказчик', Url::current([ 'type' => 'customer' ]));
  165 + }
  166 + ?>
  167 + </li>
  168 + <li style="display: none">
  169 + <?php
  170 + if(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'implementer') {
  171 + echo Html::a('Исполнитель', Url::current([ 'type' => 'implementer' ]));
  172 + } elseif(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'customer') {
  173 + echo Html::a('Заказчик', Url::current([ 'type' => NULL ]));
  174 + } else {
  175 + echo Html::a('Исполнитель', Url::current([ 'type' => NULL ]));
  176 + }
  177 + ?>
  178 + </ul>
  179 + </div>
  180 + <?php
141 181 }
142 182 ?>
143   - <div class="sidebar-droped-wr style">
144   - <ul>
145   - <li>
146   - <?php
147   - if(!empty($this->params['type']) && $this->params['type'] == 'implementer') {
148   - echo Html::a('Заказчик', Url::current(['type' => 'customer']));
149   - } elseif(!empty($this->params['type']) && $this->params['type'] == 'customer') {
150   - echo Html::a('Исполнитель', Url::current(['type' => null]));
151   - } else {
152   - echo Html::a('Заказчик', Url::current(['type' => 'customer']));
153   - }
154   - ?>
155   - </li>
156   - <li style="display: none">
157   - <?php
158   - if(!empty($this->params['type']) && $this->params['type'] == 'implementer') {
159   - echo Html::a('Исполнитель', Url::current(['type' => 'implementer']));
160   - } elseif(!empty($this->params['type']) && $this->params['type'] == 'customer') {
161   - echo Html::a('Заказчик', Url::current(['type' => null]));
162   - } else {
163   - echo Html::a('Исполнитель', Url::current(['type' => null]));
164   - }
165   - ?>
166   - </ul>
167   - </div>
168 183 </li>
169 184 </ul>
170 185 </div>
171 186 <div class="performance-vacancy-sidebar-stars style">
172 187 <?php
173 188 echo StarRating::widget([
174   - 'name' => 'rating_company',
175   - 'value' => $this->params[ 'user' ]->userInfo->rating,
176   - 'pluginOptions' => ['displayOnly' => true, 'size' => 'xxs']
  189 + 'name' => 'rating_company',
  190 + 'value' => $this->params[ 'user' ]->userInfo->rating,
  191 + 'pluginOptions' => [
  192 + 'displayOnly' => true,
  193 + 'size' => 'xxs',
  194 + 'min' => 0,
  195 + 'max' => 10,
  196 + 'stars' => 10,
  197 + ],
177 198 ]);
178 199 ?>
179 200 </div>
... ... @@ -189,7 +210,7 @@ $this-&gt;beginContent(&#39;@app/views/layouts/main.php&#39;);
189 210 ?>
190 211 </div>
191 212 <div class="performer-vacancy-sidebar-img style">
192   - <?= Html::img($this->params['user']->userInfo->image);?>
  213 + <?= Html::img($this->params[ 'user' ]->userInfo->image); ?>
193 214 </div>
194 215 </div>
195 216 </div>
... ... @@ -205,11 +226,13 @@ $this-&gt;beginContent(&#39;@app/views/layouts/main.php&#39;);
205 226 </div>
206 227 </div>
207 228 <script>
208   - $('div.rating').rating({
209   - fx: 'full',
210   - readOnly: 'true',
211   - url: 'rating.php'
212   - });
  229 + $('div.rating').rating(
  230 + {
  231 + fx : 'full',
  232 + readOnly : 'true',
  233 + url : 'rating.php'
  234 + }
  235 + );
213 236 </script>
214 237  
215 238 <?php $this->endContent() ?>
216 239 \ No newline at end of file
... ...
frontend/views/layouts/main.php
1 1 <?php
2 2  
3   -/* @var $this \yii\web\View */
4   -/* @var $content string */
  3 + /* @var $this \yii\web\View */
  4 + /* @var $content string */
5 5  
6   -use yii\helpers\Html;
7   -use yii\widgets\Menu;
8   -use frontend\assets\AppAsset;
9   -AppAsset::register($this);
  6 + use common\modules\comment\models\CommentProject;
  7 + use yii\helpers\Html;
  8 + use yii\helpers\Url;
  9 + use yii\widgets\Menu;
  10 + use frontend\assets\AppAsset;
  11 +
  12 + AppAsset::register($this);
10 13 ?>
11 14  
12 15 <?php $this->beginPage() ?>
... ... @@ -18,8 +21,6 @@ AppAsset::register($this);
18 21 <head>
19 22  
20 23  
21   -
22   -
23 24 <meta charset="<?= Yii::$app->charset ?>">
24 25  
25 26 <?= Html::csrfMetaTags() ?>
... ... @@ -39,32 +40,36 @@ AppAsset::register($this);
39 40 <a href="/"><img class="logo" src="/images/logo.png" width="100" height="68" alt=""/></a>
40 41 <div class="header-proektant-slogan">Международная Федерация Проектантов</div>
41 42 <ul class="header-contacts-menu">
42   - <li><span><img src="/images/icon_question_01.png" alt=""/></span><?= Html::a('Задать вопрос','', ['class' =>'contactsLinkModalFirst'])?></li>
43   - <li><span><img src="/images/icon_help_01.png" alt=""/></span><?= Html::a('Помощь',['/site/help'], ['class' =>'contactsLinkModal'])?></li>
  43 + <li>
  44 + <span><img src="/images/icon_question_01.png" alt=""/></span><?= Html::a('Задать вопрос', '', [ 'class' => 'contactsLinkModalFirst' ]) ?>
  45 + </li>
  46 + <li>
  47 + <span><img src="/images/icon_help_01.png" alt=""/></span><?= Html::a('Помощь', [ '/site/help' ], [ 'class' => 'contactsLinkModal' ]) ?>
  48 + </li>
44 49 </ul>
45 50 <div class="header-cabinet-wr">
46 51 <?php
47   - if (Yii::$app->user->isGuest): ?>
48   - <div class="header-cabinet-foto">
  52 + if(Yii::$app->user->isGuest): ?>
  53 + <div class="header-cabinet-foto">
49 54  
50   - </div>
51   - <div class="header-cabinet-profile not-login">Профиль</div>
52   - <div>
53   - <?= Html::a('Вход',['/site/login'], ['class'=>'loginLinkModal']) ?>
54   - <?= Html::a('Регистрация',['/site/registration']) ?>
55   - </div>
  55 + </div>
  56 + <div class="header-cabinet-profile not-login">Профиль</div>
  57 + <div>
  58 + <?= Html::a('Вход', [ '/site/login' ], [ 'class' => 'loginLinkModal' ]) ?>
  59 + <?= Html::a('Регистрация', [ '/site/registration' ]) ?>
  60 + </div>
56 61  
57   - <?php else : ?>
58   - <div class="header-cabinet-foto">
59   - <?php
60   - if(!empty(\Yii::$app->user->identity->userInfo->image)) {
61   - echo Html::img(Yii::$app->user->identity->minImg(Yii::$app->user->identity->userInfo->image,48,48));
62   - }
63   - ?>
64   - </div>
65   - <div class="header-cabinet-profile">Профиль</div>
66   - <?= Html::a(Yii::$app->user->identity->email,['/accounts']) ?>
67   - <?php endif; ?>
  62 + <?php else : ?>
  63 + <div class="header-cabinet-foto">
  64 + <?php
  65 + if(!empty( \Yii::$app->user->identity->userInfo->image )) {
  66 + echo Html::img(Yii::$app->user->identity->minImg(Yii::$app->user->identity->userInfo->image, 48, 48));
  67 + }
  68 + ?>
  69 + </div>
  70 + <div class="header-cabinet-profile">Профиль</div>
  71 + <?= Html::a(Yii::$app->user->identity->email, [ '/accounts' ]) ?>
  72 + <?php endif; ?>
68 73  
69 74 </div>
70 75 </div>
... ... @@ -82,18 +87,18 @@ AppAsset::register($this);
82 87  
83 88 <li>
84 89 <?php
85   - if(\Yii::$app->user->isGuest) {
86   - echo Html::a('Войти в профиль', ['site/login']);
87   - } else {
88   - echo Html::a('Редактировать профиль', ['accounts/']);
89   - }
  90 + if(\Yii::$app->user->isGuest) {
  91 + echo Html::a('Войти в профиль', [ 'site/login' ]);
  92 + } else {
  93 + echo Html::a('Редактировать профиль', [ 'accounts/' ]);
  94 + }
90 95 ?>
91 96 </li>
92 97 </ul>
93 98 <ul>
94   - <li><?= Html::a(Yii::t('app', 'Project list'), ['search/project'])?></li>
95   - <li><?= Html::a('Список вакансий', ['search/vacancy'])?></li>
96   - <li><?= Html::a('Список заказчиков', ['search/customer'])?></li>
  99 + <li><?= Html::a(Yii::t('app', 'Project list'), [ 'search/project' ]) ?></li>
  100 + <li><?= Html::a('Список вакансий', [ 'search/vacancy' ]) ?></li>
  101 + <li><?= Html::a('Список заказчиков', [ 'search/customer' ]) ?></li>
97 102 </ul>
98 103 </div>
99 104 </li>
... ... @@ -102,13 +107,19 @@ AppAsset::register($this);
102 107 <div class="main-menu-hover">
103 108 <ul>
104 109  
105   - <li><?= Html::a(Yii::t('app', 'Add project'), ['accounts/projects-create'])?></li>
106   - <li><?= Html::a('Разместить вакансию', ['accounts/vacancy'])?></li>
  110 + <li><?= Html::a(Yii::t('app', 'Add project'), [ 'accounts/projects-create' ]) ?></li>
  111 + <li><?= Html::a('Разместить вакансию', [ 'accounts/vacancy' ]) ?></li>
107 112 </ul>
108 113 <ul>
109 114  
110   - <li><?= Html::a('Список проектантов', ['search/performer','SearchPerformerForm[type]'=>'1'])?></li>
111   - <li><?= Html::a('Список проектных компаний', ['search/performer','SearchPerformerForm[type]'=>'2'])?></li>
  115 + <li><?= Html::a('Список проектантов', [
  116 + 'search/performer',
  117 + 'SearchPerformerForm[type]' => '1',
  118 + ]) ?></li>
  119 + <li><?= Html::a('Список проектных компаний', [
  120 + 'search/performer',
  121 + 'SearchPerformerForm[type]' => '2',
  122 + ]) ?></li>
112 123 </ul>
113 124 </div>
114 125 </li>
... ... @@ -117,28 +128,28 @@ AppAsset::register($this);
117 128 <div class="main-menu-hover">
118 129 <ul>
119 130  
120   - <li><?= Html::a(Yii::t('app', 'Add project'), ['accounts/projects-create'])?></li>
121   - <li><?= Html::a('Разместить вакансию', ['accounts/vacancy-create'])?></li>
122   - <li><?= Html::a('Редактировать портфолио', ['accounts/portfolio'])?></li>
  131 + <li><?= Html::a(Yii::t('app', 'Add project'), [ 'accounts/projects-create' ]) ?></li>
  132 + <li><?= Html::a('Разместить вакансию', [ 'accounts/vacancy-create' ]) ?></li>
  133 + <li><?= Html::a('Редактировать портфолио', [ 'accounts/portfolio' ]) ?></li>
123 134 </ul>
124 135 <ul>
125   - <li><?= Html::a('Список проектантов', ['search/performer'])?></li>
126   - <li><?= Html::a(Yii::t('app', 'Project list'), ['search/project'])?></li>
127   - <li><?= Html::a('Список заказчиков', ['search/customer'])?></li>
  136 + <li><?= Html::a('Список проектантов', [ 'search/performer' ]) ?></li>
  137 + <li><?= Html::a(Yii::t('app', 'Project list'), [ 'search/project' ]) ?></li>
  138 + <li><?= Html::a('Список заказчиков', [ 'search/customer' ]) ?></li>
128 139 </ul>
129 140 </div>
130 141 </li>
131 142 </ul>
132 143  
133 144 <div class="search-main-menu">
134   - <form action="">
135   - <input value="" name="" type="search"/>
136   - <input type="hidden" value="1" name="" />
  145 + <form action="<?= Url::to([ 'search/common' ]) ?>" method="get">
  146 + <input value="" name="query" type="text"/>
  147 + <input type="hidden" value="1" name="action"/>
137 148 <button type="submit" value=""></button>
138 149 <div class="search-list">
139   - <span><?=Yii::t('app', 'Projects')?></span>
  150 + <span><?= Yii::t('app', 'Projects') ?></span>
140 151 <ul class="search-ul">
141   - <li><?=Yii::t('app', 'Projects')?></li>
  152 + <li><?= Yii::t('app', 'Projects') ?></li>
142 153 <li>Исполнители</li>
143 154 <li>Заказчики</li>
144 155 </ul>
... ... @@ -148,25 +159,25 @@ AppAsset::register($this);
148 159 <?php
149 160 if(!\Yii::$app->user->isGuest) {
150 161 echo Menu::widget([
151   - 'options' => [
152   - 'tag' => 'div',
  162 + 'options' => [
  163 + 'tag' => 'div',
153 164 'class' => 'main-menu-icons-wr',
154 165 ],
155 166 'itemOptions' => [
156 167 'tag' => false,
157 168 ],
158   - 'items' => [
  169 + 'items' => [
159 170 [
160   - 'url' => ['/projects'],
161   - 'template' => '<a href="{url}" class="main-menu-icons-home"><span>'.count(\Yii::$app->user->identity->commentProjects).'</span></a>',
  171 + 'url' => [ '/projects' ],
  172 + 'template' => '<a href="{url}" class="main-menu-icons-home"><span>' . count(\Yii::$app->user->identity->commentProjectsActive) . '</span></a>',
162 173 ],
163 174 [
164   - 'url' => ['chat/list'],
165   - 'template' => '<a href="{url}" class="main-menu-icons-edit"><span>'.\Yii::$app->user->identity->chatCount.'</span></a>',
  175 + 'url' => [ 'chat/list' ],
  176 + 'template' => '<a href="{url}" class="main-menu-icons-edit"><span>' . \Yii::$app->user->identity->newMessagesCount . '</span></a>',
166 177 ],
167 178 [
168   - 'url' => ['/bookmarks'],
169   - 'template' => "<a href='{url}' class='main-menu-icons-copy'><span>".count(\Yii::$app->user->identity->bookmarks)."</span></a>",
  179 + 'url' => [ '/bookmarks' ],
  180 + 'template' => "<a href='{url}' class='main-menu-icons-copy'><span>" . count(\Yii::$app->user->identity->bookmarks) . "</span></a>",
170 181 ],
171 182 ],
172 183 ]);
... ... @@ -189,70 +200,81 @@ AppAsset::register($this);
189 200 <div class="footer-all-wr">
190 201 <div class="footer-menu-wrapper first-footer-menu">
191 202 <?php
  203 + $items = [
  204 + [
  205 + 'label' => Yii::t('app', 'Projects'),
  206 + 'url' => [ 'search/project' ],
  207 + ],
  208 + [
  209 + 'label' => 'Вакансии',
  210 + 'url' => [ 'search/vacancy' ],
  211 + ],
  212 + [
  213 + 'label' => 'Рейтинг проектантов',
  214 + 'url' => [ 'search/performer' ],
  215 + ],
  216 + ];
  217 + if(empty( \Yii::$app->user->id )) {
  218 + array_unshift($items, [
  219 + 'label' => 'Регистрация проектанта',
  220 + 'url' => [ '/site/registration' ],
  221 + ]);
  222 + }
192 223 echo Menu::widget([
193 224 'options' => [
194 225 'class' => 'footer-menu',
195 226 ],
196   - 'items' => [
197   - [
198   - 'label' => 'Регистрация проектанта',
199   - 'url' => ['site/signup'],
200   - ],
201   - [
202   - 'label' => Yii::t('app', 'Projects'),
203   - 'url' => ['search/project'],
204   - ],
205   - [
206   - 'label' => 'Вакансии',
207   - 'url' => ['search/vacancy'],
208   - ],
209   - [
210   - 'label' => 'Рейтинг проектантов',
211   - 'url' => ['search/performer'],
212   - ],
213   - ]
  227 + 'items' => $items,
214 228 ]);
  229 + unset( $items );
215 230 ?>
216 231 </div>
217 232  
218 233 <div class="footer-menu-wrapper second-footer-menu">
219 234 <?php
  235 + $items = [
  236 + [
  237 + 'label' => 'Рейтинг компаний',
  238 + 'url' => [
  239 + 'search/performer',
  240 + 'SearchPerformerForm[type]' => 2,
  241 + ],
  242 + ],
  243 + ];
  244 + if(empty( \Yii::$app->user->id )) {
  245 + array_unshift($items, [
  246 + 'label' => 'Регистрация заказчика',
  247 + 'url' => [ '/site/registration' ],
  248 + ]);
  249 + }
220 250 echo Menu::widget([
221 251 'options' => [
222 252 'class' => 'footer-menu',
223 253 ],
224   - 'items' => [
225   - [
226   - 'label' => 'Регистрация заказчика',
227   - 'url' => ['site/signup'],
228   - ],
229   - [
230   - 'label' => 'Рейтинг компаний',
231   - 'url' => ['search/index'],
232   - ],
233   - ]
  254 + 'items' => $items,
234 255 ]);
  256 + unset( $items );
235 257 ?>
236 258 <div class="footer-menu-project">
237 259 <?php
238 260 echo Menu::widget([
239   - 'options' => [
240   - 'tag' => 'div',
  261 + 'options' => [
  262 + 'tag' => 'div',
241 263 'class' => 'footer-menu-project-ico',
242 264 ],
243 265 'encodeLabels' => false,
244   - 'itemOptions' => [
  266 + 'itemOptions' => [
245 267 'tag' => false,
246 268 ],
247 269 'linkTemplate' => '<a target="_blank" href="{url}">{label}</a>',
248   - 'items' => [
  270 + 'items' => [
249 271 [
250 272 'label' => "<img src='/images/soc-ico-1.png' alt=''/>",
251   - 'url' => 'http://rss.com',
  273 + 'url' => 'http://rss.com',
252 274 ],
253 275 [
254 276 'label' => "<img src='/images/soc-ico-2.png' alt=''/>",
255   - 'url' => 'http://twitter.com',
  277 + 'url' => 'http://twitter.com',
256 278 ],
257 279 ],
258 280 ]);
... ... @@ -263,49 +285,56 @@ AppAsset::register($this);
263 285  
264 286 <div class="footer-menu-wrapper third-footer-menu">
265 287 <?php
266   - echo Menu::widget([
267   - 'options' => [
268   - 'class' => 'footer-menu',
269   - ],
270   - 'items' => [
271   - [
272   - 'label' => 'Регистрация компаний',
273   - 'url' => ['site/signup'],
274   - ],
  288 + $items = [
275 289 [
276 290 'label' => 'Рейтинг компаний',
277   - 'url' => ['search/company'],
  291 + 'url' => [
  292 + 'search/performer',
  293 + 'SearchPerformerForm[type]' => 2,
  294 + ],
278 295 ],
279   - ]
280   - ]);
281   - ?>
282   - <div class="footer-menu-project-two">
283   - <?php
  296 + ];
  297 + if(empty( \Yii::$app->user->id )) {
  298 + array_unshift($items, [
  299 + 'label' => 'Регистрация компаний',
  300 + 'url' => [ '/site/registration' ],
  301 + ]);
  302 + }
284 303 echo Menu::widget([
285 304 'options' => [
286   - 'tag' => 'div',
287   - 'class' => 'footer-menu-project-ico',
288   - ],
289   - 'encodeLabels' => false,
290   - 'itemOptions' => [
291   - 'tag' => false,
  305 + 'class' => 'footer-menu',
292 306 ],
293   - 'linkTemplate' => '<a target="_blank" href="{url}">{label}</a>',
294   - 'items' => [
295   - [
296   - 'label' => "<img src='/images/soc-ico-3.png' alt=''/>",
297   - 'url' => 'http://fb.com',
  307 + 'items' => $items,
  308 + ]);
  309 + unset( $items );
  310 + ?>
  311 + <div class="footer-menu-project-two">
  312 + <?php
  313 + echo Menu::widget([
  314 + 'options' => [
  315 + 'tag' => 'div',
  316 + 'class' => 'footer-menu-project-ico',
298 317 ],
299   - [
300   - 'label' => "<img src='/images/soc-ico-4.png' alt=''/>",
301   - 'url' => 'http://vk.com',
  318 + 'encodeLabels' => false,
  319 + 'itemOptions' => [
  320 + 'tag' => false,
302 321 ],
303   - [
304   - 'label' => "<img src='/images/soc-ico-5.png' alt=''/>",
305   - 'url' => 'http://plus.google.com',
  322 + 'linkTemplate' => '<a target="_blank" href="{url}">{label}</a>',
  323 + 'items' => [
  324 + [
  325 + 'label' => "<img src='/images/soc-ico-3.png' alt=''/>",
  326 + 'url' => 'http://fb.com',
  327 + ],
  328 + [
  329 + 'label' => "<img src='/images/soc-ico-4.png' alt=''/>",
  330 + 'url' => 'http://vk.com',
  331 + ],
  332 + [
  333 + 'label' => "<img src='/images/soc-ico-5.png' alt=''/>",
  334 + 'url' => 'http://plus.google.com',
  335 + ],
306 336 ],
307   - ],
308   - ]);
  337 + ]);
309 338 ?>
310 339 <div class="footer-menu-project-ico-txt">новости сервера</div>
311 340 </div>
... ... @@ -313,41 +342,43 @@ AppAsset::register($this);
313 342  
314 343 <div class="footer-menu-wrapper last-footer-menu">
315 344 <?php
316   - echo Menu::widget([
317   - 'options' => [
318   - 'class' => 'footer-menu',
319   - ],
320   - 'items' => [
321   - [
322   - 'label' => 'Русский',
323   - 'url' => [' ']
324   - ],
325   - [
326   - 'label' => 'Конфиденциальность',
327   - 'url' => [' ']
328   - ],
329   - [
330   - 'label' => 'Условия использования',
331   - 'url' => [' ']
332   - ],
333   - [
334   - 'label' => 'Файлы cookie',
335   - 'url' => [' ']
336   - ],
337   - [
338   - 'label' => 'Реклама',
339   - 'url' => [' ']
340   - ],
341   - [
342   - 'label' => 'Ad Choices',
343   - 'url' => [' ']
  345 + /* No content
  346 + echo Menu::widget([
  347 + 'options' => [
  348 + 'class' => 'footer-menu',
344 349 ],
345   - [
346   - 'label' => 'Еще',
347   - 'url' => [' ']
  350 + 'items' => [
  351 + [
  352 + 'label' => 'Русский',
  353 + 'url' => [ ' ' ],
  354 + ],
  355 + [
  356 + 'label' => 'Конфиденциальность',
  357 + 'url' => [ ' ' ],
  358 + ],
  359 + [
  360 + 'label' => 'Условия использования',
  361 + 'url' => [ ' ' ],
  362 + ],
  363 + [
  364 + 'label' => 'Файлы cookie',
  365 + 'url' => [ ' ' ],
  366 + ],
  367 + [
  368 + 'label' => 'Реклама',
  369 + 'url' => [ ' ' ],
  370 + ],
  371 + [
  372 + 'label' => 'Ad Choices',
  373 + 'url' => [ ' ' ],
  374 + ],
  375 + [
  376 + 'label' => 'Еще',
  377 + 'url' => [ ' ' ],
  378 + ],
348 379 ],
349   - ]
350   - ]);
  380 + ]);
  381 + */
351 382 ?>
352 383 </div>
353 384  
... ... @@ -365,7 +396,7 @@ AppAsset::register($this);
365 396 <div class="artweb-wr">
366 397 <a target="_blank" href="http://artweb.ua/">Создание сайтов</a>
367 398 <div class="artweb-img">
368   - <a target="_blank" href="http://artweb.ua/"><img src="/images/artweb.png" /></a>
  399 + <a target="_blank" href="http://artweb.ua/"><img src="/images/artweb.png"/></a>
369 400 </div>
370 401 </div>
371 402 </div>
... ...
frontend/views/layouts/performer.php
... ... @@ -80,6 +80,7 @@
80 80 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
81 81 ],
82 82 'visible' => ( empty( $this->params[ 'type' ] ) || $this->params[ 'type' ] == 'implementer' ) ? true : false,
  83 + 'active' => preg_match('/^portfolio.*$/', $this->context->action->id) ? true : false,
83 84 ],
84 85 [
85 86 'label' => 'Заказанные работы',
... ... @@ -89,6 +90,7 @@
89 90 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
90 91 ],
91 92 'visible' => ( !empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'customer' ) ? true : false,
  93 + 'active' => preg_match('/^projects.*$/', $this->context->action->id) ? true : false,
92 94 ],
93 95 [
94 96 'label' => 'Блог',
... ... @@ -97,6 +99,7 @@
97 99 'performer_id' => $this->params[ 'user' ]->id,
98 100 'type' => ( !empty( $this->params[ 'type' ] ) ) ? $this->params[ 'type' ] : NULL,
99 101 ],
  102 + 'active' => preg_match('/^blog.*$/', $this->context->action->id) ? true : false,
100 103 ],
101 104 [
102 105 'label' => 'Мнения',
... ... @@ -139,48 +142,64 @@
139 142 <ul>
140 143 <li class="activejob">
141 144 <?php
142   - if(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'implementer') {
143   - echo Html::a('Исполнитель', Url::current([ 'type' => 'implementer' ]));
144   - } elseif(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'customer') {
145   - echo Html::a('Заказчик', Url::current([ 'type' => NULL ]));
  145 + if($this->params[ 'user' ]->userInfo->is_freelancer xor $this->params[ 'user' ]->userInfo->is_customer) {
  146 + if(!empty($this->params[ 'type' ]) && $this->params[ 'type' ] == 'customer') {
  147 + echo Html::tag('span', 'Заказчик', [ 'class' => 'activejob_span' ]);
  148 + } else {
  149 + echo Html::tag('span', 'Исполнитель', [ 'class' => 'activejob_span' ]);
  150 + }
146 151 } else {
147   - echo Html::a('Исполнитель', Url::current([ 'type' => NULL ]));
  152 + if(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'implementer') {
  153 + echo Html::a('Исполнитель', Url::current([ 'type' => 'implementer' ]));
  154 + } elseif(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'customer') {
  155 + echo Html::a('Заказчик', Url::current([ 'type' => NULL ]));
  156 + } else {
  157 + echo Html::a('Исполнитель', Url::current([ 'type' => NULL ]));
  158 + }
  159 + ?>
  160 + <div class="sidebar-droped-wr style">
  161 + <ul>
  162 + <li>
  163 + <?php
  164 + if(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'implementer') {
  165 + echo Html::a('Заказчик', Url::current([ 'type' => 'customer' ]));
  166 + } elseif(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'customer') {
  167 + echo Html::a('Исполнитель', Url::current([ 'type' => NULL ]));
  168 + } else {
  169 + echo Html::a('Заказчик', Url::current([ 'type' => 'customer' ]));
  170 + }
  171 + ?>
  172 + </li>
  173 + <li style="display: none">
  174 + <?php
  175 + if(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'implementer') {
  176 + echo Html::a('Исполнитель', Url::current([ 'type' => 'implementer' ]));
  177 + } elseif(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'customer') {
  178 + echo Html::a('Заказчик', Url::current([ 'type' => NULL ]));
  179 + } else {
  180 + echo Html::a('Исполнитель', Url::current([ 'type' => NULL ]));
  181 + }
  182 + ?>
  183 + </ul>
  184 + </div>
  185 + <?php
148 186 }
149 187 ?>
150   - <div class="sidebar-droped-wr style">
151   - <ul>
152   - <li>
153   - <?php
154   - if(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'implementer') {
155   - echo Html::a('Заказчик', Url::current([ 'type' => 'customer' ]));
156   - } elseif(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'customer') {
157   - echo Html::a('Исполнитель', Url::current([ 'type' => NULL ]));
158   - } else {
159   - echo Html::a('Заказчик', Url::current([ 'type' => 'customer' ]));
160   - }
161   - ?>
162   - </li>
163   - <li style="display: none">
164   - <?php
165   - if(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'implementer') {
166   - echo Html::a('Исполнитель', Url::current([ 'type' => 'implementer' ]));
167   - } elseif(!empty( $this->params[ 'type' ] ) && $this->params[ 'type' ] == 'customer') {
168   - echo Html::a('Заказчик', Url::current([ 'type' => NULL ]));
169   - } else {
170   - echo Html::a('Исполнитель', Url::current([ 'type' => NULL ]));
171   - }
172   - ?>
173   - </ul>
174   - </div>
175 188 </li>
176 189 </ul>
177 190 </div>
178 191 <div class="performance-vacancy-sidebar-stars style">
179 192 <?php
180 193 echo StarRating::widget([
181   - 'name' => 'rating_company',
182   - 'value' => $this->params[ 'user' ]->userInfo->rating,
183   - 'pluginOptions' => ['displayOnly' => true, 'size' => 'xxs']
  194 + 'name' => 'rating_company',
  195 + 'value' => $this->params[ 'user' ]->userInfo->rating,
  196 + 'pluginOptions' => [
  197 + 'displayOnly' => true,
  198 + 'size' => 'xxs',
  199 + 'min' => 0,
  200 + 'max' => 10,
  201 + 'stars' => 10,
  202 + ],
184 203 ]);
185 204 ?>
186 205 </div>
... ... @@ -260,7 +279,7 @@
260 279 <span class="sidebar-views-txt">Стоимость работ:<br/></span>
261 280 <?php
262 281 if(!empty( $this->params[ 'user' ]->userInfo->salary )) {
263   - echo 'от '.$this->params[ 'user' ]->userInfo->salary . ' ' . $this->params[ 'user' ]->userInfo->currency->label.' за час';
  282 + echo 'от ' . $this->params[ 'user' ]->userInfo->salary . ' ' . $this->params[ 'user' ]->userInfo->currency->label . ' за час';
264 283 } else {
265 284 echo 'Не указано';
266 285 }
... ... @@ -308,7 +327,9 @@
308 327 <script>
309 328 $('div.rating').rating(
310 329 {
311   - fx : 'full', readOnly : 'true', url : 'rating.php'
  330 + fx : 'full',
  331 + readOnly : 'true',
  332 + url : 'rating.php'
312 333 }
313 334 );
314 335 </script>
... ...
frontend/views/performer/common.php
... ... @@ -10,7 +10,7 @@
10 10 * @var array $developments
11 11 * @var array $educations
12 12 * @var array $courses
13   - * @var int[] $geography
  13 + * @var int[] $geography
14 14 */
15 15 $this->params[ 'user' ] = $user;
16 16  
... ... @@ -23,10 +23,10 @@
23 23 if(!$first) {
24 24 $geographyString .= ', ';
25 25 }
26   - $geographyString .= $city . ' ('.$count.')';
  26 + $geographyString .= $city . ' (' . $count . ')';
27 27 $first = 0;
28 28 }
29   - unset($first);
  29 + unset( $first );
30 30 ?>
31 31 <div class="proektant-profile-content">
32 32 <?php
... ... @@ -236,11 +236,17 @@
236 236 <div class="company-performer-comments-bl">
237 237 <?php
238 238 if(!empty( $user->comments[ $i ]->rating )) {
239   - echo StarRating::widget([
240   - 'name' => 'rating_common',
241   - 'value' => $user->comments[ $i ]->rating->value,
242   - 'pluginOptions' => ['displayOnly' => true, 'size' => 'xxs']
243   - ]);
  239 + echo StarRating::widget([
  240 + 'name' => 'rating_common',
  241 + 'value' => $user->comments[ $i ]->rating->value,
  242 + 'pluginOptions' => [
  243 + 'displayOnly' => true,
  244 + 'size' => 'xxs',
  245 + 'min' => 0,
  246 + 'max' => 10,
  247 + 'stars' => 10,
  248 + ],
  249 + ]);
244 250 }
245 251 ?>
246 252 <div class="company-performer-comments-autor">Мнение от: <?= $user->comments[ $i ]->getAuthor(' (Гость)') ?></div>
... ...
frontend/views/performer/gallery.php
... ... @@ -9,31 +9,35 @@
9 9 $this->params[ 'user' ] = $user;
10 10 $this->title = 'My Yii Application';
11 11 ?>
12   -<div class="video-performer-wrapper style">
13   - <div class="gallery-title">Видео: <?= count($videos) ?></div>
14   - <div class="slider-video-wr">
15   - <div id="demo5" class="scroll-img video-slider">
16   - <ul>
17   - <?php foreach($videos as $video): ?>
18   - <li>
19   - <div class="iframe-video">
20   - <iframe width="560" height="320" src="<?= $video[ 'youtube' ] ?>" frameborder="0" allowfullscreen></iframe>
21   - </div>
  12 +<?php
  13 + if(!empty( $videos )) {
  14 + ?>
  15 + <div class="video-performer-wrapper style">
  16 + <div class="gallery-title">Видео: <?= count($videos) ?></div>
  17 + <div class="slider-video-wr">
  18 + <div id="demo5" class="scroll-img video-slider">
  19 + <ul>
  20 + <?php foreach($videos as $video): ?>
  21 + <li>
  22 + <div class="iframe-video">
  23 + <iframe width="560" height="320" src="<?= $video[ 'youtube' ] ?>" frameborder="0" allowfullscreen></iframe>
  24 + </div>
22 25  
23   - <a href="#"></a><span></span>
24   - </li>
25   - <?php endforeach; ?>
  26 + <a href="#"></a><span></span>
  27 + </li>
  28 + <?php endforeach; ?>
26 29  
27   - </ul>
28   - </div>
29   - <div id="demo5-btn" class="text-center">
30   - <button class="btn" id="demo5-backward"></button>
31   - <button class="btn" id="demo5-forward"></button>
  30 + </ul>
  31 + </div>
  32 + <div id="demo5-btn" class="text-center">
  33 + <button class="btn" id="demo5-backward"></button>
  34 + <button class="btn" id="demo5-forward"></button>
  35 + </div>
  36 + </div>
32 37 </div>
33   - </div>
34   -
35   -
36   -</div>
  38 + <?php
  39 + }
  40 +?>
37 41 <div class="gallery-performer-wrapper style">
38 42 <div class="gallery-performer-margin">
39 43 <?= ListView::widget([
... ... @@ -50,7 +54,9 @@
50 54 {
51 55 $('#demo5').scrollbox(
52 56 {
53   - direction : 'h', distance : 220, autoPlay : false
  57 + direction : 'h',
  58 + distance : 220,
  59 + autoPlay : false
54 60 }
55 61 );
56 62 $('#demo5-backward').click(
... ...
frontend/views/performer/portfolio-view.php
... ... @@ -80,6 +80,9 @@
80 80 'pluginOptions' => [
81 81 'displayOnly' => true,
82 82 'size' => 'xxs',
  83 + 'min' => 0,
  84 + 'max' => 10,
  85 + 'stars' => 10,
83 86 ],
84 87 ]);
85 88 ?>
... ... @@ -120,7 +123,9 @@
120 123 <?php
121 124 foreach($portfolio->ShowGallery($portfolio->gallery->photo) as $one_photo) {
122 125 ?>
123   - <li><img src="<?= $portfolio->minImg($one_photo, 210, 150) ?>" alt=""/></li>
  126 + <li>
  127 + <img src="<?= $portfolio->minImg($one_photo, 210, 150) ?>" alt=""/>
  128 + </li>
124 129 <?php
125 130 }
126 131 ?>
... ... @@ -171,8 +176,13 @@
171 176 <div class="new-portf-slider-wr style">
172 177 <p>Участники проекта:</p>
173 178 <?php
174   - foreach($portfolio->portfolioUsers as $portfolioUser) {
175   - $gallery = $portfolio->ShowGallery($portfolioUser->gallery->photo);
  179 + foreach($portfolio->getPortfolioUsers()
  180 + ->where([ 'status' => 1 ])
  181 + ->with('gallery')
  182 + ->all() as $portfolioUser) {
  183 + if(!empty( $portfolioUser->gallery )) {
  184 + $gallery = $portfolio->ShowGallery($portfolioUser->gallery->photo);
  185 + }
176 186 ?>
177 187 <a href="<?= Url::to([
178 188 'performer/portfolio-view',
... ... @@ -251,7 +261,10 @@
251 261 {
252 262 $('.new-portf-slider #demo5').scrollbox(
253 263 {
254   - direction : 'h', distance : 230, autoPlay : false, onMouseOverPause : false
  264 + direction : 'h',
  265 + distance : 230,
  266 + autoPlay : false,
  267 + onMouseOverPause : false
255 268 }
256 269 );
257 270 $('#demo5-backward').click(
... ... @@ -268,8 +281,9 @@
268 281 );
269 282 var widthSlider = $('.new-portf-slider ul li').length
270 283 $('.new-portf-slider ul').css({width : ((widthSlider * 230) - 20)})
271   - if (widthSlider<=3) {
272   - $('#demo5-forward, #demo5-backward').css({display:'none'})
  284 + if(widthSlider <= 3)
  285 + {
  286 + $('#demo5-forward, #demo5-backward').css({display : 'none'})
273 287 }
274 288 }
275 289 );
... ...
frontend/views/search/_customer_list_view.php
... ... @@ -31,27 +31,33 @@
31 31 </div>
32 32 <div class="search_perform-stars-wr">
33 33  
34   - <?php
35   - if($rating = $model->userInfo->rating) {
36   - echo StarRating::widget([
37   - 'name' => 'rating_customer',
38   - 'value' => $rating,
39   - 'pluginOptions' => [
40   - 'displayOnly' => true,
41   - 'size' => 'xxs',
42   - ],
43   - ]);
44   - } else {
45   - echo StarRating::widget([
46   - 'name' => 'rating_customer',
47   - 'value' => 0,
48   - 'pluginOptions' => [
49   - 'displayOnly' => true,
50   - 'size' => 'xxs',
51   - ],
52   - ]);
53   - }
54   - ?>
  34 + <?php
  35 + if($rating = $model->userInfo->rating) {
  36 + echo StarRating::widget([
  37 + 'name' => 'rating_customer',
  38 + 'value' => $rating,
  39 + 'pluginOptions' => [
  40 + 'displayOnly' => true,
  41 + 'size' => 'xxs',
  42 + 'min' => 0,
  43 + 'max' => 10,
  44 + 'stars' => 10,
  45 + ],
  46 + ]);
  47 + } else {
  48 + echo StarRating::widget([
  49 + 'name' => 'rating_customer',
  50 + 'value' => 0,
  51 + 'pluginOptions' => [
  52 + 'displayOnly' => true,
  53 + 'size' => 'xxs',
  54 + 'min' => 0,
  55 + 'max' => 10,
  56 + 'stars' => 10,
  57 + ],
  58 + ]);
  59 + }
  60 + ?>
55 61  
56 62 <div class="search_perform-stars-txt">
57 63 <?= count($model->comments) ?> отзывов
... ...
frontend/views/search/_performer_list_view.php
... ... @@ -16,7 +16,7 @@
16 16 ->limit(4)
17 17 ->all(), 'cover'); ?>
18 18 <?php
19   - if(!empty($portfolios)) {
  19 + if(!empty( $portfolios )) {
20 20 for($i = 0; $i < count($portfolios); $i++) {
21 21 if($i) {
22 22 echo Html::a(Html::img($portfolios[ $i ]), '#', [ 'class' => 'small-img-search gallery-box-min' ]);
... ... @@ -61,9 +61,15 @@
61 61 <div>
62 62 <?php
63 63 echo StarRating::widget([
64   - 'name' => 'rating_performer',
65   - 'value' => $model->userInfo->rating,
66   - 'pluginOptions' => ['displayOnly' => true, 'size' => 'xxs']
  64 + 'name' => 'rating_performer',
  65 + 'value' => $model->userInfo->rating,
  66 + 'pluginOptions' => [
  67 + 'displayOnly' => true,
  68 + 'size' => 'xxs',
  69 + 'min' => 0,
  70 + 'max' => 10,
  71 + 'stars' => 10,
  72 + ],
67 73 ]);
68 74 ?>
69 75 </div>
... ... @@ -111,7 +117,10 @@
111 117 'data-id' => $model->id,
112 118 ]);
113 119 }
114   - echo Html::a(Yii::t('app', 'Offer project'), ['#'], ['class' => 'get-project', 'data' => ['performer-id' => $model->id]]);
  120 + echo Html::a(Yii::t('app', 'Offer project'), [ '#' ], [
  121 + 'class' => 'get-project',
  122 + 'data' => [ 'performer-id' => $model->id ],
  123 + ]);
115 124 }
116 125 ?>
117 126 </div>
... ...
frontend/views/search/_vacancy_list_view.php
... ... @@ -30,9 +30,9 @@
30 30 <div class="performer-vacant-reclam-bl-content">
31 31 <span><?= TextHelper::truncateHtmlText($model->description, 200, '...') ?></span>
32 32 <?= Html::a('<img src="/images/performar_vacancy/arrow-post.png" alt=""/>', [
33   - 'vacancy-view',
  33 + 'company/vacancy-view',
34 34 'company_id' => $model->user_id,
35   - 'vacancy_id' => $model->vacancy_id,
  35 + 'link' => $model->link,
36 36 ], [ 'class' => 'performer-vacant-reclam-bl-content-read' ]) ?>
37 37 </div>
38 38 </div>
39 39 \ No newline at end of file
... ...
frontend/views/search/project.php
... ... @@ -30,6 +30,11 @@
30 30 'options' => [ 'class' => 'search-work-form' ],
31 31 'action' => [ '' ],
32 32 ]);
  33 + echo $form->field($model, 'info', [ 'options' => [ 'class' => 'info-search-input' ] ])
  34 + ->label('Поиск')
  35 + ->textInput([ 'class' => 'form-control',
  36 + 'placeholder' => 'Текст для поиска',
  37 + ]);
33 38 echo $form->field($model, 'specialization')
34 39 ->dropDownList($specialization, [ 'prompt' => 'Любая' ]);
35 40  
... ... @@ -74,7 +79,7 @@
74 79 'template' => "{input}\n{label}\n{hint}\n{error}",
75 80 'options' => [ 'class' => 'blocks-check-list' ],
76 81 ])
77   - ->label("<span></span>{$model->getAttributeLabel('contractual')}", ['class' => ''])
  82 + ->label("<span></span>{$model->getAttributeLabel('contractual')}", [ 'class' => '' ])
78 83 ->checkbox([ ], false) ?>
79 84 <?= $form->field($model, 'payment', [ 'template' => "{input}\n{error}" ])
80 85 ->checkboxList($payments, [
... ... @@ -94,93 +99,7 @@
94 99 </div>
95 100 <?php
96 101 $form->end();
97   - /*
98 102 ?>
99   - <form action="" class="search-work-form">
100   -
101   - <div class="blocks-check-list-wrapp">
102   - <div class="blocks-check-title">Профиль</div>
103   - <div class="blocks-check-list-wrapp">
104   - <select>
105   - <option selected disabled>Дизайн</option>
106   - <option value="">Ландшафтный дизайн</option>
107   - <option value="">Интерьерный дизайн</option>
108   - </select>
109   - </div>
110   -
111   - <div class="blocks-check-list-wrapp">
112   - <select>
113   - <option selected disabled>Архитектура</option>
114   - <option value="">Ландшафтный дизайн</option>
115   - <option value="">Интерьерный дизайн</option>
116   - </select>
117   - </div>
118   -
119   - <div class="blocks-check-list-wrapp">
120   - <select>
121   - <option selected disabled>Строительство</option>
122   - <option value="">Ландшафтный дизайн</option>
123   - <option value="">Интерьерный дизайн</option>
124   - </select>
125   - </div>
126   - </div>
127   -
128   - <div class="blocks-check-list-wrapp">
129   - <div class="blocks-check-title">Регион</div>
130   - <select>
131   - <option selected value="">Все страны</option>
132   - <option style="color: #000; font-weight: bold !important;" value="">Украина</option>
133   - <option value="">Россия</option>
134   - <option value="">Белорусь</option>
135   - </select>
136   - </div>
137   - <div class="blocks-check-list-wrapp">
138   - <select id="theme-1">
139   - <option selected disabled>Город</option>
140   - <option value="">Все</option>
141   - <option value="">Киев</option>
142   - <option value="">Житомир</option>
143   - <option value="">Львов</option>
144   - <option value="">Киев</option>
145   - <option value="">Житомир</option>
146   - <option value="">Львов</option>
147   - </select>
148   - </div>
149   -
150   - <div class="blocks-check-list-wrapp">
151   - <div class="blocks-check-title">Бюджет</div>
152   - <div class="form-price-wr">
153   - <input type="text" placeholder="от"/>
154   - <input type="text" placeholder="до"/>
155   - <div class="blocks-check-list-wrapp check-valuta">
156   - <select>
157   - <option selected>грн</option>
158   - <option value="">$</option>
159   - <option value="">eur</option>
160   - </select>
161   - </div>
162   - </div>
163   - <div class="blocks-check-list">
164   - <input type="checkbox" name="group2" class="check-search" id="theme-4"><label for="theme-4"><span></span>Договорной</label>
165   - </div>
166   - <div class="blocks-check-list">
167   - <input type="checkbox" name="group2" class="check-search" id="theme-5"><label for="theme-5"><span></span>Компании</label>
168   - </div>
169   - <div class="blocks-check-list">
170   - <input type="checkbox" name="group2" class="check-search" id="theme-6"><label for="theme-6"><span></span>Проектанты</label>
171   - </div>
172   - <div class="blocks-check-list">
173   - <input checked type="checkbox" name="group2" class="check-search" id="theme-7"><label for="theme-7"><span></span>Все</label>
174   - </div>
175   - </div>
176   -
177   -
178   - <a href="#" class="reset-filter">Сбросить фильтр</a>
179   - <div class="blocks-check-list-submit">
180   - <input type="submit" value="Найти"/>
181   - </div>
182   - </form>
183   - */ ?>
184 103 </div>
185 104 <div class="right-search-work">
186 105 <div class="search-worker-title style">Сейчас <?= $dataProvider->totalCount ?> предложений</div>
... ... @@ -197,7 +116,9 @@
197 116 </div>
198 117 </div>
199 118 <div>
  119 + <?php
200 120  
  121 + ?>
201 122 <div class="section-box" style="height: 720px; overflow: hidden">
202 123 <div class="map-settings-opacity"></div>
203 124 <div class="map-settings-wrapp">
... ... @@ -226,7 +147,7 @@
226 147 </ul>
227 148 <ul class="min_markers_two">
228 149 <li><span><img src="/images/markers/marker-min-10.png"/></span>
229   - <p><?=Yii::t('app', 'projects')?></p></li>
  150 + <p><?= Yii::t('app', 'projects') ?></p></li>
230 151 <li><span><img src="/images/markers/marker-min-11.png"/></span>
231 152 <p>подряды</p></li>
232 153 </ul>
... ... @@ -240,12 +161,16 @@
240 161 var start_position = new google.maps.LatLng('56', '30');
241 162 var settings = {
242 163 zoom : 7, // scrollwheel: false,
243   - center : start_position, mapTypeControl : false,
  164 + center : start_position,
  165 + mapTypeControl : false,
244 166 mapTypeControlOptions : {style : google.maps.MapTypeControlStyle.DROPDOWN_MENU},
245 167 navigationControl : false,
246 168 navigationControlOptions : {style : google.maps.NavigationControlStyle.SMALL},
247   - scaleControl : false, streetViewControl : false, rotateControl : false,
248   - zoomControl : false, mapTypeId : google.maps.MapTypeId.ROADMAP
  169 + scaleControl : false,
  170 + streetViewControl : false,
  171 + rotateControl : false,
  172 + zoomControl : false,
  173 + mapTypeId : google.maps.MapTypeId.ROADMAP
249 174 };
250 175 var map = new google.maps.Map(document.getElementById("map_canvas"), settings);
251 176  
... ... @@ -308,45 +233,57 @@
308 233  
309 234 var marker = new google.maps.Marker(
310 235 {
311   - position : new google.maps.LatLng('56', '35.3'), map : map,
312   - title : 'Marker Title2', icon : image1
  236 + position : new google.maps.LatLng('56', '35.3'),
  237 + map : map,
  238 + title : 'Marker Title2',
  239 + icon : image1
313 240 }
314 241 );
315 242 markers.push(marker);
316 243  
317 244 var marker = new google.maps.Marker(
318 245 {
319   - position : new google.maps.LatLng('56', '36'), map : map,
320   - title : 'Marker Title2', icon : image2
  246 + position : new google.maps.LatLng('56', '36'),
  247 + map : map,
  248 + title : 'Marker Title2',
  249 + icon : image2
321 250 }
322 251 );
323 252 markers.push(marker);
324 253  
325 254 var marker = new google.maps.Marker(
326 255 {
327   - position : new google.maps.LatLng('56', '34.5'), map : map,
328   - title : 'Marker Title3', icon : image18
  256 + position : new google.maps.LatLng('56', '34.5'),
  257 + map : map,
  258 + title : 'Marker Title3',
  259 + icon : image18
329 260 }
330 261 );
331 262 markers.push(marker);
332 263  
333 264 var marker = new google.maps.Marker(
334 265 {
335   - position : new google.maps.LatLng('56', '35'), map : map,
336   - title : 'Marker Title4', icon : image13
  266 + position : new google.maps.LatLng('56', '35'),
  267 + map : map,
  268 + title : 'Marker Title4',
  269 + icon : image13
337 270 }
338 271 );
339 272 markers.push(marker);
340 273  
341 274 var clusterStyles = [
342 275 {
343   - url : '/images/markers/clasters.png', height : 36, width : 36
  276 + url : '/images/markers/clasters.png',
  277 + height : 36,
  278 + width : 36
344 279 }
345 280  
346 281 ];
347 282 markerClusterer = new MarkerClusterer(
348 283 map, markers, {
349   - maxZoom : 10, gridSize : 100, styles : clusterStyles
  284 + maxZoom : 10,
  285 + gridSize : 100,
  286 + styles : clusterStyles
350 287 }
351 288 );
352 289 //балун
... ... @@ -365,6 +302,10 @@
365 302 </script>
366 303 </div>
367 304 <div id="map_canvas" style="width: 100%; height:100%;"></div>
  305 + <?php
  306 +
  307 + /* Решено убрать нижний слайдер
  308 + ?>
368 309 <div class="slider_map-wr">
369 310 <div class="slider_map_overlay"></div>
370 311 <div class="slider_map">
... ... @@ -456,7 +397,10 @@
456 397 </div>
457 398 </div>
458 399 </div>
459   - </div>
460   -
  400 + <?php
  401 + */
  402 + ?>
461 403 </div>
  404 +
  405 +</div>
462 406 </div>
... ...
frontend/views/site/index.php
1 1 <?php
2 2 use \yii\helpers\Html;
3 3 use \common\models\Specialization;
4   -
5 4 /**
6 5 * @var $this yii\web\View
7 6 * @var $specializations common\models\Specialization
8 7 */
9   -
10 8 $this->title = 'My Yii Application';
11 9 ?>
12 10 <div class="section-box-1">
... ... @@ -108,6 +106,7 @@
108 106 <li class="federation-home-list-active"><span>Заказчикам</span></li>
109 107 <li><span>Компаниям</span></li>
110 108 <li><span>Проектантам</span></li>
  109 + <li><span>Проекту</span></li>
111 110 <li><span>Наша миссия</span></li>
112 111 </ul>
113 112 </div>
... ... @@ -117,16 +116,19 @@
117 116 <div class="federation-home-ico"><img src="/images/ico-fed-1.png" alt=""/>
118 117 </div>
119 118 <div class="federation-home-text">Описания рейтингов</div>
  119 + <div class="federation-home-text-two">Для поиска лучших Команд или Проектантов </div>
120 120 </div>
121 121 <div class="federation-home-blocks">
122 122 <div class="federation-home-ico"><img src="/images/ico-fed-2.png" alt=""/>
123 123 </div>
124 124 <div class="federation-home-text">Вы получаете лучшую цену</div>
  125 + <div class="federation-home-text-two">Для понимания специализации Компании или Проектанта, с которой работает или будет работать</div>
125 126 </div>
126 127 <div class="federation-home-blocks">
127 128 <div class="federation-home-ico"><img src="/images/ico-fed-3.png" alt=""/>
128 129 </div>
129 130 <div class="federation-home-text">Гарантии получения проекта в срок</div>
  131 + <div class="federation-home-text-two">Для оценки рисков при выборе исполнителя</div>
130 132 </div>
131 133 </div>
132 134  
... ... @@ -135,16 +137,19 @@
135 137 <div class="federation-home-ico"><img src="/images/ico-fed-1.png" alt=""/>
136 138 </div>
137 139 <div class="federation-home-text">2Описания рейтингов</div>
  140 + <div class="federation-home-text-two">Формирование имиджа Компании и узнаваемости Заказчиками и ведущими Проектантами</div>
138 141 </div>
139 142 <div class="federation-home-blocks">
140 143 <div class="federation-home-ico"><img src="/images/ico-fed-2.png" alt=""/>
141 144 </div>
142 145 <div class="federation-home-text">2Вы получаете лучшую цену</div>
  146 + <div class="federation-home-text-two">Для синергии с партнерами и поиска лучших Проектантов в Команду</div>
143 147 </div>
144 148 <div class="federation-home-blocks">
145 149 <div class="federation-home-ico"><img src="/images/ico-fed-3.png" alt=""/>
146 150 </div>
147 151 <div class="federation-home-text">2Гарантии получения проекта в срок</div>
  152 + <div class="federation-home-text-two">Формирования Лучшей Команды за Проектантами которой прейдут Заказчики</div>
148 153 </div>
149 154 </div>
150 155  
... ... @@ -153,16 +158,19 @@
153 158 <div class="federation-home-ico"><img src="/images/ico-fed-1.png" alt=""/>
154 159 </div>
155 160 <div class="federation-home-text">3Описания рейтингов</div>
  161 + <div class="federation-home-text-two">Для оценки уровня Опыта в специализации</div>
156 162 </div>
157 163 <div class="federation-home-blocks">
158 164 <div class="federation-home-ico"><img src="/images/ico-fed-2.png" alt=""/>
159 165 </div>
160 166 <div class="federation-home-text">3Вы получаете лучшую цену</div>
  167 + <div class="federation-home-text-two">Для представления себя Рынку как профессионала в определенной области</div>
161 168 </div>
162 169 <div class="federation-home-blocks">
163 170 <div class="federation-home-ico"><img src="/images/ico-fed-3.png" alt=""/>
164 171 </div>
165 172 <div class="federation-home-text">3Гарантии получения проекта в срок</div>
  173 + <div class="federation-home-text-two">Для поиска Проектов в которых можно реализовать себя</div>
166 174 </div>
167 175 </div>
168 176  
... ... @@ -171,17 +179,44 @@
171 179 <div class="federation-home-ico"><img src="/images/ico-fed-1.png" alt=""/>
172 180 </div>
173 181 <div class="federation-home-text">4Описания рейтингов</div>
  182 + <div class="federation-home-text-two">Качество. Чем профессиональней будут исполнители, тем лучше будут приняты решения для проекта</div>
174 183 </div>
175 184 <div class="federation-home-blocks">
176 185 <div class="federation-home-ico"><img src="/images/ico-fed-2.png" alt=""/>
177 186 </div>
178 187 <div class="federation-home-text">4Вы получаете лучшую цену</div>
  188 + <div class="federation-home-text-two">Цена. Чем меньше будет ошибок, тем более рентабельным будет Проект и окажется цена</div>
179 189 </div>
180 190 <div class="federation-home-blocks">
181 191 <div class="federation-home-ico"><img src="/images/ico-fed-3.png" alt=""/>
182 192 </div>
183 193 <div class="federation-home-text">4Гарантии получения проекта в срок</div>
  194 + <div class="federation-home-text-two">Скорость. Чем слаженней будет командная работа профессионалов, тем выше будет скорость</div>
  195 + </div>
  196 + </div>
  197 +
  198 + <div class="federation-home-blocks-wr-blocks">
  199 +
  200 + <div class="federation-home-blocks">
  201 + <div class="federation-home-ico"><img src="/images/ico-fed-1.png" alt=""/>
  202 + </div>
  203 + <div class="federation-home-text">Знание</div>
  204 +<!-- <div class="federation-home-text-two">Помочь профессиональному Проектанту (PRO=Знание*Опыт*Продуктивность) реализовать лучший(Качество) Проект(Опыт) в постоянно развивающейся и продуктивной (Скорость) Компании(Команде) для понимающих(не жадных, лучших - ) Заказчиков.</div>-->
184 205 </div>
  206 + <div class="federation-home-blocks">
  207 + <div class="federation-home-ico"><img src="/images/ico-fed-2.png" alt=""/>
  208 + </div>
  209 + <div class="federation-home-text">Опыт</div>
  210 +<!-- <div class="federation-home-text-two">Постоянное развитие Рынка Проектантов и поддержка их профессионального роста</div>-->
  211 + </div>
  212 + <div class="federation-home-blocks">
  213 + <div class="federation-home-ico"><img src="/images/ico-fed-3.png" alt=""/>
  214 + </div>
  215 + <div class="federation-home-text">Продуктивность</div>
  216 +<!-- <div class="federation-home-text-two"></div>-->
  217 + </div>
  218 +
  219 + <div class="style new_txt_fed_home">Помочь профессиональному Проектанту реализовать лучший Проект в постоянно развивающейся и продуктивной Компании для понимающих Заказчиков</div>
185 220 </div>
186 221 </div>
187 222 </div>
... ...
frontend/views/tender/view.php
... ... @@ -67,6 +67,9 @@
67 67 'pluginOptions' => [
68 68 'displayOnly' => true,
69 69 'size' => 'xxs',
  70 + 'min' => 0,
  71 + 'max' => 10,
  72 + 'stars' => 10,
70 73 ],
71 74 ]);
72 75 ?>
... ... @@ -209,13 +212,18 @@
209 212 {
210 213 var start_position = new google.maps.LatLng('56', '30');
211 214 var settings = {
212   - zoom : 7, scrollwheel : false, center : start_position,
  215 + zoom : 7,
  216 + scrollwheel : false,
  217 + center : start_position,
213 218 mapTypeControl : false,
214 219 mapTypeControlOptions : {style : google.maps.MapTypeControlStyle.DROPDOWN_MENU},
215 220 navigationControl : false,
216 221 navigationControlOptions : {style : google.maps.NavigationControlStyle.SMALL},
217   - scaleControl : false, streetViewControl : false, rotateControl : false,
218   - zoomControl : true, mapTypeId : google.maps.MapTypeId.ROADMAP
  222 + scaleControl : false,
  223 + streetViewControl : false,
  224 + rotateControl : false,
  225 + zoomControl : true,
  226 + mapTypeId : google.maps.MapTypeId.ROADMAP
219 227 };
220 228 var map = new google.maps.Map(document.getElementById("map_canvas"), settings);
221 229  
... ... @@ -225,8 +233,10 @@
225 233  
226 234 var marker = new google.maps.Marker(
227 235 {
228   - position : new google.maps.LatLng('56', '35.3'), map : map,
229   - title : 'Marker Title2', icon : image1
  236 + position : new google.maps.LatLng('56', '35.3'),
  237 + map : map,
  238 + title : 'Marker Title2',
  239 + icon : image1
230 240 }
231 241 );
232 242  
... ... @@ -247,69 +257,69 @@
247 257 </div>
248 258 </div>
249 259  
250   - </div>
251   -
252   - <div class="tabs_views-wr">
253   - <div class="_tabs style">
254   - <div class="box-wr">
255   - <div class="box-all">
256   - <?php
257   - Pjax::begin();
258   - echo \common\modules\comment\widgets\CommentWidget::widget([
259   - 'context' => $this,
260   - 'model' => $model::className(),
261   - 'model_id' => $model->project_id,
262   - 'comment_class' => \common\modules\comment\models\CommentProject::className(),
263   - 'class_options' => [
264   - 'scenario' => is_int(\Yii::$app->user->getId()) ? \common\modules\comment\models\Comment::SCENARIO_USER : \common\modules\comment\models\Comment::SCENARIO_GUEST,
265   - 'user_id' => \Yii::$app->user->getId(),
266   - 'guestComment' => false,
267   - 'status' => \common\modules\comment\models\CommentProject::STATUS_ACTIVE,
268   - ],
269   - 'list_options' => [
270   - 'view' => 'list-project-comment',
271   - 'class' => 'section box tender-offer-proj-wr',
272   - ],
273   - 'form_options' => [
274   - 'view' => 'form-project-comment',
275   - 'tag' => 'div',
276   - 'class' => 'artbox_comment_form section-box tender-add-answer',
277   - ],
278   - 'options' => [
279   - 'tag' => false,
280   - ],
281   - ]);
282   - Pjax::end();
283   - ?>
  260 + </div>
  261 +
  262 + <div class="tabs_views-wr">
  263 + <div class="_tabs style">
  264 + <div class="box-wr">
  265 + <div class="box-all">
  266 + <?php
  267 + Pjax::begin();
  268 + echo \common\modules\comment\widgets\CommentWidget::widget([
  269 + 'context' => $this,
  270 + 'model' => $model::className(),
  271 + 'model_id' => $model->project_id,
  272 + 'comment_class' => \common\modules\comment\models\CommentProject::className(),
  273 + 'class_options' => [
  274 + 'scenario' => is_int(\Yii::$app->user->getId()) ? \common\modules\comment\models\Comment::SCENARIO_USER : \common\modules\comment\models\Comment::SCENARIO_GUEST,
  275 + 'user_id' => \Yii::$app->user->getId(),
  276 + 'guestComment' => false,
  277 + 'status' => \common\modules\comment\models\CommentProject::STATUS_ACTIVE,
  278 + ],
  279 + 'list_options' => [
  280 + 'view' => 'list-project-comment',
  281 + 'class' => 'section box tender-offer-proj-wr',
  282 + ],
  283 + 'form_options' => [
  284 + 'view' => 'form-project-comment',
  285 + 'tag' => 'div',
  286 + 'class' => 'artbox_comment_form section-box tender-add-answer',
  287 + ],
  288 + 'options' => [
  289 + 'tag' => false,
  290 + ],
  291 + ]);
  292 + Pjax::end();
  293 + ?>
  294 + </div>
284 295 </div>
285 296 </div>
286   - </div>
287   - <div class="_tabs style">
288   - <div class="box-wr">
289   - <div class="box-all">
290   - <?php
291   - Pjax::begin();
292   - echo \common\modules\comment\widgets\CommentWidget::widget([
293   - 'context' => $this,
294   - 'model' => $model->className(),
295   - 'model_id' => $model->project_id,
296   - 'comment_class' => \common\modules\comment\models\CommentProjectAnswer::className(),
297   - 'class_options' => [
298   - 'scenario' => is_int(\Yii::$app->user->getId()) ? \common\modules\comment\models\Comment::SCENARIO_USER : \common\modules\comment\models\Comment::SCENARIO_GUEST,
299   - 'user_id' => \Yii::$app->user->getId(),
300   - 'guestComment' => false,
301   - 'status' => \common\modules\comment\models\Comment::STATUS_ACTIVE,
302   - ],
303   - 'provider_options' => [
304   - 'pagination' => [
305   - 'pageSize' => 2,
  297 + <div class="_tabs style">
  298 + <div class="box-wr">
  299 + <div class="box-all">
  300 + <?php
  301 + Pjax::begin();
  302 + echo \common\modules\comment\widgets\CommentWidget::widget([
  303 + 'context' => $this,
  304 + 'model' => $model->className(),
  305 + 'model_id' => $model->project_id,
  306 + 'comment_class' => \common\modules\comment\models\CommentProjectAnswer::className(),
  307 + 'class_options' => [
  308 + 'scenario' => is_int(\Yii::$app->user->getId()) ? \common\modules\comment\models\Comment::SCENARIO_USER : \common\modules\comment\models\Comment::SCENARIO_GUEST,
  309 + 'user_id' => \Yii::$app->user->getId(),
  310 + 'guestComment' => false,
  311 + 'status' => \common\modules\comment\models\Comment::STATUS_ACTIVE,
  312 + ],
  313 + 'provider_options' => [
  314 + 'pagination' => [
  315 + 'pageSize' => 2,
  316 + ],
306 317 ],
307   - ],
308   - 'success_options' => [
309   - 'tag' => 'div',
310   -// 'content' => 'Вопрос успешно создан и появится как только будет получен ответ',
311   - 'content' => function(){
312   - return "<script>
  318 + 'success_options' => [
  319 + 'tag' => 'div',
  320 + // 'content' => 'Вопрос успешно создан и появится как только будет получен ответ',
  321 + 'content' => function() {
  322 + return "<script>
313 323 addRemoveBlocks()
314 324 function addRemoveBlocks()
315 325 {
... ... @@ -343,136 +353,148 @@
343 353 setTimeout(closeSuccsescomm, 4000)
344 354 }
345 355 </script>";
346   - },
347   - 'class' => 'test-class-success',
348   - ],
349   - 'list_options' => [
350   - 'view' => 'list-comment-question',
351   - ],
352   - 'form_options' => [
353   - 'view' => 'form-comment-answer',
354   - 'tag' => 'span',
355   - 'class' => ( ( $model->user_id == \Yii::$app->user->id ) ? 'hidden' : '' ),
356   - ],
357   - 'options' => [
358   - 'class' => 'proektant-comments-wr fix_te style',
359   - ],
360   - ]);
361   - Pjax::end();
362   - ?>
  356 + },
  357 + 'class' => 'test-class-success',
  358 + ],
  359 + 'list_options' => [
  360 + 'view' => 'list-comment-question',
  361 + ],
  362 + 'form_options' => [
  363 + 'view' => 'form-comment-answer',
  364 + 'tag' => 'span',
  365 + 'class' => ( ( $model->user_id == \Yii::$app->user->id ) ? 'hidden' : '' ),
  366 + ],
  367 + 'options' => [
  368 + 'class' => 'proektant-comments-wr fix_te style',
  369 + ],
  370 + ]);
  371 + Pjax::end();
  372 + ?>
  373 + </div>
363 374 </div>
364 375 </div>
365 376 </div>
366 377 </div>
367   - </div>
368 378  
369 379  
370   -</div>
371   -<script>
372   - $(document).ready(
373   - function()
374   - {
375   - tabs_();
376   - inputNumber();
377   - tenderMark();
378   -
379   - function inputNumber()
  380 + </div>
  381 + <script>
  382 + $(document).ready(
  383 + function()
380 384 {
381   - $("#commentproject-budget_from, #commentproject-budget_to, #commentproject-term_from, #commentproject-term_to")
382   - .keypress(
383   - function(e)
384   - {
385   - return 8 == e.which || e.which > 47 && e.which < 58 ? void 0 : !1
386   - }
387   - )
388   - }
  385 + tabs_();
  386 + inputNumber();
  387 + tenderMark();
389 388  
390   - function tabs_()
391   - {
392   - $('.tabs_list').css('display', 'block')
393   - if(location.hash=='#tabs_2') {
394   - $('._tabs').css({display : 'block'})
395   - $('._tabs:first-child').css({display : 'none'})
396   - $('.tabs_list ul li').addClass('active')
397   - $('.tabs_list ul li:first-child').removeClass('active')
398   - } else {
399   - $('._tabs').css({display : 'none'})
400   - $('._tabs:first-child').css({display : 'block'})
  389 + function inputNumber()
  390 + {
  391 + $("#commentproject-budget_from, #commentproject-budget_to, #commentproject-term_from, #commentproject-term_to")
  392 + .keypress(
  393 + function(e)
  394 + {
  395 + return 8 == e.which || e.which > 47 && e.which < 58 ? void 0 : !1
  396 + }
  397 + )
401 398 }
402 399  
403   - $('.tabs_list ul li').click(
404   - function()
  400 + function tabs_()
  401 + {
  402 + $('.tabs_list').css('display', 'block')
  403 + if(location.hash == '#tabs_2')
405 404 {
406   - $('.tabs_list ul li').removeClass('active')
407   - $(this).addClass('active')
408   - var index = $(this).index()
409   - var tabs = $('._tabs')
410   - tabs.css({display : 'none'})
411   - $(tabs[index]).css({display : 'block'})
412   - var thisHash = $(this).find('a').attr('href')
413   - window.location.hash = thisHash;
  405 + $('._tabs').css({display : 'block'})
  406 + $('._tabs:first-child').css({display : 'none'})
  407 + $('.tabs_list ul li').addClass('active')
  408 + $('.tabs_list ul li:first-child').removeClass('active')
  409 + } else
  410 + {
  411 + $('._tabs').css({display : 'none'})
  412 + $('._tabs:first-child').css({display : 'block'})
414 413 }
415   - )
416   -
417   - }
418 414  
419   - function tenderMark()
420   - {
421   - var markParrent = $('.project_owner_control')
422   - markParrent.addClass('_on')
423   - for(var i = 0; i < markParrent.length; i++)
424   - {
425   - var markTxt = $(markParrent[i]).find('a.active')
426   - $(markParrent[i]).find('p.new_mark_').html(markTxt.text())
427   - markTxt.css({display : 'none'})
  415 + $('.tabs_list ul li').click(
  416 + function()
  417 + {
  418 + $('.tabs_list ul li').removeClass('active')
  419 + $(this).addClass('active')
  420 + var index = $(this).index()
  421 + var tabs = $('._tabs')
  422 + tabs.css({display : 'none'})
  423 + $(tabs[index]).css({display : 'block'})
  424 + var thisHash = $(this).find('a').attr('href')
  425 + window.location.hash = thisHash;
  426 + }
  427 + )
  428 +
428 429 }
429 430  
430   - markParrent.click(
431   - function()
  431 + function tenderMark()
  432 + {
  433 + var markParrent = $('.project_owner_control')
  434 + markParrent.addClass('_on')
  435 + for(var i = 0; i < markParrent.length; i++)
432 436 {
433   - $(this).toggleClass('focus')
434   - if($(this).hasClass('focus'))
435   - {
436   - $(this).addClass('shadow_')
437   - var height = $(this).height()
438   - var newHeight = ($(this).find('div').height()) + 2
439   - $(this).css({height : (height + newHeight)})
440   - markParrent.find('a').click(
441   - function()
442   - {
443   - $(this).parent().prev().html($(this).text())
  437 + var markTxt = $(markParrent[i]).find('a.active')
  438 + $(markParrent[i]).find('p.new_mark_').html(markTxt.text())
  439 + markTxt.css({display : 'none'})
  440 + }
444 441  
445   - }
446   - )
447   - } else
  442 + markParrent.click(
  443 + function()
448 444 {
449   - $(this).removeClass('shadow_')
450   - $(this).css({height : 29})
  445 + $(this).toggleClass('focus')
  446 + if($(this).hasClass('focus'))
  447 + {
  448 + $(this).addClass('shadow_')
  449 + var height = $(this).height()
  450 + var newHeight = ($(this).find('div').height()) + 2
  451 + $(this).css({height : (height + newHeight)})
  452 + markParrent.find('a').click(
  453 + function()
  454 + {
  455 + $(this).parent().prev().html($(this).text())
  456 +
  457 + }
  458 + )
  459 + } else
  460 + {
  461 + $(this).removeClass('shadow_')
  462 + $(this).css({height : 29})
  463 + }
451 464 }
452   - }
453   - )
454   -// submitForm();
455   - function submitForm() {
456   - $('.input-blocks-comm-button button').click(function () {
457   - setInterval(function () {
458   - var length = ($('.test-class-success').length)
459   - if(length>0){
460   - console.log('has')
  465 + )
  466 + // submitForm();
  467 + function submitForm()
  468 + {
  469 + $('.input-blocks-comm-button button').click(
  470 + function()
  471 + {
  472 + setInterval(
  473 + function()
  474 + {
  475 + var length = ($('.test-class-success').length)
  476 + if(length > 0)
  477 + {
  478 + console.log('has')
  479 + }
  480 + }, 100
  481 + )
  482 +
461 483 }
462   - },100)
  484 + )
  485 + }
463 486  
464   - })
465 487 }
466 488  
467 489 }
468   -
469   - }
470   - )
471   -</script>
472   -<script>
473   - $('div.rating, div.rating-new').rating(
474   - {
475   - fx : 'full', readOnly : 'true', url : 'rating.php'
476   - }
477   - );
478   -</script>
479 490 \ No newline at end of file
  491 + )
  492 + </script>
  493 + <script>
  494 + $('div.rating, div.rating-new').rating(
  495 + {
  496 + fx : 'full',
  497 + readOnly : 'true',
  498 + url : 'rating.php'
  499 + }
  500 + );
  501 + </script>
480 502 \ No newline at end of file
... ...
frontend/web/css/style.css
... ... @@ -2488,7 +2488,8 @@ input[type=file]::-webkit-file-upload-button {
2488 2488 }
2489 2489  
2490 2490 .performance-vacancy-sidebar-stars {
2491   - margin-top: 24px
  2491 + /*margin-top: 24px;*/
  2492 + margin-top: -5px;
2492 2493 }
2493 2494 .performance-vacancy-sidebar-stars .rating-container {height: 19px}
2494 2495 /****perform-vacancy-page****/
... ... @@ -2750,7 +2751,7 @@ input[type=file]::-webkit-file-upload-button {
2750 2751 }
2751 2752  
2752 2753 .blog-post-wr:first-child {
2753   - margin-top: 15px;
  2754 + margin-top: -1px
2754 2755 }
2755 2756  
2756 2757 .blog-post-title p {
... ... @@ -8842,14 +8843,10 @@ ul.menu-admin li.logout-li, ul.menu-admin li.logout-li a, ul.menu-admin li:last-
8842 8843 text-align: center;
8843 8844 }
8844 8845  
8845   -.admin-avatar-pattern .remover_image#image_remove_img {
  8846 +.admin-avatar-pattern .remover_image {
8846 8847 left: 180px !important;
8847 8848 }
8848 8849  
8849   -.admin-avatar-pattern .remover_image#poster_remove_img {
8850   - left: 700px !important;
8851   -}
8852   -
8853 8850 .admin-pattern .file-help-1 {
8854 8851 display: none
8855 8852 }
... ... @@ -12431,4 +12428,5 @@ li.active-menu-admin:hover a .ico_num {
12431 12428 background: url("/images/delet-file.png") no-repeat;
12432 12429 padding-left: 0 !important;
12433 12430 }
12434   -#modal_form_contacts .fileloader-item-remove:before {display:none;}
12435 12431 \ No newline at end of file
  12432 +#modal_form_contacts .fileloader-item-remove:before {display:none;}
  12433 +.command-block-name {height: 50px;overflow: hidden; font-size: 16px;}
12436 12434 \ No newline at end of file
... ...
frontend/web/js/artbox.maps.js
... ... @@ -67,7 +67,6 @@ $(
67 67 );
68 68 function showMarkers(variable, elements)
69 69 {
70   - console.log(elements);
71 70 var position = {
72 71 lat : undefined,
73 72 lng : undefined
... ...
frontend/web/js/script.js
... ... @@ -293,15 +293,6 @@ $(document).ready(
293 293  
294 294 function federationHome()
295 295 {
296   - var menu_width = 0;
297   - $('.federation-home-list li').each(
298   - function()
299   - {
300   - menu_width = menu_width + $(this).outerWidth() + 9
301   - }
302   - );
303   - $('.federation-home-list').css({width : menu_width});
304   -
305 296 $('.federation-home-list li').click(
306 297 function()
307 298 {
... ...