コード例 #1
0
function get_calendar_details($links)
{
    global $post;
    $event = event_get_stored_options();
    $style = qem_get_stored_style();
    $width = $style['calender_size'];
    $display = event_get_stored_display();
    $custom = get_post_custom();
    $category = get_the_category();
    $unixtime = get_post_meta($post->ID, 'event_date', true);
    $enddate = get_post_meta($post->ID, 'event_end_date', true);
    $titlecat = $datecat = '';
    if ($display['show_end_date'] && $enddate) {
        $join = 'checked';
    } else {
        $join = '';
    }
    if ($display['showcategory']) {
        if ($display['categorylocation'] == 'title') {
            $titlecat = ' - ' . $category[0]->name;
        }
        if ($display['categorylocation'] == 'date') {
            $datecat = ' - ' . $category[0]->name;
        }
    }
    if ($display['amalgamated']) {
        $month = date_i18n("M", $unixtime);
        $year = date_i18n("Y", $unixtime);
        if ($enddate) {
            $endmonth = date_i18n("M", $enddate);
            $endday = date_i18n("d", $enddate);
            $endyear = date_i18n("Y", $enddate);
        }
        if ($month == $endmonth && $year == $endyear && $endday) {
            $amalgamated = 'checked';
        }
    }
    $cat = $style['cat_border'] && $category ? $category[0]->slug : ' ';
    $output = '';
    if (!$style['vanilla']) {
        $output .= '<div style="float:left" class="' . $cat . '">' . get_event_calendar_icon($width, 'event_date', '', '', '') . '</div><div class="' . $cat . '"><div class="qem-' . $width . '">';
    }
    $output .= '<h2 style="display:inline">';
    if ($display['titlelink']) {
        $output .= $post->post_title;
    } elseif ($links == 'on' && !$display['titlelink']) {
        $output .= '<a href="' . get_permalink() . '">' . $post->post_title . '</a>';
    } else {
        $output .= $post->post_title;
    }
    $output .= $titlecat . '</h2>';
    if ($style['vanilla']) {
        $output .= '<h3>' . get_event_calendar_icon('', 'event_date', $join, 'checked', '');
        if ($display['show_end_date'] && !$amalgamated) {
            $output .= get_event_calendar_icon('', 'event_end_date', '', 'checked', '');
        }
        $output .= $datecat . '</h3>';
    }
    foreach (explode(',', $event['sort']) as $name) {
        if ($event['summary'][$name] == 'checked') {
            $output .= qem_build_event($name, $event, $display, $custom, 'checked');
        }
    }
    if (!$display['titlelink'] && $links == 'on') {
        $output .= '<p><a href="' . get_permalink() . '">' . $display['read_more'] . '</a></p>';
    }
    $output .= '</div></div>';
    $output = str_replace('"', '\\"', $output);
    $output = str_replace("'", "&#8217;", $output);
    $output = str_replace(array("\r", "\n"), "", $output);
    return $output;
}
コード例 #2
0
function save_event_details()
{
    global $post;
    $eventdetails = event_get_stored_options();
    $event = get_the_ID();
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
        return;
    }
    if (!isset($_POST['save_qem']) || !wp_verify_nonce($_POST['save_qem'], 'qem_nonce')) {
        return;
    }
    if (isset($_POST["event_date"])) {
        $startdate = strtotime($_POST["event_date"]);
        $starttime = qem_time($_POST["event_start"]);
        if (!$startdate) {
            $startdate = time();
        }
        $newdate = $startdate + $starttime;
        update_post_meta($post->ID, "event_date", $newdate);
    }
    if ($_POST["event_end_date"]) {
        $enddate = strtotime($_POST["event_end_date"]);
        $endtime = qem_time($_POST["event_finish"]);
        $newenddate = $enddate + $endtime;
        update_post_meta($post->ID, "event_end_date", $newenddate);
    }
    save_event_field("event_desc");
    save_event_field("event_start");
    save_event_field("event_finish");
    save_event_field("event_timezone");
    if ($_POST["event_timezone"] == "Eastern Australia, Guam, Vladivostok") {
        $sel = "Aus";
    } elseif ($_POST["event_timezone"] == "Mid-Atlantic") {
        $sel = "Mia";
    } else {
        $sel = substr($_POST["event_timezone"], 0, 3);
    }
    update_post_meta($post->ID, "selected_timezone", $sel);
    save_event_field("event_custom_timezone");
    save_event_field("event_location");
    save_event_field("event_address");
    save_event_field("event_link");
    save_event_field("event_anchor");
    save_event_field("event_cost");
    save_event_field("event_organiser");
    save_event_field("event_telephone");
    save_event_field("event_image");
    save_event_field("event_redirect");
    $old = get_event_field("hide_event");
    $new = $_POST["hide_event"];
    if ($new && $new != $old) {
        update_post_meta($post->ID, "hide_event", $new);
    } elseif ('' == $new && $old) {
        delete_post_meta($post->ID, "hide_event", $old);
    }
    $old = get_event_field("event_number");
    $new = $_POST["event_number"];
    if ($new && $new != $old) {
        update_post_meta($post->ID, "event_number", $new);
    } elseif ('' == $new && $old) {
        delete_post_meta($post->ID, "event_number", $old);
    }
    $old = get_event_field("event_register");
    $new = $_POST["event_register"];
    if ($new && $new != $old) {
        update_post_meta($post->ID, "event_register", $new);
    } elseif ('' == $new && $old) {
        delete_post_meta($post->ID, "event_register", $old);
    }
    $old = get_event_field("event_counter");
    $new = $_POST["event_counter"];
    if ($new && $new != $old) {
        update_post_meta($post->ID, "event_counter", $new);
    } elseif ('' == $new && $old) {
        delete_post_meta($post->ID, "event_counter", $old);
    }
    $old = get_event_field("event_redirect_id");
    $new = $_POST["event_redirect_id"];
    if ($new && $new != $old) {
        update_post_meta($post->ID, "event_redirect_id", $new);
    } elseif ('' == $new && $old) {
        delete_post_meta($post->ID, "event_redirect_id", $old);
    }
    $old = get_event_field("event_paypal");
    $new = $_POST["event_paypal"];
    if ($new && $new != $old) {
        update_post_meta($post->ID, "event_paypal", 'checked');
    } elseif ('' == $new) {
        update_post_meta($post->ID, "event_paypal", 'notchecked');
    }
    $harry = $_POST["repeatnumber"];
    $number = $harry > 52 || $harry == 0 ? 52 : $harry;
    if ($_POST["event_repeat"] == 'repeatmonthly') {
        $_POST["event_repeat"] = '';
        qem_duplicate_new_post($event, $number, 'months');
    }
    if ($_POST["event_repeat"] == 'repeatweekly') {
        $_POST["event_repeat"] = '';
        qem_duplicate_new_post($event, $number, 'weeks');
    }
    if ($eventdetails['publicationdate'] && $newdate) {
        remove_action('save_post', 'save_event_details');
        $updatestart = date('Y-m-d H:i:s', $newdate);
        wp_update_post(array('ID' => $event, 'post_date' => $updatestart));
        add_action('save_post', 'save_event_details');
    }
    save_event_field("event_registration_message");
}
コード例 #3
0
function qem_event_settings()
{
    $active_buttons = array('field1', 'field2', 'field3', 'field4', 'field5', 'field6', 'field7');
    if (isset($_POST['Submit']) && check_admin_referer("save_qem")) {
        foreach ($active_buttons as $item) {
            $event['active_buttons'][$item] = (isset($_POST['event_settings_active_' . $item]) and $_POST['event_settings_active_' . $item] == 'on') ? true : false;
            $event['summary'][$item] = isset($_POST['summary_' . $item]);
            $event['bold'][$item] = isset($_POST['bold_' . $item]);
            $event['italic'][$item] = isset($_POST['italic_' . $item]);
            $event['colour'][$item] = filter_var($_POST['colour_' . $item], FILTER_SANITIZE_STRING);
            $event['size'][$item] = filter_var($_POST['size_' . $item], FILTER_SANITIZE_STRING);
            if (!empty($_POST['label_' . $item])) {
                $event['label'][$item] = stripslashes($_POST['label_' . $item]);
                filter_var($event['label'][$item], FILTER_SANITIZE_STRING);
            }
        }
        $option = array('sort', 'description_label', 'address_label', 'url_label', 'cost_label', 'start_label', 'finish_label', 'location_label', 'organiser_label', 'show_telephone', 'show_map', 'target_link', 'publicationdate');
        foreach ($option as $item) {
            $event[$item] = stripslashes($_POST[$item]);
            $event[$item] = filter_var($event[$item], FILTER_SANITIZE_STRING);
        }
        update_option('event_settings', $event);
        qem_admin_notice(__('The form settings have been updated', 'quick-event-manager'));
    }
    if (isset($_POST['Reset']) && check_admin_referer("save_qem")) {
        delete_option('event_settings');
        qem_create_css_file('update');
        qem_admin_notice(__('The event settings have been reset', 'quick-event-manager'));
    }
    $event = event_get_stored_options();
    ${$event}['dateformat'] = 'checked';
    ${$event}['date_background'] = 'checked';
    ${$event}['event_order'] = 'checked';
    ${$event}['publicationdate'] = 'checked';
    if ($event['show_map'] == 'checked') {
        $map = 'checked';
    }
    $content = '<script>
    jQuery(function() {var qem_sort = jQuery( "#qem_sort" ).sortable({axis: "y",update:function(e,ui) {var order = qem_sort.sortable("toArray").join();jQuery("#qem_settings_sort").val(order);}});});
    </script>
    <div class ="qem-options" style="width:98%">
    <form id="event_settings_form" method="post" action="">
    <p>' . __('Use the check boxes to select which fields to display in the event post and the event list', 'quick-event-manager') . '.</p>
    <p>' . __('Drag and drop to change the order of the fields', 'quick-event-manager') . '.</p>
    <p>' . __('The fields with the blue border are for optional captions. For example: <span style="border:1px solid blue;">The cost is</span> {cost} will display as <em>The cost is 20 Zlotys</em>. If you leave it blank just <em>20 Zlotys</em> will display', 'quick-event-manager') . '.</p>
    <table id="sorting">
    <thead>
    <tr>
    <th width="15%">' . __('Show in event post', 'quick-event-manager') . '</th>
    <th width="10%">' . __('Show in<br>event list', 'quick-event-manager') . '</th>
    <th width="15%">' . __('Colour', 'quick-event-manager') . '</th>
    <th width="5%">' . __('Font<br>size', 'quick-event-manager') . '</th>
    <th width="10%">' . __('Font<br>attributes', 'quick-event-manager') . '</th>
    <th>' . __('Caption and display options', 'quick-event-manager') . ':</th>
    </tr>
    </thead><tbody id="qem_sort">';
    $sort = explode(",", $event['sort']);
    foreach (explode(',', $event['sort']) as $name) {
        $checked = $event['active_buttons'][$name] ? 'checked' : '';
        $summary = $event['summary'][$name] ? 'checked' : '';
        $bold = $event['bold'][$name] ? 'checked' : '';
        $italic = $event['italic'][$name] ? 'checked' : '';
        $options = '';
        switch ($name) {
            case 'field1':
                $options = '<input type="text" style="border:1px solid blue; width:10em; padding: 1px; margin:0;" name="description_label" . value ="' . $event['description_label'] . '" /> {' . __('description', 'quick-event-manager') . '}';
                break;
            case 'field2':
                $options = '<input type="text" style="border:1px solid blue; width:6em; padding: 1px; margin:0;" name="start_label" . value ="' . $event['start_label'] . '" /> {' . __('start time', 'quick-event-manager') . '} <input type="text" style="border:1px solid blue; width:6em; padding: 1px; margin:0;" name="finish_label" . value ="' . $event['finish_label'] . '" /> {' . __('end time', 'quick-event-manager') . '}';
                break;
            case 'field3':
                $options = '<input type="text" style="border:1px solid blue; width:6em; padding: 1px; margin:0;" name="location_label" . value ="' . $event['location_label'] . '" /> {' . __('venue', 'quick-event-manager') . '}';
                break;
            case 'field4':
                $options = '<input type="text" style="border:1px solid blue; width:10em; padding: 1px; margin:0;" name="address_label" . value ="' . $event['address_label'] . '" /> {' . __('address', 'quick-event-manager') . '}&nbsp;<input type="checkbox" name="show_map"' . $event['show_map'] . ' value="checked" /> ' . __('Show map (if address is given)', 'quick-event-manager') . ' ';
                break;
            case 'field5':
                $options = '<input type="text" style="border:1px solid blue; width:10em; padding: 1px; margin:0;" name="url_label" . value ="' . $event['url_label'] . '" /> {url}';
                break;
            case 'field6':
                $options = '<input type="text" style="border:1px solid blue; width:10em; padding: 1px; margin:0;" name="cost_label" . value ="' . $event['cost_label'] . '" /> {' . __('cost', 'quick-event-manager') . '}';
                break;
            case 'field7':
                $options = '<input type="text" style="border:1px solid blue; width:10em; padding: 1px; margin:0;" name="organiser_label" . value ="' . $event['organiser_label'] . '" /> {' . __('organiser', 'quick-event-manager') . '}&nbsp;<input type="checkbox" name="show_telephone"' . $event['show_telephone'] . ' value="checked" /> ' . __('Show orgainser\'s contact details', 'quick-event-manager') . ' ';
                break;
        }
        $li_class = $checked ? 'button_active' : 'button_inactive';
        $content .= '<tr class="ui-state-default ' . $li_class . ' ' . $first . '" id="' . $name . '"><td>
        <input type="checkbox" class="button_activate" style="border: none; padding: 0; margin:0;" name="event_settings_active_' . $name . '" ' . $checked . ' />
        <b>' . $event['label'][$name] . '</b></td>
        <td><input type="checkbox" style="border: none; padding: 0; margin:0;" name="summary_' . $name . '" ' . $summary . ' /></td>
        <td><input type="text" class="qem-color" name="colour_' . $name . '" value ="' . $event['colour'][$name] . '" /></td>
        <td><input type="text" style="padding:1px;width:3em;border: 1px solid #343838;" name="size_' . $name . '" value ="' . $event['size'][$name] . '" />%</td>
        <td><input type="checkbox" style="border: none; padding: 0; margin:0;" name="bold_' . $name . '" ' . $bold . ' /> Bold <input type="checkbox" style="border: none; padding: 0; margin:0;" name="italic_' . $name . '" ' . $italic . ' /> Italic</td>
        <td>' . $options . '</td>
        </tr>';
    }
    $content .= '</tbody></table>
    <h2>Publication Date</h2>
    <p><input type="checkbox" style="border: none; padding: 0; margin:0;" name="publicationdate" value="checked" ' . $event['publicationdate'] . ' /></td><td> ' . __('Make publication date the same as the event date', 'quick-event-manager') . '</p>
    <input type="hidden" id="qem_settings_sort" name="sort" value="' . $event['sort'] . '" />
	<p><input type="submit" name="Submit" class="button-primary" style="color: #FFF;" value="' . __('Save Changes', 'quick-event-manager') . '" /> <input type="submit" name="Reset" class="button-primary" style="color: #FFF;" value="' . __('Reset', 'quick-event-manager') . '" onclick="return window.confirm( \' ' . __('Are you sure you want to reset the display settings?', 'quick-event-manager') . '\' );"/></p>';
    $content .= wp_nonce_field("save_qem");
    $content .= '</form>
    <h2>' . __('Shortcode and Widget Field Selection', 'quick-event-manager') . '</h2>
    <p>' . __('If you want a custom layout for a specific list you can use the shortcode [qem fields=1,2,5].', 'quick-event-manager') . ' ' . __('On the <a href="/wp-admin/widgets.php">widget</a> just enter the field numbers seperated with commas.', 'quick-event-manager') . '<p>
    <p>' . __('The numbers correspond to the fields like this', 'quick-event-manager') . ': <p>
    <ol>
    <li>' . __('Short description', 'quick-event-manager') . '</li>
    <li>' . __('Event Time', 'quick-event-manager') . '</li>
    <li>' . __('Cost', 'quick-event-manager') . '</li>
    <li>' . __('Venue', 'quick-event-manager') . '</li>
    <li>' . __('Address', 'quick-event-manager') . '</li>
    <li>' . __('Website', 'quick-event-manager') . '</li>
<li>' . __('Organiser', 'quick-event-manager') . '</li>
    </ol>
    <p>' . __('The order of the fields and other options is set using the drag and drop selectors above', 'quick-event-manager') . '</p></div>';
    echo $content;
}
コード例 #4
0
function qem_process_form($values)
{
    global $post;
    $date = get_post_meta($post->ID, 'event_date', true);
    $enddate = get_post_meta($post->ID, 'event_end_date', true);
    $content = '';
    $places = get_post_meta($post->ID, 'event_number', true);
    $rcm = get_post_meta($post->ID, 'event_registration_message', true);
    $date = date_i18n("d M Y", $date);
    $register = qem_get_stored_register();
    $auto = qem_get_stored_autoresponder();
    $event = get_the_ID();
    $qem_messages = get_option('qem_messages_' . $event);
    if (!is_array($qem_messages)) {
        $qem_messages = array();
    }
    $sentdate = date_i18n('d M Y');
    $newmessage = array();
    $arr = array('yourname', 'youremail', 'notattend', 'yourtelephone', 'yourplaces', 'yourblank1', 'yourblank2', 'yourdropdown', 'yourselector', 'yournumber1', 'morenames');
    foreach ($arr as $item) {
        if ($values[$item] != $register[$item]) {
            $newmessage[$item] = $values[$item];
        }
    }
    $newmessage['sentdate'] = $sentdate;
    $newmessage['ipn'] = $values['ipn'];
    $qem_messages[] = $newmessage;
    update_option('qem_messages_' . $event, $qem_messages);
    if (empty($register['sendemail'])) {
        global $current_user;
        get_currentuserinfo();
        $qem_email = $current_user->user_email;
    } else {
        $qem_email = $register['sendemail'];
    }
    $subject = $auto['subject'];
    if ($auto['subjecttitle']) {
        $subject = $subject . ' ' . get_the_title();
    }
    if ($autor['subjectdate']) {
        $subject = $subject . ' ' . $date;
    }
    if (empty($subject)) {
        $subject = 'Event Registration';
    }
    $notificationsubject = 'New Registration for ' . get_the_title() . ' on ' . $date;
    if ($register['usename']) {
        $content .= '<p><b>' . $register['yourname'] . ': </b>' . strip_tags(stripslashes($values['yourname'])) . '</p>';
    }
    if ($register['usemail']) {
        $content .= '<p><b>' . $register['youremail'] . ': </b>' . strip_tags(stripslashes($values['youremail'])) . '</p>';
    }
    if ($register['useattend'] && $values['notattend']) {
        $content .= '<p><b>' . $register['yourattend'] . ': </b></p>';
    }
    if ($register['usetelephone']) {
        $content .= '<p><b>' . $register['yourtelephone'] . ': </b>' . strip_tags(stripslashes($values['yourtelephone'])) . '</p>';
    }
    if ($register['useplaces'] && !$values['notattend']) {
        $content .= '<p><b>' . $register['yourplaces'] . ': </b>' . strip_tags(stripslashes($values['yourplaces'])) . '</p>';
    } elseif (!$register['useplaces'] && !$values['notattend']) {
        $values['yourplaces'] = '1';
    } else {
        $values['yourplaces'] = '';
    }
    if ($register['usemorenames']) {
        $content .= '<p><b>' . $register['morenames'] . ': </b>' . strip_tags(stripslashes($values['morenames'])) . '</p>';
    }
    if ($register['usemessage']) {
        $content .= '<p><b>' . $register['yourmessage'] . ': </b>' . strip_tags(stripslashes($values['yourmessage'])) . '</p>';
    }
    if ($register['useblank1']) {
        $content .= '<p><b>' . $register['yourblank1'] . ': </b>' . strip_tags(stripslashes($values['yourblank1'])) . '</p>';
    }
    if ($register['useblank2']) {
        $content .= '<p><b>' . $register['yourblank2'] . ': </b>' . strip_tags(stripslashes($values['yourblank2'])) . '</p>';
    }
    if ($register['usedropdown']) {
        $arr = explode(",", $register['yourdropdown']);
        $content .= '<p><b>' . $arr[0] . ': </b>' . strip_tags(stripslashes($values['yourdropdown'])) . '</p>';
    }
    if ($register['useselector']) {
        $arr = explode(",", $register['yourselector']);
        $content .= '<p><b>' . $arr[0] . ': </b>' . strip_tags(stripslashes($values['yourselector'])) . '</p>';
    }
    if ($register['usenumber1']) {
        $content .= '<p><b>' . $register['usenumber1'] . ': </b>' . strip_tags(stripslashes($values['usenumber1'])) . '</p>';
    }
    if ($auto['useeventdetails']) {
        if ($auto['eventdetailsblurb']) {
            $details .= '<h2>' . $auto['eventdetailsblurb'] . '</h2>';
        }
        $details .= '<p>' . get_the_title() . '</p><p>' . $date;
        if ($enddate) {
            $enddate = date_i18n("d M Y", $enddate);
            $details .= ' - ' . $enddate;
        }
        $details .= '</p>';
        $event = event_get_stored_options();
        $display = event_get_stored_display();
        $custom = get_post_custom();
        foreach (explode(',', $event['sort']) as $name) {
            if ($event['active_buttons'][$name]) {
                $details .= qem_build_event($name, $event, $display, $custom, '');
            }
        }
    }
    $headers = "From: {$values['yourname']} <{$values['youremail']}>\r\n" . "MIME-Version: 1.0\r\n" . "Content-Type: text/html; charset=\"utf-8\"\r\n";
    $message = '<html>' . $content . '</html>';
    wp_mail($qem_email, $notificationsubject, $message, $headers);
    if ($auto['enable'] || $values['qem-copy']) {
        $msg = $rcm ? $rcm : $auto['message'];
        $copy .= '<html>' . $msg;
        if ($auto['useregistrationdetails']) {
            if ($auto['registrationdetailsblurb']) {
                $copy .= '<h2>' . $auto['registrationdetailsblurb'] . '</h2>';
            }
            $copy .= $content;
        }
        if ($auto['permalink']) {
            $close .= '<p><a href="' . get_permalink() . '">' . get_permalink() . '</a></p>';
        }
        $message = $copy . $details . $close . '</html>';
        $headers = "From: " . $auto['fromname'] . " <{$auto['fromemail']}>\r\n" . "MIME-Version: 1.0\r\n" . "Content-Type: text/html; charset=\"utf-8\"\r\n";
        wp_mail($values['youremail'], $subject, $message, $headers);
    }
    if ($payment['paypal'] && !get_post_meta($post->ID, 'event_paypal', true) || get_post_meta($post->ID, 'event_paypal', true) == 'checked') {
        return 'checked';
    }
    $redirect = get_post_meta($post->ID, 'event_redirect', true);
    $redirect_id = get_post_meta($post->ID, 'event_redirect_id', true);
    if ($redirect) {
        if ($redirect_id) {
            if (substr($redirect, -1) != '/') {
                $redirect = $redirect . '/';
            }
            $id = get_the_ID();
            $redirect = $redirect . "?event=" . $id;
        }
        echo "<meta http-equiv='refresh' content='0;url={$redirect}' />";
        exit;
    }
}