private function process_update_post(CalendarEvent $old_event) { $updating = (bool) $old_event->getId(); if (isset($_POST['save']) && isset($_POST['event'])) { $post_data = array_map('trim', $_POST['event']); // validate the data and create error message $errors = $this->validate_post_data($post_data); if ($errors) { Flash::setNow('error', 'There are errors in the form.'); return array('event' => $old_event, 'updating' => $updating, 'post_data' => $post_data, 'errors' => $errors); } // if we'are updating an event, some data should be added to $post_data if ($updating) { $post_data['id'] = $old_event->getId(); $post_data['created_by_id'] = $old_event->getAuthorID(); } $updated_event = new CalendarEvent($post_data); $saved = $updated_event->save(); if ($saved) { Flash::set('success', $updating ? __('The event has been updated.') : __('A new event has been created.')); redirect(get_url('plugin/' . CALENDAR_ID . '/events')); } else { Flash::setNow('error', __('Could not update this event!')); return array('event' => $updated_event, 'updating' => $updating); } } // if it's not POST, just return $old_event return array('event' => $old_event, 'updating' => $updating); }
plugin/calendar/update_event" method="post"> <fieldset style="padding:0.5em;"> <legend style="padding: 0em 0.5em 0em 0.5em; font-weight: bold;"><?php echo __('Edit the event'); ?> </legend> <table class="fieldset" cellspacing="0" cellpadding="0" border="0"> <?php if ($edit_event) { ?> <input type="hidden" name="event[id]" value="<?php echo $event->getId(); ?> " /> <input type="hidden" name="event[created_by_id]" value="<?php echo $event->getAuthorID(); ?> " /> <?php } ?> <tr> <td class="label"><label for="event-title"><?php echo __('Title'); ?> </label></td> <td class="field"><input type="text" id="notes-title" name="event[title]" class="textbox" value="<?php echo $event->getTitle(); ?> " /></td>