Commit 83b0052c2e5a9e43b447da44902902f804143b47

Authored by Yarik
1 parent a020aad3

test

common/models/Project.php
... ... @@ -33,6 +33,7 @@
33 33 class Project extends \yii\db\ActiveRecord
34 34 {
35 35  
  36 + public $files;
36 37 /**
37 38 * @inheritdoc
38 39 */
... ... @@ -94,6 +95,7 @@
94 95 [
95 96 'specializationInput',
96 97 'paymentInput',
  98 + 'files',
97 99 ],
98 100 'safe',
99 101 ],
... ... @@ -258,4 +260,17 @@
258 260 {
259 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 665 throw new InvalidConfigException('This method is available only in PostgreSQL');
666 666 }
667 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 669 ->andWhere([
670 670 'not',
671 671 [ 'rating.value' => NULL ],
... ...
common/modules/comment/models/Comment.php
1 1 <?php
2 2 namespace common\modules\comment\models;
3 3  
  4 + use common\models\User;
4 5 use yii\db\ActiveQuery;
5 6  
6 7 /**
... ... @@ -18,6 +19,8 @@
18 19 * @property string $date_delete
19 20 * @property string $model
20 21 * @property int $model_id
  22 + * @property Rating $rating
  23 + * @property User $user
21 24 * @package common\modules\comment\models
22 25 */
23 26 class Comment extends \yii\db\ActiveRecord
... ... @@ -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 136 public static function tableName()
121 137 {
122 138 return '{{%comment}}';
... ... @@ -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 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 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 17 \ No newline at end of file
... ...
frontend/controllers/AccountsController.php
... ... @@ -9,6 +9,7 @@
9 9 use common\models\Department;
10 10 use common\models\Employment;
11 11 use common\models\Fields;
  12 + use common\models\File;
12 13 use common\models\Gallery;
13 14 use common\models\GallerySearch;
14 15 use common\models\Job;
... ... @@ -36,6 +37,7 @@
36 37 use yii\filters\VerbFilter;
37 38 use yii\web\Controller;
38 39 use yii\web\NotFoundHttpException;
  40 + use yii\web\UploadedFile;
39 41  
40 42 /**
41 43 * Site controller
... ... @@ -626,6 +628,24 @@
626 628 $post = \Yii::$app->request->post();
627 629 if(!empty( $post )) {
628 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 649 $project->validate();
630 650 if(!$project->hasErrors()) {
631 651 $date_end = new \DateTime();
... ... @@ -706,6 +726,24 @@
706 726 $post = \Yii::$app->request->post();
707 727 if(!empty( $post )) {
708 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 747 $project->validate();
710 748 if(!$project->hasErrors()) {
711 749 $date_end = new \DateTime();
... ...
frontend/views/accounts/_projects_form.php
... ... @@ -23,21 +23,21 @@
23 23 <div class="login-left-column-title"><?= $this->title ?></div>
24 24  
25 25 <?php
26   - $form = ActiveForm::begin();
  26 + $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]);
27 27 ?>
28 28  
29 29  
30 30 <div class="input-blocks-wrapper">
31 31 <div class="input-blocks">
32 32 <?= $form->field($project, 'name')
33   - ->textInput (['class'=> 'custom-input-2']) ?>
  33 + ->textInput([ 'class' => 'custom-input-2' ]) ?>
34 34 </div>
35 35 </div>
36 36  
37 37 <div class="input-blocks-wrapper">
38 38 <div class="input-blocks admin-project-list admin-currency-second">
39 39 <?= $form->field($project, 'project_pid')
40   - ->dropDownList($projects, [ 'prompt' => 'Родительский проект' ]) ?>
  40 + ->dropDownList($projects, [ 'prompt' => 'Родительский проект' ]) ?>
41 41 </div>
42 42 </div>
43 43  
... ... @@ -63,15 +63,15 @@
63 63 <li>
64 64 <a href="#" title="<?= $child_second->specialization_name ?>">
65 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 75 </a>
76 76 </li>
77 77 <?php endif; ?>
... ... @@ -91,7 +91,9 @@
91 91 </div>
92 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 99 <div class="conacts-admin style">Адрес проекта:</div>
... ... @@ -99,38 +101,33 @@
99 101 <div class="input-blocks-wrapper">
100 102 <div class="input-blocks">
101 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 119 </div>
119 120  
120 121  
121   -
122   -
123   -
124 122 <div class="input-blocks street-input">
125 123 <?= $form->field($project, 'street', [ 'template' => "{label}{input}{hint}{error}" ])
126   - ->textInput (['class'=> 'custom-input-2']) ?>
  124 + ->textInput([ 'class' => 'custom-input-2' ]) ?>
127 125 </div>
128 126  
129 127  
130   -
131 128 <div class="input-blocks home-input">
132 129 <?= $form->field($project, 'house', [ 'template' => "{label}{input}{hint}{error}" ])
133   - ->textInput (['class'=> 'custom-input-2']) ?>
  130 + ->textInput([ 'class' => 'custom-input-2' ]) ?>
134 131 </div>
135 132 </div>
136 133 </div>
... ... @@ -138,20 +135,22 @@
138 135 <div class="input-blocks-wrapper">
139 136 <div class="input-blocks admin-project-list-two admin-currency-first">
140 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 144 </div>
145 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 149 </div>
150 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 154 </div>
156 155  
157 156 </div>
... ... @@ -159,37 +158,37 @@
159 158 <div class="input-blocks-wrapper">
160 159 <div class="input-blocks">
161 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 175 </div>
177 176 </div>
178 177  
179 178 <div class="input-blocks-wrapper">
180 179 <div class="input-blocks">
181 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 192 </div>
194 193 </div>
195 194  
... ... @@ -197,7 +196,10 @@
197 196 <div class="input-blocks-wrapper">
198 197 <div class="input-blocks admin-project-days">
199 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 203 </div>
202 204 </div>
203 205  
... ... @@ -216,9 +218,8 @@
216 218 <div class="not-file-mb-adm">До 3 Мб файл</div>
217 219 </div>
218 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 223 </div>
223 224  
224 225 </div>
... ... @@ -227,17 +228,17 @@
227 228 <div class="input-blocks-wrapper">
228 229 <div class="input-blocks admin-project-list admin-currency-second">
229 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 236 </div>
236 237 </div>
237 238  
238 239 <div class="input-blocks-wrapper">
239 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 242 <div class="admin-remove-note">
242 243 <?php
243 244 if(!$project->isNewRecord) {
... ... @@ -255,7 +256,7 @@
255 256 ?>
256 257 </div>
257 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 260 </div>
260 261 </div>
261 262 </div>
... ... @@ -264,29 +265,45 @@
264 265 $form->end();
265 266 ?>
266 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 309 </script>
... ...
frontend/views/company/portfolio-view.php
1 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 17 <div class="portfolio-new-page-wrapper style">
18 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 20 </div>
21 21 <div class="new-portfolio-icons-rating-wr style">
22 22 <div class="new-portfolio-icons">
... ... @@ -57,29 +57,29 @@ $this-&gt;title = &#39;My Yii Application&#39;;
57 57 <div class="new-portf-slider-wr style">
58 58 <div class="new-portf-slider-title"><?= $portfolio->name ?></div>
59 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 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 79 </div>
79 80 </div>
80   - </div>
81   - <?php
82   - }
  81 + <?php
  82 + }
83 83 ?>
84 84 </div>
85 85  
... ... @@ -89,229 +89,235 @@ $this-&gt;title = &#39;My Yii Application&#39;;
89 89 <?= $portfolio->preview ?>
90 90 </div>
91 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 98 </div>
99 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 107 </div>
106   - <div class="new-portfolio-see-all style"><span>Свернуть</span></div>
107   - </div>
108   - <?php
109   - }
  108 + <?php
  109 + }
110 110 ?>
111 111 </div>
112 112  
113 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 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 187 </div>
177 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 193 </div>
182   - </div>
183 194  
184   - <div class="new-portf-answer">
185   - <p>Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.</p>
186   - <p>Евровагонка — удобная в монтаже фасонная доска, которая позволяет создать обшивку из плотно пригнанных элементов с качественно обработанной поверхностью. Толщина евровагонки составляет 125 мм, общая ширина (с гребнем) 960 мм, рабочая ширина 880 мм.Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.</p>
187 195 </div>
188   -
  196 + <div class="style"></div>
189 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 217 </div>
207 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 223 </div>
212   - </div>
213 224  
214   - <div class="new-portf-answer">
215   - <p>Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.</p>
216   - <p>Евровагонка — удобная в монтаже фасонная доска, которая позволяет создать обшивку из плотно пригнанных элементов с качественно обработанной поверхностью. Толщина евровагонки составляет 125 мм, общая ширина (с гребнем) 960 мм, рабочая ширина 880 мм.Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.</p>
217 225 </div>
218   -
  226 + <div class="style"></div>
219 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 247 </div>
237 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 253 </div>
242   - </div>
243 254  
244   - <div class="new-portf-answer">
245   - <p>Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.</p>
246   - <p>Евровагонка — удобная в монтаже фасонная доска, которая позволяет создать обшивку из плотно пригнанных элементов с качественно обработанной поверхностью. Толщина евровагонки составляет 125 мм, общая ширина (с гребнем) 960 мм, рабочая ширина 880 мм.Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.</p>
247 255 </div>
248   -
  256 + <div class="style"></div>
249 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 277 </div>
267 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 283 </div>
272   - </div>
273 284  
274   - <div class="new-portf-answer">
275   - <p>Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.</p>
276   - <p>Евровагонка — удобная в монтаже фасонная доска, которая позволяет создать обшивку из плотно пригнанных элементов с качественно обработанной поверхностью. Толщина евровагонки составляет 125 мм, общая ширина (с гребнем) 960 мм, рабочая ширина 880 мм.Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.</p>
277 285 </div>
278   -
  286 + <div class="style"></div>
279 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 306 </div>
296 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 312 </div>
301   - </div>
302 313  
303   - <div class="new-portf-answer">
304   - <p>Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.</p>
305   - <p>Евровагонка — удобная в монтаже фасонная доска, которая позволяет создать обшивку из плотно пригнанных элементов с качественно обработанной поверхностью. Толщина евровагонки составляет 125 мм, общая ширина (с гребнем) 960 мм, рабочая ширина 880 мм.Балкон, обшитый вагонкой, выглядит аккуратно, стильно и уютно. Монтаж обшивки вполне возможно выполнить своими силами — достаточно иметь в распоряжении необходимые инструменты и владеть базовыми навыками строительно-ремонтных работ.</p>
306 314 </div>
307   -
  315 + <div class="style"></div>
308 316 </div>
309   - <div class="style"></div>
310   - </div>
311 317  
  318 + </div>
312 319 </div>
313   - </div>
314   - */
  320 + */
315 321 ?>
316 322 </div>
317 323 <script>
... ...
frontend/views/company/review.php
1 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 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 39 </div>
... ...
frontend/views/performer/review.php
1 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 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 40 <div class="proektant-comments-wr style">
11 41 <div class="workplace-title style"><p>Отзывы о пользователе: 4</p></div>
12 42 <ul class="proektant-comments style">
... ... @@ -82,5 +112,5 @@ $this-&gt;title = &#39;My Yii Application&#39;;
82 112 </ul>
83 113 </div>
84 114 </div>
85   -
  115 + <?php */ ?>
86 116 </div>
... ...