|
|
|
@ -739,6 +739,7 @@ class BaseHtml
|
|
|
|
|
* - encode: boolean, whether to HTML-encode the checkbox labels. Defaults to true. |
|
|
|
|
* This option is ignored if `item` option is set. |
|
|
|
|
* - separator: string, the HTML code that separates items. |
|
|
|
|
* - itemOptions: array, the options for generating the radio button tag using [[checkbox()]]. |
|
|
|
|
* - item: callable, a callback that can be used to customize the generation of the HTML code |
|
|
|
|
* corresponding to a single item in $items. The signature of this callback must be: |
|
|
|
|
* |
|
|
|
@ -758,6 +759,7 @@ class BaseHtml
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$formatter = isset($options['item']) ? $options['item'] : null; |
|
|
|
|
$itemOptions = isset($options['itemOptions']) ? $options['itemOptions'] : []; |
|
|
|
|
$encode = !isset($options['encode']) || $options['encode']; |
|
|
|
|
$lines = []; |
|
|
|
|
$index = 0; |
|
|
|
@ -768,10 +770,10 @@ class BaseHtml
|
|
|
|
|
if ($formatter !== null) { |
|
|
|
|
$lines[] = call_user_func($formatter, $index, $label, $name, $checked, $value); |
|
|
|
|
} else { |
|
|
|
|
$lines[] = static::checkbox($name, $checked, [ |
|
|
|
|
$lines[] = static::checkbox($name, $checked, array_merge($itemOptions, [ |
|
|
|
|
'value' => $value, |
|
|
|
|
'label' => $encode ? static::encode($label) : $label, |
|
|
|
|
]); |
|
|
|
|
])); |
|
|
|
|
} |
|
|
|
|
$index++; |
|
|
|
|
} |
|
|
|
@ -786,7 +788,7 @@ class BaseHtml
|
|
|
|
|
$separator = isset($options['separator']) ? $options['separator'] : "\n"; |
|
|
|
|
|
|
|
|
|
$tag = isset($options['tag']) ? $options['tag'] : 'div'; |
|
|
|
|
unset($options['tag'], $options['unselect'], $options['encode'], $options['separator'], $options['item']); |
|
|
|
|
unset($options['tag'], $options['unselect'], $options['encode'], $options['separator'], $options['item'], $options['itemOptions']); |
|
|
|
|
|
|
|
|
|
return $hidden . static::tag($tag, implode($separator, $lines), $options); |
|
|
|
|
} |
|
|
|
@ -805,6 +807,7 @@ class BaseHtml
|
|
|
|
|
* - encode: boolean, whether to HTML-encode the checkbox labels. Defaults to true. |
|
|
|
|
* This option is ignored if `item` option is set. |
|
|
|
|
* - separator: string, the HTML code that separates items. |
|
|
|
|
* - itemOptions: array, the options for generating the radio button tag using [[radio()]]. |
|
|
|
|
* - item: callable, a callback that can be used to customize the generation of the HTML code |
|
|
|
|
* corresponding to a single item in $items. The signature of this callback must be: |
|
|
|
|
* |
|
|
|
@ -821,6 +824,7 @@ class BaseHtml
|
|
|
|
|
{ |
|
|
|
|
$encode = !isset($options['encode']) || $options['encode']; |
|
|
|
|
$formatter = isset($options['item']) ? $options['item'] : null; |
|
|
|
|
$itemOptions = isset($options['itemOptions']) ? $options['itemOptions'] : []; |
|
|
|
|
$lines = []; |
|
|
|
|
$index = 0; |
|
|
|
|
foreach ($items as $value => $label) { |
|
|
|
@ -830,10 +834,10 @@ class BaseHtml
|
|
|
|
|
if ($formatter !== null) { |
|
|
|
|
$lines[] = call_user_func($formatter, $index, $label, $name, $checked, $value); |
|
|
|
|
} else { |
|
|
|
|
$lines[] = static::radio($name, $checked, [ |
|
|
|
|
$lines[] = static::radio($name, $checked, array_merge($itemOptions, [ |
|
|
|
|
'value' => $value, |
|
|
|
|
'label' => $encode ? static::encode($label) : $label, |
|
|
|
|
]); |
|
|
|
|
])); |
|
|
|
|
} |
|
|
|
|
$index++; |
|
|
|
|
} |
|
|
|
@ -847,7 +851,7 @@ class BaseHtml
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$tag = isset($options['tag']) ? $options['tag'] : 'div'; |
|
|
|
|
unset($options['tag'], $options['unselect'], $options['encode'], $options['separator'], $options['item']); |
|
|
|
|
unset($options['tag'], $options['unselect'], $options['encode'], $options['separator'], $options['item'], $options['itemOptions']); |
|
|
|
|
|
|
|
|
|
return $hidden . static::tag($tag, implode($separator, $lines), $options); |
|
|
|
|
} |
|
|
|
|