public function init() { parent::init(); if ($this->rankKey === null) { if ($this->dataProvider->getItemCount() > 0) { $data = $this->dataProvider->data[0]; $keys = array_keys($data instanceof CActiveRecord ? $data->attributes : $data); $this->rankKey = isset($data['rank']) ? 'rank' : $keys[0]; } } $hasRankColumn = false; foreach ($this->columns as $column) { if ($column instanceof RankColumn) { $hasRankColumn = true; break; } } if ($hasRankColumn === false) { array_unshift($this->columns, Yii::createComponent(array('class' => 'RankColumn', 'value' => '$displayRank', 'header' => Yii::t('statistics', 'Rank')), $this)); } $this->lastRank = $this->rank; if ($this->count != $this->rank && $this->rankKey !== null) { $this->rank++; if ($this->dataProvider->getItemCount() > 0) { $data = $this->dataProvider->data[0]; $this->lastRankValue = CHtml::value($data, $this->rankKey); } } }