Moodle  2.2.1
http://www.collinsharper.com
C:/xampp/htdocs/moodle/user/filters/date.php
Go to the documentation of this file.
00001 <?php
00002 
00003 require_once($CFG->dirroot.'/user/filters/lib.php');
00004 
00008 class user_filter_date extends user_filter_type {
00012     var $_field;
00013 
00021     function user_filter_date($name, $label, $advanced, $field) {
00022         parent::user_filter_type($name, $label, $advanced);
00023         $this->_field = $field;
00024     }
00025 
00030     function setupForm(&$mform) {
00031         $objs = array();
00032 
00033         $objs[] =& $mform->createElement('checkbox', $this->_name.'_sck', null, get_string('isafter', 'filters'));
00034         $objs[] =& $mform->createElement('date_selector', $this->_name.'_sdt', null);
00035         $objs[] =& $mform->createElement('static', $this->_name.'_break', null, '<br/>');
00036         $objs[] =& $mform->createElement('checkbox', $this->_name.'_eck', null, get_string('isbefore', 'filters'));
00037         $objs[] =& $mform->createElement('date_selector', $this->_name.'_edt', null);
00038 
00039         $grp =& $mform->addElement('group', $this->_name.'_grp', $this->_label, $objs, '', false);
00040 
00041         if ($this->_advanced) {
00042             $mform->setAdvanced($this->_name.'_grp');
00043         }
00044 
00045         $mform->disabledIf($this->_name.'_sdt[day]', $this->_name.'_sck', 'notchecked');
00046         $mform->disabledIf($this->_name.'_sdt[month]', $this->_name.'_sck', 'notchecked');
00047         $mform->disabledIf($this->_name.'_sdt[year]', $this->_name.'_sck', 'notchecked');
00048         $mform->disabledIf($this->_name.'_edt[day]', $this->_name.'_eck', 'notchecked');
00049         $mform->disabledIf($this->_name.'_edt[month]', $this->_name.'_eck', 'notchecked');
00050         $mform->disabledIf($this->_name.'_edt[year]', $this->_name.'_eck', 'notchecked');
00051     }
00052 
00058     function check_data($formdata) {
00059         $sck = $this->_name.'_sck';
00060         $sdt = $this->_name.'_sdt';
00061         $eck = $this->_name.'_eck';
00062         $edt = $this->_name.'_edt';
00063 
00064         if (!array_key_exists($sck, $formdata) and !array_key_exists($eck, $formdata)) {
00065             return false;
00066         }
00067 
00068         $data = array();
00069         if (array_key_exists($sck, $formdata)) {
00070             $data['after'] = $formdata->$sdt;
00071         } else {
00072             $data['after'] = 0;
00073         }
00074         if (array_key_exists($eck, $formdata)) {
00075             $data['before'] = $formdata->$edt;
00076         } else {
00077             $data['before'] = 0;
00078         }
00079 
00080         return $data;
00081     }
00082 
00088     function get_sql_filter($data) {
00089         $after  = (int)$data['after'];
00090         $before = (int)$data['before'];
00091 
00092         $field  = $this->_field;
00093 
00094         if (empty($after) and empty($before)) {
00095             return array('', array());
00096         }
00097 
00098         $res = " $field >= 0 " ;
00099 
00100         if ($after) {
00101             $res .= " AND $field >= $after";
00102         }
00103 
00104         if ($before) {
00105             $res .= " AND $field <= $before";
00106         }
00107         return array($res, array());
00108     }
00109 
00115     function get_label($data) {
00116         $after  = $data['after'];
00117         $before = $data['before'];
00118         $field  = $this->_field;
00119 
00120         $a = new stdClass();
00121         $a->label  = $this->_label;
00122         $a->after  = userdate($after);
00123         $a->before = userdate($before);
00124 
00125         if ($after and $before) {
00126             return get_string('datelabelisbetween', 'filters', $a);
00127         } else if ($after) {
00128             return get_string('datelabelisafter', 'filters', $a);
00129         } else if ($before) {
00130             return get_string('datelabelisbefore', 'filters', $a);
00131         }
00132         return '';
00133     }
00134 }
 All Data Structures Namespaces Files Functions Variables Enumerations