Browse Source

DataColumn: Allow setting label of sort link via short syntax

attribute:type:Header should also affect sort link
tags/2.0.0-beta
Carsten Brandt 11 years ago
parent
commit
381216595d
  1. 15
      framework/yii/grid/DataColumn.php

15
framework/yii/grid/DataColumn.php

@ -59,14 +59,16 @@ class DataColumn extends Column
protected function renderHeaderCellContent() protected function renderHeaderCellContent()
{ {
if ($this->attribute !== null && $this->header === null) {
$provider = $this->grid->dataProvider; $provider = $this->grid->dataProvider;
if ($this->enableSorting && ($sort = $provider->getSort()) !== false && $sort->hasAttribute($this->attribute)) { if ($this->attribute !== null && $this->enableSorting &&
if (!isset($sort->attributes[$this->attribute]['label'])) { ($sort = $provider->getSort()) !== false && $sort->hasAttribute($this->attribute)) {
$sort->attributes[$this->attribute]['label'] = $this->getHeaderLabel();
$label = $this->getHeaderLabel();
if (($this->header !== null || !isset($sort->attributes[$this->attribute]['label'])) && trim($label) !== '') {
$sort->attributes[$this->attribute]['label'] = $label;
} }
return $sort->link($this->attribute); return $sort->link($this->attribute);
} } elseif ($this->header === null) {
return $this->getHeaderLabel(); return $this->getHeaderLabel();
} else { } else {
return parent::renderHeaderCellContent(); return parent::renderHeaderCellContent();
@ -76,6 +78,9 @@ class DataColumn extends Column
protected function getHeaderLabel() protected function getHeaderLabel()
{ {
$provider = $this->grid->dataProvider; $provider = $this->grid->dataProvider;
if ($this->header !== null) {
return $this->header;
}
if ($provider instanceof ActiveDataProvider && $provider->query instanceof ActiveQuery) { if ($provider instanceof ActiveDataProvider && $provider->query instanceof ActiveQuery) {
/** @var Model $model */ /** @var Model $model */
$model = new $provider->query->modelClass; $model = new $provider->query->modelClass;

Loading…
Cancel
Save