Commit ea8c5991eeb9c017d58a14031075788205a4e54d

Authored by Administrator
1 parent 7b83055d

add Vitaliy's widgets

backend/views/specialization/_form.php
@@ -14,15 +14,24 @@ use yii\helpers\ArrayHelper; @@ -14,15 +14,24 @@ use yii\helpers\ArrayHelper;
14 14
15 <?= $form->field($model, 'specialization_pid')->dropDownList(ArrayHelper::map($model->find()->all(), 'specialization_id', 'specialization_name'), ['prompt' => 'Выберие родителя']) ?> 15 <?= $form->field($model, 'specialization_pid')->dropDownList(ArrayHelper::map($model->find()->all(), 'specialization_id', 'specialization_name'), ['prompt' => 'Выберие родителя']) ?>
16 <?= $form->field($model, 'specialization_name')->textInput(['maxlength' => true]) ?> 16 <?= $form->field($model, 'specialization_name')->textInput(['maxlength' => true]) ?>
17 - <?= \common\widgets\ImageUploader::widget([  
18 - 'model'=> $model,  
19 - 'field'=>'img',  
20 - 'width'=>240,  
21 - 'height'=>160,  
22 - 'multi'=>false,  
23 - 'gallery' =>$model->img,  
24 - 'name' => 'Загрузить картинку'  
25 - ]); ?> 17 +
  18 + <?php
  19 +
  20 + echo $form->field($model, 'background')->textInput();
  21 +
  22 + if($model->specialization_pid == 0 && !empty($model->specialization_id) ){
  23 + echo \common\widgets\ImageUploader::widget([
  24 + 'model'=> $model,
  25 + 'field'=>'image',
  26 + 'width'=>940,
  27 + 'height'=>324,
  28 + 'multi'=>false,
  29 + 'gallery' =>$model->image,
  30 + 'name' => 'Загрузить картинку'
  31 + ]);
  32 + }
  33 + ?>
  34 +
26 <div class="form-group"> 35 <div class="form-group">
27 <?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?> 36 <?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
28 </div> 37 </div>
common/models/Specialization.php
@@ -10,10 +10,11 @@ use Yii; @@ -10,10 +10,11 @@ use Yii;
10 * @property integer $specialization_id 10 * @property integer $specialization_id
11 * @property integer $specialization_pid 11 * @property integer $specialization_pid
12 * @property string $specialization_name 12 * @property string $specialization_name
  13 + * @property string $image
  14 + * @property string $background
13 */ 15 */
14 class Specialization extends \yii\db\ActiveRecord 16 class Specialization extends \yii\db\ActiveRecord
15 { 17 {
16 - public $img;  
17 /** 18 /**
18 * @inheritdoc 19 * @inheritdoc
19 */ 20 */
@@ -28,10 +29,10 @@ class Specialization extends \yii\db\ActiveRecord @@ -28,10 +29,10 @@ class Specialization extends \yii\db\ActiveRecord
28 public function rules() 29 public function rules()
29 { 30 {
30 return [ 31 return [
31 - [['specialization_pid'], 'integer'], 32 + [['specialization_pid','status'], 'integer'],
32 [['specialization_pid'], 'default', 'value' => '0',], 33 [['specialization_pid'], 'default', 'value' => '0',],
33 [['specialization_name'], 'required'], 34 [['specialization_name'], 'required'],
34 - [['specialization_name'], 'string', 'max' => 255], 35 + [['specialization_name','image','background'], 'string', 'max' => 255],
35 ]; 36 ];
36 } 37 }
37 38
@@ -45,6 +46,9 @@ class Specialization extends \yii\db\ActiveRecord @@ -45,6 +46,9 @@ class Specialization extends \yii\db\ActiveRecord
45 'specialization_pid' => 'Specialization Pid', 46 'specialization_pid' => 'Specialization Pid',
46 'specialization_name' => 'Specialization Name', 47 'specialization_name' => 'Specialization Name',
47 'specialization_parent_name' => 'Specialization Parent Name', 48 'specialization_parent_name' => 'Specialization Parent Name',
  49 + 'image' => 'Картинка',
  50 + 'background' => 'Background',
  51 + 'status' => 'Status',
48 ]; 52 ];
49 } 53 }
50 54
@@ -54,4 +58,9 @@ class Specialization extends \yii\db\ActiveRecord @@ -54,4 +58,9 @@ class Specialization extends \yii\db\ActiveRecord
54 return $this->hasOne(self::className(), ['specialization_id' => 'specialization_pid']); 58 return $this->hasOne(self::className(), ['specialization_id' => 'specialization_pid']);
55 } 59 }
56 60
  61 + public function getChildren()
  62 + {
  63 + return $this->hasMany(self::className(), ['specialization_pid' => 'specialization_id']);
  64 + }
  65 +
57 } 66 }
common/widgets/FieldEditor.php
@@ -33,6 +33,7 @@ class FieldEditor extends Widget @@ -33,6 +33,7 @@ class FieldEditor extends Widget
33 protected function findModel() 33 protected function findModel()
34 { 34 {
35 35
  36 +
36 if (($model = Fields::find()->where([ 37 if (($model = Fields::find()->where([
37 'table_id'=>$this->item_id, 38 'table_id'=>$this->item_id,
38 'table_name'=>$this->model, 39 'table_name'=>$this->model,
common/widgets/views/education_field.php
1 <?php 1 <?php
2 use yii\helpers\Html; 2 use yii\helpers\Html;
  3 +
3 ?> 4 ?>
4 <fieldset> 5 <fieldset>
5 6
@@ -8,16 +9,18 @@ use yii\helpers\Html; @@ -8,16 +9,18 @@ use yii\helpers\Html;
8 <p class="btn btn-success add_field">Добавить поле</p> 9 <p class="btn btn-success add_field">Добавить поле</p>
9 10
10 11
11 - <?php for($i=1; $i <= count($model); $i++): 12 + <?php $t = 0; for($i=1; $i <= count($model); $i++):
12 $row = $i; 13 $row = $i;
  14 +
13 ?> 15 ?>
14 16
15 <?= Html::beginTag('div',['class'=>'form-group','id'=>isset($model[$i]['parent_key']) ? $model[$i]['parent_key'] : 0 ])?> 17 <?= Html::beginTag('div',['class'=>'form-group','id'=>isset($model[$i]['parent_key']) ? $model[$i]['parent_key'] : 0 ])?>
16 - <input type="text" placeholder="С" class="form-control" value="<?= isset($model[$i]['value']) ? $model[$i]['value'] : '' ?>" name="Fields[education][<?=$row?>][0][year_from]" />  
17 - <input type="text" placeholder="По" class="form-control" value="<?= isset($model[++$i]['value']) ? $model[$i]['value'] : '' ?>" name="Fields[education][<?=$row?>][1][year_to]" />  
18 - <textarea placeholder="Место" name="Fields[education][<?=$row?>][2][place]" /><?= isset($model[++$i]['value']) ? $model[$i]['value'] : '' ?></textarea> 18 + <input type="text" placeholder="С" class="form-control" value="<?= isset($model[$t]['value']) ? $model[$t]['value'] : '' ?>" name="Fields[education][<?=$row?>][0][year_from]" />
  19 + <input type="text" placeholder="По" class="form-control" value="<?= isset($model[++$t]['value']) ? $model[$t]['value'] : '' ?>" name="Fields[education][<?=$row?>][1][year_to]" />
  20 + <textarea placeholder="Место" name="Fields[education][<?=$row?>][2][place]" /><?= isset($model[++$t]['value']) ? $model[$t]['value'] : '' ?></textarea>
19 <span data-id="<?= isset($model[$i]['parent_key']) ? $model[$i]['parent_key'] : 0 ?>" title="удалить" class="glyphicon glyphicon-trash delete-field-item"></span> 21 <span data-id="<?= isset($model[$i]['parent_key']) ? $model[$i]['parent_key'] : 0 ?>" title="удалить" class="glyphicon glyphicon-trash delete-field-item"></span>
20 <?= Html::endTag('div')?> 22 <?= Html::endTag('div')?>
  23 + <?php $i = ++ $t; ?>
21 <?php endfor; ?> 24 <?php endfor; ?>
22 25
23 26
@@ -30,7 +33,7 @@ use yii\helpers\Html; @@ -30,7 +33,7 @@ use yii\helpers\Html;
30 var block = $(this).parent('fieldset'); 33 var block = $(this).parent('fieldset');
31 var block_id = $(this).parent('fieldset'); 34 var block_id = $(this).parent('fieldset');
32 var sub_block = '<div class="form-group" >'+ 35 var sub_block = '<div class="form-group" >'+
33 - '<input type="text" placeholder="С" class="form-control" value="" name="Fields[education]['+ start_i++ +'][0][year_from]" />'+ 36 + '<input type="text" placeholder="С" class="form-control" value="" name="Fields[education]['+ ++start_i +'][0][year_from]" />'+
34 '<input type="text" placeholder="По" class="form-control" value="" name="Fields[education]['+ start_i +'][1][year_to]" />'+ 37 '<input type="text" placeholder="По" class="form-control" value="" name="Fields[education]['+ start_i +'][1][year_to]" />'+
35 '<textarea placeholder="Место" name="Fields[education]['+ start_i +'][2][place]" /></textarea>'+ 38 '<textarea placeholder="Место" name="Fields[education]['+ start_i +'][2][place]" /></textarea>'+
36 '<span title="удалить" class="glyphicon glyphicon-trash delete-field-item"></span>'+ 39 '<span title="удалить" class="glyphicon glyphicon-trash delete-field-item"></span>'+
frontend/controllers/AccountsController.php
@@ -48,11 +48,10 @@ class AccountsController extends Controller @@ -48,11 +48,10 @@ class AccountsController extends Controller
48 48
49 $langs = Language::getActiveLanguages(); 49 $langs = Language::getActiveLanguages();
50 50
51 -  
52 if ($user->load(Yii::$app->request->post()) && $user->save()) { 51 if ($user->load(Yii::$app->request->post()) && $user->save()) {
53 $user->userInfo->load(Yii::$app->request->post()); 52 $user->userInfo->load(Yii::$app->request->post());
54 $user->userInfo->save(); 53 $user->userInfo->save();
55 - Fields::saveFieldData( Yii::$app->request->post('Fields'), $user->id, $user::className()); 54 + Fields::saveFieldData( Yii::$app->request->post('Fields'), $user->id, $user::className(),'ru');
56 return $this->render('cabinet', [ 55 return $this->render('cabinet', [
57 'user' => $user, 56 'user' => $user,
58 'user_info' => $user->userInfo, 57 'user_info' => $user->userInfo,
frontend/controllers/SiteController.php
1 <?php 1 <?php
2 namespace frontend\controllers; 2 namespace frontend\controllers;
3 3
  4 +use common\models\Specialization;
4 use common\models\UserInfo; 5 use common\models\UserInfo;
5 use Yii; 6 use Yii;
6 use common\models\LoginForm; 7 use common\models\LoginForm;
@@ -62,7 +63,11 @@ class SiteController extends Controller @@ -62,7 +63,11 @@ class SiteController extends Controller
62 */ 63 */
63 public function actionIndex() 64 public function actionIndex()
64 { 65 {
65 - return $this->render('index'); 66 + $specializations = Specialization::find()->where(['specialization_pid'=>0])->all();
  67 +
  68 + return $this->render('index',[
  69 + 'specializations' => $specializations,
  70 + ]);
66 } 71 }
67 72
68 /** 73 /**
frontend/views/accounts/_form.php
@@ -56,7 +56,7 @@ use mihaildev\elfinder\ElFinder; @@ -56,7 +56,7 @@ use mihaildev\elfinder\ElFinder;
56 'template'=>'education', 56 'template'=>'education',
57 'item_id'=> $user->id, 57 'item_id'=> $user->id,
58 'model'=>'common\models\User', 58 'model'=>'common\models\User',
59 - 'language'=>'0' 59 + 'language'=>'ru'
60 ]); ?> 60 ]); ?>
61 61
62 62
frontend/views/site/index.php
1 <?php 1 <?php
2 2
3 use \yii\helpers\Html; 3 use \yii\helpers\Html;
4 -  
5 -/* @var $this yii\web\View */ 4 +use \common\models\Specialization;
  5 +/**
  6 + * @var $this yii\web\View
  7 + * @var $specializations common\models\Specialization
  8 + */
6 9
7 $this->title = 'My Yii Application'; 10 $this->title = 'My Yii Application';
8 ?> 11 ?>
@@ -49,83 +52,29 @@ $this-&gt;title = &#39;My Yii Application&#39;; @@ -49,83 +52,29 @@ $this-&gt;title = &#39;My Yii Application&#39;;
49 <div class="menu-two-wrapp-title">Специализация работ по исполнителям</div> 52 <div class="menu-two-wrapp-title">Специализация работ по исполнителям</div>
50 <div class="menu-two-wrapp" style="background: url('/images/menu-pic-1.jpg') 100% 100% no-repeat"> 53 <div class="menu-two-wrapp" style="background: url('/images/menu-pic-1.jpg') 100% 100% no-repeat">
51 <ul class="content-menu-first"> 54 <ul class="content-menu-first">
52 - <li data-img="/images/menu-pic-1-2.jpg">  
53 - <span data-menu-bg="#bb0f3f" style="background: #bb0f3f"></span><a href="#">Жилые</a>  
54 - <ul>  
55 - <li>  
56 - <a href="#">Жилые дома</a>  
57 - <ul>  
58 - <li><a href="#">Дизайн</a></li>  
59 - <li>  
60 - <a href="#">Разработка градостроительной документации</a>  
61 - <ul>  
62 - <li><a href="#">Архитекторы</a></li>  
63 - <li><a href="#">Junior-архитекторы</a></li>  
64 - </ul>  
65 - </li>  
66 - <li><a href="#">Проектирование объектов архитектуры</a></li>  
67 - <li><a href="#">Инжиниринговая деятельность в сфере строительства</a>  
68 - <ul>  
69 - <li><a href="#">йййййй</a></li>  
70 - <li><a href="#">ййййййййййй</a></li>  
71 - </ul>  
72 - </li>  
73 - <li><a href="#">Анимация и реклама</a></li>  
74 - </ul>  
75 - </li>  
76 - <li><a href="#">Виллы</a></li>  
77 - <li><a href="#">Коттеджи</a></li>  
78 - <li><a href="#">Гостиницы</a></li>  
79 - <li>  
80 - <a href="#">Базы отдыха</a>  
81 - <ul>  
82 - <li><a href="#">2---2</a></li>  
83 - <li><a href="#">2---3</a></li>  
84 - <li><a href="#">2---4</a></li>  
85 - </ul>  
86 - </li>  
87 - <li><a href="#">Таунхаусы</a></li>  
88 - <li><a href="#">Квартиры</a></li>  
89 - <li><a href="#">Квартиры</a></li>  
90 - <li><a href="#">Квартиры</a></li>  
91 - </ul>  
92 - </li>  
93 - <li data-img="/images/menu-pic-1.jpg">  
94 - <span data-menu-bg="#ea640b" style="background: #ea640b"></span><a href="#">Офисные</a>  
95 - <ul>  
96 - <li>  
97 - <a href="#">Коттеджи</a>  
98 - <ul>  
99 - <li><a href="#">1---1</a></li>  
100 - <li>  
101 - <a href="#">1---2</a>  
102 - <ul>  
103 - <li><a href="#">Архитекторы</a></li>  
104 - <li><a href="#">Junior-архитекторы</a></li>  
105 - </ul>  
106 - </li>  
107 - <li><a href="#">1---3</a></li>  
108 - <li><a href="#">1---4</a></li>  
109 - </ul>  
110 - </li>  
111 - <li><a href="#">Гостиницы</a></li>  
112 - <li>  
113 - <a href="#">Базы отдыха</a>  
114 - <ul>  
115 - <li><a href="#">2---2</a></li>  
116 - <li><a href="#">2---3</a></li>  
117 - <li><a href="#">2---4</a></li>  
118 - </ul>  
119 - </li>  
120 - </ul>  
121 - </li>  
122 - <li data-img="/images/menu-pic-1-2.jpg"><span data-menu-bg="#f7a901" style="background: #f7a901"></span><a href="#">Торговые</a></li>  
123 - <li data-img="/images/menu-pic-1.jpg"><span data-menu-bg="#53a827" style="background: #53a827"></span><a href="#">Мосты</a></li>  
124 - <li data-img="/images/menu-pic-1-2.jpg"><span data-menu-bg="#018232" style="background: #018232"></span><a href="#">Дороги</a></li>  
125 - <li data-img="/images/menu-pic-1.jpg"><span data-menu-bg="#02857d" style="background: #02857d"></span><a href="#">Сооружения</a></li>  
126 - <li data-img="/images/menu-pic-1-2.jpg"><span data-menu-bg="#019abf" style="background: #019abf"></span><a href="#">Склады</a></li>  
127 - <li data-img="/images/menu-pic-1.jpg"><span data-menu-bg="#116da8" style="background: #116da8"></span><a href="#">Заводы</a></li>  
128 - <li data-img="/images/menu-pic-1-2.jpg"><span data-menu-bg="#413e7f" style="background: #413e7f"></span><a href="#">Разное</a></li> 55 + <?php foreach($specializations as $specialization):?>
  56 + <li data-img="<?= $specialization->image?>">
  57 + <span data-menu-bg="<?= $specialization->background ?>" style="background: <?= $specialization->background ?>"></span><a href="#"><?= $specialization->specialization_name?></a>
  58 + <ul>
  59 + <?php foreach($specialization->children as $child_first):?>
  60 +
  61 + <?php if($child_first instanceof Specialization):?>
  62 + <li>
  63 + <a href="#"><?= $child_first->specialization_name?></a>
  64 + <ul>
  65 + <?php foreach($child_first->children as $child_second):?>
  66 + <?php if($child_first instanceof Specialization): ?>
  67 + <li><a href="#"><?= $child_second->specialization_name?></a></li>
  68 + <?php endif;?>
  69 + <?php endforeach; ?>
  70 + </ul>
  71 + </li>
  72 + <?php endif; ?>
  73 + <?php endforeach; ?>
  74 +
  75 + </ul>
  76 + </li>
  77 + <?php endforeach; ?>
129 </ul> 78 </ul>
130 </div> 79 </div>
131 </div> 80 </div>