function dbem_duplicate_event($event_ID) { global $wpdb, $EZSQL_ERROR; //First, duplicate. $event_table_name = $wpdb->prefix . EVENTS_TBNAME; $eventArray = $wpdb->get_row("SELECT * FROM {$event_table_name} WHERE event_id={$event_ID}", ARRAY_A); unset($eventArray['event_id']); $result = $wpdb->insert($event_table_name, $eventArray); if ($result !== false) { //Get the ID of the new item $event_ID = $wpdb->insert_id; $event = dbem_get_event($event_ID); $event['event_id'] = $event_ID; //Now we edit the duplicated item $title = __("Edit Event", 'dbem') . " '" . $event['event_name'] . "'"; echo "<div id='message' class='updated below-h2'>You are now editing the duplicated event.</div>"; dbem_event_form($event, $title, $event_ID); } else { echo "<div class='error'><p>There was an error duplicating the event. Try again maybe? Here are the errors:</p>"; foreach ($EZSQL_ERROR as $errorArray) { echo "<p>{$errorArray['error_str']}</p>"; } echo "</div>"; $scope = $_GET['scope']; $offset = $_GET['offset']; $order = $_GET['order']; $limit = 20; $events = dbem_get_events($limit, $scope, $order, $offset); dbem_events_table($events, $limit, $title); } }
function dbem_events_subpanel() { global $wpdb; $action = $_GET['action']; $action2 = $_GET['action2']; $event_ID = $_GET['event_id']; $recurrence_ID = $_GET['recurrence_id']; $scope = $_GET['scope']; $offset = $_GET['offset']; $order = $_GET['order']; $selectedEvents = $_GET['events']; // Disable Hello to new user if requested if (isset($_GET['disable_hello_to_user']) && $_GET['disable_hello_to_user'] == 'true') { update_option('dbem_hello_to_user', 0); } if ($order == "") { $order = "ASC"; } if ($offset == "") { $offset = "0"; } $event_table_name = $wpdb->prefix . EVENTS_TBNAME; // Debug code, to make sure I get the correct page // DELETE action if ($action == 'deleteEvents') { // $sql="DELETE FROM ".$event_table_name." WHERE event_id='"."$event_ID"."'"; // TODO eventual error if ID in non-existant //$wpdb->query($sql); foreach ($selectedEvents as $event_ID) { dbem_delete_event($event_ID); } $events = dbem_get_events("", "future"); dbem_events_table($events, 10, "Future events"); } // UPDATE or CREATE action if ($action == 'update_event' || $action == 'update_recurrence') { $event = array(); $location = array(); $event['event_name'] = stripslashes($_POST[event_name]); // Set event end time to event time if not valid // if (!_dbem_is_date_valid($event['event_end_date'])) // $event['event_end_date'] = $event['event-date']; $event['event_start_date'] = $_POST[event_date]; $event['event_end_date'] = $_POST[event_end_date]; //$event['event_start_time'] = $_POST[event_hh].":".$_POST[event_mm].":00"; //$event['event_end_time'] = $_POST[event_end_hh].":".$_POST[event_end_mm].":00"; $event['event_start_time'] = date("G:i:00", strtotime($_POST['event_start_time'])); $event['event_end_time'] = date("G:i:00", strtotime($_POST['event_end_time'])); $recurrence['recurrence_name'] = $event['event_name']; $recurrence['recurrence_start_date'] = $event['event_start_date']; $recurrence['recurrence_end_date'] = $event['event_end_date']; $recurrence['recurrence_start_time'] = $event['event_start_time']; $recurrence['recurrence_end_time'] = $event['event_end_time']; $recurrence['recurrence_id'] = $_POST[recurrence_id]; $recurrence['recurrence_freq'] = $_POST[recurrence_freq]; $recurrence['recurrence_freq'] == 'weekly' ? $recurrence[recurrence_byday] = implode(",", $_POST['recurrence_bydays']) : ($recurrence['recurrence_byday'] = $_POST[recurrence_byday]); $_POST['recurrence_interval'] == "" ? $recurrence['recurrence_interval'] = 1 : ($recurrence['recurrence_interval'] = $_POST['recurrence_interval']); $recurrence['recurrence_byweekno'] = $_POST[recurrence_byweekno]; $event['event_rsvp'] = $_POST['event_rsvp']; $event['event_seats'] = $_POST['event_seats']; if (isset($_POST['event_contactperson_id']) && $_POST['event_contactperson_id'] != '' && $_POST['event_contactperson_id'] != '-1') { $event['event_contactperson_id'] = $_POST['event_contactperson_id']; $recurrence['event_contactperson_id'] = $_POST['event_contactperson_id']; } if (!_dbem_is_time_valid($event_end_time)) { $event_end_time = $event_time; } $location['location_name'] = $_POST[location_name]; $location['location_address'] = $_POST[location_address]; $location['location_town'] = $_POST[location_town]; $location['location_latitude'] = $_POST[location_latitude]; $location['location_longitude'] = $_POST[location_longitude]; $location['location_description'] = ""; /* Marcus Begin Edit */ //switched to WP TinyMCE field //$event ['event_notes'] = stripslashes ( $_POST [event_notes] ); $event['event_notes'] = stripslashes($_POST['content']); /* Marcus End Edit */ $recurrence['recurrence_notes'] = $event['event_notes']; $validation_result = dbem_validate_event($event); if ($validation_result == "OK") { // validation successful $related_location = dbem_get_identical_location($location); // print_r($related_location); if ($related_location) { $event['location_id'] = $related_location['location_id']; $recurrence['location_id'] = $related_location['location_id']; } else { $new_location = dbem_insert_location($location); $event['location_id'] = $new_location['location_id']; $recurrence['location_id'] = $new_location['location_id']; //print_r($new_location); } if (!$event_ID && !$recurrence_ID) { // there isn't anything if ($_POST['repeated_event']) { //insert new recurrence dbem_insert_recurrent_event($event, $recurrence); $feedback_message = __('New recurrent event inserted!', 'dbem'); } else { // INSERT new event $wpdb->insert($event_table_name, $event); $feedback_message = __('New event successfully inserted!', 'dbem'); } } else { // something exists if ($recurrence_ID) { // UPDATE old recurrence $recurrence['recurrence_id'] = $recurrence_ID; //print_r($recurrence); if (dbem_update_recurrence($recurrence)) { $feedback_message = __('Recurrence updated!', 'dbem'); } else { $feedback_message = __('Something went wrong with the recurrence update...', 'dbem'); } } else { // UPDATE old event // unlink from recurrence in case it was generated by one $event['recurrence_id'] = null; $where['event_id'] = $event_ID; $wpdb->update($event_table_name, $event, $where); $feedback_message = "'" . $event['event_name'] . "' " . __('updated', 'dbem') . "!"; } } /* Marcus Begin Edit */ //Save the category if selected if (is_numeric($_POST['event_category_id'])) { $insert_id = !$event_ID && !$recurrence_ID ? $wpdb->insert_id : $event_ID; $wpdb->update($event_table_name, array("event_category_id" => $_POST['event_category_id']), array('event_id' => $insert_id)); } /* Marcus End Edit */ //$wpdb->query($sql); echo "<div id='message' class='updated fade'>\n\t\t\t\t\t\t<p>{$feedback_message}</p>\n\t\t\t\t\t </div>"; $events = dbem_get_events("", "future"); dbem_events_table($events, 10, "Future events"); } else { // validation unsuccessful echo "<div id='message' class='error '>\n\t\t\t\t\t\t<p>" . __("Ach, there's a problem here:", "dbem") . " {$validation_result}</p>\n\t\t\t\t\t </div>"; dbem_event_form($event, "Edit event {$event_ID}", $event_ID); } } if ($action == 'edit_event') { if (!$event_ID) { $title = __("Insert New Event", 'dbem'); } else { $event = dbem_get_event($event_ID); $title = __("Edit Event", 'dbem') . " '" . $event['event_name'] . "'"; } //$event=$wpdb->get_row($sql, ARRAY_A); // Enter new events and updates old ones // DEBUG: echo"Nome: $event->event_name"; dbem_event_form($event, $title, $event_ID); } /* Marcus Begin Edit */ //Add duplicate event if requested if ($action == 'duplicate_event') { dbem_duplicate_event($event_ID); } /* Marcus End Edit */ if ($action == 'edit_recurrence') { $event_ID = $_GET['recurrence_id']; $recurrence = dbem_get_recurrence($event_ID); $title = __("Reschedule", 'dbem') . " '" . $recurrence['recurrence_name'] . "'"; dbem_event_form($recurrence, $title, $event_ID); } if ($action == 'update_recurrence') { //print_r($recurrence); //die('update recurrence!'); } if ($action == "-1" || $action == "") { // No action, only showing the events list switch ($scope) { case "past": $title = __('Past Events', 'dbem'); break; case "all": $title = __('All Events', 'dbem'); break; default: $title = __('Future Events', 'dbem'); $scope = "future"; } $limit = 20; $events = dbem_get_events($limit, $scope, $order, $offset); dbem_events_table($events, $limit, $title); } }