Commit f7089e23dfd1cede749bf5bae2a5eb7b641dd4f2

Authored by Administrator
1 parent 8e5fa1e8

15.02.16

common/models/PortfolioSpecialization.php
@@ -16,6 +16,8 @@ use Yii; @@ -16,6 +16,8 @@ use Yii;
16 */ 16 */
17 class PortfolioSpecialization extends \yii\db\ActiveRecord 17 class PortfolioSpecialization extends \yii\db\ActiveRecord
18 { 18 {
  19 +
  20 + public $count;
19 /** 21 /**
20 * @inheritdoc 22 * @inheritdoc
21 */ 23 */
frontend/controllers/AccountsController.php
@@ -466,8 +466,11 @@ @@ -466,8 +466,11 @@
466 if(!$portfolio instanceof ActiveRecord) { 466 if(!$portfolio instanceof ActiveRecord) {
467 throw new NotFoundHttpException('Запись не найдена'); 467 throw new NotFoundHttpException('Запись не найдена');
468 } 468 }
  469 +
469 $specializations = Specialization::find()->where(['specialization_pid' => 0])->orderBy('specialization_id')->all(); 470 $specializations = Specialization::find()->where(['specialization_pid' => 0])->orderBy('specialization_id')->all();
  471 +
470 $post = \Yii::$app->request->post(); 472 $post = \Yii::$app->request->post();
  473 +
471 if(!empty( $post )) { 474 if(!empty( $post )) {
472 $portfolio->load($post); 475 $portfolio->load($post);
473 $portfolio->validate(); 476 $portfolio->validate();
@@ -483,6 +486,7 @@ @@ -483,6 +486,7 @@
483 return $this->redirect('portfolio'); 486 return $this->redirect('portfolio');
484 } 487 }
485 } 488 }
  489 +
486 return $this->render('_portfolio_form', [ 490 return $this->render('_portfolio_form', [
487 'portfolio' => $portfolio, 491 'portfolio' => $portfolio,
488 'specializations' => $specializations, 492 'specializations' => $specializations,
frontend/controllers/PerformerController.php
@@ -4,6 +4,8 @@ namespace frontend\controllers; @@ -4,6 +4,8 @@ namespace frontend\controllers;
4 use common\models\Blog; 4 use common\models\Blog;
5 use common\models\Fields; 5 use common\models\Fields;
6 use common\models\Gallery; 6 use common\models\Gallery;
  7 +use common\models\Portfolio;
  8 +use common\models\PortfolioSpecialization;
7 use Yii; 9 use Yii;
8 use yii\data\ArrayDataProvider; 10 use yii\data\ArrayDataProvider;
9 use yii\data\Pagination; 11 use yii\data\Pagination;
@@ -80,10 +82,23 @@ class PerformerController extends Controller @@ -80,10 +82,23 @@ class PerformerController extends Controller
80 if(!$user instanceof User){ 82 if(!$user instanceof User){
81 throw new BadRequestHttpException('Пользователь не найден'); 83 throw new BadRequestHttpException('Пользователь не найден');
82 } 84 }
  85 + $projects = ArrayHelper::getColumn($user->portfolios,'portfolio_id');
83 86
84 87
  88 + $filters = PortfolioSpecialization::find()->select(["specialization_id","COUNT('specialization_id') AS count"])
  89 + ->where(["portfolio_id"=>$projects ])->groupBy("specialization_id")->all();
  90 +
  91 + $portfolio = new ArrayDataProvider([
  92 + 'allModels' => $user->portfolios,
  93 + 'pagination' => [
  94 + 'pageSize' => 9,
  95 + ],
  96 + ]);
  97 +
85 return $this->render('portfolio',[ 98 return $this->render('portfolio',[
86 - 'user' => $user 99 + 'user' => $user,
  100 + 'filters' => $filters,
  101 + 'portfolio' => $portfolio
87 ]); 102 ]);
88 103
89 } 104 }
frontend/views/accounts/_portfolio_form.php
@@ -7,7 +7,8 @@ @@ -7,7 +7,8 @@
7 use common\models\Specialization; 7 use common\models\Specialization;
8 use common\widgets\ImageUploader; 8 use common\widgets\ImageUploader;
9 use mihaildev\ckeditor\CKEditor; 9 use mihaildev\ckeditor\CKEditor;
10 - use yii\helpers\Html; 10 +use yii\helpers\ArrayHelper;
  11 +use yii\helpers\Html;
11 use yii\widgets\ActiveForm; 12 use yii\widgets\ActiveForm;
12 use \common\widgets\MultiLangForm; 13 use \common\widgets\MultiLangForm;
13 use kartik\select2\Select2; 14 use kartik\select2\Select2;
@@ -56,7 +57,7 @@ use yii\web\JsExpression; @@ -56,7 +57,7 @@ use yii\web\JsExpression;
56 <ul> 57 <ul>
57 <?php foreach($child_first->children as $child_second):?> 58 <?php foreach($child_first->children as $child_second):?>
58 <?php if($child_first instanceof Specialization): ?> 59 <?php if($child_first instanceof Specialization): ?>
59 - <li><a href="#"><?= $form->field($portfolio, 'specializationInput[]')->checkbox(['value' => $child_second->specialization_id, 'label' =>$child_second->specialization_name])?></a></li> 60 + <li><a href="#"><?= Html::checkbox('Portfolio[specializationInput][]', in_array($child_second->specialization_id, ArrayHelper::getColumn($portfolio->specializations,'specialization_id')),['value' => $child_second->specialization_id, 'label' =>$child_second->specialization_name])?></a></li>
60 <?php endif;?> 61 <?php endif;?>
61 <?php endforeach; ?> 62 <?php endforeach; ?>
62 </ul> 63 </ul>
@@ -78,8 +79,8 @@ use yii\web\JsExpression; @@ -78,8 +79,8 @@ use yii\web\JsExpression;
78 <?= ImageUploader::widget([ 79 <?= ImageUploader::widget([
79 'model'=> $portfolio, 80 'model'=> $portfolio,
80 'field'=>'cover', 81 'field'=>'cover',
81 - 'width'=>100,  
82 - 'height'=>100, 82 + 'width'=>210,
  83 + 'height'=>150,
83 'multi'=>false, 84 'multi'=>false,
84 'gallery' =>$portfolio->cover, 85 'gallery' =>$portfolio->cover,
85 'name' => 'Загрузить' 86 'name' => 'Загрузить'
@@ -166,4 +167,4 @@ use yii\web\JsExpression; @@ -166,4 +167,4 @@ use yii\web\JsExpression;
166 $(document).ready(function(){ 167 $(document).ready(function(){
167 168
168 }) 169 })
169 -</script>  
170 \ No newline at end of file 170 \ No newline at end of file
  171 +</script>
frontend/views/performer/portfolio.php
1 <?php 1 <?php
2 2
  3 +use yii\helpers\ArrayHelper;
3 use \yii\helpers\Html; 4 use \yii\helpers\Html;
  5 +use yii\widgets\ListView;
4 6
5 -/* @var $this yii\web\View */ 7 +
  8 +/* @var $this yii\web\View
  9 +* @var $portfolio yii\data\ArrayDataProvider
  10 + */
6 $this->params['user'] = $user; 11 $this->params['user'] = $user;
7 $this->title = 'My Yii Application'; 12 $this->title = 'My Yii Application';
8 ?> 13 ?>
9 <div class="performer-vacancy-vacant-title-reclam-wr style"> 14 <div class="performer-vacancy-vacant-title-reclam-wr style">
10 <div class="portfolio-project-wr style"> 15 <div class="portfolio-project-wr style">
11 - <div class="workplace-title style"><p>Проектов: 1054</p></div> 16 + <div class="workplace-title style"><p>Проектов: <?= $portfolio->totalCount ?></p></div>
12 <div class="portfolio-project-tags style"> 17 <div class="portfolio-project-tags style">
13 - <a href="#" class="active-tag">Все</a><a href="#">Дизайн интерьера (340)</a><a href="#">Архитектурное проектирование (15)</a><a href="#">3D-визуализация (155)</a><a href="#">Изготовление мебели (5)</a><a href="#">Декорирование стекол и зеркал (14)</a>  
14 - <a href="#">Ремонт квартиры под ключ (7)</a><a href="#">Строительство домов под ключ (12)</a><a href="#">Декорирование интерьера (30)</a><a href="#">Декорирование стен (5)</a> 18 + <a href="#" class="active-tag">Все (<?= $portfolio->totalCount ?>)</a>
  19 + <?php foreach($filters as $filter): ?>
  20 + <a href="#"><?= $filter->specialization->specialization_name ?> (<?= $filter->count ?>)</a>
  21 + <?php endforeach; ?>
  22 +
15 </div> 23 </div>
16 </div> 24 </div>
17 <div class="style"> 25 <div class="style">
18 <div class="portfolio-project-blocks-wrapper"> 26 <div class="portfolio-project-blocks-wrapper">
19 - <div class="portfolio-project-blocks-wr">  
20 - <div class="portfolio-project-blocks-img-title">  
21 - <div class="portfolio-project-blocks-img"><a href="#"><img src="/images/portfolio-project/portfolio-img-1.jpg" alt=""/></a></div>  
22 - <div class="portfolio-project-blocks-title-wr">  
23 - <div class="portfolio-project-blocks-title">  
24 - <a href="#">Отделка дома из бруса</a>  
25 - </div>  
26 - </div>  
27 - </div>  
28 - <div class="portfolio-project-views-wr">  
29 - <div class="portfolio-project-views ico-views-bl">  
30 - <div class="portfolio-project-views-img-wr">  
31 - <div class="portfolio-project-views-img"><img src="/images/portfolio-project/ico-1.png"/></div>  
32 - </div>  
33 - <div class="portfolio-project-views-txt">127</div>  
34 - </div>  
35 - <div class="portfolio-project-rati ico-views-bl">  
36 - <div class="portfolio-project-views-img-wr">  
37 - <div class="portfolio-project-views-img"><img src="/images/portfolio-project/ico-2.png"/></div>  
38 - </div>  
39 - <div class="portfolio-project-views-txt">10.0</div>  
40 - </div>  
41 - <div class="ico-views-bl">  
42 - <div class="portfolio-project-views-img-wr">  
43 - <div class="portfolio-project-views-img"><img src="/images/portfolio-project/ico-3.png"/></div>  
44 - </div>  
45 - <div class="portfolio-project-views-txt">14</div>  
46 - </div>  
47 - </div>  
48 - <div class="portfolio-project-blocks-tags"><a href="#">Деревянные дома</a></div>  
49 - </div>  
50 - <div class="portfolio-project-blocks-wr">  
51 - <div class="portfolio-project-blocks-img-title">  
52 - <div class="portfolio-project-blocks-img"><a href="#"><img src="/images/portfolio-project/portfolio-img-2.jpg" alt=""/></a></div>  
53 - <div class="portfolio-project-blocks-title-wr">  
54 - <div class="portfolio-project-blocks-title">  
55 - <a href="#">Квартира - студия в современном стиле </a>  
56 - </div>  
57 - </div>  
58 - </div>  
59 - <div class="portfolio-project-views-wr">  
60 - <div class="portfolio-project-views ico-views-bl">  
61 - <div class="portfolio-project-views-img-wr">  
62 - <div class="portfolio-project-views-img"><img src="/images/portfolio-project/ico-1.png"/></div>  
63 - </div>  
64 - <div class="portfolio-project-views-txt">127</div>  
65 - </div>  
66 - <div class="portfolio-project-rati ico-views-bl">  
67 - <div class="portfolio-project-views-img-wr">  
68 - <div class="portfolio-project-views-img"><img src="/images/portfolio-project/ico-2.png"/></div>  
69 - </div>  
70 - <div class="portfolio-project-views-txt">10.0</div>  
71 - </div>  
72 - <div class="ico-views-bl">  
73 - <div class="portfolio-project-views-img-wr">  
74 - <div class="portfolio-project-views-img"><img src="/images/portfolio-project/ico-3.png"/></div>  
75 - </div>  
76 - <div class="portfolio-project-views-txt">14</div>  
77 - </div>  
78 - </div>  
79 - <div class="portfolio-project-blocks-tags"><a href="#">Дизайн интерьера</a></div>  
80 - </div>  
81 - <div class="portfolio-project-blocks-wr">  
82 - <div class="portfolio-project-blocks-img-title">  
83 - <div class="portfolio-project-blocks-img"><a href="#"><img src="/images/portfolio-project/portfolio-img-1.jpg" alt=""/></a></div>  
84 - <div class="portfolio-project-blocks-title-wr">  
85 - <div class="portfolio-project-blocks-title">  
86 - <a href="#">Отделка дома из бруса</a>  
87 - </div>  
88 - </div>  
89 - </div>  
90 - <div class="portfolio-project-views-wr">  
91 - <div class="portfolio-project-views ico-views-bl">  
92 - <div class="portfolio-project-views-img-wr">  
93 - <div class="portfolio-project-views-img"><img src="/images/portfolio-project/ico-1.png"/></div>  
94 - </div>  
95 - <div class="portfolio-project-views-txt">127</div>  
96 - </div>  
97 - <div class="portfolio-project-rati ico-views-bl">  
98 - <div class="portfolio-project-views-img-wr">  
99 - <div class="portfolio-project-views-img"><img src="/images/portfolio-project/ico-2.png"/></div>  
100 - </div>  
101 - <div class="portfolio-project-views-txt">10.0</div>  
102 - </div>  
103 - <div class="ico-views-bl">  
104 - <div class="portfolio-project-views-img-wr">  
105 - <div class="portfolio-project-views-img"><img src="/images/portfolio-project/ico-3.png"/></div>  
106 - </div>  
107 - <div class="portfolio-project-views-txt">14</div>  
108 - </div>  
109 - </div>  
110 - <div class="portfolio-project-blocks-tags"><a href="#">Деревянные дома</a></div>  
111 - </div>  
112 - <div class="portfolio-project-blocks-wr">  
113 - <div class="portfolio-project-blocks-img-title">  
114 - <div class="portfolio-project-blocks-img"><a href="#"><img src="/images/portfolio-project/portfolio-img-2.jpg" alt=""/></a></div>  
115 - <div class="portfolio-project-blocks-title-wr">  
116 - <div class="portfolio-project-blocks-title">  
117 - <a href="#">Квартира - студия в современном стиле </a>  
118 - </div>  
119 - </div>  
120 - </div>  
121 - <div class="portfolio-project-views-wr">  
122 - <div class="portfolio-project-views ico-views-bl">  
123 - <div class="portfolio-project-views-img-wr">  
124 - <div class="portfolio-project-views-img"><img src="/images/portfolio-project/ico-1.png"/></div>  
125 - </div>  
126 - <div class="portfolio-project-views-txt">127</div>  
127 - </div>  
128 - <div class="portfolio-project-rati ico-views-bl">  
129 - <div class="portfolio-project-views-img-wr">  
130 - <div class="portfolio-project-views-img"><img src="/images/portfolio-project/ico-2.png"/></div>  
131 - </div>  
132 - <div class="portfolio-project-views-txt">10.0</div>  
133 - </div>  
134 - <div class="ico-views-bl">  
135 - <div class="portfolio-project-views-img-wr">  
136 - <div class="portfolio-project-views-img"><img src="/images/portfolio-project/ico-3.png"/></div>  
137 - </div>  
138 - <div class="portfolio-project-views-txt">14</div>  
139 - </div>  
140 - </div>  
141 - <div class="portfolio-project-blocks-tags"><a href="#">Дизайн интерьера</a></div>  
142 - </div>  
143 - <div class="portfolio-project-blocks-wr">  
144 - <div class="portfolio-project-blocks-img-title">  
145 - <div class="portfolio-project-blocks-img"><a href="#"><img src="/images/portfolio-project/portfolio-img-1.jpg" alt=""/></a></div>  
146 - <div class="portfolio-project-blocks-title-wr">  
147 - <div class="portfolio-project-blocks-title">  
148 - <a href="#">Отделка дома из бруса</a>  
149 - </div>  
150 - </div>  
151 - </div>  
152 - <div class="portfolio-project-views-wr">  
153 - <div class="portfolio-project-views ico-views-bl">  
154 - <div class="portfolio-project-views-img-wr">  
155 - <div class="portfolio-project-views-img"><img src="/images/portfolio-project/ico-1.png"/></div>  
156 - </div>  
157 - <div class="portfolio-project-views-txt">127</div>  
158 - </div>  
159 - <div class="portfolio-project-rati ico-views-bl">  
160 - <div class="portfolio-project-views-img-wr">  
161 - <div class="portfolio-project-views-img"><img src="/images/portfolio-project/ico-2.png"/></div>  
162 - </div>  
163 - <div class="portfolio-project-views-txt">10.0</div>  
164 - </div>  
165 - <div class="ico-views-bl">  
166 - <div class="portfolio-project-views-img-wr">  
167 - <div class="portfolio-project-views-img"><img src="/images/portfolio-project/ico-3.png"/></div>  
168 - </div>  
169 - <div class="portfolio-project-views-txt">14</div>  
170 - </div>  
171 - </div>  
172 - <div class="portfolio-project-blocks-tags"><a href="#">Деревянные дома</a></div>  
173 - </div>  
174 - <div class="portfolio-project-blocks-wr">  
175 - <div class="portfolio-project-blocks-img-title">  
176 - <div class="portfolio-project-blocks-img"><a href="#"><img src="/images/portfolio-project/portfolio-img-2.jpg" alt=""/></a></div>  
177 - <div class="portfolio-project-blocks-title-wr">  
178 - <div class="portfolio-project-blocks-title">  
179 - <a href="#">Квартира - студия в современном стиле </a>  
180 - </div>  
181 - </div>  
182 - </div>  
183 - <div class="portfolio-project-views-wr">  
184 - <div class="portfolio-project-views ico-views-bl">  
185 - <div class="portfolio-project-views-img-wr">  
186 - <div class="portfolio-project-views-img"><img src="/images/portfolio-project/ico-1.png"/></div>  
187 - </div>  
188 - <div class="portfolio-project-views-txt">127</div>  
189 - </div>  
190 - <div class="portfolio-project-rati ico-views-bl">  
191 - <div class="portfolio-project-views-img-wr">  
192 - <div class="portfolio-project-views-img"><img src="/images/portfolio-project/ico-2.png"/></div>  
193 - </div>  
194 - <div class="portfolio-project-views-txt">10.0</div>  
195 - </div>  
196 - <div class="ico-views-bl">  
197 - <div class="portfolio-project-views-img-wr">  
198 - <div class="portfolio-project-views-img"><img src="/images/portfolio-project/ico-3.png"/></div>  
199 - </div>  
200 - <div class="portfolio-project-views-txt">14</div>  
201 - </div>  
202 - </div>  
203 - <div class="portfolio-project-blocks-tags"><a href="#">Дизайн интерьера</a></div>  
204 - </div>  
205 -  
206 - <div class="navi-buttons-wr style">  
207 - <ul class="pagination">  
208 - <li><a href="#">1</a></li>  
209 - <li><a href="#">2</a></li>  
210 - <li><a href="#">3</a></li>  
211 - <li><a href="#">4</a></li>  
212 - <li><a href="#">5</a></li>  
213 - <li class="dots-next"><a href="#">...</a></li>  
214 - <li><a href="#">156</a></li>  
215 - </ul>  
216 - </div> 27 + <?=
  28 + ListView::widget( [
  29 + 'dataProvider' => $portfolio,
  30 + 'itemView'=>'portfolio_list_view',
  31 + 'layout' => "{items}\n<div class='navi-buttons-wr style'>{pager}</div>"
  32 + ] );
  33 + ?>
217 34
218 </div> 35 </div>
219 </div> 36 </div>
frontend/views/performer/portfolio_list_view.php 0 → 100644
  1 +<?php
  2 +use yii\helpers\ArrayHelper;
  3 +use yii\helpers\Html;
  4 +
  5 +
  6 +?>
  7 +<div class="portfolio-project-blocks-wr">
  8 + <div class="portfolio-project-blocks-img-title">
  9 + <div class="portfolio-project-blocks-img">
  10 + <?= Html::a(Html::img($model->cover), '#');?>
  11 + </div>
  12 + <div class="portfolio-project-blocks-title-wr">
  13 + <div class="portfolio-project-blocks-title">
  14 + <a href="#"><?= $model->name?></a>
  15 + </div>
  16 + </div>
  17 + </div>
  18 + <div class="portfolio-project-views-wr">
  19 + <div class="portfolio-project-views ico-views-bl">
  20 + <div class="portfolio-project-views-img-wr">
  21 + <div class="portfolio-project-views-img"><img src="/images/portfolio-project/ico-1.png"/></div>
  22 + </div>
  23 + <div class="portfolio-project-views-txt">127</div>
  24 + </div>
  25 + <div class="portfolio-project-rati ico-views-bl">
  26 + <div class="portfolio-project-views-img-wr">
  27 + <div class="portfolio-project-views-img"><img src="/images/portfolio-project/ico-2.png"/></div>
  28 + </div>
  29 + <div class="portfolio-project-views-txt">10.0</div>
  30 + </div>
  31 + <div class="ico-views-bl">
  32 + <div class="portfolio-project-views-img-wr">
  33 + <div class="portfolio-project-views-img"><img src="/images/portfolio-project/ico-3.png"/></div>
  34 + </div>
  35 + <div class="portfolio-project-views-txt">14</div>
  36 + </div>
  37 + </div>
  38 + <div class="portfolio-project-blocks-tags"><?= implode(',', ArrayHelper::getColumn($model->specializations,'specialization_name'))?></div>
  39 +</div>
0 \ No newline at end of file 40 \ No newline at end of file
frontend/widgets/MyListView.php 0 → 100644
  1 +<?php
  2 +/**
  3 + * @link http://www.yiiframework.com/
  4 + * @copyright Copyright (c) 2008 Yii Software LLC
  5 + * @license http://www.yiiframework.com/license/
  6 + */
  7 +
  8 +namespace frontend\widgets;
  9 +
  10 +use Yii;
  11 +use yii\helpers\ArrayHelper;
  12 +use yii\helpers\Html;
  13 +use yii\widgets\ListView;
  14 +
  15 +/**
  16 + * The ListView widget is used to display data from data
  17 + * provider. Each data model is rendered using the view
  18 + * specified.
  19 + *
  20 + * @author Qiang Xue <qiang.xue@gmail.com>
  21 + * @since 2.0
  22 + */
  23 +class MyListView extends ListView
  24 +{
  25 + /**
  26 + * @var array the HTML attributes for the container of the rendering result of each data model.
  27 + * The "tag" element specifies the tag name of the container element and defaults to "div".
  28 + * If "tag" is false, it means no container element will be rendered.
  29 + * @see \yii\helpers\Html::renderTagAttributes() for details on how attributes are being rendered.
  30 + */
  31 + public $itemOptions = [];
  32 + /**
  33 + * @var string|callable the name of the view for rendering each data item, or a callback (e.g. an anonymous function)
  34 + * for rendering each data item. If it specifies a view name, the following variables will
  35 + * be available in the view:
  36 + *
  37 + * - `$model`: mixed, the data model
  38 + * - `$key`: mixed, the key value associated with the data item
  39 + * - `$index`: integer, the zero-based index of the data item in the items array returned by [[dataProvider]].
  40 + * - `$widget`: ListView, this widget instance
  41 + *
  42 + * Note that the view name is resolved into the view file by the current context of the [[view]] object.
  43 + *
  44 + * If this property is specified as a callback, it should have the following signature:
  45 + *
  46 + * ~~~
  47 + * function ($model, $key, $index, $widget)
  48 + * ~~~
  49 + */
  50 + public $itemView;
  51 + /**
  52 + * @var array additional parameters to be passed to [[itemView]] when it is being rendered.
  53 + * This property is used only when [[itemView]] is a string representing a view name.
  54 + */
  55 + public $viewParams = [];
  56 + /**
  57 + * @var string the HTML code to be displayed between any two consecutive items.
  58 + */
  59 + public $separator = "\n";
  60 + /**
  61 + * @var array the HTML attributes for the container tag of the list view.
  62 + * The "tag" element specifies the tag name of the container element and defaults to "div".
  63 + * @see \yii\helpers\Html::renderTagAttributes() for details on how attributes are being rendered.
  64 + */
  65 + public $options = ['class' => 'list-view'];
  66 +
  67 +
  68 + /**
  69 + * Renders all data models.
  70 + * @return string the rendering result
  71 + */
  72 + public function renderItems()
  73 + {
  74 + $models = $this->dataProvider->getModels();
  75 + $keys = $this->dataProvider->getKeys();
  76 + $rows = [];
  77 + foreach (array_values($models) as $index => $model) {
  78 + $rows[] = $this->renderItem($model, $keys[$index], $index);
  79 + }
  80 +
  81 + return implode($this->separator, $rows);
  82 + }
  83 +
  84 + /**
  85 + * Renders a single data model.
  86 + * @param mixed $model the data model to be rendered
  87 + * @param mixed $key the key value associated with the data model
  88 + * @param integer $index the zero-based index of the data model in the model array returned by [[dataProvider]].
  89 + * @return string the rendering result
  90 + */
  91 + public function renderItem($model, $key, $index)
  92 + {
  93 + if ($this->itemView === null) {
  94 + $content = $key;
  95 + } elseif (is_string($this->itemView)) {
  96 + $content = $this->getView()->render($this->itemView, array_merge([
  97 + 'model' => $model,
  98 + 'key' => $key,
  99 + 'index' => $index,
  100 + 'widget' => $this,
  101 + ], $this->viewParams));
  102 + } else {
  103 + $content = call_user_func($this->itemView, $model, $key, $index, $this);
  104 + }
  105 +
  106 + return $content;
  107 +
  108 + }
  109 +}