function update($values, $object) { if (!defined('SYS_FORMS')) { require_once BASE . 'subsystems/forms.php'; } exponent_forms_initialize(); $object->title = $values['title']; $object->internal_name = preg_replace('/--+/', '-', preg_replace('/[^A-Za-z0-9_]/', '-', $values['int'])); $object->body = $values['body']; $object->publish = popupdatetimecontrol::parseData('publish', $values); $object->unpublish = popupdatetimecontrol::parseData('unpublish', $values); return $object; }
$eventdate = $db->selectObject('eventdate', 'id=' . intval($_POST['date_id'])); $eventdate->date = exponent_datetime_startOfDayTimestamp(popupdatetimecontrol::parseData("eventdate", $_POST)); $db->updateObject($eventdate, 'eventdate'); } else { $item->approved = 1; $db->updateObject($item, "calendar"); // There should be only one eventdate $eventdate = $db->selectObject('eventdate', 'event_id = ' . $item->id); $eventdate->date = exponent_datetime_startOfDayTimestamp(popupdatetimecontrol::parseData("eventdate", $_POST)); $db->updateObject($eventdate, 'eventdate'); } calendarmodule::spiderContent($item); } else { exponent_forms_initialize(); $start_recur = exponent_datetime_startOfDayTimestamp(popupdatetimecontrol::parseData("eventdate", $_POST)); $stop_recur = exponent_datetime_startOfDayTimestamp(popupdatetimecontrol::parseData("untildate", $_POST)); if ($_POST['recur'] != "recur_none") { // Do recurrence $freq = $_POST['recur_freq_' . $_POST['recur']]; ###echo $_POST['recur'] . "<br />"; switch ($_POST['recur']) { case "recur_daily": $dates = exponent_datetime_recurringDailyDates($start_recur, $stop_recur, $freq); break; case "recur_weekly": $dates = exponent_datetime_recurringWeeklyDates($start_recur, $stop_recur, $freq, isset($_POST['day']) ? array_keys($_POST['day']) : array($dateinfo['wday'])); break; case "recur_monthly": $dates = exponent_datetime_recurringMonthlyDates($start_recur, $stop_recur, $freq, $_POST['month_type']); break; case "recur_yearly":
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; }