public function wyear($fieldName, $minYear = null, $maxYear = null, $selected = null, $attributes = array(), $showEmpty = true)
{
if ($this->freezed) {
if ((empty($selected) || $selected === true) && ($value = $this->value($fieldName))) {
if (is_array($value)) {
extract($value);
$selected = $year;
} else {
if (empty($value)) {
if (!$showEmpty && !$maxYear) {
$selected = 'now';
} elseif (!$showEmpty && $maxYear && !$selected) {
$selected = $maxYear;
}
} else {
$selected = $value;
}
}
}
$freezeText = '';
if (strlen($selected) > 4 || $selected === 'now') {
$wareki = $this->BcTime->convertToWareki(date('Y-m-d', strtotime($selected)));
$w = $this->BcTime->wareki($wareki);
$wyear = $this->BcTime->wyear($wareki);
$selected = $w . '-' . $wyear;
$freezeText = $this->BcTime->nengo($w) . ' ' . $wyear;
} elseif ($selected === false) {
$selected = null;
} elseif (strpos($selected, '-') === false) {
$wareki = $this->BcTime->convertToWareki($this->value($fieldName));
if ($wareki) {
$w = $this->BcTime->wareki($wareki);
$wyear = $this->BcTime->wyear($wareki);
$selected = $w . '-' . $wyear;
$freezeText = $this->BcTime->nengo($w) . ' ' . $wyear;
} else {
$selected = null;
}
} else {
$wareki = $this->BcTime->convertToWareki($this->value($fieldName));
if ($wareki) {
$w = $this->BcTime->wareki($wareki);
$wyear = $this->BcTime->wyear($wareki);
$selected = $w . '-' . $wyear;
$freezeText = $this->BcTime->nengo($w) . ' ' . $wyear;
} else {
$selected = null;
}
}
return $freezeText . $this->hidden($fieldName . ".wareki", array('value' => true)) . $this->hidden($fieldName . ".year", array('value' => $selected));
} else {
return parent::wyear($fieldName, $minYear, $maxYear, $selected, $attributes, $showEmpty);
}
}