Commit 53b4ed3d by Carsten Brandt

Moved label for Sort::link() to html options

parent 39c002e8
...@@ -125,6 +125,7 @@ class Sort extends Object ...@@ -125,6 +125,7 @@ class Sort extends Object
* if it is not currently sorted (the default value is ascending order). * if it is not currently sorted (the default value is ascending order).
* - The "label" element specifies what label should be used when calling [[link()]] to create * - The "label" element specifies what label should be used when calling [[link()]] to create
* a sort link. If not set, [[Inflector::camel2words()]] will be called to get a label. * a sort link. If not set, [[Inflector::camel2words()]] will be called to get a label.
* Note that it will not be HTML-encoded.
* *
* Note that if the Sort object is already created, you can only use the full format * Note that if the Sort object is already created, you can only use the full format
* to configure every attribute. Each attribute must include these elements: asc and desc. * to configure every attribute. Each attribute must include these elements: asc and desc.
...@@ -285,14 +286,15 @@ class Sort extends Object ...@@ -285,14 +286,15 @@ class Sort extends Object
* Based on the sort direction, the CSS class of the generated hyperlink will be appended * Based on the sort direction, the CSS class of the generated hyperlink will be appended
* with "asc" or "desc". * with "asc" or "desc".
* @param string $attribute the attribute name by which the data should be sorted by. * @param string $attribute the attribute name by which the data should be sorted by.
* @param string $label the label to be used for the generated link. * @param array $options additional HTML attributes for the hyperlink tag.
* If this is null, the label defined in [[attributes]] will be used. * There is one special attribute `label` which will be used as the label of the hyperlink.
* If this is not set, the label defined in [[attributes]] will be used.
* If no label is defined, [[yii\helpers\Inflector::camel2words()]] will be called to get a label. * If no label is defined, [[yii\helpers\Inflector::camel2words()]] will be called to get a label.
* @param array $options additional HTML attributes for the hyperlink tag * Note that it will not be HTML-encoded.
* @return string the generated hyperlink * @return string the generated hyperlink
* @throws InvalidConfigException if the attribute is unknown * @throws InvalidConfigException if the attribute is unknown
*/ */
public function link($attribute, $label = null, $options = array()) public function link($attribute, $options = array())
{ {
if (($direction = $this->getAttributeOrder($attribute)) !== null) { if (($direction = $this->getAttributeOrder($attribute)) !== null) {
$class = $direction ? 'desc' : 'asc'; $class = $direction ? 'desc' : 'asc';
...@@ -306,7 +308,10 @@ class Sort extends Object ...@@ -306,7 +308,10 @@ class Sort extends Object
$url = $this->createUrl($attribute); $url = $this->createUrl($attribute);
$options['data-sort'] = $this->createSortVar($attribute); $options['data-sort'] = $this->createSortVar($attribute);
if ($label === null) { if (isset($options['label'])) {
$label = $options['label'];
unset($options['label']);
} else {
if (isset($this->attributes[$attribute]['label'])) { if (isset($this->attributes[$attribute]['label'])) {
$label = $this->attributes[$attribute]['label']; $label = $this->attributes[$attribute]['label'];
} else { } else {
......
...@@ -99,7 +99,7 @@ class DataColumn extends Column ...@@ -99,7 +99,7 @@ class DataColumn extends Column
if ($this->attribute !== null && $this->enableSorting && if ($this->attribute !== null && $this->enableSorting &&
($sort = $provider->getSort()) !== false && $sort->hasAttribute($this->attribute)) { ($sort = $provider->getSort()) !== false && $sort->hasAttribute($this->attribute)) {
return $sort->link($this->attribute, Html::encode($label), $this->sortLinkOptions); return $sort->link($this->attribute, array_merge($this->sortLinkOptions, array('label' => Html::encode($label))));
} else { } else {
return Html::encode($label); return Html::encode($label);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment