Commit 83b0052c2e5a9e43b447da44902902f804143b47

Authored by Yarik
1 parent a020aad3

test

common/models/Project.php
@@ -33,6 +33,7 @@ @@ -33,6 +33,7 @@
33 class Project extends \yii\db\ActiveRecord 33 class Project extends \yii\db\ActiveRecord
34 { 34 {
35 35
  36 + public $files;
36 /** 37 /**
37 * @inheritdoc 38 * @inheritdoc
38 */ 39 */
@@ -94,6 +95,7 @@ @@ -94,6 +95,7 @@
94 [ 95 [
95 'specializationInput', 96 'specializationInput',
96 'paymentInput', 97 'paymentInput',
  98 + 'files',
97 ], 99 ],
98 'safe', 100 'safe',
99 ], 101 ],
@@ -258,4 +260,17 @@ @@ -258,4 +260,17 @@
258 { 260 {
259 $this->specializationString = $value; 261 $this->specializationString = $value;
260 } 262 }
  263 +
  264 + /**
  265 + * @return File[]
  266 + */
  267 + public function getFilesList()
  268 + {
  269 + $files = json_decode($this->files);
  270 + if(!empty( $files )) {
  271 + return File::findAll($files);
  272 + } else {
  273 + return [ ];
  274 + }
  275 + }
261 } 276 }
common/models/User.php
@@ -665,7 +665,7 @@ @@ -665,7 +665,7 @@
665 throw new InvalidConfigException('This method is available only in PostgreSQL'); 665 throw new InvalidConfigException('This method is available only in PostgreSQL');
666 } 666 }
667 return $this->getCommentRating() 667 return $this->getCommentRating()
668 - ->select('ROUND(SUM("rating"."value")/COUNT("rating"."rating_id")::float) as rating') 668 + ->select(['rating' => 'ROUND(SUM("rating"."value")/COUNT("rating"."rating_id")::numeric, 2)'])
669 ->andWhere([ 669 ->andWhere([
670 'not', 670 'not',
671 [ 'rating.value' => NULL ], 671 [ 'rating.value' => NULL ],
common/modules/comment/models/Comment.php
1 <?php 1 <?php
2 namespace common\modules\comment\models; 2 namespace common\modules\comment\models;
3 3
  4 + use common\models\User;
4 use yii\db\ActiveQuery; 5 use yii\db\ActiveQuery;
5 6
6 /** 7 /**
@@ -18,6 +19,8 @@ @@ -18,6 +19,8 @@
18 * @property string $date_delete 19 * @property string $date_delete
19 * @property string $model 20 * @property string $model
20 * @property int $model_id 21 * @property int $model_id
  22 + * @property Rating $rating
  23 + * @property User $user
21 * @package common\modules\comment\models 24 * @package common\modules\comment\models
22 */ 25 */
23 class Comment extends \yii\db\ActiveRecord 26 class Comment extends \yii\db\ActiveRecord
@@ -117,6 +120,19 @@ @@ -117,6 +120,19 @@
117 ]; 120 ];
118 } 121 }
119 122
  123 + public function afterSave($insert, $changedAttributes)
  124 + {
  125 + if($this->model == User::className()) {
  126 + if($user = User::findOne($this->model_id)) {
  127 + /**
  128 + * @var User $user
  129 + */
  130 + $user->updateRating();
  131 + }
  132 + }
  133 + parent::afterSave($insert, $changedAttributes);
  134 + }
  135 +
120 public static function tableName() 136 public static function tableName()
121 { 137 {
122 return '{{%comment}}'; 138 return '{{%comment}}';
@@ -331,4 +347,9 @@ @@ -331,4 +347,9 @@
331 } 347 }
332 } 348 }
333 349
  350 + public function getUser()
  351 + {
  352 + return $this->hasOne(User::className(), [ 'id' => 'user_id' ]);
  353 + }
  354 +
334 } 355 }
common/modules/comment/widgets/views/_review_comment_view.php 0 → 100644
  1 +<?php
  2 + use common\models\User;
  3 + use yii\helpers\Html;
  4 +
  5 + /**
  6 + * @var \common\modules\comment\models\Comment $model Current comment model
  7 + * @var integer $key ID of current comment
  8 + * @var integer $index index of current element according
  9 + * to current page, starting from 0
  10 + * @var \yii\widgets\ListView $widget current ListView instance
  11 + * @var User $user
  12 + */
  13 + $user = $model->user;
  14 +?>
  15 + <div class="comments-name"><?= $user->name ?></div>
  16 +<?php
  17 + /* == STATUS PRO ==
  18 + ?>
  19 + <div class="comments-status"><span>Pro</span></div>
  20 + <?php
  21 + */
  22 +?>
  23 + <div class="comments-date"><?= \Yii::$app->formatter->asDate($model->date_add, 'php:d.m.Y') ?></div>
  24 +<?php
  25 + if(!empty( $model->rating )) {
  26 + ?>
  27 + <div class="rating">
  28 + <!--оценка-->
  29 + <input type="hidden" class="val" value="<?= $model->rating->value ?>"/>
  30 + </div>
  31 + <?php
  32 + }
  33 +?>
  34 + <div class="comments-content">
  35 + <?= $model->text ?>
  36 + </div>
  37 +<?php
  38 + /* == PROJECT INFO ==
  39 + ?>
  40 + <div class="comments-project-link">Проект: <a href="#">Ремонт спальни</a></div>
  41 + <?php
  42 + */
  43 +?>
0 \ No newline at end of file 44 \ No newline at end of file
common/modules/comment/widgets/views/form-comment-review.php 0 → 100644
  1 +<?php
  2 + /**
  3 + * @var \common\modules\comment\models\Comment $model
  4 + * @var \common\models\User $user
  5 + * @var \yii\data\ActiveDataProvider $dataProvider
  6 + * @var null|\common\modules\comment\models\Rating $rating
  7 + */
  8 + use yii\widgets\ActiveForm;
  9 + use yii\helpers\Html;
  10 +
  11 +?>
  12 +<div class="workplace-title style">
  13 + <p></p>Отзывы о пользователе: <?= $dataProvider->totalCount ?></p></div>
  14 +<div class="new-portf-add-comm style">
  15 + <?php
  16 + $form = ActiveForm::begin();
  17 + echo $form->field($rating, 'value')
  18 + ->label(false)
  19 + ->radioList([
  20 + 1 => 1,
  21 + 2 => 2,
  22 + 3 => 3,
  23 + 4 => 4,
  24 + 5 => 5,
  25 + ]);
  26 + if($model->scenario == $model::SCENARIO_GUEST) {
  27 + echo $form->field($model, 'user_name', [
  28 + 'options' => [
  29 + 'class' => 'input-blocks-comm',
  30 + ],
  31 + 'inputOptions' => [
  32 + 'class' => 'custom-input-4',
  33 + ],
  34 + ])
  35 + ->textInput();
  36 + echo $form->field($model, 'user_email', [
  37 + 'options' => [
  38 + 'class' => 'input-blocks-comm',
  39 + ],
  40 + 'inputOptions' => [
  41 + 'class' => 'custom-input-4',
  42 + ],
  43 + ])
  44 + ->textInput();
  45 + }
  46 +
  47 + ?>
  48 + <div class="artbox_comment_reply_block"></div>
  49 + <?php
  50 + echo $form->field($model, 'text', [
  51 + 'options' => [
  52 + 'class' => 'input-blocks-comm area-comm',
  53 + ],
  54 + 'inputOptions' => [
  55 + 'class' => 'custom-area-4',
  56 + ],
  57 + ])
  58 + ->textarea();
  59 + ?>
  60 + <div class="input-blocks-comm-button style">
  61 + <?= Html::submitButton('Добавить комментарий') ?>
  62 + </div>
  63 + <?php
  64 + $form->end();
  65 + ?>
  66 +</div>
0 \ No newline at end of file 67 \ No newline at end of file
common/modules/comment/widgets/views/list-comment-review.php 0 → 100644
  1 +<?php
  2 + /**
  3 + * @var \yii\data\DataProviderInterface $dataProvider
  4 + */
  5 +echo \yii\widgets\ListView::widget([
  6 + 'dataProvider' => $dataProvider,
  7 + 'itemView' => '_review_comment_view',
  8 + 'options' => [
  9 + 'tag' => 'ul',
  10 + 'class' => 'proektant-comments style'
  11 + ],
  12 + 'itemOptions' => [
  13 + 'tag' => 'li',
  14 + ],
  15 + 'layout' => "{items}\n{pager}",
  16 +]);
0 \ No newline at end of file 17 \ No newline at end of file
frontend/controllers/AccountsController.php
@@ -9,6 +9,7 @@ @@ -9,6 +9,7 @@
9 use common\models\Department; 9 use common\models\Department;
10 use common\models\Employment; 10 use common\models\Employment;
11 use common\models\Fields; 11 use common\models\Fields;
  12 + use common\models\File;
12 use common\models\Gallery; 13 use common\models\Gallery;
13 use common\models\GallerySearch; 14 use common\models\GallerySearch;
14 use common\models\Job; 15 use common\models\Job;
@@ -36,6 +37,7 @@ @@ -36,6 +37,7 @@
36 use yii\filters\VerbFilter; 37 use yii\filters\VerbFilter;
37 use yii\web\Controller; 38 use yii\web\Controller;
38 use yii\web\NotFoundHttpException; 39 use yii\web\NotFoundHttpException;
  40 + use yii\web\UploadedFile;
39 41
40 /** 42 /**
41 * Site controller 43 * Site controller
@@ -626,6 +628,24 @@ @@ -626,6 +628,24 @@
626 $post = \Yii::$app->request->post(); 628 $post = \Yii::$app->request->post();
627 if(!empty( $post )) { 629 if(!empty( $post )) {
628 $project->load($post); 630 $project->load($post);
  631 + $project->files = UploadedFile::getInstances($project, 'files');
  632 + if(!empty( $project->files )) {
  633 + $file_id = [ ];
  634 + if(is_array($project->files)) {
  635 + foreach($project->files as $file) {
  636 + if($file instanceof UploadedFile) {
  637 + $file_model = new File();
  638 + $file_id[] = $file_model->saveFile($file);
  639 + }
  640 + }
  641 + } else {
  642 + if($project->files instanceof UploadedFile) {
  643 + $file_model = new File();
  644 + $file_id[] = $file_model->saveFile($this->file);
  645 + }
  646 + }
  647 + $project->file = json_encode($file_id);
  648 + }
629 $project->validate(); 649 $project->validate();
630 if(!$project->hasErrors()) { 650 if(!$project->hasErrors()) {
631 $date_end = new \DateTime(); 651 $date_end = new \DateTime();
@@ -706,6 +726,24 @@ @@ -706,6 +726,24 @@
706 $post = \Yii::$app->request->post(); 726 $post = \Yii::$app->request->post();
707 if(!empty( $post )) { 727 if(!empty( $post )) {
708 $project->load($post); 728 $project->load($post);
  729 + $project->files = UploadedFile::getInstances($project, 'files');
  730 + if(!empty( $project->files )) {
  731 + $file_id = [ ];
  732 + if(is_array($project->files)) {
  733 + foreach($project->files as $file) {
  734 + if($file instanceof UploadedFile) {
  735 + $file_model = new File();
  736 + $file_id[] = $file_model->saveFile($file);
  737 + }
  738 + }
  739 + } else {
  740 + if($project->files instanceof UploadedFile) {
  741 + $file_model = new File();
  742 + $file_id[] = $file_model->saveFile($this->file);
  743 + }
  744 + }
  745 + $project->file = json_encode($file_id);
  746 + }
709 $project->validate(); 747 $project->validate();
710 if(!$project->hasErrors()) { 748 if(!$project->hasErrors()) {
711 $date_end = new \DateTime(); 749 $date_end = new \DateTime();
frontend/views/accounts/_projects_form.php
@@ -23,21 +23,21 @@ @@ -23,21 +23,21 @@
23 <div class="login-left-column-title"><?= $this->title ?></div> 23 <div class="login-left-column-title"><?= $this->title ?></div>
24 24
25 <?php 25 <?php
26 - $form = ActiveForm::begin(); 26 + $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]);
27 ?> 27 ?>
28 28
29 29
30 <div class="input-blocks-wrapper"> 30 <div class="input-blocks-wrapper">
31 <div class="input-blocks"> 31 <div class="input-blocks">
32 <?= $form->field($project, 'name') 32 <?= $form->field($project, 'name')
33 - ->textInput (['class'=> 'custom-input-2']) ?> 33 + ->textInput([ 'class' => 'custom-input-2' ]) ?>
34 </div> 34 </div>
35 </div> 35 </div>
36 36
37 <div class="input-blocks-wrapper"> 37 <div class="input-blocks-wrapper">
38 <div class="input-blocks admin-project-list admin-currency-second"> 38 <div class="input-blocks admin-project-list admin-currency-second">
39 <?= $form->field($project, 'project_pid') 39 <?= $form->field($project, 'project_pid')
40 - ->dropDownList($projects, [ 'prompt' => 'Родительский проект' ]) ?> 40 + ->dropDownList($projects, [ 'prompt' => 'Родительский проект' ]) ?>
41 </div> 41 </div>
42 </div> 42 </div>
43 43
@@ -63,15 +63,15 @@ @@ -63,15 +63,15 @@
63 <li> 63 <li>
64 <a href="#" title="<?= $child_second->specialization_name ?>"> 64 <a href="#" title="<?= $child_second->specialization_name ?>">
65 <?= $form->field($project, "specializationInput[{$child_second->specialization_id}]", [ 65 <?= $form->field($project, "specializationInput[{$child_second->specialization_id}]", [
66 - 'template' => '{input}{label}{hint}{error}', 66 + 'template' => '{input}{label}{hint}{error}',
67 ]) 67 ])
68 - ->label('<span></span>' . $child_second->specialization_name)  
69 - ->checkbox([  
70 - 'value' => $child_second->specialization_id,  
71 - 'label' => NULL,  
72 - 'uncheck' => NULL,  
73 - 'class' => 'custom-check',  
74 - ], false) ?> 68 + ->label('<span></span>' . $child_second->specialization_name)
  69 + ->checkbox([
  70 + 'value' => $child_second->specialization_id,
  71 + 'label' => NULL,
  72 + 'uncheck' => NULL,
  73 + 'class' => 'custom-check',
  74 + ], false) ?>
75 </a> 75 </a>
76 </li> 76 </li>
77 <?php endif; ?> 77 <?php endif; ?>
@@ -91,7 +91,9 @@ @@ -91,7 +91,9 @@
91 </div> 91 </div>
92 </div> 92 </div>
93 93
94 -<div class="admin-specialization-selected style"><ul></ul></div> 94 +<div class="admin-specialization-selected style">
  95 + <ul></ul>
  96 +</div>
95 97
96 98
97 <div class="conacts-admin style">Адрес проекта:</div> 99 <div class="conacts-admin style">Адрес проекта:</div>
@@ -99,38 +101,33 @@ @@ -99,38 +101,33 @@
99 <div class="input-blocks-wrapper"> 101 <div class="input-blocks-wrapper">
100 <div class="input-blocks"> 102 <div class="input-blocks">
101 <?= $form->field($project, 'city') 103 <?= $form->field($project, 'city')
102 - ->widget(Select2::classname(), [  
103 - 'options' => [ 'placeholder' => 'Выбор города ...' ],  
104 - 'pluginOptions' => [  
105 - 'allowClear' => true,  
106 - 'minimumInputLength' => 3,  
107 - 'ajax' => [  
108 - 'url' => \yii\helpers\Url::to([ 'site/city' ]),  
109 - 'dataType' => 'json',  
110 - 'data' => new JsExpression('function(params) { return {q:params.term}; }'),  
111 - ],  
112 - 'escapeMarkup' => new JsExpression('function (markup) { return markup; }'),  
113 - 'templateResult' => new JsExpression('function(city) { return city.text; }'),  
114 - 'templateSelection' => new JsExpression('function (city) { return city.text; }'),  
115 - ],  
116 - ]);  
117 - ?> 104 + ->widget(Select2::classname(), [
  105 + 'options' => [ 'placeholder' => 'Выбор города ...' ],
  106 + 'pluginOptions' => [
  107 + 'allowClear' => true,
  108 + 'minimumInputLength' => 3,
  109 + 'ajax' => [
  110 + 'url' => \yii\helpers\Url::to([ 'site/city' ]),
  111 + 'dataType' => 'json',
  112 + 'data' => new JsExpression('function(params) { return {q:params.term}; }'),
  113 + ],
  114 + 'escapeMarkup' => new JsExpression('function (markup) { return markup; }'),
  115 + 'templateResult' => new JsExpression('function(city) { return city.text; }'),
  116 + 'templateSelection' => new JsExpression('function (city) { return city.text; }'),
  117 + ],
  118 + ]); ?>
118 </div> 119 </div>
119 120
120 121
121 -  
122 -  
123 -  
124 <div class="input-blocks street-input"> 122 <div class="input-blocks street-input">
125 <?= $form->field($project, 'street', [ 'template' => "{label}{input}{hint}{error}" ]) 123 <?= $form->field($project, 'street', [ 'template' => "{label}{input}{hint}{error}" ])
126 - ->textInput (['class'=> 'custom-input-2']) ?> 124 + ->textInput([ 'class' => 'custom-input-2' ]) ?>
127 </div> 125 </div>
128 126
129 127
130 -  
131 <div class="input-blocks home-input"> 128 <div class="input-blocks home-input">
132 <?= $form->field($project, 'house', [ 'template' => "{label}{input}{hint}{error}" ]) 129 <?= $form->field($project, 'house', [ 'template' => "{label}{input}{hint}{error}" ])
133 - ->textInput (['class'=> 'custom-input-2']) ?> 130 + ->textInput([ 'class' => 'custom-input-2' ]) ?>
134 </div> 131 </div>
135 </div> 132 </div>
136 </div> 133 </div>
@@ -138,20 +135,22 @@ @@ -138,20 +135,22 @@
138 <div class="input-blocks-wrapper"> 135 <div class="input-blocks-wrapper">
139 <div class="input-blocks admin-project-list-two admin-currency-first"> 136 <div class="input-blocks admin-project-list-two admin-currency-first">
140 <?= $form->field($project, 'budget', [ 137 <?= $form->field($project, 'budget', [
141 - 'template' => "{label}<br />{input}\n{hint}\n{error}" 138 + 'template' => "{label}<br />{input}\n{hint}\n{error}",
142 ]) 139 ])
143 - ->textInput (['class'=> 'custom-input-2 custom-input-2-date','type'=>'number']) ?> 140 + ->textInput([
  141 + 'class' => 'custom-input-2 custom-input-2-date',
  142 + 'type' => 'number',
  143 + ]) ?>
144 </div> 144 </div>
145 <div class="input-blocks admin-project-list-two admin-currency-second"> 145 <div class="input-blocks admin-project-list-two admin-currency-second">
146 - <?=  
147 - $form->field($project, 'budget_currency')->label(false)->dropDownList(Currency::getCurrencyDropdown(), ['class'=> 'custom-input-2']);  
148 - ?> 146 + <?= $form->field($project, 'budget_currency')
  147 + ->label(false)
  148 + ->dropDownList(Currency::getCurrencyDropdown(), [ 'class' => 'custom-input-2' ]); ?>
149 </div> 149 </div>
150 <div class="input-blocks admin-who-check-payment admin-project-contractual"> 150 <div class="input-blocks admin-who-check-payment admin-project-contractual">
151 - <?= $form->field($project, 'contractual', ['template' => "{input}{label}\n{hint}\n{error}"])  
152 - ->checkbox (['class'=> 'custom-check'], false)  
153 - ->label ('<span></span>Договорной')  
154 - ?> 151 + <?= $form->field($project, 'contractual', [ 'template' => "{input}{label}\n{hint}\n{error}" ])
  152 + ->checkbox([ 'class' => 'custom-check' ], false)
  153 + ->label('<span></span>Договорной') ?>
155 </div> 154 </div>
156 155
157 </div> 156 </div>
@@ -159,37 +158,37 @@ @@ -159,37 +158,37 @@
159 <div class="input-blocks-wrapper"> 158 <div class="input-blocks-wrapper">
160 <div class="input-blocks"> 159 <div class="input-blocks">
161 <?= $form->field($project, 'payment_variant') 160 <?= $form->field($project, 'payment_variant')
162 - ->radioList([  
163 - 1 => 'Без предоплаты',  
164 - 2 => 'Предоплата возможна',  
165 - ],[  
166 - 'item' => function($index, $label, $name, $checked, $value) {  
167 - $return = '<div class="admin-who-check">';  
168 - $return .= '<input class="custom-radio" id="select_admin_mfp'.$value.'" type="radio" name="' . $name . '" value="' . $value . '" '.($checked ? "checked" :"").' >';  
169 - $return .= '<label for="select_admin_mfp'.$value.'" >';  
170 - $return .= '<span></span>' . ucwords($label);  
171 - $return .= '</label>';  
172 - $return .= '</div>';  
173 - return $return;  
174 - }  
175 - ]) ?> 161 + ->radioList([
  162 + 1 => 'Без предоплаты',
  163 + 2 => 'Предоплата возможна',
  164 + ], [
  165 + 'item' => function($index, $label, $name, $checked, $value) {
  166 + $return = '<div class="admin-who-check">';
  167 + $return .= '<input class="custom-radio" id="select_admin_mfp' . $value . '" type="radio" name="' . $name . '" value="' . $value . '" ' . ( $checked ? "checked" : "" ) . ' >';
  168 + $return .= '<label for="select_admin_mfp' . $value . '" >';
  169 + $return .= '<span></span>' . ucwords($label);
  170 + $return .= '</label>';
  171 + $return .= '</div>';
  172 + return $return;
  173 + },
  174 + ]) ?>
176 </div> 175 </div>
177 </div> 176 </div>
178 177
179 <div class="input-blocks-wrapper"> 178 <div class="input-blocks-wrapper">
180 <div class="input-blocks"> 179 <div class="input-blocks">
181 <?= $form->field($project, 'paymentInput') 180 <?= $form->field($project, 'paymentInput')
182 - ->checkboxList($payment,[  
183 - 'item' => function($index, $label, $name, $checked, $value) {  
184 - $return = '<div class="admin-who-check-payment">';  
185 - $return .= '<input class="custom-check" id="check_admin_mfp'.$value.'" type="checkbox" name="' . $name . '" value="' . $value . '" '.($checked ? "checked" :"").' >';  
186 - $return .= '<label for="check_admin_mfp'.$value.'" >';  
187 - $return .= '<span></span>' . ucwords($label);  
188 - $return .= '</label>';  
189 - $return .= '</div>';  
190 - return $return;  
191 - }  
192 - ]) ?> 181 + ->checkboxList($payment, [
  182 + 'item' => function($index, $label, $name, $checked, $value) {
  183 + $return = '<div class="admin-who-check-payment">';
  184 + $return .= '<input class="custom-check" id="check_admin_mfp' . $value . '" type="checkbox" name="' . $name . '" value="' . $value . '" ' . ( $checked ? "checked" : "" ) . ' >';
  185 + $return .= '<label for="check_admin_mfp' . $value . '" >';
  186 + $return .= '<span></span>' . ucwords($label);
  187 + $return .= '</label>';
  188 + $return .= '</div>';
  189 + return $return;
  190 + },
  191 + ]) ?>
193 </div> 192 </div>
194 </div> 193 </div>
195 194
@@ -197,7 +196,10 @@ @@ -197,7 +196,10 @@
197 <div class="input-blocks-wrapper"> 196 <div class="input-blocks-wrapper">
198 <div class="input-blocks admin-project-days"> 197 <div class="input-blocks admin-project-days">
199 <?= $form->field($project, 'deadline', [ 'template' => "{label}<br />{input}<span class='admn-input-txt' style='padding-left: 10px'>дней</span>\n{hint}\n{error}" ]) 198 <?= $form->field($project, 'deadline', [ 'template' => "{label}<br />{input}<span class='admn-input-txt' style='padding-left: 10px'>дней</span>\n{hint}\n{error}" ])
200 - ->textInput (['class'=> 'custom-input-2 custom-input-2-date','type'=>'number']) ?> 199 + ->textInput([
  200 + 'class' => 'custom-input-2 custom-input-2-date',
  201 + 'type' => 'number',
  202 + ]) ?>
201 </div> 203 </div>
202 </div> 204 </div>
203 205
@@ -216,9 +218,8 @@ @@ -216,9 +218,8 @@
216 <div class="not-file-mb-adm">До 3 Мб файл</div> 218 <div class="not-file-mb-adm">До 3 Мб файл</div>
217 </div> 219 </div>
218 <div style="opacity: 0; height: 54px; width: 100%; float: left;position: absolute; top: 0;left: 0; z-index: 2;-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=0)'"> 220 <div style="opacity: 0; height: 54px; width: 100%; float: left;position: absolute; top: 0;left: 0; z-index: 2;-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=0)'">
219 - <?= $form->field($project, 'file')  
220 -  
221 - ->fileInput([ 'multiple' => 'multiple' ]) ?> 221 + <?= $form->field($project, 'files[]')
  222 + ->fileInput([ 'multiple' => 'multiple' ]) ?>
222 </div> 223 </div>
223 224
224 </div> 225 </div>
@@ -227,17 +228,17 @@ @@ -227,17 +228,17 @@
227 <div class="input-blocks-wrapper"> 228 <div class="input-blocks-wrapper">
228 <div class="input-blocks admin-project-list admin-currency-second"> 229 <div class="input-blocks admin-project-list admin-currency-second">
229 <?= $form->field($project, 'date_end') 230 <?= $form->field($project, 'date_end')
230 - ->dropDownList([  
231 - 1 => 'Неделя',  
232 - 2 => '2 недели',  
233 - 3 => 'Месяц',  
234 - ]) ?> 231 + ->dropDownList([
  232 + 1 => 'Неделя',
  233 + 2 => '2 недели',
  234 + 3 => 'Месяц',
  235 + ]) ?>
235 </div> 236 </div>
236 </div> 237 </div>
237 238
238 <div class="input-blocks-wrapper"> 239 <div class="input-blocks-wrapper">
239 <div class="admin-save-btn skills-save-btn admin-add-remove-wr style"> 240 <div class="admin-save-btn skills-save-btn admin-add-remove-wr style">
240 - <?= Html::submitButton($project->isNewRecord?'Добавить':'Обновить', [ 'class' => 'input-blocks-wrapper button' ]) ?> 241 + <?= Html::submitButton($project->isNewRecord ? 'Добавить' : 'Обновить', [ 'class' => 'input-blocks-wrapper button' ]) ?>
241 <div class="admin-remove-note"> 242 <div class="admin-remove-note">
242 <?php 243 <?php
243 if(!$project->isNewRecord) { 244 if(!$project->isNewRecord) {
@@ -255,7 +256,7 @@ @@ -255,7 +256,7 @@
255 ?> 256 ?>
256 </div> 257 </div>
257 <div class="admin-back-note"> 258 <div class="admin-back-note">
258 - <?= Html::a('вернуться', Request::getIsLocal(\Yii::$app->request->referrer)?\Yii::$app->request->referrer:['accounts/projects' ]) ?> 259 + <?= Html::a('вернуться', Request::getIsLocal(\Yii::$app->request->referrer) ? \Yii::$app->request->referrer : [ 'accounts/projects' ]) ?>
259 </div> 260 </div>
260 </div> 261 </div>
261 </div> 262 </div>
@@ -264,29 +265,45 @@ @@ -264,29 +265,45 @@
264 $form->end(); 265 $form->end();
265 ?> 266 ?>
266 <script> 267 <script>
267 - $(document).ready(function(){  
268 - $('.input-blocks.admin-currency-second select').change(function(){  
269 - $(this).blur()  
270 - })  
271 -  
272 - if($('.admin-project-contractual input[type="checkbox"]').prop("checked")) {  
273 - $('.admin-project-list-two input, .admin-project-list-two select').attr('disabled', 'disabled')  
274 - }  
275 - $('.admin-project-contractual input[type="checkbox"]').change(function(){  
276 - if($(this).prop("checked")) {  
277 - $('.admin-project-list-two input, .admin-project-list-two select').attr('disabled','disabled')  
278 - } else {  
279 - $('.admin-project-list-two input, .admin-project-list-two select').removeAttr('disabled')  
280 - }  
281 - })  
282 -  
283 -  
284 - $('.admin-project-file input[type="file"]').change(function(){  
285 - var strInput = this.value  
286 - $('.admin-project-file .not-file-mb-adm').html(strInput.replace(/^.*\\/, "")) 268 + $(document).ready(
  269 + function()
  270 + {
  271 + $('.input-blocks.admin-currency-second select').change(
  272 + function()
  273 + {
  274 + $(this).blur()
  275 + }
  276 + )
  277 +
  278 + if($('.admin-project-contractual input[type="checkbox"]').prop("checked"))
  279 + {
  280 + $('.admin-project-list-two input, .admin-project-list-two select')
  281 + .attr('disabled', 'disabled')
  282 + }
  283 + $('.admin-project-contractual input[type="checkbox"]').change(
  284 + function()
  285 + {
  286 + if($(this).prop("checked"))
  287 + {
  288 + $('.admin-project-list-two input, .admin-project-list-two select')
  289 + .attr('disabled', 'disabled')
  290 + } else
  291 + {
  292 + $('.admin-project-list-two input, .admin-project-list-two select')
  293 + .removeAttr('disabled')
  294 + }
  295 + }
  296 + )
287 297
288 - }); 298 + $('.admin-project-file input[type="file"]').change(
  299 + function()
  300 + {
  301 + var strInput = this.value
  302 + $('.admin-project-file .not-file-mb-adm').html(strInput.replace(/^.*\\/, ""))
289 303
  304 + }
  305 + );
290 306
291 - }) 307 + }
  308 + )
292 </script> 309 </script>
frontend/views/company/portfolio-view.php
1 <?php 1 <?php
2 2
3 -use common\models\Portfolio;  
4 -use common\models\User;  
5 -use yii\helpers\Html;  
6 -use yii\web\ViewAction; 3 + use common\models\Portfolio;
  4 + use common\models\User;
  5 + use yii\helpers\Html;
  6 + use yii\web\ViewAction;
7 7
8 -/**  
9 - * @var ViewAction $this  
10 - * @var User $user  
11 - * @var Portfolio $portfolio  
12 - */  
13 -$this->params[ 'company' ] = $user; 8 + /**
  9 + * @var ViewAction $this
  10 + * @var User $user
  11 + * @var Portfolio $portfolio
  12 + */
  13 + $this->params[ 'company' ] = $user;
14 14
15 -$this->title = 'My Yii Application'; 15 + $this->title = 'My Yii Application';
16 ?> 16 ?>
17 <div class="portfolio-new-page-wrapper style"> 17 <div class="portfolio-new-page-wrapper style">
18 <div class="new-portfolio-bg style "> 18 <div class="new-portfolio-bg style ">
19 - <?= Html::img($portfolio->minImg($portfolio->cover,'720', '280')) ?> 19 + <?= Html::img($portfolio->minImg($portfolio->cover, '720', '280')) ?>
20 </div> 20 </div>
21 <div class="new-portfolio-icons-rating-wr style"> 21 <div class="new-portfolio-icons-rating-wr style">
22 <div class="new-portfolio-icons"> 22 <div class="new-portfolio-icons">
@@ -57,29 +57,29 @@ $this-&gt;title = &#39;My Yii Application&#39;; @@ -57,29 +57,29 @@ $this-&gt;title = &#39;My Yii Application&#39;;
57 <div class="new-portf-slider-wr style"> 57 <div class="new-portf-slider-wr style">
58 <div class="new-portf-slider-title"><?= $portfolio->name ?></div> 58 <div class="new-portf-slider-title"><?= $portfolio->name ?></div>
59 <?php 59 <?php
60 - if(!empty( $portfolio->gallery ) || !empty( $portfolio->gallery->photo )) {  
61 - ?>  
62 - <div class="new-portf-slider style">  
63 - <div class="slider-video-wr">  
64 - <div id="demo5" class="scroll-img">  
65 - <ul>  
66 - <?php  
67 - foreach( explode(',', $portfolio->gallery->photo) as $one_photo ) {  
68 - ?>  
69 - <li><img src="<?= $one_photo ?>" alt=""/> 60 + if(!empty( $portfolio->gallery ) || !empty( $portfolio->gallery->photo )) {
  61 + ?>
  62 + <div class="new-portf-slider style">
  63 + <div class="slider-video-wr">
  64 + <div id="demo5" class="scroll-img">
  65 + <ul>
70 <?php 66 <?php
71 - } 67 + foreach( explode(',', $portfolio->gallery->photo) as $one_photo ) {
72 ?> 68 ?>
73 - </ul>  
74 - </div>  
75 - <div id="demo5-btn" class="text-center">  
76 - <button class="btn" id="demo5-backward"></button>  
77 - <button class="btn" id="demo5-forward"></button> 69 + <li><img src="<?= $one_photo ?>" alt=""/>
  70 + <?php
  71 + }
  72 + ?>
  73 + </ul>
  74 + </div>
  75 + <div id="demo5-btn" class="text-center">
  76 + <button class="btn" id="demo5-backward"></button>
  77 + <button class="btn" id="demo5-forward"></button>
  78 + </div>
78 </div> 79 </div>
79 </div> 80 </div>
80 - </div>  
81 - <?php  
82 - } 81 + <?php
  82 + }
83 ?> 83 ?>
84 </div> 84 </div>
85 85
@@ -89,229 +89,235 @@ $this-&gt;title = &#39;My Yii Application&#39;; @@ -89,229 +89,235 @@ $this-&gt;title = &#39;My Yii Application&#39;;
89 <?= $portfolio->preview ?> 89 <?= $portfolio->preview ?>
90 </div> 90 </div>
91 <?php 91 <?php
92 - if(!empty( $portfolio->description )) {  
93 - ?>  
94 - <div class="new-portfolio-see-all style"><span>Развернуть</span></div>  
95 - <?php  
96 - } 92 + if(!empty( $portfolio->description )) {
  93 + ?>
  94 + <div class="new-portfolio-see-all style"><span>Развернуть</span></div>
  95 + <?php
  96 + }
97 ?> 97 ?>
98 </div> 98 </div>
99 <?php 99 <?php
100 - if(!empty( $portfolio->description )) {  
101 - ?>  
102 - <div class="new-portfolio-txt">  
103 - <div class="new-portfolio-editor">  
104 - <?= $portfolio->description ?> 100 + if(!empty( $portfolio->description )) {
  101 + ?>
  102 + <div class="new-portfolio-txt">
  103 + <div class="new-portfolio-editor">
  104 + <?= $portfolio->description ?>
  105 + </div>
  106 + <div class="new-portfolio-see-all style"><span>Свернуть</span></div>
105 </div> 107 </div>
106 - <div class="new-portfolio-see-all style"><span>Свернуть</span></div>  
107 - </div>  
108 - <?php  
109 - } 108 + <?php
  109 + }
110 ?> 110 ?>
111 </div> 111 </div>
112 112
113 <?php 113 <?php
114 - echo \common\modules\comment\widgets\CommentWidget::widget([  
115 - 'entity' => $portfolio::tableName().'-'.$portfolio->portfolio_id,  
116 - 'comment_class' => \common\modules\comment\models\Comment::className(),  
117 - 'class_options' => [  
118 - 'scenario' => is_int(\Yii::$app->user->getId())?\common\modules\comment\models\Comment::SCENARIO_USER:\common\modules\comment\models\Comment::SCENARIO_GUEST,  
119 - 'user_id' => \Yii::$app->user->getId(),  
120 - ],  
121 - 'list_options' => [  
122 - 'view' => 'list-comment',  
123 - ],  
124 - 'form_options' => [  
125 - 'view' => 'form-comment',  
126 - 'tag' => false,  
127 - ],  
128 - 'options' => [  
129 - 'class' => 'new-portf-comments-wr style',  
130 - ],  
131 - ]); 114 + echo \common\modules\comment\widgets\CommentWidget::widget([
  115 + 'context' => $this,
  116 + 'model' => $portfolio->className(),
  117 + 'model_id' => $portfolio->portfolio_id,
  118 + 'comment_class' => \common\modules\comment\models\Comment::className(),
  119 + 'rating_class' => \common\modules\comment\models\Rating::className(),
  120 + 'class_options' => [
  121 + 'scenario' => is_int(\Yii::$app->user->getId()) ? \common\modules\comment\models\Comment::SCENARIO_USER : \common\modules\comment\models\Comment::SCENARIO_GUEST,
  122 + 'user_id' => \Yii::$app->user->getId(),
  123 + 'guestComment' => true,
  124 + 'status' => \common\modules\comment\models\Comment::STATUS_ACTIVE,
  125 + ],
  126 + 'list_options' => [
  127 + 'view' => 'list-comment',
  128 + ],
  129 + 'form_options' => [
  130 + 'view' => 'form-comment',
  131 + 'tag' => 'div',
  132 + 'class' => 'artbox_comment_form',
  133 + ],
  134 + 'options' => [
  135 + 'class' => 'new-portf-comments-wr style',
  136 + ],
  137 + ]);
132 ?> 138 ?>
133 139
134 <?php 140 <?php
135 - /*  
136 - ?>  
137 - <div class="new-portf-comments-wr style">  
138 - <div class="new-portf-comm-count">Комментарии: 3</div>  
139 - <div class="new-portf-add-comm style"> 141 + /*
  142 + ?>
  143 + <div class="new-portf-comments-wr style">
  144 + <div class="new-portf-comm-count">Комментарии: 3</div>
  145 + <div class="new-portf-add-comm style">
140 146
141 - <form action="">  
142 - <div class="input-blocks-comm">  
143 - <label for="input-txt-5">Имя</label>  
144 - <input class="custom-input-4" id="input-txt-5" type="text">  
145 - </div>  
146 - <div class="input-blocks-comm"> 147 + <form action="">
  148 + <div class="input-blocks-comm">
  149 + <label for="input-txt-5">Имя</label>
  150 + <input class="custom-input-4" id="input-txt-5" type="text">
  151 + </div>
  152 + <div class="input-blocks-comm">
147 153
148 - <label for="input-txt-6">e-mail</label>  
149 - <input class="custom-input-4" id="input-txt-6" type="text">  
150 - </div>  
151 - <div class="input-blocks-comm area-comm">  
152 - <label for="input-txt-7">Комментарий</label>  
153 - <textarea class="custom-area-4" id="input-txt-7"></textarea>  
154 - </div>  
155 - <div class="input-blocks-comm-button style">  
156 - <button type="submit" class="">Добавить комментраий</button>  
157 - </div>  
158 - </form> 154 + <label for="input-txt-6">e-mail</label>
  155 + <input class="custom-input-4" id="input-txt-6" type="text">
  156 + </div>
  157 + <div class="input-blocks-comm area-comm">
  158 + <label for="input-txt-7">Комментарий</label>
  159 + <textarea class="custom-area-4" id="input-txt-7"></textarea>
  160 + </div>
  161 + <div class="input-blocks-comm-button style">
  162 + <button type="submit" class="">Добавить комментраий</button>
  163 + </div>
  164 + </form>
159 165
160 - </div> 166 + </div>
161 167
162 - <div class="new-portf-comm-read-wr style">  
163 - <div class="new-portf-comm-read">  
164 - <div class="style">  
165 - <div class="header-cabinet-foto">  
166 - <img src="/images/ded-ico.png" alt="">  
167 - </div>  
168 - <div class="new-prof-wrapper-read">  
169 - <div class="new-portf-comm-read-title"><a href="#">Петер Цумтор</a></div>  
170 - <div class="new-portf-comm-read-rating">  
171 - <div class="rating">  
172 - <!--оценка-->  
173 - <input type="hidden" class="val" value="3"/>  
174 - <!--количество голосов-->  
175 - <input type="hidden" class="votes" value="12"/> 168 + <div class="new-portf-comm-read-wr style">
  169 + <div class="new-portf-comm-read">
  170 + <div class="style">
  171 + <div class="header-cabinet-foto">
  172 + <img src="/images/ded-ico.png" alt="">
  173 + </div>
  174 + <div class="new-prof-wrapper-read">
  175 + <div class="new-portf-comm-read-title"><a href="#">Петер Цумтор</a></div>
  176 + <div class="new-portf-comm-read-rating">
  177 + <div class="rating">
  178 + <!--оценка-->
  179 + <input type="hidden" class="val" value="3"/>
  180 + <!--количество голосов-->
  181 + <input type="hidden" class="votes" value="12"/>
  182 + </div>
  183 + </div>
  184 + <div class="blog-post-date">
  185 + <span></span>
  186 + <p>22.09.2015</p>
176 </div> 187 </div>
177 </div> 188 </div>
178 - <div class="blog-post-date">  
179 - <span></span>  
180 - <p>22.09.2015</p> 189 +
  190 + <div class="new-portf-answer">
  191 + <p>Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.</p>
  192 + <p>Евровагонка — удобная в монтаже фасонная доска, которая позволяет создать обшивку из плотно пригнанных элементов с качественно обработанной поверхностью. Толщина евровагонки составляет 125 мм, общая ширина (с гребнем) 960 мм, рабочая ширина 880 мм.Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.</p>
181 </div> 193 </div>
182 - </div>  
183 194
184 - <div class="new-portf-answer">  
185 - <p>Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.</p>  
186 - <p>Евровагонка — удобная в монтаже фасонная доска, которая позволяет создать обшивку из плотно пригнанных элементов с качественно обработанной поверхностью. Толщина евровагонки составляет 125 мм, общая ширина (с гребнем) 960 мм, рабочая ширина 880 мм.Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.</p>  
187 </div> 195 </div>
188 - 196 + <div class="style"></div>
189 </div> 197 </div>
190 - <div class="style"></div>  
191 - </div>  
192 198
193 - <div class="new-portf-comm-read">  
194 - <div class="style">  
195 - <div class="header-cabinet-foto">  
196 - <img src="/images/ded-ico.png" alt="">  
197 - </div>  
198 - <div class="new-prof-wrapper-read">  
199 - <div class="new-portf-comm-read-title"><a href="#">Петер Цумтор</a></div>  
200 - <div class="new-portf-comm-read-rating">  
201 - <div class="rating">  
202 - <!--оценка-->  
203 - <input type="hidden" class="val" value="4"/>  
204 - <!--количество голосов-->  
205 - <input type="hidden" class="votes" value="12"/> 199 + <div class="new-portf-comm-read">
  200 + <div class="style">
  201 + <div class="header-cabinet-foto">
  202 + <img src="/images/ded-ico.png" alt="">
  203 + </div>
  204 + <div class="new-prof-wrapper-read">
  205 + <div class="new-portf-comm-read-title"><a href="#">Петер Цумтор</a></div>
  206 + <div class="new-portf-comm-read-rating">
  207 + <div class="rating">
  208 + <!--оценка-->
  209 + <input type="hidden" class="val" value="4"/>
  210 + <!--количество голосов-->
  211 + <input type="hidden" class="votes" value="12"/>
  212 + </div>
  213 + </div>
  214 + <div class="blog-post-date">
  215 + <span></span>
  216 + <p>22.09.2015</p>
206 </div> 217 </div>
207 </div> 218 </div>
208 - <div class="blog-post-date">  
209 - <span></span>  
210 - <p>22.09.2015</p> 219 +
  220 + <div class="new-portf-answer">
  221 + <p>Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.</p>
  222 + <p>Евровагонка — удобная в монтаже фасонная доска, которая позволяет создать обшивку из плотно пригнанных элементов с качественно обработанной поверхностью. Толщина евровагонки составляет 125 мм, общая ширина (с гребнем) 960 мм, рабочая ширина 880 мм.Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.</p>
211 </div> 223 </div>
212 - </div>  
213 224
214 - <div class="new-portf-answer">  
215 - <p>Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.</p>  
216 - <p>Евровагонка — удобная в монтаже фасонная доска, которая позволяет создать обшивку из плотно пригнанных элементов с качественно обработанной поверхностью. Толщина евровагонки составляет 125 мм, общая ширина (с гребнем) 960 мм, рабочая ширина 880 мм.Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.</p>  
217 </div> 225 </div>
218 - 226 + <div class="style"></div>
219 </div> 227 </div>
220 - <div class="style"></div>  
221 - </div>  
222 228
223 - <div class="new-portf-comm-read">  
224 - <div class="style">  
225 - <div class="header-cabinet-foto">  
226 - <img src="/images/ded-ico.png" alt="">  
227 - </div>  
228 - <div class="new-prof-wrapper-read">  
229 - <div class="new-portf-comm-read-title"><a href="#">Петер Цумтор</a></div>  
230 - <div class="new-portf-comm-read-rating">  
231 - <div class="rating">  
232 - <!--оценка-->  
233 - <input type="hidden" class="val" value="5"/>  
234 - <!--количество голосов-->  
235 - <input type="hidden" class="votes" value="12"/> 229 + <div class="new-portf-comm-read">
  230 + <div class="style">
  231 + <div class="header-cabinet-foto">
  232 + <img src="/images/ded-ico.png" alt="">
  233 + </div>
  234 + <div class="new-prof-wrapper-read">
  235 + <div class="new-portf-comm-read-title"><a href="#">Петер Цумтор</a></div>
  236 + <div class="new-portf-comm-read-rating">
  237 + <div class="rating">
  238 + <!--оценка-->
  239 + <input type="hidden" class="val" value="5"/>
  240 + <!--количество голосов-->
  241 + <input type="hidden" class="votes" value="12"/>
  242 + </div>
  243 + </div>
  244 + <div class="blog-post-date">
  245 + <span></span>
  246 + <p>22.09.2015</p>
236 </div> 247 </div>
237 </div> 248 </div>
238 - <div class="blog-post-date">  
239 - <span></span>  
240 - <p>22.09.2015</p> 249 +
  250 + <div class="new-portf-answer">
  251 + <p>Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.</p>
  252 + <p>Евровагонка — удобная в монтаже фасонная доска, которая позволяет создать обшивку из плотно пригнанных элементов с качественно обработанной поверхностью. Толщина евровагонки составляет 125 мм, общая ширина (с гребнем) 960 мм, рабочая ширина 880 мм.Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.</p>
241 </div> 253 </div>
242 - </div>  
243 254
244 - <div class="new-portf-answer">  
245 - <p>Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.</p>  
246 - <p>Евровагонка — удобная в монтаже фасонная доска, которая позволяет создать обшивку из плотно пригнанных элементов с качественно обработанной поверхностью. Толщина евровагонки составляет 125 мм, общая ширина (с гребнем) 960 мм, рабочая ширина 880 мм.Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.</p>  
247 </div> 255 </div>
248 - 256 + <div class="style"></div>
249 </div> 257 </div>
250 - <div class="style"></div>  
251 - </div>  
252 258
253 - <div class="new-portf-comm-read">  
254 - <div class="style">  
255 - <div class="header-cabinet-foto">  
256 - <img src="/images/ded-ico.png" alt="">  
257 - </div>  
258 - <div class="new-prof-wrapper-read">  
259 - <div class="new-portf-comm-read-title"><a href="#">Петер Цумтор</a></div>  
260 - <div class="new-portf-comm-read-rating">  
261 - <div class="rating">  
262 - <!--оценка-->  
263 - <input type="hidden" class="val" value="1"/>  
264 - <!--количество голосов-->  
265 - <input type="hidden" class="votes" value="12"/> 259 + <div class="new-portf-comm-read">
  260 + <div class="style">
  261 + <div class="header-cabinet-foto">
  262 + <img src="/images/ded-ico.png" alt="">
  263 + </div>
  264 + <div class="new-prof-wrapper-read">
  265 + <div class="new-portf-comm-read-title"><a href="#">Петер Цумтор</a></div>
  266 + <div class="new-portf-comm-read-rating">
  267 + <div class="rating">
  268 + <!--оценка-->
  269 + <input type="hidden" class="val" value="1"/>
  270 + <!--количество голосов-->
  271 + <input type="hidden" class="votes" value="12"/>
  272 + </div>
  273 + </div>
  274 + <div class="blog-post-date">
  275 + <span></span>
  276 + <p>22.09.2015</p>
266 </div> 277 </div>
267 </div> 278 </div>
268 - <div class="blog-post-date">  
269 - <span></span>  
270 - <p>22.09.2015</p> 279 +
  280 + <div class="new-portf-answer">
  281 + <p>Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.</p>
  282 + <p>Евровагонка — удобная в монтаже фасонная доска, которая позволяет создать обшивку из плотно пригнанных элементов с качественно обработанной поверхностью. Толщина евровагонки составляет 125 мм, общая ширина (с гребнем) 960 мм, рабочая ширина 880 мм.Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.</p>
271 </div> 283 </div>
272 - </div>  
273 284
274 - <div class="new-portf-answer">  
275 - <p>Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.</p>  
276 - <p>Евровагонка — удобная в монтаже фасонная доска, которая позволяет создать обшивку из плотно пригнанных элементов с качественно обработанной поверхностью. Толщина евровагонки составляет 125 мм, общая ширина (с гребнем) 960 мм, рабочая ширина 880 мм.Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.</p>  
277 </div> 285 </div>
278 - 286 + <div class="style"></div>
279 </div> 287 </div>
280 - <div class="style"></div>  
281 - </div>  
282 - <div class="new-portf-comm-read">  
283 - <div class="style">  
284 - <div class="header-cabinet-foto">  
285 - <img src="/images/ded-ico.png" alt="">  
286 - </div>  
287 - <div class="new-prof-wrapper-read">  
288 - <div class="new-portf-comm-read-title"><a href="#">Петер Цумтор</a></div>  
289 - <div class="new-portf-comm-read-rating">  
290 - <div class="rating">  
291 - <!--оценка-->  
292 - <input type="hidden" class="val" value="2"/>  
293 - <!--количество голосов-->  
294 - <input type="hidden" class="votes" value="12"/> 288 + <div class="new-portf-comm-read">
  289 + <div class="style">
  290 + <div class="header-cabinet-foto">
  291 + <img src="/images/ded-ico.png" alt="">
  292 + </div>
  293 + <div class="new-prof-wrapper-read">
  294 + <div class="new-portf-comm-read-title"><a href="#">Петер Цумтор</a></div>
  295 + <div class="new-portf-comm-read-rating">
  296 + <div class="rating">
  297 + <!--оценка-->
  298 + <input type="hidden" class="val" value="2"/>
  299 + <!--количество голосов-->
  300 + <input type="hidden" class="votes" value="12"/>
  301 + </div>
  302 + </div>
  303 + <div class="blog-post-date">
  304 + <span></span>
  305 + <p>22.09.2015</p>
295 </div> 306 </div>
296 </div> 307 </div>
297 - <div class="blog-post-date">  
298 - <span></span>  
299 - <p>22.09.2015</p> 308 +
  309 + <div class="new-portf-answer">
  310 + <p>Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.</p>
  311 + <p>Евровагонка — удобная в монтаже фасонная доска, которая позволяет создать обшивку из плотно пригнанных элементов с качественно обработанной поверхностью. Толщина евровагонки составляет 125 мм, общая ширина (с гребнем) 960 мм, рабочая ширина 880 мм.Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.</p>
300 </div> 312 </div>
301 - </div>  
302 313
303 - <div class="new-portf-answer">  
304 - <p>Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.</p>  
305 - <p>Евровагонка — удобная в монтаже фасонная доска, которая позволяет создать обшивку из плотно пригнанных элементов с качественно обработанной поверхностью. Толщина евровагонки составляет 125 мм, общая ширина (с гребнем) 960 мм, рабочая ширина 880 мм.Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.</p>  
306 </div> 314 </div>
307 - 315 + <div class="style"></div>
308 </div> 316 </div>
309 - <div class="style"></div>  
310 - </div>  
311 317
  318 + </div>
312 </div> 319 </div>
313 - </div>  
314 - */ 320 + */
315 ?> 321 ?>
316 </div> 322 </div>
317 <script> 323 <script>
frontend/views/company/review.php
1 <?php 1 <?php
  2 + /**
  3 + * @var View $this
  4 + * @var User $company
  5 + */
2 6
3 -use \yii\helpers\Html; 7 + use common\models\User;
  8 + use yii\web\View;
4 9
5 -/* @var $this yii\web\View */  
6 -$this->params['company'] = $company;  
7 -$this->title = 'My Yii Application'; 10 + $this->params[ 'company' ] = $company;
  11 + $this->title = 'My Yii Application';
8 ?> 12 ?>
9 <div class="performer-vacancy-vacant-title-reclam-wr style"> 13 <div class="performer-vacancy-vacant-title-reclam-wr style">
10 - <div class="proektant-comments-wr style">  
11 - <div class="workplace-title style"><p>Отзывы о пользователе: 4</p></div>  
12 - <ul class="proektant-comments style">  
13 - <li>  
14 - <div class="comments-name">Иван Иванов</div>  
15 - <div class="comments-status"><span>Pro</span></div>  
16 - <div class="comments-date">10.07.2015</div>  
17 - <div class="rating">  
18 - <!--оценка-->  
19 - <input type="hidden" class="val" value="2"/>  
20 - </div>  
21 - <div class="comments-content">  
22 - <p>Уже дважды пользовались услугами мастеров и очень довольны качеством работы, профессиональной консультацией в подборе материалов и оформлением дизайна!</p>  
23 - <p>Спасибо большое! Всем советуем!</p>  
24 - </div>  
25 - <div class="comments-project-link">Проект: <a href="#">Ремонт спальни</a></div>  
26 - </li>  
27 -  
28 - <li>  
29 - <div class="comments-name">Иван Иванов</div>  
30 - <div class="comments-status"><span>Pro</span></div>  
31 - <div class="comments-date">10.07.2015</div>  
32 - <div class="rating">  
33 - <!--оценка-->  
34 - <input type="hidden" class="val" value="5"/>  
35 - </div>  
36 - <div class="comments-content">  
37 - <p>Уже дважды пользовались услугами мастеров и очень довольны качеством работы, профессиональной консультацией в подборе материалов и оформлением дизайна!</p>  
38 - <p>Спасибо большое! Всем советуем!</p>  
39 - </div>  
40 - <div class="comments-project-link">Проект: <a href="#">Ремонт спальни</a></div>  
41 - </li>  
42 -  
43 - <li>  
44 - <div class="comments-name">Иван Иванов</div>  
45 - <div class="comments-status"><span>Pro</span></div>  
46 - <div class="comments-date">10.07.2015</div>  
47 - <div class="rating">  
48 - <!--оценка-->  
49 - <input type="hidden" class="val" value="4"/>  
50 - </div>  
51 - <div class="comments-content">  
52 - <p>Уже дважды пользовались услугами мастеров и очень довольны качеством работы, профессиональной консультацией в подборе материалов и оформлением дизайна!</p>  
53 - <p>Спасибо большое! Всем советуем!</p>  
54 - </div>  
55 - <div class="comments-project-link">Проект: <a href="#">Ремонт спальни</a></div>  
56 - </li>  
57 -  
58 - <li>  
59 - <div class="comments-name">Иван Иванов</div>  
60 - <div class="comments-status"><span>Pro</span></div>  
61 - <div class="comments-date">10.07.2015</div>  
62 - <div class="rating">  
63 - <!--оценка-->  
64 - <input type="hidden" class="val" value="1"/>  
65 - </div>  
66 - <div class="comments-content">  
67 - <p>Уже дважды пользовались услугами мастеров и очень довольны качеством работы, профессиональной консультацией в подборе материалов и оформлением дизайна!</p>  
68 - <p>Спасибо большое! Всем советуем!</p>  
69 - </div>  
70 - <div class="comments-project-link">Проект: <a href="#">Ремонт спальни</a></div>  
71 - </li>  
72 - </ul>  
73 - <div class="navi-buttons-wr style">  
74 - <ul class="pagination">  
75 - <li><a href="#">1</a></li>  
76 - <li><a href="#">2</a></li>  
77 - <li><a href="#">3</a></li>  
78 - <li><a href="#">4</a></li>  
79 - <li><a href="#">5</a></li>  
80 - <li class="dots-next"><a href="#">...</a></li>  
81 - <li><a href="#">156</a></li>  
82 - </ul>  
83 - </div>  
84 - </div>  
85 - 14 + <?php
  15 + echo \common\modules\comment\widgets\CommentWidget::widget([
  16 + 'context' => $this,
  17 + 'model' => $company->className(),
  18 + 'model_id' => $company->id,
  19 + 'comment_class' => \common\modules\comment\models\Comment::className(),
  20 + 'rating_class' => \common\modules\comment\models\Rating::className(),
  21 + 'class_options' => [
  22 + 'scenario' => is_int(\Yii::$app->user->getId()) ? \common\modules\comment\models\Comment::SCENARIO_USER : \common\modules\comment\models\Comment::SCENARIO_GUEST,
  23 + 'user_id' => \Yii::$app->user->getId(),
  24 + 'guestComment' => false,
  25 + 'status' => \common\modules\comment\models\Comment::STATUS_ACTIVE,
  26 + ],
  27 + 'list_options' => [
  28 + 'view' => 'list-comment-review',
  29 + ],
  30 + 'form_options' => [
  31 + 'view' => 'form-comment-review',
  32 + 'tag' => false,
  33 + ],
  34 + 'options' => [
  35 + 'class' => 'proektant-comments-wr style',
  36 + ],
  37 + ]);
  38 + ?>
86 </div> 39 </div>
frontend/views/performer/review.php
1 <?php 1 <?php
  2 + /**
  3 + * @var View $this
  4 + * @var User $user
  5 + */
2 6
3 -use \yii\helpers\Html; 7 + use common\models\User;
  8 + use yii\web\View;
4 9
5 -/* @var $this yii\web\View */  
6 -$this->params['user'] = $user;  
7 -$this->title = 'My Yii Application'; 10 + $this->params[ 'user' ] = $user;
  11 + $this->title = 'My Yii Application';
8 ?> 12 ?>
9 <div class="performer-vacancy-vacant-title-reclam-wr style"> 13 <div class="performer-vacancy-vacant-title-reclam-wr style">
  14 + <?php
  15 + echo \common\modules\comment\widgets\CommentWidget::widget([
  16 + 'context' => $this,
  17 + 'model' => $user->className(),
  18 + 'model_id' => $user->id,
  19 + 'comment_class' => \common\modules\comment\models\Comment::className(),
  20 + 'rating_class' => \common\modules\comment\models\Rating::className(),
  21 + 'class_options' => [
  22 + 'scenario' => is_int(\Yii::$app->user->getId()) ? \common\modules\comment\models\Comment::SCENARIO_USER : \common\modules\comment\models\Comment::SCENARIO_GUEST,
  23 + 'user_id' => \Yii::$app->user->getId(),
  24 + 'guestComment' => false,
  25 + 'status' => \common\modules\comment\models\Comment::STATUS_ACTIVE,
  26 + ],
  27 + 'list_options' => [
  28 + 'view' => 'list-comment-review',
  29 + ],
  30 + 'form_options' => [
  31 + 'view' => 'form-comment-review',
  32 + 'tag' => false,
  33 + ],
  34 + 'options' => [
  35 + 'class' => 'proektant-comments-wr style',
  36 + ],
  37 + ]);
  38 + ?>
  39 + <?php /* == Layout == ?>
10 <div class="proektant-comments-wr style"> 40 <div class="proektant-comments-wr style">
11 <div class="workplace-title style"><p>Отзывы о пользователе: 4</p></div> 41 <div class="workplace-title style"><p>Отзывы о пользователе: 4</p></div>
12 <ul class="proektant-comments style"> 42 <ul class="proektant-comments style">
@@ -82,5 +112,5 @@ $this-&gt;title = &#39;My Yii Application&#39;; @@ -82,5 +112,5 @@ $this-&gt;title = &#39;My Yii Application&#39;;
82 </ul> 112 </ul>
83 </div> 113 </div>
84 </div> 114 </div>
85 - 115 + <?php */ ?>
86 </div> 116 </div>