Пример #1
0
 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;
 }
Пример #2
0
         $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":
Пример #3
0
 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;
 }
Пример #4
0
 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;
 }