BcFreezeHelper::wyear PHP Method

wyear() public method

和暦年
public wyear ( string $fieldName, integer $minYear = null, integer $maxYear = null, string $selected = null, array $attributes = [], boolean $showEmpty = true ) : string
$fieldName string Prefix name for the SELECT element
$minYear integer First year in sequence
$maxYear integer Last year in sequence
$selected string Option which is selected.
$attributes array Attribute array for the select elements.
$showEmpty boolean Show/hide the empty select option
return string
    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);
        }
    }