コード例 #1
0
    /**
     * Helper for date form 
     *
     * @param string $name
     * @param null|strint $value
     * @param null|array $attribs
     * @return string
     */
    public function dateForm($name, $value = null, $attribs = null)
    {
        // are we in a subform?
        if (mb_strpos($name, ']') !== false) {
            $dateId = mb_substr($name, strrpos($name, '[') + 1, -1);
            $dateName = mb_substr($name, 0, -1);
        } else {
            $dateId = $name;
            $dateName = $name;
        }
        if (!isset($attribs['data-dateformat'])) {
            $attribs['data-dateformat'] = OSS_Date::DF_EUROPEAN;
        }
        $attribs['placeholder'] = OSS_Date::getFormat($attribs['data-dateformat']);
        $jqDateFormat = OSS_Date::getDatepickerFormat($attribs['data-dateformat']);
        $html = $this->view->formText($dateName, $value, array_merge($attribs, array('id' => $dateId, 'style' => 'width: 90px;', 'maxlength' => 10)));
        $html .= '
			<script type="text/javascript" id="' . $dateId . '_script">
			 $( document ).ready( function(){
                $( "#' . $dateId . '" ).datepicker({
                    dateFormat: "' . $jqDateFormat . '",
                    constrainInput: true,
                    changeMonth: true,
                    changeYear: true,';
        if (isset($attribs['data-mindate'])) {
            $html .= '
                    minDate: "' . $attribs['data-mindate'] . '",';
        }
        if (isset($attribs['data-maxdate'])) {
            $html .= '
                    maxDate: "' . $attribs['data-maxdate'] . '",';
        }
        if (!isset($attribs['data-yearRange'])) {
            $html .= '
                    yearRange: "2012:' . date('Y') . '"';
        } else {
            $html .= '
                    yearRange: "' . $attribs['data-yearRange'] . '"';
        }
        $html .= '
                });

                $( "#' . $dateId . '_date_pick" ).bind( "click", function( e ){
                    $( "#' . $dateId . '" ).datepicker( "show" );
                });
            });
			</script>';
        return $html;
    }