Commit 989c83b00da44c427465d508f34dc84cbc38f2d8

Authored by Yarik
1 parent ccab742d

test

common/models/Portfolio.php
@@ -107,19 +107,20 @@ @@ -107,19 +107,20 @@
107 public function attributeLabels() 107 public function attributeLabels()
108 { 108 {
109 return [ 109 return [
110 - 'portfolio_id' => Yii::t('app', 'Portfolio ID'),  
111 - 'user_id' => Yii::t('app', 'User ID'),  
112 - 'name' => Yii::t('app', 'Название'),  
113 - 'link' => Yii::t('app', 'URL'),  
114 - 'date_add' => Yii::t('app', 'Дата добавления'),  
115 - 'user_add_id' => Yii::t('app', 'User Add ID'),  
116 - 'view_count' => Yii::t('app', 'Количество просмотров'),  
117 - 'city' => Yii::t('app', 'Город'),  
118 - 'street' => Yii::t('app', 'Улица'),  
119 - 'house' => Yii::t('app', 'Дом'),  
120 - 'description' => Yii::t('app', 'Описание'),  
121 - 'cover' => Yii::t('app', 'Фото главное'),  
122 - 'gallery_id' => Yii::t('app', 'Фото галерея'), 110 + 'portfolio_id' => Yii::t('app', 'Portfolio ID'),
  111 + 'user_id' => Yii::t('app', 'User ID'),
  112 + 'name' => Yii::t('app', 'Название'),
  113 + 'link' => Yii::t('app', 'URL'),
  114 + 'date_add' => Yii::t('app', 'Дата добавления'),
  115 + 'user_add_id' => Yii::t('app', 'User Add ID'),
  116 + 'view_count' => Yii::t('app', 'Количество просмотров'),
  117 + 'city' => Yii::t('app', 'Город'),
  118 + 'street' => Yii::t('app', 'Улица'),
  119 + 'house' => Yii::t('app', 'Дом'),
  120 + 'description' => Yii::t('app', 'Описание'),
  121 + 'cover' => Yii::t('app', 'Фото главное'),
  122 + 'gallery_id' => Yii::t('app', 'Фото галерея'),
  123 + 'specializationString' => Yii::t('app', 'Специализации'),
123 ]; 124 ];
124 } 125 }
125 126
@@ -148,4 +149,21 @@ @@ -148,4 +149,21 @@
148 { 149 {
149 $this->specializationInput = $value; 150 $this->specializationInput = $value;
150 } 151 }
  152 +
  153 + public function getSpecializationString()
  154 + {
  155 + return implode(', ', $this->getSpecializations()
  156 + ->select([
  157 + 'specialization_name',
  158 + 'specialization_id',
  159 + ])
  160 + ->asArray()
  161 + ->indexBy('specialization_id')
  162 + ->column());
  163 + }
  164 +
  165 + public function setSpecializationString($value)
  166 + {
  167 + $this->specializationString = $value;
  168 + }
151 } 169 }
common/models/PortfolioSearch.php
1 <?php 1 <?php
2 2
3 -namespace common\models; 3 + namespace common\models;
4 4
5 -use Yii;  
6 -use yii\base\Model;  
7 -use yii\data\ActiveDataProvider;  
8 -use common\models\Portfolio; 5 + use Yii;
  6 + use yii\base\Model;
  7 + use yii\data\ActiveDataProvider;
  8 + use common\models\Portfolio;
9 9
10 -/**  
11 - * PortfolioSearch represents the model behind the search form about `common\models\Portfolio`.  
12 - */  
13 -class PortfolioSearch extends Portfolio  
14 -{  
15 /** 10 /**
16 - * @inheritdoc 11 + * PortfolioSearch represents the model behind the search form about `common\models\Portfolio`.
17 */ 12 */
18 - public function rules() 13 + class PortfolioSearch extends Portfolio
19 { 14 {
20 - return [  
21 - [['portfolio_id', 'user_id', 'user_add_id', 'view_count', 'gallery_id'], 'integer'],  
22 - [['name', 'link', 'date_add', 'city', 'street', 'house', 'description', 'cover'], 'safe'],  
23 - ];  
24 - }  
25 15
26 - /**  
27 - * @inheritdoc  
28 - */  
29 - public function scenarios()  
30 - {  
31 - // bypass scenarios() implementation in the parent class  
32 - return Model::scenarios();  
33 - } 16 + /**
  17 + * @inheritdoc
  18 + */
  19 + public function rules()
  20 + {
  21 + return [
  22 + [
  23 + [
  24 + 'portfolio_id',
  25 + 'user_id',
  26 + 'user_add_id',
  27 + 'view_count',
  28 + 'gallery_id',
  29 + ],
  30 + 'integer',
  31 + ],
  32 + [
  33 + [
  34 + 'name',
  35 + 'link',
  36 + 'date_add',
  37 + 'city',
  38 + 'street',
  39 + 'house',
  40 + 'description',
  41 + 'cover',
  42 + 'specializationString',
  43 + ],
  44 + 'safe',
  45 + ],
  46 + ];
  47 + }
34 48
35 - /**  
36 - * Creates data provider instance with search query applied  
37 - *  
38 - * @param array $params  
39 - *  
40 - * @return ActiveDataProvider  
41 - */  
42 - public function search($params)  
43 - {  
44 - $query = Portfolio::find(); 49 + /**
  50 + * @inheritdoc
  51 + */
  52 + public function scenarios()
  53 + {
  54 + // bypass scenarios() implementation in the parent class
  55 + return Model::scenarios();
  56 + }
45 57
46 - // add conditions that should always apply here 58 + /**
  59 + * Creates data provider instance with search query applied
  60 + *
  61 + * @param array $params
  62 + *
  63 + * @return ActiveDataProvider
  64 + */
  65 + public function search($params)
  66 + {
  67 + $query = Portfolio::find();
47 68
48 - $dataProvider = new ActiveDataProvider([  
49 - 'query' => $query,  
50 - ]); 69 + // add conditions that should always apply here
51 70
52 - $this->load($params); 71 + $dataProvider = new ActiveDataProvider([
  72 + 'query' => $query,
  73 + ]);
53 74
54 - if (!$this->validate()) {  
55 - // uncomment the following line if you do not want to return any records when validation fails  
56 - // $query->where('0=1');  
57 - return $dataProvider;  
58 - } 75 + $this->load($params);
59 76
60 - // grid filtering conditions  
61 - $query->andFilterWhere([  
62 - 'portfolio_id' => $this->portfolio_id,  
63 - 'user_id' => $this->user_id,  
64 - 'date_add' => $this->date_add,  
65 - 'user_add_id' => $this->user_add_id,  
66 - 'view_count' => $this->view_count,  
67 - 'gallery_id' => $this->gallery_id,  
68 - ]); 77 + if(!$this->validate()) {
  78 + // uncomment the following line if you do not want to return any records when validation fails
  79 + // $query->where('0=1');
  80 + return $dataProvider;
  81 + }
69 82
70 - $query->andFilterWhere(['like', 'name', $this->name])  
71 - ->andFilterWhere(['like', 'link', $this->link])  
72 - ->andFilterWhere(['like', 'city', $this->city])  
73 - ->andFilterWhere(['like', 'street', $this->street])  
74 - ->andFilterWhere(['like', 'house', $this->house])  
75 - ->andFilterWhere(['like', 'description', $this->description])  
76 - ->andFilterWhere(['like', 'cover', $this->cover]); 83 + $query->joinWith('specializations');
77 84
78 - return $dataProvider; 85 + // grid filtering conditions
  86 + $query->andFilterWhere([
  87 + 'portfolio_id' => $this->portfolio_id,
  88 + 'user_id' => $this->user_id,
  89 + 'date_add' => $this->date_add,
  90 + 'user_add_id' => $this->user_add_id,
  91 + 'view_count' => $this->view_count,
  92 + 'gallery_id' => $this->gallery_id,
  93 + ]);
  94 +
  95 + $query->andFilterWhere([
  96 + 'like',
  97 + 'name',
  98 + $this->name,
  99 + ])
  100 + ->andFilterWhere([
  101 + 'like',
  102 + 'link',
  103 + $this->link,
  104 + ])
  105 + ->andFilterWhere([
  106 + 'like',
  107 + 'city',
  108 + $this->city,
  109 + ])
  110 + ->andFilterWhere([
  111 + 'like',
  112 + 'street',
  113 + $this->street,
  114 + ])
  115 + ->andFilterWhere([
  116 + 'like',
  117 + 'house',
  118 + $this->house,
  119 + ])
  120 + ->andFilterWhere([
  121 + 'like',
  122 + 'description',
  123 + $this->description,
  124 + ])
  125 + ->andFilterWhere([
  126 + 'like',
  127 + 'cover',
  128 + $this->cover,
  129 + ])
  130 + ->andFilterWhere([
  131 + 'like',
  132 + 'specialization.specialization_name',
  133 + $this->specializationString,
  134 + ]);
  135 +
  136 + return $dataProvider;
  137 + }
79 } 138 }
80 -}  
common/models/Project.php
@@ -103,6 +103,11 @@ @@ -103,6 +103,11 @@
103 'string', 103 'string',
104 'max' => 255, 104 'max' => 255,
105 ], 105 ],
  106 + [
  107 + [ 'view_count' ],
  108 + 'default',
  109 + 'value' => 0,
  110 + ],
106 ]; 111 ];
107 } 112 }
108 113
@@ -132,6 +137,7 @@ @@ -132,6 +137,7 @@
132 'file' => Yii::t('app', 'Присоединить файл'), 137 'file' => Yii::t('app', 'Присоединить файл'),
133 'specializationInput' => Yii::t('app', 'Специализации'), 138 'specializationInput' => Yii::t('app', 'Специализации'),
134 'paymentInput' => Yii::t('app', 'Способ оплаты'), 139 'paymentInput' => Yii::t('app', 'Способ оплаты'),
  140 + 'specializationString' => Yii::t('app', 'Специализации'),
135 ]; 141 ];
136 } 142 }
137 143
@@ -186,4 +192,21 @@ @@ -186,4 +192,21 @@
186 { 192 {
187 $this->paymentInput = $value; 193 $this->paymentInput = $value;
188 } 194 }
  195 +
  196 + public function getSpecializationString()
  197 + {
  198 + return implode(', ', $this->getSpecializations()
  199 + ->select([
  200 + 'specialization_name',
  201 + 'specialization_id',
  202 + ])
  203 + ->asArray()
  204 + ->indexBy('specialization_id')
  205 + ->column());
  206 + }
  207 +
  208 + public function setSpecializationString($value)
  209 + {
  210 + $this->specializationString = $value;
  211 + }
189 } 212 }
frontend/controllers/AccountsController.php
@@ -2,18 +2,22 @@ @@ -2,18 +2,22 @@
2 namespace frontend\controllers; 2 namespace frontend\controllers;
3 3
4 use common\models\Blog; 4 use common\models\Blog;
  5 + use common\models\BlogSearch;
5 use common\models\CompanyInfo; 6 use common\models\CompanyInfo;
6 use common\models\Country; 7 use common\models\Country;
7 use common\models\Department; 8 use common\models\Department;
8 use common\models\Employment; 9 use common\models\Employment;
9 use common\models\Fields; 10 use common\models\Fields;
10 use common\models\Gallery; 11 use common\models\Gallery;
  12 + use common\models\GallerySearch;
11 use common\models\Job; 13 use common\models\Job;
12 use common\models\Language; 14 use common\models\Language;
13 use common\models\Payment; 15 use common\models\Payment;
14 use common\models\Portfolio; 16 use common\models\Portfolio;
  17 + use common\models\PortfolioSearch;
15 use common\models\PortfolioSpecialization; 18 use common\models\PortfolioSpecialization;
16 use common\models\Project; 19 use common\models\Project;
  20 + use common\models\ProjectSearch;
17 use common\models\Specialization; 21 use common\models\Specialization;
18 use common\models\Team; 22 use common\models\Team;
19 use common\models\TeamSearch; 23 use common\models\TeamSearch;
@@ -54,7 +58,11 @@ @@ -54,7 +58,11 @@
54 'verbs' => [ 58 'verbs' => [
55 'class' => VerbFilter::className(), 59 'class' => VerbFilter::className(),
56 'actions' => [ 60 'actions' => [
57 - 'team-delete' => [ 'POST' ], 61 + 'team-delete' => [ 'POST' ],
  62 + 'vacancy-delete' => [ 'POST' ],
  63 + 'portfolio-delete' => [ 'POST' ],
  64 + 'projects-delete' => [ 'POST' ],
  65 + 'blog-delete' => [ 'POST' ],
58 ], 66 ],
59 ], 67 ],
60 ]; 68 ];
@@ -71,7 +79,13 @@ @@ -71,7 +79,13 @@
71 79
72 public function actionBlog() 80 public function actionBlog()
73 { 81 {
74 - return $this->render('blog'); 82 + $searchModel = new BlogSearch();
  83 + $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
  84 +
  85 + return $this->render('blog', [
  86 + 'searchModel' => $searchModel,
  87 + 'dataProvider' => $dataProvider,
  88 + ]);
75 } 89 }
76 90
77 public function actionBlogCreate() 91 public function actionBlogCreate()
@@ -81,7 +95,7 @@ @@ -81,7 +95,7 @@
81 if($blog->load($post) && $blog->save()) { 95 if($blog->load($post) && $blog->save()) {
82 return $this->redirect([ 96 return $this->redirect([
83 'blog-update', 97 'blog-update',
84 - [ 'id' => $blog->blog_id ], 98 + 'id' => $blog->blog_id,
85 ]); 99 ]);
86 } else { 100 } else {
87 return $this->render('_blog_form', [ 'blog' => $blog ]); 101 return $this->render('_blog_form', [ 'blog' => $blog ]);
@@ -99,6 +113,13 @@ @@ -99,6 +113,13 @@
99 } 113 }
100 } 114 }
101 115
  116 + public function actionBlogDelete($id)
  117 + {
  118 + Blog::findOne($id)
  119 + ->delete();
  120 + $this->redirect('blog');
  121 + }
  122 +
102 public function actionBookmarks() 123 public function actionBookmarks()
103 { 124 {
104 return $this->render('bookmarks'); 125 return $this->render('bookmarks');
@@ -208,7 +229,13 @@ @@ -208,7 +229,13 @@
208 229
209 public function actionGallery() 230 public function actionGallery()
210 { 231 {
  232 + $searchModel = new GallerySearch();
  233 + $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
211 234
  235 + return $this->render('gallery', [
  236 + 'searchModel' => $searchModel,
  237 + 'dataProvider' => $dataProvider,
  238 + ]);
212 } 239 }
213 240
214 public function actionGalleryCreate() 241 public function actionGalleryCreate()
@@ -289,7 +316,13 @@ @@ -289,7 +316,13 @@
289 316
290 public function actionPortfolio() 317 public function actionPortfolio()
291 { 318 {
292 - return $this->render('portfolio'); 319 + $searchModel = new PortfolioSearch();
  320 + $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
  321 +
  322 + return $this->render('portfolio', [
  323 + 'searchModel' => $searchModel,
  324 + 'dataProvider' => $dataProvider,
  325 + ]);
293 } 326 }
294 327
295 public function actionPortfolioCreate() 328 public function actionPortfolioCreate()
@@ -352,9 +385,22 @@ @@ -352,9 +385,22 @@
352 ]); 385 ]);
353 } 386 }
354 387
  388 + public function actionPortfolioDelete($id)
  389 + {
  390 + Portfolio::findOne($id)
  391 + ->delete();
  392 + $this->redirect('portfolio');
  393 + }
  394 +
355 public function actionProjects() 395 public function actionProjects()
356 { 396 {
357 - return $this->render('projects'); 397 + $searchModel = new ProjectSearch();
  398 + $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
  399 +
  400 + return $this->render('projects', [
  401 + 'searchModel' => $searchModel,
  402 + 'dataProvider' => $dataProvider,
  403 + ]);
358 } 404 }
359 405
360 public function actionProjectsCreate() 406 public function actionProjectsCreate()
@@ -500,6 +546,13 @@ @@ -500,6 +546,13 @@
500 ]); 546 ]);
501 } 547 }
502 548
  549 + public function actionProjectsDelete($id)
  550 + {
  551 + Project::findOne($id)
  552 + ->delete();
  553 + $this->redirect('projects');
  554 + }
  555 +
503 public function actionService() 556 public function actionService()
504 { 557 {
505 $user = \Yii::$app->user->identity; 558 $user = \Yii::$app->user->identity;
@@ -750,7 +803,7 @@ @@ -750,7 +803,7 @@
750 public function actionVacancyDelete($id) 803 public function actionVacancyDelete($id)
751 { 804 {
752 Vacancy::findOne($id) 805 Vacancy::findOne($id)
753 - ->delete(); 806 + ->delete();
754 $this->redirect('vacancy'); 807 $this->redirect('vacancy');
755 } 808 }
756 809
frontend/controllers/ProjectsController.php 0 → 100644
  1 +<?php
  2 + namespace frontend\controllers;
  3 +
  4 + use yii\filters\AccessControl;
  5 + use yii\web\Controller;
  6 +
  7 + class ProjectsController extends Controller
  8 + {
  9 + public function behaviors()
  10 + {
  11 + return [
  12 + 'access' => [
  13 + 'class' => AccessControl::className(),
  14 + 'rules' => [
  15 + [
  16 + //'actions' => ['cabinet','change-password', 'bookmarks', 'projects'],
  17 + 'allow' => true,
  18 + 'roles' => [ '@' ],
  19 + ],
  20 + ],
  21 + ],
  22 + ];
  23 + }
  24 +
  25 + public function actionIndex()
  26 + {
  27 + return $this->render('projects');
  28 + }
  29 + }
0 \ No newline at end of file 30 \ No newline at end of file
frontend/views/accounts/blog.php
1 <?php 1 <?php
2 -use common\models\Option;  
3 -use yii\helpers\Html;  
4 -use yii\widgets\ActiveForm;  
5 -use \common\widgets\MultiLangForm; 2 + /**
  3 + * @var BlogSearch $searchModel
  4 + * @var ActiveDataProvider $dataProvider
  5 + */
  6 + use common\models\BlogSearch;
  7 + use yii\data\ActiveDataProvider;
  8 + use yii\grid\ActionColumn;
  9 + use yii\grid\GridView;
  10 + use yii\helpers\Html;
6 11
7 - $this->title = 'Мой профиль';  
8 - $this->params['breadcrumbs'][] = $this->title; 12 + $this->title = 'Блог';
  13 + $this->params[ 'breadcrumbs' ][] = $this->title;
9 ?> 14 ?>
10 -<h1><?= $this->title ?></h1>  
11 \ No newline at end of file 15 \ No newline at end of file
  16 +<h1><?= $this->title ?></h1>
  17 +<p>
  18 + <?= Html::a(Yii::t('app', 'Добавить'), [ 'blog-create' ], [ 'class' => 'btn btn-success' ]) ?>
  19 +</p>
  20 +<?= GridView::widget([
  21 + 'dataProvider' => $dataProvider,
  22 + 'filterModel' => $searchModel,
  23 + 'columns' => [
  24 + [
  25 + 'attribute' => 'blog_id',
  26 + 'label' => 'ID',
  27 + ],
  28 + 'name',
  29 + 'date_add',
  30 + 'view_count',
  31 + [
  32 + 'class' => ActionColumn::className(),
  33 + 'buttons' => [
  34 + 'update' => function($url, $model, $key) {
  35 + return Html::a('Update', [
  36 + 'blog-update',
  37 + 'id' => $model->blog_id,
  38 + ]);
  39 + },
  40 + 'delete' => function($url, $model, $key) {
  41 + return Html::a('Delete', [
  42 + 'blog-delete',
  43 + 'id' => $model->blog_id,
  44 + ], [
  45 + 'title' => 'Удалить',
  46 + 'aria-label' => 'Удалить',
  47 + 'data-confirm' => 'Вы уверены, что хотите удалить этот элемент?',
  48 + 'data-method' => 'post',
  49 + 'data-pjax' => '0',
  50 + ]);
  51 + },
  52 + ],
  53 + 'template' => '{update} {delete}',
  54 + ],
  55 + ],
  56 +]); ?>
frontend/views/accounts/gallery.php
1 <?php 1 <?php
2 -use common\models\Option;  
3 -use yii\helpers\Html;  
4 -use yii\widgets\ActiveForm;  
5 -use \common\widgets\MultiLangForm;  
6 -  
7 - $this->title = 'Мой профиль';  
8 - $this->params['breadcrumbs'][] = $this->title;  
9 -?>  
10 -  
11 -<h1><?= $this->title ?></h1>  
12 -  
13 -  
14 -  
15 -<?php  
16 -  
17 -$form = $this->render('_form', [  
18 - 'user' => $user,  
19 - 'user_info' => $user_info,  
20 -]);  
21 -  
22 -echo MultiLangForm::widget(['form'=>$form]);  
23 - 2 + /**
  3 + * @var GallerySearch $searchModel
  4 + * @var ActiveDataProvider $dataProvider
  5 + */
  6 + use common\models\GallerySearch;
  7 + use yii\data\ActiveDataProvider;
  8 + use yii\grid\GridView;
  9 + use yii\helpers\Html;
  10 +
  11 + $this->title = 'Галерея';
  12 + $this->params[ 'breadcrumbs' ][] = $this->title;
24 ?> 13 ?>
25 -  
26 - 14 +<h1><?= $this->title ?></h1>
  15 +<p>
  16 + <?= Html::a(Yii::t('app', 'Добавить'), [ 'gallery-create' ], [ 'class' => 'btn btn-success' ]) ?>
  17 +</p>
  18 +<?= GridView::widget([
  19 + 'dataProvider' => $dataProvider,
  20 + 'filterModel' => $searchModel,
  21 + 'columns' => [
  22 + [
  23 + 'attribute' => 'gallery_id',
  24 + 'label' => 'ID',
  25 + ],
  26 + 'name',
  27 + 'date_add',
  28 + [
  29 + 'attribute' => 'type',
  30 + 'value' => function($model, $key, $index, $column) {
  31 + switch($model->type) {
  32 + case 2:
  33 + return 'Видео';
  34 + break;
  35 + default:
  36 + return 'Фото';
  37 + break;
  38 + }
  39 + },
  40 + 'label' => 'Фото или Видео',
  41 + 'filter' => [
  42 + 1 => 'Фото',
  43 + 2 => 'Видео',
  44 + ]
  45 + ],
  46 + ],
  47 +]) ?>
frontend/views/accounts/portfolio.php
@@ -14,31 +14,35 @@ @@ -14,31 +14,35 @@
14 ?> 14 ?>
15 <h1><?= $this->title ?></h1> 15 <h1><?= $this->title ?></h1>
16 <p> 16 <p>
17 - <?= Html::a(Yii::t('app', 'Добавить'), [ 'vacancy-create' ], [ 'class' => 'btn btn-success' ]) ?> 17 + <?= Html::a(Yii::t('app', 'Добавить'), [ 'portfolio-create' ], [ 'class' => 'btn btn-success' ]) ?>
18 </p> 18 </p>
19 <?= GridView::widget([ 19 <?= GridView::widget([
20 'dataProvider' => $dataProvider, 20 'dataProvider' => $dataProvider,
21 'filterModel' => $searchModel, 21 'filterModel' => $searchModel,
22 'columns' => [ 22 'columns' => [
23 [ 23 [
24 - 'attribute' => 'vacancy_id', 24 + 'attribute' => 'portfolio_id',
25 'label' => 'ID', 25 'label' => 'ID',
26 ], 26 ],
27 'name', 27 'name',
  28 + 'date_add',
28 'view_count', 29 'view_count',
29 [ 30 [
  31 + 'attribute' => 'specializationString',
  32 + ],
  33 + [
30 'class' => ActionColumn::className(), 34 'class' => ActionColumn::className(),
31 'buttons' => [ 35 'buttons' => [
32 'update' => function($url, $model, $key) { 36 'update' => function($url, $model, $key) {
33 return Html::a('Update', [ 37 return Html::a('Update', [
34 - 'vacancy-update',  
35 - 'id' => $model->vacancy_id, 38 + 'portfolio-update',
  39 + 'id' => $model->portfolio_id,
36 ]); 40 ]);
37 }, 41 },
38 'delete' => function($url, $model, $key) { 42 'delete' => function($url, $model, $key) {
39 return Html::a('Delete', [ 43 return Html::a('Delete', [
40 - 'vacancy-delete',  
41 - 'id' => $model->vacancy_id, 44 + 'portfolio-delete',
  45 + 'id' => $model->portfolio_id,
42 ], [ 46 ], [
43 'title' => 'Удалить', 47 'title' => 'Удалить',
44 'aria-label' => 'Удалить', 48 'aria-label' => 'Удалить',
frontend/views/accounts/projects.php
1 <?php 1 <?php
2 - use common\models\Option;  
3 -  
4 - $this->title = 'Мой профиль';  
5 -$this->params['breadcrumbs'][] = $this->title; 2 + /**
  3 + * @var ProjectSearch $searchModel
  4 + * @var ActiveDataProvider $dataProvider
  5 + */
  6 + use common\models\ProjectSearch;
  7 + use yii\data\ActiveDataProvider;
  8 + use yii\grid\ActionColumn;
  9 + use yii\grid\GridView;
  10 + use yii\helpers\Html;
  11 +
  12 + $this->title = 'Проекты';
  13 + $this->params[ 'breadcrumbs' ][] = $this->title;
6 ?> 14 ?>
7 -<div class="section-box content">  
8 - <div class="section-box-22">  
9 - <div class="box-wr">  
10 - <div class="box-all">  
11 -  
12 - <div class="left-proektant-cabinet">  
13 - <div class="left-proektant-cabinet-title style">Проекты в кабинете</div>  
14 - <ul class="cabinet-list style">  
15 - <li>  
16 - <img src="/images/cabinet/ico-1.png" alt=""/>  
17 - <span>Не определен </span>17  
18 - </li>  
19 - <li>  
20 - <img src="/images/cabinet/ico-2.png" alt=""/>  
21 - <span>Кандидат </span>0  
22 - </li>  
23 - <li>  
24 - <img src="/images/cabinet/ico-3.png" alt=""/>  
25 - <span>Исполнитель </span>0  
26 - </li>  
27 - <li>  
28 - <img src="/images/cabinet/ico-4.png" alt=""/>  
29 - <span>Отказали </span>0  
30 - </li>  
31 - <li>  
32 - <span>Корзина </span>7  
33 - </li>  
34 - </ul>  
35 - <div class="style">  
36 - <div class="search-profile-blocks">  
37 - <div class="left-left-proektant-cabinet">  
38 - <a href="" class="srch-prof-title">Создание проекта дома</a>  
39 - <div class="srch-prof-budget"><span></span>Бюджет: 20 000 грн (Договорной)</div>  
40 -  
41 - <div class="srch-prof-text">  
42 - <p>На постоянные работы по созданию сайтов, в нашу команду требуется html-верстальщик. Оплата сдельная за проект. В отклике прошу написать свой Skype и почту. А так же 3 проекта с реализованной адаптивной версткой и 3 проекта мобильных сайтов.</p>  
43 - <p>P.S. Студиям прошу не беспокоить! Нужен специалист в команду</p>  
44 - </div>  
45 - <div class="srch-prof-params-wr">  
46 - <div class="srch-prof-params srch-prof-params-city">  
47 - <img src="/images/ico-city.png" alt=""/><span>Киев</span>  
48 - </div>  
49 - <div class="srch-prof-params srch-prof-params-clock">  
50 - <img src="/images/ico-clock.png" alt=""/><span>15.10.2016</span>  
51 - </div>  
52 - <div class="srch-prof-params srch-prof-params-comm">  
53 - <img src="/images/ico-comm.png" alt=""/><span>4 предложения</span>  
54 - </div>  
55 - </div>  
56 - </div>  
57 -  
58 - <div class="right-proektant-cabinet">  
59 - <div class="right-proektant-cabinet-candidate">  
60 - <img src="/images/cabinet/ico-5.png" alt=""/>  
61 - <span>Ваша кандидатура на рассмотрении</span>  
62 - </div>  
63 - <div class="right-proektant-cabinet-message">Сообщение не прочитано</div>  
64 - <div class="right-proektant-cabinet-message-new">  
65 - <img src="/images/cabinet/ico-6.png" alt=""/>  
66 - <a href="#">3 Сообщения</a>  
67 - </div>  
68 - </div>  
69 -  
70 - </div>  
71 -  
72 - <div class="search-profile-blocks">  
73 - <div class="left-left-proektant-cabinet">  
74 - <a href="" class="srch-prof-title">Создание проекта дома</a>  
75 - <div class="srch-prof-budget"><span></span>Бюджет: 20 000 грн (Договорной)</div>  
76 -  
77 - <div class="srch-prof-text">  
78 - <p>На постоянные работы по созданию сайтов, в нашу команду требуется html-верстальщик. Оплата сдельная за проект. В отклике прошу написать свой Skype и почту. А так же 3 проекта с реализованной адаптивной версткой и 3 проекта мобильных сайтов.</p>  
79 - <p>P.S. Студиям прошу не беспокоить! Нужен специалист в команду</p>  
80 - </div>  
81 - <div class="srch-prof-params-wr">  
82 - <div class="srch-prof-params srch-prof-params-city">  
83 - <img src="/images/ico-city.png" alt=""/><span>Киев</span>  
84 - </div>  
85 - <div class="srch-prof-params srch-prof-params-clock">  
86 - <img src="/images/ico-clock.png" alt=""/><span>15.10.2016</span>  
87 - </div>  
88 - <div class="srch-prof-params srch-prof-params-comm">  
89 - <img src="/images/ico-comm.png" alt=""/><span>4 предложения</span>  
90 - </div>  
91 - </div>  
92 - </div>  
93 -  
94 - <div class="right-proektant-cabinet">  
95 - <div class="right-proektant-cabinet-candidate">  
96 - <img src="/images/cabinet/ico-5.png" alt=""/>  
97 - <span>Ваша кандидатура на рассмотрении</span>  
98 - </div>  
99 - <div class="right-proektant-cabinet-message">Сообщение не прочитано</div>  
100 - <div class="right-proektant-cabinet-message-new">  
101 - <img src="/images/cabinet/ico-6.png" alt=""/>  
102 - <a href="#">3 Сообщения</a>  
103 - </div>  
104 - </div>  
105 -  
106 - </div>  
107 -  
108 - <div class="search-profile-blocks">  
109 - <div class="left-left-proektant-cabinet">  
110 - <a href="" class="srch-prof-title">Создание проекта дома</a>  
111 - <div class="srch-prof-budget"><span></span>Бюджет: 20 000 грн (Договорной)</div>  
112 -  
113 - <div class="srch-prof-text">  
114 - <p>На постоянные работы по созданию сайтов, в нашу команду требуется html-верстальщик. Оплата сдельная за проект. В отклике прошу написать свой Skype и почту. А так же 3 проекта с реализованной адаптивной версткой и 3 проекта мобильных сайтов.</p>  
115 - <p>P.S. Студиям прошу не беспокоить! Нужен специалист в команду</p>  
116 - </div>  
117 - <div class="srch-prof-params-wr">  
118 - <div class="srch-prof-params srch-prof-params-city">  
119 - <img src="/images/ico-city.png" alt=""/><span>Киев</span>  
120 - </div>  
121 - <div class="srch-prof-params srch-prof-params-clock">  
122 - <img src="/images/ico-clock.png" alt=""/><span>15.10.2016</span>  
123 - </div>  
124 - <div class="srch-prof-params srch-prof-params-comm">  
125 - <img src="/images/ico-comm.png" alt=""/><span>4 предложения</span>  
126 - </div>  
127 - </div>  
128 - </div>  
129 -  
130 - <div class="right-proektant-cabinet">  
131 - <div class="right-proektant-cabinet-candidate">  
132 - <img src="/images/cabinet/ico-5.png" alt=""/>  
133 - <span>Ваша кандидатура на рассмотрении</span>  
134 - </div>  
135 - <div class="right-proektant-cabinet-message">Сообщение не прочитано</div>  
136 - <div class="right-proektant-cabinet-message-new">  
137 - <img src="/images/cabinet/ico-6.png" alt=""/>  
138 - <a href="#">3 Сообщения</a>  
139 - </div>  
140 - </div>  
141 -  
142 - </div>  
143 -  
144 - <div class="search-profile-blocks">  
145 - <div class="left-left-proektant-cabinet">  
146 - <a href="" class="srch-prof-title">Создание проекта дома</a>  
147 - <div class="srch-prof-budget"><span></span>Бюджет: 20 000 грн (Договорной)</div>  
148 -  
149 - <div class="srch-prof-text">  
150 - <p>На постоянные работы по созданию сайтов, в нашу команду требуется html-верстальщик. Оплата сдельная за проект. В отклике прошу написать свой Skype и почту. А так же 3 проекта с реализованной адаптивной версткой и 3 проекта мобильных сайтов.</p>  
151 - <p>P.S. Студиям прошу не беспокоить! Нужен специалист в команду</p>  
152 - </div>  
153 - <div class="srch-prof-params-wr">  
154 - <div class="srch-prof-params srch-prof-params-city">  
155 - <img src="/images/ico-city.png" alt=""/><span>Киев</span>  
156 - </div>  
157 - <div class="srch-prof-params srch-prof-params-clock">  
158 - <img src="/images/ico-clock.png" alt=""/><span>15.10.2016</span>  
159 - </div>  
160 - <div class="srch-prof-params srch-prof-params-comm">  
161 - <img src="/images/ico-comm.png" alt=""/><span>4 предложения</span>  
162 - </div>  
163 - </div>  
164 - </div>  
165 -  
166 - <div class="right-proektant-cabinet">  
167 - <div class="right-proektant-cabinet-candidate">  
168 - <img src="/images/cabinet/ico-5.png" alt=""/>  
169 - <span>Ваша кандидатура на рассмотрении</span>  
170 - </div>  
171 - <div class="right-proektant-cabinet-message">Сообщение не прочитано</div>  
172 - <div class="right-proektant-cabinet-message-new">  
173 - <img src="/images/cabinet/ico-6.png" alt=""/>  
174 - <a href="#">3 Сообщения</a>  
175 - </div>  
176 - </div>  
177 -  
178 - </div>  
179 -  
180 - <div class="search-profile-blocks">  
181 - <div class="left-left-proektant-cabinet">  
182 - <a href="" class="srch-prof-title">Создание проекта дома</a>  
183 - <div class="srch-prof-budget"><span></span>Бюджет: 20 000 грн (Договорной)</div>  
184 -  
185 - <div class="srch-prof-text">  
186 - <p>На постоянные работы по созданию сайтов, в нашу команду требуется html-верстальщик. Оплата сдельная за проект. В отклике прошу написать свой Skype и почту. А так же 3 проекта с реализованной адаптивной версткой и 3 проекта мобильных сайтов.</p>  
187 - <p>P.S. Студиям прошу не беспокоить! Нужен специалист в команду</p>  
188 - </div>  
189 - <div class="srch-prof-params-wr">  
190 - <div class="srch-prof-params srch-prof-params-city">  
191 - <img src="/images/ico-city.png" alt=""/><span>Киев</span>  
192 - </div>  
193 - <div class="srch-prof-params srch-prof-params-clock">  
194 - <img src="/images/ico-clock.png" alt=""/><span>15.10.2016</span>  
195 - </div>  
196 - <div class="srch-prof-params srch-prof-params-comm">  
197 - <img src="/images/ico-comm.png" alt=""/><span>4 предложения</span>  
198 - </div>  
199 - </div>  
200 - </div>  
201 -  
202 - <div class="right-proektant-cabinet">  
203 - <div class="right-proektant-cabinet-candidate">  
204 - <img src="/images/cabinet/ico-5.png" alt=""/>  
205 - <span>Ваша кандидатура на рассмотрении</span>  
206 - </div>  
207 - <div class="right-proektant-cabinet-message">Сообщение не прочитано</div>  
208 - <div class="right-proektant-cabinet-message-new">  
209 - <img src="/images/cabinet/ico-6.png" alt=""/>  
210 - <a href="#">3 Сообщения</a>  
211 - </div>  
212 - </div>  
213 -  
214 - </div>  
215 -  
216 - <div class="navi-buttons-wr style navi-buttons-yet-wr">  
217 - <ul class="pagination">  
218 - <li><a href="#">1</a></li>  
219 - <li class="active"><a href="#">2</a></li>  
220 - <li><a href="#">3</a></li>  
221 - <li><a href="#">4</a></li>  
222 - <li><a href="#">5</a></li>  
223 - <li class="dots-next"><a href="#">...</a></li>  
224 - <li><a href="#">156</a></li>  
225 - </ul>  
226 - <a href="#" class="navi-buttons-yet">Еще 24 проекта</a>  
227 - </div>  
228 - </div>  
229 -  
230 -  
231 - </div>  
232 -  
233 - </div>  
234 - </div>  
235 - </div>  
236 - <div>  
237 -  
238 -  
239 -  
240 - </div>  
241 -</div>  
242 \ No newline at end of file 15 \ No newline at end of file
  16 +<h1><?= $this->title ?></h1>
  17 +<p>
  18 + <?= Html::a(Yii::t('app', 'Добавить'), [ 'projects-create' ], [ 'class' => 'btn btn-success' ]) ?>
  19 +</p>
  20 +<?= GridView::widget([
  21 + 'dataProvider' => $dataProvider,
  22 + 'filterModel' => $searchModel,
  23 + 'columns' => [
  24 + [
  25 + 'attribute' => 'project_id',
  26 + 'label' => 'ID',
  27 + ],
  28 + 'name',
  29 + 'budget',
  30 + 'city',
  31 + [
  32 + 'attribute' => 'specializationString',
  33 + ],
  34 + 'view_count',
  35 + [
  36 + 'class' => ActionColumn::className(),
  37 + 'buttons' => [
  38 + 'update' => function($url, $model, $key) {
  39 + return Html::a('Update', [
  40 + 'projects-update',
  41 + 'id' => $model->project_id,
  42 + ]);
  43 + },
  44 + 'delete' => function($url, $model, $key) {
  45 + return Html::a('Delete', [
  46 + 'projects-delete',
  47 + 'id' => $model->project_id,
  48 + ], [
  49 + 'title' => 'Удалить',
  50 + 'aria-label' => 'Удалить',
  51 + 'data-confirm' => 'Вы уверены, что хотите удалить этот элемент?',
  52 + 'data-method' => 'post',
  53 + 'data-pjax' => '0',
  54 + ]);
  55 + },
  56 + ],
  57 + 'template' => '{update} {delete}',
  58 + ],
  59 + ],
  60 +]); ?>
frontend/views/projects/projects.php 0 → 100644
  1 +<?php
  2 + use common\models\Option;
  3 +
  4 + $this->title = 'Мой профиль';
  5 +$this->params['breadcrumbs'][] = $this->title;
  6 +?>
  7 +<div class="section-box content">
  8 + <div class="section-box-22">
  9 + <div class="box-wr">
  10 + <div class="box-all">
  11 +
  12 + <div class="left-proektant-cabinet">
  13 + <div class="left-proektant-cabinet-title style">Проекты в кабинете</div>
  14 + <ul class="cabinet-list style">
  15 + <li>
  16 + <img src="/images/cabinet/ico-1.png" alt=""/>
  17 + <span>Не определен </span>17
  18 + </li>
  19 + <li>
  20 + <img src="/images/cabinet/ico-2.png" alt=""/>
  21 + <span>Кандидат </span>0
  22 + </li>
  23 + <li>
  24 + <img src="/images/cabinet/ico-3.png" alt=""/>
  25 + <span>Исполнитель </span>0
  26 + </li>
  27 + <li>
  28 + <img src="/images/cabinet/ico-4.png" alt=""/>
  29 + <span>Отказали </span>0
  30 + </li>
  31 + <li>
  32 + <span>Корзина </span>7
  33 + </li>
  34 + </ul>
  35 + <div class="style">
  36 + <div class="search-profile-blocks">
  37 + <div class="left-left-proektant-cabinet">
  38 + <a href="" class="srch-prof-title">Создание проекта дома</a>
  39 + <div class="srch-prof-budget"><span></span>Бюджет: 20 000 грн (Договорной)</div>
  40 +
  41 + <div class="srch-prof-text">
  42 + <p>На постоянные работы по созданию сайтов, в нашу команду требуется html-верстальщик. Оплата сдельная за проект. В отклике прошу написать свой Skype и почту. А так же 3 проекта с реализованной адаптивной версткой и 3 проекта мобильных сайтов.</p>
  43 + <p>P.S. Студиям прошу не беспокоить! Нужен специалист в команду</p>
  44 + </div>
  45 + <div class="srch-prof-params-wr">
  46 + <div class="srch-prof-params srch-prof-params-city">
  47 + <img src="/images/ico-city.png" alt=""/><span>Киев</span>
  48 + </div>
  49 + <div class="srch-prof-params srch-prof-params-clock">
  50 + <img src="/images/ico-clock.png" alt=""/><span>15.10.2016</span>
  51 + </div>
  52 + <div class="srch-prof-params srch-prof-params-comm">
  53 + <img src="/images/ico-comm.png" alt=""/><span>4 предложения</span>
  54 + </div>
  55 + </div>
  56 + </div>
  57 +
  58 + <div class="right-proektant-cabinet">
  59 + <div class="right-proektant-cabinet-candidate">
  60 + <img src="/images/cabinet/ico-5.png" alt=""/>
  61 + <span>Ваша кандидатура на рассмотрении</span>
  62 + </div>
  63 + <div class="right-proektant-cabinet-message">Сообщение не прочитано</div>
  64 + <div class="right-proektant-cabinet-message-new">
  65 + <img src="/images/cabinet/ico-6.png" alt=""/>
  66 + <a href="#">3 Сообщения</a>
  67 + </div>
  68 + </div>
  69 +
  70 + </div>
  71 +
  72 + <div class="search-profile-blocks">
  73 + <div class="left-left-proektant-cabinet">
  74 + <a href="" class="srch-prof-title">Создание проекта дома</a>
  75 + <div class="srch-prof-budget"><span></span>Бюджет: 20 000 грн (Договорной)</div>
  76 +
  77 + <div class="srch-prof-text">
  78 + <p>На постоянные работы по созданию сайтов, в нашу команду требуется html-верстальщик. Оплата сдельная за проект. В отклике прошу написать свой Skype и почту. А так же 3 проекта с реализованной адаптивной версткой и 3 проекта мобильных сайтов.</p>
  79 + <p>P.S. Студиям прошу не беспокоить! Нужен специалист в команду</p>
  80 + </div>
  81 + <div class="srch-prof-params-wr">
  82 + <div class="srch-prof-params srch-prof-params-city">
  83 + <img src="/images/ico-city.png" alt=""/><span>Киев</span>
  84 + </div>
  85 + <div class="srch-prof-params srch-prof-params-clock">
  86 + <img src="/images/ico-clock.png" alt=""/><span>15.10.2016</span>
  87 + </div>
  88 + <div class="srch-prof-params srch-prof-params-comm">
  89 + <img src="/images/ico-comm.png" alt=""/><span>4 предложения</span>
  90 + </div>
  91 + </div>
  92 + </div>
  93 +
  94 + <div class="right-proektant-cabinet">
  95 + <div class="right-proektant-cabinet-candidate">
  96 + <img src="/images/cabinet/ico-5.png" alt=""/>
  97 + <span>Ваша кандидатура на рассмотрении</span>
  98 + </div>
  99 + <div class="right-proektant-cabinet-message">Сообщение не прочитано</div>
  100 + <div class="right-proektant-cabinet-message-new">
  101 + <img src="/images/cabinet/ico-6.png" alt=""/>
  102 + <a href="#">3 Сообщения</a>
  103 + </div>
  104 + </div>
  105 +
  106 + </div>
  107 +
  108 + <div class="search-profile-blocks">
  109 + <div class="left-left-proektant-cabinet">
  110 + <a href="" class="srch-prof-title">Создание проекта дома</a>
  111 + <div class="srch-prof-budget"><span></span>Бюджет: 20 000 грн (Договорной)</div>
  112 +
  113 + <div class="srch-prof-text">
  114 + <p>На постоянные работы по созданию сайтов, в нашу команду требуется html-верстальщик. Оплата сдельная за проект. В отклике прошу написать свой Skype и почту. А так же 3 проекта с реализованной адаптивной версткой и 3 проекта мобильных сайтов.</p>
  115 + <p>P.S. Студиям прошу не беспокоить! Нужен специалист в команду</p>
  116 + </div>
  117 + <div class="srch-prof-params-wr">
  118 + <div class="srch-prof-params srch-prof-params-city">
  119 + <img src="/images/ico-city.png" alt=""/><span>Киев</span>
  120 + </div>
  121 + <div class="srch-prof-params srch-prof-params-clock">
  122 + <img src="/images/ico-clock.png" alt=""/><span>15.10.2016</span>
  123 + </div>
  124 + <div class="srch-prof-params srch-prof-params-comm">
  125 + <img src="/images/ico-comm.png" alt=""/><span>4 предложения</span>
  126 + </div>
  127 + </div>
  128 + </div>
  129 +
  130 + <div class="right-proektant-cabinet">
  131 + <div class="right-proektant-cabinet-candidate">
  132 + <img src="/images/cabinet/ico-5.png" alt=""/>
  133 + <span>Ваша кандидатура на рассмотрении</span>
  134 + </div>
  135 + <div class="right-proektant-cabinet-message">Сообщение не прочитано</div>
  136 + <div class="right-proektant-cabinet-message-new">
  137 + <img src="/images/cabinet/ico-6.png" alt=""/>
  138 + <a href="#">3 Сообщения</a>
  139 + </div>
  140 + </div>
  141 +
  142 + </div>
  143 +
  144 + <div class="search-profile-blocks">
  145 + <div class="left-left-proektant-cabinet">
  146 + <a href="" class="srch-prof-title">Создание проекта дома</a>
  147 + <div class="srch-prof-budget"><span></span>Бюджет: 20 000 грн (Договорной)</div>
  148 +
  149 + <div class="srch-prof-text">
  150 + <p>На постоянные работы по созданию сайтов, в нашу команду требуется html-верстальщик. Оплата сдельная за проект. В отклике прошу написать свой Skype и почту. А так же 3 проекта с реализованной адаптивной версткой и 3 проекта мобильных сайтов.</p>
  151 + <p>P.S. Студиям прошу не беспокоить! Нужен специалист в команду</p>
  152 + </div>
  153 + <div class="srch-prof-params-wr">
  154 + <div class="srch-prof-params srch-prof-params-city">
  155 + <img src="/images/ico-city.png" alt=""/><span>Киев</span>
  156 + </div>
  157 + <div class="srch-prof-params srch-prof-params-clock">
  158 + <img src="/images/ico-clock.png" alt=""/><span>15.10.2016</span>
  159 + </div>
  160 + <div class="srch-prof-params srch-prof-params-comm">
  161 + <img src="/images/ico-comm.png" alt=""/><span>4 предложения</span>
  162 + </div>
  163 + </div>
  164 + </div>
  165 +
  166 + <div class="right-proektant-cabinet">
  167 + <div class="right-proektant-cabinet-candidate">
  168 + <img src="/images/cabinet/ico-5.png" alt=""/>
  169 + <span>Ваша кандидатура на рассмотрении</span>
  170 + </div>
  171 + <div class="right-proektant-cabinet-message">Сообщение не прочитано</div>
  172 + <div class="right-proektant-cabinet-message-new">
  173 + <img src="/images/cabinet/ico-6.png" alt=""/>
  174 + <a href="#">3 Сообщения</a>
  175 + </div>
  176 + </div>
  177 +
  178 + </div>
  179 +
  180 + <div class="search-profile-blocks">
  181 + <div class="left-left-proektant-cabinet">
  182 + <a href="" class="srch-prof-title">Создание проекта дома</a>
  183 + <div class="srch-prof-budget"><span></span>Бюджет: 20 000 грн (Договорной)</div>
  184 +
  185 + <div class="srch-prof-text">
  186 + <p>На постоянные работы по созданию сайтов, в нашу команду требуется html-верстальщик. Оплата сдельная за проект. В отклике прошу написать свой Skype и почту. А так же 3 проекта с реализованной адаптивной версткой и 3 проекта мобильных сайтов.</p>
  187 + <p>P.S. Студиям прошу не беспокоить! Нужен специалист в команду</p>
  188 + </div>
  189 + <div class="srch-prof-params-wr">
  190 + <div class="srch-prof-params srch-prof-params-city">
  191 + <img src="/images/ico-city.png" alt=""/><span>Киев</span>
  192 + </div>
  193 + <div class="srch-prof-params srch-prof-params-clock">
  194 + <img src="/images/ico-clock.png" alt=""/><span>15.10.2016</span>
  195 + </div>
  196 + <div class="srch-prof-params srch-prof-params-comm">
  197 + <img src="/images/ico-comm.png" alt=""/><span>4 предложения</span>
  198 + </div>
  199 + </div>
  200 + </div>
  201 +
  202 + <div class="right-proektant-cabinet">
  203 + <div class="right-proektant-cabinet-candidate">
  204 + <img src="/images/cabinet/ico-5.png" alt=""/>
  205 + <span>Ваша кандидатура на рассмотрении</span>
  206 + </div>
  207 + <div class="right-proektant-cabinet-message">Сообщение не прочитано</div>
  208 + <div class="right-proektant-cabinet-message-new">
  209 + <img src="/images/cabinet/ico-6.png" alt=""/>
  210 + <a href="#">3 Сообщения</a>
  211 + </div>
  212 + </div>
  213 +
  214 + </div>
  215 +
  216 + <div class="navi-buttons-wr style navi-buttons-yet-wr">
  217 + <ul class="pagination">
  218 + <li><a href="#">1</a></li>
  219 + <li class="active"><a href="#">2</a></li>
  220 + <li><a href="#">3</a></li>
  221 + <li><a href="#">4</a></li>
  222 + <li><a href="#">5</a></li>
  223 + <li class="dots-next"><a href="#">...</a></li>
  224 + <li><a href="#">156</a></li>
  225 + </ul>
  226 + <a href="#" class="navi-buttons-yet">Еще 24 проекта</a>
  227 + </div>
  228 + </div>
  229 +
  230 +
  231 + </div>
  232 +
  233 + </div>
  234 + </div>
  235 + </div>
  236 + <div>
  237 +
  238 +
  239 +
  240 + </div>
  241 +</div>
0 \ No newline at end of file 242 \ No newline at end of file