コード例 #1
0
function dbem_migrate_old_events()
{
    global $wpdb;
    $events_table = $wpdb->prefix . EVENTS_TBNAME;
    $sql = "SELECT event_id, event_time, event_venue, event_address, event_town FROM {$events_table}";
    //echo $sql;
    $events = $wpdb->get_results($sql, ARRAY_A);
    foreach ($events as $event) {
        // Migrating location data to the location table
        $location = array('location_name' => $event['event_venue'], 'location_address' => $event['event_address'], 'location_town' => $event['event_town']);
        $related_location = dbem_get_identical_location($location);
        if ($related_location) {
            $event['location_id'] = $related_location['location_id'];
        } else {
            $new_location = dbem_insert_location($location);
            $event['location_id'] = $new_location['location_id'];
        }
        // migrating event_time to event_start_date and event_start_time
        $event['event_start_date'] = substr($event['event_time'], 0, 10);
        $event['event_start_time'] = substr($event['event_time'], 11, 8);
        $event['event_end_time'] = substr($event['event_time'], 11, 8);
        $where = array('event_id' => $event['event_id']);
        $wpdb->update($events_table, $event, $where);
    }
}
コード例 #2
0
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);
    }
}