function form($object) { global $user; pathos_lang_loadDictionary('standard', 'core'); pathos_lang_loadDictionary('modules', 'calendarmodule'); if (!defined('SYS_FORMS')) { require_once BASE . 'subsystems/forms.php'; } pathos_forms_initialize(); $form = new form(); if (!isset($object->id)) { $object->title = ''; $object->body = ''; $object->eventdate = null; $object->eventdate->id = 0; $object->eventdate->date = time(); $object->eventstart = time(); $object->eventend = time() + 3600; $object->is_allday = 0; $object->is_recurring = 0; } else { $form->meta('id', $object->id); } $form->register('title', TR_CALENDARMODULE_TITLE, new textcontrol($object->title)); $form->register('body', TR_CALENDARMODULE_BODY, new htmleditorcontrol($object->body)); $form->register(null, '', new htmlcontrol('<hr size="1" />')); if ($object->is_recurring == 1) { $form->register(null, '', new htmlcontrol(TR_CALENDARMODULE_RECURMOVEWARNING, false)); } $form->register('eventdate', TR_CALENDARMODULE_EVENTDATE, new popupdatetimecontrol($object->eventdate->date, '', false)); $cb = new checkboxcontrol($object->is_allday, true); #Warning: when the box returns true, we have to switch off the time controls $cb->jsHooks = array('onClick' => 'pathos_forms_switch_time(\'eventstart\', this.form, this.checked ? false : true); pathos_forms_switch_time(\'eventend\',this.form, this.checked ? false : true);'); $form->register('is_allday', TR_CALENDARMODULE_ISALLDAY, $cb); #Warning: when the box returns true, we have to switch off the time controls $form->register('eventstart', TR_CALENDARMODULE_EVENTSTART, new timeControl($object->eventstart, $object->is_allday ? false : true)); $form->register('eventend', TR_CALENDARMODULE_EVENTEND, new timeControl($object->eventend, $object->is_allday ? false : true)); if (!isset($object->id)) { $customctl = file_get_contents(BASE . 'modules/calendarmodule/form.part'); $datectl = new popupdatetimecontrol($object->eventstart + 365 * 86400, '', false); $customctl = str_replace('%%UNTILDATEPICKER%%', $datectl->controlToHTML('untildate'), $customctl); $form->register('recur', TR_CALENDARMODULE_RECURRENCE, new customcontrol($customctl)); } else { if ($object->is_recurring == 1) { // Edit applies to one or more... $template = new template('calendarmodule', '_recur_dates'); global $db; $eventdates = $db->selectObjects('eventdate', 'event_id=' . $object->id); if (!defined('SYS_SORTING')) { require_once BASE . 'subsystems/sorting.php'; } if (!function_exists('pathos_sorting_byDateAscending')) { function pathos_sorting_byDateAscending($a, $b) { return $a->date > $b->date ? 1 : -1; } } usort($eventdates, 'pathos_sorting_byDateAscending'); if (isset($object->eventdate)) { $template->assign('checked_date', $object->eventdate); } $template->assign('dates', $eventdates); $form->register(null, '', new htmlcontrol('<hr size="1"/>' . TR_CALENDARMODULE_RECURRENCEWARNING)); $form->register(null, '', new htmlcontrol('<table cellspacing="0" cellpadding="2" width="100%">' . $template->render() . '</table>')); $form->meta('date_id', $object->eventdate->id); // Will be 0 if we are creating. } } $form->register('submit', '', new buttongroupcontrol(TR_CORE_SAVE, '', TR_CORE_CANCEL)); return $form; }
function form($object) { global $user; $i18n = exponent_lang_loadFile('datatypes/calendar.php'); if (!defined('SYS_FORMS')) { require_once BASE . 'subsystems/forms.php'; } exponent_forms_initialize(); $form = new form(); if (!isset($object->id)) { $object->title = ''; $object->body = ''; $object->eventdate = null; $object->eventdate->id = 0; $object->eventdate->date = time(); $object->eventstart = time(); $object->eventend = time() + 3600; $object->is_allday = 0; $object->is_recurring = 0; } else { $form->meta('id', $object->id); } $form->register('title', $i18n['title'], new textcontrol($object->title)); $form->register('body', $i18n['body'], new htmleditorcontrol($object->body)); $form->register(null, '', new htmlcontrol('<hr size="1" />')); if ($object->is_recurring == 1) { $form->register(null, '', new htmlcontrol($i18n['remove_warning'], false)); } $form->register('eventdate', $i18n['eventdate'], new popupdatetimecontrol($object->eventdate->date, '', false)); $cb = new checkboxcontrol($object->is_allday, true); $cb->jsHooks = array('onClick' => 'exponent_forms_disable_datetime(\'eventstart\',this.form,this.checked); exponent_forms_disable_datetime(\'eventend\',this.form,this.checked);'); $form->register('is_allday', $i18n['is_allday'], $cb); $form->register('eventstart', $i18n['eventstart'], new datetimecontrol($object->eventstart, false)); $form->register('eventend', $i18n['eventend'], new datetimecontrol($object->eventend, false)); if (!isset($object->id)) { $customctl = file_get_contents(BASE . 'modules/calendarmodule/form.part'); $datectl = new popupdatetimecontrol($object->eventstart + 365 * 86400, '', false); $customctl = str_replace('%%UNTILDATEPICKER%%', $datectl->controlToHTML('untildate'), $customctl); $form->register('recur', $i18n['recurrence'], new customcontrol($customctl)); } else { if ($object->is_recurring == 1) { // Edit applies to one or more... $template = new template('calendarmodule', '_recur_dates'); global $db; $eventdates = $db->selectObjects('eventdate', 'event_id=' . $object->id); if (!defined('SYS_SORTING')) { require_once BASE . 'subsystems/sorting.php'; } if (!function_exists('exponent_sorting_byDateAscending')) { function exponent_sorting_byDateAscending($a, $b) { return $a->date > $b->date ? 1 : -1; } } //Pathos Compatibility::this is deprecated if (@defined(PATHOS)) { if (!function_exists('pathos_sorting_byDateAscending')) { function pathos_sorting_byDateAscending($a, $b) { return exponent_sorting_byDateAscending($a, $b); } } } //End Pathos Compatibility usort($eventdates, 'exponent_sorting_byDateAscending'); if (isset($object->eventdate)) { $template->assign('checked_date', $object->eventdate); } $template->assign('dates', $eventdates); $form->register(null, '', new htmlcontrol('<hr size="1"/>' . $i18n['recurrence_warning'])); $form->register(null, '', new htmlcontrol('<table cellspacing="0" cellpadding="2" width="100%">' . $template->render() . '</table>')); $form->meta('date_id', $object->eventdate->id); // Will be 0 if we are creating. } } $form->register('submit', '', new buttongroupcontrol($i18n['save'], '', $i18n['cancel'])); return $form; }