Вход Регистрация
Файл: system/fields/date.php
Строк: 49
<?php

class fieldDate extends cmsFormField {

    public 
$title   LANG_PARSER_DATE;
    public 
$sql     'timestamp NULL DEFAULT NULL';
    public 
$filter_type 'date';
    public 
$filter_hint LANG_PARSER_DATE_FILTER_HINT;

    public function 
getOptions(){
        return array(
            new 
fieldCheckbox('show_time', array(
                
'title' => LANG_PARSER_DATE_SHOW_TIME,
                
'default' => false
            
)),
            new 
fieldCheckbox('filter_range', array(
                
'title' => LANG_PARSER_NUMBER_FILTER_RANGE,
                
'default' => true
            
)),
        );
    }

    public function 
parse($value){
        return 
html_date($value$this->getOption('show_time'));
    }

    public function 
getFilterInput($value) {

        if (
$this->getOption('filter_range')){

            
$from = !empty($value['from']) ? date(cmsConfig::get('date_format'), strtotime($value['from'])) : false;
            
$to = !empty($value['to']) ? date(cmsConfig::get('date_format'), strtotime($value['to'])) : false;

            
$this->title false;

            return 
cmsTemplate::getInstance()->renderFormField($this->class."_range", array(
                
'field' => $this,
                
'from' => $from,
                
'to' => $to
            
));


        } else {

            return 
parent::getFilterInput($value);

        }

    }

    public function 
applyFilter($model$value) {

        if (!
$this->getOption('filter_range')){

            
$date_start date('Y-m-d'strtotime($value));
            
$date_final date('Y-m-d'strtotime($value)+60*60*24);

            
$model->filterBetween($this->name$date_start$date_final);

        } else {

            if (!
is_array($value)) { return $model; }

            if (!empty(
$value['from'])){
                
$model->filterGtEqual($this->namedate('Y-m-d'strtotime($value['from'])));
            }
            if (!empty(
$value['to'])){
                
$model->filterLtEqual($this->namedate('Y-m-d'strtotime($value['to'])+60*60*24));
            }

        }

        return 
$model;

    }

    public function 
store($value$is_submitted$old_value=null){

        if (
$value){
            if (
is_array($value)){
                
$value "{$value['date']} {$value['hour']}:{$value['min']}";
                return 
date('Y-m-d H:i'strtotime($value));
            } else {
                return 
date('Y-m-d'strtotime($value));
            }

        } else {
            return 
null;
        }

    }

}
Онлайн: 0
Реклама