$this->_elements[] =& MoodleQuickForm::createElement('select', 'day', get_string('day', 'form'), $days, $this->getAttributes(), true);
$this->_elements[] =& MoodleQuickForm::createElement('select', 'month', get_string('month', 'form'), $months, $this->getAttributes(), true);
$this->_elements[] =& MoodleQuickForm::createElement('select', 'year', get_string('year', 'form'), $years, $this->getAttributes(), true);
- // If optional we add a checkbox (no text) which the user can use to turn if on
+ // If optional we add a checkbox which the user can use to turn if on
if($this->_options['optional']) {
- $this->_elements[] =& MoodleQuickForm::createElement('checkbox','on', null, get_string('enable'), $this->getAttributes(), true);
+ $this->_elements[] =& MoodleQuickForm::createElement('checkbox', 'on', null, get_string('enable'), $this->getAttributes(), true);
}
$this->setValue();
}
// }}}
+ // {{{ onQuickFormEvent()
+
+ function onQuickFormEvent($event, $arg, &$caller)
+ {
+ if ('updateValue' == $event) {
+ return HTML_QuickForm_element::onQuickFormEvent($event, $arg, $caller);
+ } else {
+ return parent::onQuickFormEvent($event, $arg, $caller);
+ }
+ }
// {{{ setValue()
function setValue($value=0)
}
// }}}
- // {{{ onQuickFormEvent()
- function onQuickFormEvent($event, $arg, &$caller)
- {
- if ('updateValue' == $event) {
- return HTML_QuickForm_element::onQuickFormEvent($event, $arg, $caller);
- } else {
- return parent::onQuickFormEvent($event, $arg, $caller);
- }
- }
/**
* Output a timestamp. Give it the name of the group.
*
* step => step to increment minutes by
*/
var $_options = array('startyear'=>1970, 'stopyear'=>2020,
- 'timezone'=>99, 'applydst'=>true, 'step'=>5);
+ 'timezone'=>99, 'applydst'=>true, 'step'=>5, 'optional'=>false);
/**
* These complement separators, they are appended to the resultant HTML
$this->_elements[] =& MoodleQuickForm::createElement('select', 'year', get_string('year', 'form'), $years, $this->getAttributes(), true);
$this->_elements[] =& MoodleQuickForm::createElement('select', 'hour', get_string('hour', 'form'), $hours, $this->getAttributes(), true);
$this->_elements[] =& MoodleQuickForm::createElement('select', 'minute', get_string('minute', 'form'), $minutes, $this->getAttributes(), true);
+ // If optional we add a checkbox which the user can use to turn if on
+ if($this->_options['optional']) {
+ $this->_elements[] =& MoodleQuickForm::createElement('checkbox', 'on', null, get_string('enable'), $this->getAttributes(), true);
+ }
$this->setValue();
}
// }}}
+ // {{{ onQuickFormEvent()
+
+ function onQuickFormEvent($event, $arg, &$caller)
+ {
+ if ('updateValue' == $event) {
+ return HTML_QuickForm_element::onQuickFormEvent($event, $arg, $caller);
+ } else {
+ return parent::onQuickFormEvent($event, $arg, $caller);
+ }
+ }
+
// {{{ setValue()
function setValue($value=0)
{
+ $requestvalue=$value;
if (!($value)) {
$value = time();
}
'day' => $currentdate['mday'],
'month' => $currentdate['mon'],
'year' => $currentdate['year']);
-
+ if($this->_options['optional']) {
+ $value['on'] = $requestvalue ? true : false;
+ }
}
parent::setValue($value);
}
}
// }}}
- // {{{ onQuickFormEvent()
- function onQuickFormEvent($event, $arg, &$caller)
- {
- if ('updateValue' == $event) {
- return HTML_QuickForm_element::onQuickFormEvent($event, $arg, $caller);
- } else {
- return parent::onQuickFormEvent($event, $arg, $caller);
- }
- }
/**
* Output a timestamp. Give it the name of the group.
*
$valuearray += $thisexport;
}
}
- if (count($valuearray)==0){
+ if (count($valuearray)){
+ if($this->_options['optional']) {
+ // If checkbox is not on, the value is zero, so go no further
+ if(empty($valuearray['on'])) {
+ $value[$this->getName()]=0;
+ return $value;
+ }
+ }
+ $valuearray=$valuearray + array('year'=>1970, 'month'=>1, 'day'=>1, 'hour'=>0, 'minute'=>0);
+ $value[$this->getName()]=make_timestamp(
+ $valuearray['year'],
+ $valuearray['month'],
+ $valuearray['day'],
+ $valuearray['hour'],
+ $valuearray['minute'],
+ 0,
+ $this->_options['timezone'],
+ $this->_options['applydst']);
+
+ return $value;
+ } else {
+
return null;
}
-
- $valuearray=$valuearray + array('year'=>1970, 'month'=>1, 'day'=>1, 'hour'=>0, 'minute'=>0);
- $value[$this->getName()]=make_timestamp(
- $valuearray['year'],
- $valuearray['month'],
- $valuearray['day'],
- $valuearray['hour'],
- $valuearray['minute'],
- 0,
- $this->_options['timezone'],
- $this->_options['applydst']);
-
- return $value;
}
// }}}
$js = '<script type="text/javascript" language="javascript">'."\n";
$js .= "var ".$this->getAttribute('id')."items= {";
foreach ($this->_dependencies as $dependentOn => $elements){
- $js .= $dependentOn.' : {dependents :[';
+ $js .= "'$dependentOn'".' : {dependents :[';
foreach ($elements as $element){
$js.="'".$element['dependent']."', ";
}
$data->timemodified = time();
- if (empty($data->availablefromenable)) {
- $data->timeavailablefrom = 0;
- }
-
- if (empty($data->availabletoenable)) {
- $data->timeavailableto = 0;
- }
-
- if (empty($data->viewfromenable)) {
- $data->timeviewfrom = 0;
- }
-
- if (empty($data->viewtoenable)) {
- $data->timeviewto = 0;
- }
-
-
if (! $data->id = insert_record('data', $data)) {
return false;
}
$data->timemodified = time();
- if (empty($data->availablefromenable)) {
- $data->timeavailablefrom = 0;
- }
-
- if (empty($data->availabletoenable)) {
- $data->timeavailableto = 0;
- }
-
- if (empty($data->viewfromenable)) {
- $data->timeviewfrom = 0;
- }
-
- if (empty($data->viewtoenable)) {
- $data->timeviewto = 0;
- }
-
if (! $data->instance = update_record('data', $data)) {
return false;
}
$mform->setType('intro', PARAM_RAW);
$mform->addRule('intro', get_string('required'), 'required', null, 'client');
- $availablefromgroup=array();
- $availablefromgroup[]=&MoodleQuickForm::createElement('date_selector', 'availablefrom', '');
- $availablefromgroup[]=&MoodleQuickForm::createElement('checkbox', 'availablefromenabled', '', get_string('enable'));
- $mform->addGroup($availablefromgroup, 'availablefromgroup', get_string('availablefromdate', 'data'), ' ', false);
- $mform->disabledIf('availablefromgroup', 'availablefromenabled');
-
- $availabletogroup=array();
- $availabletogroup[]=&MoodleQuickForm::createElement('date_selector', 'availableto', '');
- $availabletogroup[]=&MoodleQuickForm::createElement('checkbox', 'availabletoenabled', '', get_string('enable'));
- $mform->addGroup($availabletogroup, 'availabletogroup', get_string('availabletodate', 'data'), ' ', false);
- $mform->disabledIf('availabletogroup', 'availabletoenabled');
-
- $viewfromgroup=array();
- $viewfromgroup[]=&MoodleQuickForm::createElement('date_selector', 'viewfrom', '');
- $viewfromgroup[]=&MoodleQuickForm::createElement('checkbox', 'viewfromenabled', '', get_string('enable'));
- $mform->addGroup($viewfromgroup, 'viewfromgroup', get_string('viewfromdate', 'data'), ' ', false);
- $mform->disabledIf('viewfromgroup', 'viewfromenabled');
-
- $viewtogroup=array();
- $viewtogroup[]=&MoodleQuickForm::createElement('date_selector', 'viewto', '');
- $viewtogroup[]=&MoodleQuickForm::createElement('checkbox', 'viewtoenabled', '', get_string('enable'));
- $mform->addGroup($viewtogroup, 'viewtogroup', get_string('viewtodate', 'data'), ' ', false);
- $mform->disabledIf('viewtogroup', 'viewtoenabled');
+ $mform->addElement('date_selector', 'timeavailablefrom', get_string('availablefromdate', 'data'), array('optional'=>true));
+ $mform->disabledIf('timeavailablefrom', 'timeavailablefrom[on]');
+
+ $mform->addElement('date_selector', 'timeavailableto', get_string('availabletodate', 'data'), array('optional'=>true));
+ $mform->disabledIf('timeavailableto', 'timeavailableto[on]');
+
+ $mform->addElement('date_selector', 'timeviewfrom', get_string('viewfromdate', 'data'), array('optional'=>true));
+ $mform->disabledIf('timeviewfrom', 'timeviewfrom[on]');
+
+ $mform->addElement('date_selector', 'timeviewto', get_string('viewtodate', 'data'), array('optional'=>true));
+ $mform->disabledIf('timeviewto', 'timeviewto[on]');
$countoptions= array(0=>get_string('none'))+