public function checkbox($fieldName, $options = array())
{
// CUSTOMIZE ADD 2011/05/07 ryuring
// >>> hiddenをデフォルトオプションに追加
$options = array_merge(array('hidden' => true), $options);
$hidden = $options['hidden'];
unset($options['hidden']);
// <<<
$valueOptions = array();
if (isset($options['default'])) {
$valueOptions['default'] = $options['default'];
unset($options['default']);
}
$options += array('value' => 1, 'required' => false);
$options = $this->_initInputField($fieldName, $options) + array('hiddenField' => true);
$value = current($this->value($valueOptions));
$output = '';
if (!isset($options['checked']) && !empty($value) && $value == $options['value'] || !empty($options['checked'])) {
$options['checked'] = 'checked';
}
// CUSTOMIZE MODIFY 2011/05/07 ryuring
// >>> hiddenオプションがある場合のみ、hiddenタグを出力
// 2014/03/23 ryuring CakePHP側が実装していたが互換性の為に残す
//if ($options['hiddenField']) {
// ---
if ($hidden !== false && $options['hiddenField'] !== false) {
// <<<
$hiddenOptions = array('id' => $options['id'] . '_', 'name' => $options['name'], 'value' => $options['hiddenField'] !== true ? $options['hiddenField'] : '0', 'form' => isset($options['form']) ? $options['form'] : null, 'secure' => false);
if (isset($options['disabled']) && $options['disabled']) {
$hiddenOptions['disabled'] = 'disabled';
}
$output = $this->hidden($fieldName, $hiddenOptions);
}
unset($options['hiddenField']);
// CUSTOMIZE MODIFY 2011/05/07 ryuring
// label を追加
// CUSTOMIZE MODIRY 2014/10/27 ryuring
// チェックボックスをラベルで囲う仕様に変更
// >>>
//return $output . $this->Html->useTag('checkbox', $options['name'], array_diff_key($options, array('name' => null)));
// ---
if (!empty($options['label'])) {
return $output . parent::label($fieldName, $this->Html->useTag('checkbox', $options['name'], array_diff_key($options, array('name' => null))) . $options['label']);
} else {
return $output . $this->Html->useTag('checkbox', $options['name'], array_diff_key($options, array('name' => null)));
}
// <<<
}