コード例 #1
0
function mc_submit_form($fields, $categories, $locations, $category, $location, $location_fields)
{
    $fields = apply_filters('mcs_submit_fields', $fields);
    $location_fields = apply_filters('mcs_submit_location_fields', $location_fields);
    // the big function. This creates the form.
    wp_enqueue_script('pickadate', plugins_url('my-calendar/js/pickadate/picker.js'));
    wp_enqueue_script('pickadate.date', plugins_url('my-calendar/js/pickadate/picker.date.js'));
    wp_enqueue_script('pickadate.time', plugins_url('my-calendar/js/pickadate/picker.time.js'));
    wp_localize_script('pickadate.date', 'mc_months', array(date_i18n('F', strtotime('January 1')), date_i18n('F', strtotime('February 1')), date_i18n('F', strtotime('March 1')), date_i18n('F', strtotime('April 1')), date_i18n('F', strtotime('May 1')), date_i18n('F', strtotime('June 1')), date_i18n('F', strtotime('July 1')), date_i18n('F', strtotime('August 1')), date_i18n('F', strtotime('September 1')), date_i18n('F', strtotime('October 1')), date_i18n('F', strtotime('November 1')), date_i18n('F', strtotime('December 1'))));
    wp_localize_script('pickadate.date', 'mc_days', array(date_i18n('D', strtotime('Sunday')), date_i18n('D', strtotime('Monday')), date_i18n('D', strtotime('Tuesday')), date_i18n('D', strtotime('Wednesday')), date_i18n('D', strtotime('Thursday')), date_i18n('D', strtotime('Friday')), date_i18n('D', strtotime('Saturday'))));
    wp_register_script('mcs-submit-form', plugins_url('/js/jquery.mcs-submit.js', __FILE__), array('jquery'));
    wp_enqueue_script('mcs-submit-form');
    $format = get_option('mcs_date_format');
    switch ($format) {
        case "m/d/Y":
            $js_format = 'mm/dd/yyyy';
            break;
        case "d-m-Y":
            $js_format = 'dd-mm-yyyy';
            break;
        case "Y-m-d":
            $js_format = 'yy-mm-dd';
            break;
        case "j F Y":
            $js_format = 'd mmmm yyyy';
            break;
        case "M j, Y":
            $js_format = 'mmm d, yyyy';
            break;
        default:
            $js_format = 'yy-mm-dd';
    }
    $time = get_option('mcs_time_format');
    switch ($time) {
        case "H:i":
            $js_time_format = 'HH:i';
            break;
        default:
            $js_time_format = 'h:i a';
    }
    $script = "\n<script>\n(function (\$) {\n\t\$(function() {\n\t\t\$( 'input.mc-date' ).pickadate({\n\t\t\tmonthsFull: mc_months,\n\t\t\tformat: '{$js_format}',\n\t\t\tweekdaysShort: mc_days,\n\t\t\tselectYears: true,\n\t\t\tselectMonths: true,\n\t\t\teditable: true\n\t\t});\n\t\t\$( 'input.mc-time' ).pickatime({\n\t\t\tinterval: 15,\n\t\t\tformat: '{$js_time_format}',\n\t\t\teditable: true\t\t\n\t\t});\n\t})\n})(jQuery);\n</script>";
    global $user_ID;
    if (is_user_logged_in()) {
        $auth = $user_ID;
    } else {
        $auth = 0;
    }
    $nonce = "<input type='hidden' name='event_nonce_name' value='" . wp_create_nonce('event_nonce') . "' />";
    $response = mcs_processor_response();
    $event = false;
    if (empty($response[1]) && isset($_GET['mcs_id']) && is_user_logged_in()) {
        $mc_id = intval($_GET['mcs_id']);
        $event = mc_form_data($mc_id);
        if (!mc_can_edit_event($event->event_id)) {
            $event = false;
        }
    }
    if (isset($_GET['mcs_id']) && !is_user_logged_in()) {
        $message = "<div class='updated'><p>" . __("You'll need to log-in to edit this event.", 'my-calendar-submissions') . "</p></div>";
    } else {
        $message = '';
    }
    $data = !empty($response[1]) ? $response[1] : $event;
    $has_data = empty($data) ? false : true;
    $title = !empty($data) ? esc_attr($data->event_title) : '';
    $desc = !empty($data) ? esc_attr($data->event_desc) : '';
    $tickets = !empty($data) ? esc_attr($data->event_tickets) : '';
    $registration = !empty($data) ? esc_attr($data->event_registration) : '';
    $begin = !empty($data) ? esc_attr($data->event_begin) : '';
    $format = date(get_option('mcs_date_format'), current_time('timestamp'));
    $format2 = date(get_option('mcs_time_format'), current_time('timestamp'));
    $endformat2 = date(get_option('mcs_time_format'), current_time('timestamp') + 3600);
    $end = !empty($data) ? esc_attr($data->event_end) : '';
    $time = !empty($data) ? esc_attr($data->event_time) : $format2;
    $endtime = !empty($data) ? esc_attr($data->event_endtime) : $endformat2;
    $recur = !empty($data) ? esc_attr($data->event_recur) : 'S';
    $recurs = str_split($recur, 1);
    $recur = $recurs[0];
    $every = isset($recurs[1]) ? $recurs[1] : 1;
    if ($every == 1 && $recur == 'B') {
        $every = 2;
    }
    $repeats = !empty($data) ? esc_attr($data->event_repeats) : 0;
    $selected_category = !empty($data) ? esc_attr($data->event_category) : $category;
    $event_host = !empty($data) ? esc_attr($data->event_host) : $user_ID;
    $link = !empty($data) ? esc_attr($data->event_link) : '';
    $label = !empty($data) ? esc_attr($data->event_label) : '';
    $street = !empty($data) ? esc_attr($data->event_street) : '';
    $street2 = !empty($data) ? esc_attr($data->event_street2) : '';
    $city = !empty($data) ? esc_attr($data->event_city) : '';
    $state = !empty($data) ? esc_attr($data->event_state) : '';
    $postcode = !empty($data) ? esc_attr($data->event_postcode) : '';
    $country = !empty($data) ? esc_attr($data->event_country) : '';
    $region = !empty($data) ? esc_attr($data->event_region) : '';
    $url = !empty($data) ? esc_attr($data->event_url) : '';
    $longitude = !empty($data) ? esc_attr($data->event_longitude) : '';
    $latitude = !empty($data) ? esc_attr($data->event_latitude) : '';
    $phone = !empty($data) ? esc_attr($data->event_phone) : '';
    $short = !empty($data) ? esc_attr($data->event_short) : '';
    $image = !empty($data) ? esc_attr($data->event_image) : '';
    $name = isset($_POST['event_name']) ? esc_attr($_POST['event_name']) : '';
    $email = isset($_POST['event_email']) ? esc_attr($_POST['event_email']) : '';
    $key = isset($_POST['event_key']) ? esc_attr($_POST['event_key']) : '';
    $key = isset($_GET['event_key']) ? esc_attr($_GET['event_key']) : '';
    if ($event) {
        $link_expires = $event->event_link_expires;
        $event_holiday = $event->event_holiday;
        $event_fifth_week = $event->event_fifth_week;
        $edit = "<input type='hidden' name='event_edit' value='{$mc_id}' />";
        $edit .= "\n\t\t\t<input type='hidden' name='prev_event_begin' value='{$begin}' />\n\t\t\t<input type='hidden' name='prev_event_repeats' value='{$repeats}' />\n\t\t\t<input type='hidden' name='prev_event_recur' value='{$recur}' />\n\t\t\t<input type='hidden' name='prev_event_status' value='{$event->event_approved}' />\n\t\t\t<input type='hidden' name='event_post' value='{$event->event_post}' />";
    } else {
        $link_expires = get_option('mc_event_link_expires') == 'false' ? 1 : 0;
        $event_holiday = get_option('mc_skip_holidays') == 'true' ? 'on' : 'false';
        $event_fifth_week = get_option('mc_no_fifth_week') == 'true' ? 1 : '';
        $edit = '';
    }
    $selected_location = array('label' => $label, 'street' => $street, 'street2' => $street2, 'city' => $city, 'state' => $state, 'postcode' => $postcode, 'country' => $country, 'region' => $region, 'url' => $url, 'longitude' => $longitude, 'latitude' => $latitude, 'phone' => $phone);
    $payment_form = mcs_payment_required() ? mcs_payment_form() : '';
    $check_conflicts = get_option('mcs_check_conflicts') == 'true' ? '<input type="hidden" name="mcs_check_conflicts" value="true" />' : '';
    $approved = get_option('mcs_automatic_approval') == 'true' || current_user_can('mc_manage_events') ? 1 : 0;
    // need to set hidden inputs to default values.
    $enctype = get_option('mcs_upload_images') == 'true' ? ' enctype="multipart/form-data"' : '';
    $return = "{$script}\n\t<div class='mc-submissions'>\n\t\t{$message}\n\t\t{$response['0']}\n\t\t{$payment_form}\n\t\t<form action='' method='post' class='mcs-submission'{$enctype}>\n\t\t<div>\n\t\t{$nonce}\n\t\t<input type='hidden' name='mcs_submission' value='on' />\n\t\t<input type='hidden' name='event_approved' value='{$approved}' /> \n\t\t<input type='hidden' name='event_author' value='{$auth}' />\n\t\t<input type='hidden' name='event_link_expires' value='" . $link_expires . "' />\n\t\t<input type='hidden' name='event_holiday' value='" . $event_holiday . "' />\n\t\t<input type='hidden' name='event_fifth_week' value='" . $event_fifth_week . "' />\n\t\t<input type='hidden' name='event_group_id' value='" . mc_group_id() . "' />\n\t\t<div style='display: none;'>\n\t\t\t<label for='your_name'>" . __('Do not complete this field.', 'my-calendar-submissions') . "</label>\n\t\t\t<input type='text' name='your_name' id='your_name' value='' />\n\t\t</div>\n\t\t{$edit}";
    if (apply_filters('mcs_event_allday', 0) == true) {
        $return .= "<input type='hidden' name='event_allday' value='1' />";
    }
    if (apply_filters('mcs_event_hide_end', 0) == true) {
        $return .= "<input type='hidden' name='event_hide_end' value='1' />";
    }
    $return .= "{$check_conflicts}\n\t\t</div>";
    if (mcs_payment_required()) {
        $return .= "<p><label for='mcs_key'>" . __('Payment Key', 'my-calendar-submissions') . ' <span>' . __('(required)', 'my-calendar-submissions') . "</span></label> <input type='text' name='mcs_key' id='mcs_key' value='{$key}' required='required' aria-required='true' /></p>";
    }
    $flabel = isset($fields['event_title']) ? $fields['event_title'] : __('Event Title', 'my-calendar-submissions');
    $dlabel = isset($fields['event_date']) ? $fields['event_date'] : __('Date', 'my-calendar-submissions');
    $tlabel = isset($fields['event_time']) ? $fields['event_time'] : __('Time', 'my-calendar-submissions');
    $return .= "\n\t\t<p>\n\t\t<label for='mc_event_title'>{$flabel} <span>" . __('(required)', 'my-calendar-submissions') . "</span></label> <input type='text' name='event_title' id='mc_event_title' value='{$title}' required='required' aria-required='true' />\n\t\t</p>\n\t\t<div class='mc_begin_container'>\n\t\t<p>\n\t\t<label for='mc_event_date'>{$dlabel} <span>" . __('(required)', 'my-calendar-submissions') . "</span></label> <input type='text' class='mc-date' name='event_begin[]' id='mc_event_date' value='{$begin}' required='required' aria-required='true' />\n\t\t</p>\n\t\t<p>\n\t\t<label for='mc_event_time'>{$tlabel}</label> <input type='time' name='event_time[]' id='mc_event_time' class='mc-time' value='{$time}' />\n\t\t</p>\n\t\t</div>";
    if (isset($fields['end_date']) || isset($fields['end_time'])) {
        $return .= "<div class='mc_end_container'>";
    }
    if (isset($fields['end_date'])) {
        $flabel = $fields['end_date'] != 'true' && $fields['end_date'] != 'End date' ? $fields['end_date'] : __('End date', 'my-calendar-submissions');
        $return .= "<p>\n\t\t\t<label for='mc_event_enddate'>{$flabel}</label> <input type='text' class='mc-date' name='event_end[]' id='mc_event_enddate' value='{$end}' />\n\t\t\t</p>";
    } else {
        $return .= "<input type='hidden' name='event_end[]' value='' />";
    }
    if (isset($fields['end_time'])) {
        $flabel = $fields['end_time'] != 'true' && $fields['end_time'] != 'End time' ? $fields['end_time'] : __('End time', 'my-calendar-submissions');
        $return .= "<p>\n\t\t\t<label for='mc_event_endtime'>{$flabel}</label> <input type='time' name='event_endtime[]' id='mc_event_endtime' class='mc-time' value='{$endtime}'/>\n\t\t\t</p>";
    }
    if (isset($fields['end_date']) || isset($fields['end_time'])) {
        $return .= "</div>";
    }
    if (is_user_logged_in()) {
        $current_user = wp_get_current_user();
        $name = $current_user->display_name;
        $email = $current_user->user_email;
    }
    $disallow_user_changes = apply_filters('mcs_disallow_user_changes', false);
    $required = apply_filters('mcs_require_name_and_email', 'required="required"');
    if ($disallow_user_changes && is_user_logged_in()) {
        $return .= "<input name='mcs_name' value='{$name}' type='hidden' /><input name='mcs_email' value='{$email}' type='hidden' />";
    } else {
        $flabel = isset($fields['mcs_name']) && $fields['mcs_name'] != 'true' && $fields['mcs_name'] != 'Your Name' ? $fields['mcs_name'] : __('Your Name', 'my-calendar-submissions');
        $return .= "<p>\n\t\t\t\t<label for='mcs_name'>{$flabel}</label> <input type='text' name='mcs_name' id='mcs_name' value='{$name}' {$required} />\n\t\t\t\t</p>";
        $flabel = isset($fields['mcs_email']) && $fields['mcs_email'] != 'true' && $fields['mcs_email'] != 'Your Email' ? $fields['mcs_email'] : __('Your Email', 'my-calendar-submissions');
        $return .= "<p>\n\t\t\t\t<label for='mcs_email'>{$flabel}</label> <input type='email' name='mcs_email' id='mcs_email' value='{$email}' {$required} />\n\t\t\t\t</p>";
    }
    if (isset($fields['event_host'])) {
        $host_select = '<select id="e_host" name="event_host">';
        // Grab all the users and list them
        $users = my_calendar_getUsers();
        $num = 0;
        foreach ($users as $u) {
            $display_name = $u->display_name == '' ? $u->user_nicename : $u->display_name;
            if ($event_host == $u->ID) {
                $selected = ' selected="selected"';
            } else {
                $selected = '';
            }
            if (user_can($u->ID, apply_filters('mcs_eligible_hosts', 'mc_add_events'))) {
                $host_select .= "<option value='{$u->ID}'{$selected}>{$display_name}</option>\n";
                $num++;
                $single_host = $u->ID;
            }
        }
        $host_select .= '</select>';
        $flabel = isset($fields['event_host']) && $fields['event_host'] != 'true' && $fields['event_host'] != 'Event Host' ? $fields['event_host'] : __('Event Host', 'my-calendar-submissions');
        if ($num <= 1) {
            $return .= "<input type='hidden' name='event_host' value='{$single_host}' />";
        } else {
            $return .= "\n\t\t\t\t<p class='event_host'>\n\t\t\t\t\t<label for='e_host'>" . $flabel . "</label>\n\t\t\t\t\t{$host_select}\n\t\t\t\t</p>";
        }
    }
    if (isset($fields['event_recurring'])) {
        $return .= "\n\t\t\t<p class='recurring'>\n\t\t\t<label for='event_repeats'>" . __('Repeats', 'my-calendar-submissions') . "</label> <input type='number' name='event_repeats' id='event_repeats' class='input' size='1' min='0' max='999' value='{$repeats}' /> \n\t\t\t<label for='event_every'>" . __('every', 'my-calendar') . "</label> <input type='number' name='event_every' id='event_every' class='input' size='1' min='1' max='9' maxlength='1' value='{$every}' /> \n\t\t\t<label for='event_recur' class='screen-reader-text'>" . __('Units', 'my-calendar-submissions') . "</label> <select name='event_recur' class='input' id='event_recur'>" . mc_recur_options($recur) . "\n\t\t\t</select> \n\t\t\t</p>";
        // event_repeats, event_recur
    } else {
        $return .= "<div>\n\t\t\t\t\t<input type='hidden' name='event_repeats' value='0' />\n\t\t\t\t\t<input type='hidden' name='event_recur' value='S' />\n\t\t\t\t\t<input type='hidden' name='event_every' value='1' />\n\t\t\t\t\t</div>";
    }
    // event_open, event_group
    if (isset($fields['description'])) {
        $flabel = $fields['description'] != 'true' && !($fields['description'] == 'Description' || $fields['description'] == 'Event Description') ? $fields['description'] : __('Description', 'my-calendar-submissions');
        $return .= "<p><label for='mc_event_description'>{$flabel}</label> <textarea name='content' id='mc_event_description' class='full_description'>{$desc}</textarea></p>";
    }
    if (isset($fields['short_description'])) {
        $flabel = $fields['short_description'] != 'true' && !($fields['short_description'] == 'Summary' || $fields['short_description'] == 'Short Description') ? $fields['short_description'] : __('Summary', 'my-calendar-submissions');
        $return .= "<p><label for='mc_event_short_description'>{$flabel}</label> <textarea name='event_short' id='mc_event_short_description' class='short_description'>{$short}</textarea></p>";
    }
    $return .= apply_filters('mc_event_details', '', $has_data, $data, 'public');
    if (isset($fields['access']) && function_exists('mc_event_accessibility')) {
        $flabel = $fields['access'] != 'true' && $fields['access'] != 'Event Access' ? $fields['access'] : __('Event Access', 'my-calendar-submissions');
        $return .= mc_event_accessibility('', $data, $flabel);
    }
    if (isset($fields['event_link'])) {
        $flabel = $fields['event_link'] != 'true' && !($fields['event_link'] == 'Link' || $fields['event_link'] == 'Event Link') ? $fields['event_link'] : __('Link', 'my-calendar-submissions');
        $return .= "<p>\n\t\t\t\t<label for='mc_event_link'>{$flabel}</label> <input type='url' name='event_link' id='mc_event_link' value='{$link}' placeholder='http://' />\n\t\t\t\t</p>";
    }
    if (isset($fields['event_image'])) {
        $flabel = $fields['event_image'] != 'true' && !($fields['event_image'] == 'Image (URL)' || $fields['event_image'] == 'Event image') ? $fields['event_image'] : __('Image (URL)', 'my-calendar-submissions');
        if (get_option('mcs_upload_images') == 'true' && $image == '') {
            $input_type = 'file';
        } else {
            $input_type = 'url';
        }
        $return .= "<p>\n\t\t\t\t<label for='mc_event_image'>{$flabel}</label> <input type='{$input_type}' name='event_image' id='mc_event_image' value='{$image}' />\n\t\t\t\t</p>";
    }
    $return .= mcs_submit_category($selected_category, $categories);
    if (isset($fields['registration'])) {
        $flabel = $fields['registration'] != 'true' && $fields['registration'] != 'Ticketing Information' ? $fields['registration'] : __('Ticketing Information', 'my-calendar-submissions');
        $return .= "<fieldset>\n\t\t\t<legend>{$flabel}</legend>";
        $return .= apply_filters('mc_event_registration', '', $has_data, $data, 'public');
        $return .= "</fieldset>";
    }
    $return .= mcs_submit_location($location, $locations, $location_fields, $selected_location);
    $return .= "<p><input type='submit' name='save' value='" . __('Submit your event', 'my-calendar-submissions') . "' /></p>";
    $return .= "\n\t\t</form>\t\n\t</div>";
    $return = apply_filters('mcs_after_submissions', $return, $response);
    return $return;
}
コード例 #2
0
function mc_show_block($field, $has_data, $data, $echo = true, $default = '')
{
    global $user_ID;
    $return = $checked = $value = '';
    $show_block = mc_show_edit_block($field);
    $pre = '<div class="ui-sortable meta-box-sortables"><div class="postbox">';
    $post = '</div></div>';
    switch ($field) {
        case 'event_host':
            if ($show_block) {
                $users = mc_get_users();
                $select = '';
                foreach ($users as $u) {
                    $display_name = $u->display_name == '' ? $u->user_nicename : $u->display_name;
                    if (is_object($data) && $data->event_host == $u->ID) {
                        $selected = ' selected="selected"';
                    } else {
                        if (is_object($u) && $u->ID == $user_ID && empty($data->event_host)) {
                            $selected = ' selected="selected"';
                        } else {
                            $selected = '';
                        }
                    }
                    $select .= "<option value='{$u->ID}'{$selected}>{$display_name}</option>\n";
                }
                $return = '
					<p>
					<label for="e_host">' . __('Host', 'my-calendar') . '</label>
					<select id="e_host" name="event_host">' . $select . '</select>
				</p>';
            }
            break;
        case 'event_author':
            if ($show_block && is_object($data) && $data->event_author === '0') {
                $users = mc_get_users();
                $select = '';
                foreach ($users as $u) {
                    $display_name = $u->display_name == '' ? $u->user_nicename : $u->display_name;
                    $select .= "<option value='{$u->ID}'>{$display_name}</option>\n";
                }
                $return = '
					<p>
					<label for="e_author">' . __('Author', 'my-calendar') . '</label>
					<select id="e_author" name="event_author">
						<option value="0" selected="selected">Public Submitter</option>' . $select . '</select>
				</p>';
            } else {
                $return = '<input type="hidden" name="event_author" value="' . $default . '" />';
            }
            break;
        case 'event_desc':
            if ($show_block) {
                global $current_screen;
                // because wp_editor cannot return a value, event_desc fields cannot be filtered if its enabled.
                $value = $has_data ? stripslashes($data->event_desc) : '';
                if ($current_screen->base == 'post') {
                    $return = '<div class="event_description">
									<label for="content" class="screen-reader-text">' . __('Event Description', 'my-calendar') . '</label>
									<textarea id="content" name="content" class="event_desc" rows="8" cols="80">' . stripslashes(esc_attr($value)) . '</textarea>
								</div>';
                } else {
                    echo '
					<div class="event_description">
					<label for="content" class="screen-reader-text">' . __('Event Description', 'my-calendar') . '</label>';
                    if (user_can_richedit()) {
                        wp_editor($value, 'content', array('textarea_rows' => 10));
                    } else {
                        echo '<textarea id="content" name="content" class="event_desc" rows="8" cols="80">' . stripslashes(esc_attr($value)) . '</textarea>';
                    }
                    echo '</div>';
                }
            }
            break;
        case 'event_short':
            if ($show_block) {
                $value = $has_data ? stripslashes(esc_attr($data->event_short)) : '';
                $return = '
				<p>
					<label for="e_short">' . __('Short Description', 'my-calendar') . '</label><br /><textarea id="e_short" name="event_short" rows="2" cols="80">' . $value . '</textarea>
				</p>';
            }
            break;
        case 'event_image':
            if ($show_block) {
                if ($has_data && property_exists($data, 'event_post')) {
                    $image = has_post_thumbnail($data->event_post) ? get_the_post_thumbnail_url($data->event_post) : $data->event_image;
                    $image_id = has_post_thumbnail($data->event_post) ? get_post_thumbnail_id($data->event_post) : '';
                } else {
                    $image = '';
                    $image_id = '';
                }
                $return = '
				<div class="mc-image-upload field-holder">
					<input type="hidden" name="event_image_id" value="' . esc_attr($image_id) . '" class="textfield" id="e_image_id" />
					<label for="e_image">' . __("Add an image:", 'my-calendar') . '</label><br /><input type="text" name="event_image" id="e_image" size="60" value="' . esc_attr($image) . '" placeholder="http://yourdomain.com/image.jpg" /> <button type="button" class="button textfield-field">' . __("Upload", 'my-calendar') . '</button>';
                if ($image != '') {
                    $image = has_post_thumbnail($data->event_post) ? get_the_post_thumbnail_url($data->event_post) : $data->event_image;
                    $return .= '<div class="event_image"><img src="' . esc_attr($image) . '" alt="" /></div>';
                } else {
                    $return .= '<div class="event_image"></div>';
                }
                $return .= '</div>';
            } else {
                $return = '<input type="hidden" name="event_image" value="' . esc_attr($image) . '" />';
            }
            break;
        case 'event_category':
            if ($show_block) {
                $return = '<p>
				<label for="e_category">' . __('Category', 'my-calendar') . '</label>
				<select id="e_category" name="event_category">' . mc_category_select($data) . '
				</select>
				</p>';
            } else {
                $return = '<div><input type="hidden" name="event_category" value="' . mc_category_select($data, false) . '" /></div>';
            }
            break;
        case 'event_link':
            if ($show_block) {
                $value = $has_data ? esc_url($data->event_link) : '';
                if ($has_data && $data->event_link_expires == '1') {
                    $checked = " checked=\"checked\"";
                } else {
                    if ($has_data && $data->event_link_expires == '0') {
                        $checked = "";
                    } else {
                        if (get_option('mc_event_link_expires') == 'true') {
                            $checked = " checked=\"checked\"";
                        }
                    }
                }
                $return = '
					<p>
						<label for="e_link">' . __('URL', 'my-calendar') . '</label> <input type="text" id="e_link" name="event_link" size="40" value="' . $value . '" /> <input type="checkbox" value="1" id="e_link_expires" name="event_link_expires"' . $checked . ' /> <label for="e_link_expires">' . __('Link will expire after event', 'my-calendar') . '</label>
					</p>';
            }
            break;
        case 'event_recurs':
            if (is_object($data)) {
                $event_recur = is_object($data) ? $data->event_recur : '';
                $recurs = str_split($event_recur, 1);
                $recur = $recurs[0];
                $every = isset($recurs[1]) ? $recurs[1] : 1;
                if ($every == 1 && $recur == 'B') {
                    $every = 2;
                }
                $prev = '<input type="hidden" name="prev_event_repeats" value="' . $data->event_repeats . '" /><input type="hidden" name="prev_event_recur" value="' . $data->event_recur . '" />';
            } else {
                $recur = false;
                $every = 1;
                $prev = '';
            }
            if (is_object($data) && $data->event_repeats != null) {
                $repeats = $data->event_repeats;
            } else {
                $repeats = 0;
            }
            if ($show_block && empty($_GET['date'])) {
                $return = $pre . '
<h2>' . __('Recurring', 'my-calendar') . '</h2>
	<div class="inside">' . $prev . '
		<fieldset>
		<legend class="screen-reader-text">' . __('Recurring Events', 'my-calendar') . '</legend>
			<p>
				<label for="e_repeats">' . __('Repeats', 'my-calendar') . ' <input type="text" name="event_repeats" aria-labelledby="e_repeats_label" id="e_repeats" size="1" value="' . esc_attr($repeats) . '" /> <span id="e_repeats_label">' . __('times', 'my-calendar') . '</span>, </label>
				<label for="e_every">' . __('every', 'my-calendar') . '</label> <input type="number" name="event_every" id="e_every" size="1" min="1" max="99" maxlength="2" value="' . esc_attr($every) . '" /> 
				<label for="e_recur" class="screen-reader-text">' . __('Units', 'my-calendar') . '</label> 
				<select name="event_recur" id="e_recur">
					' . mc_recur_options($recur) . '
				</select><br />
				' . __('Your entry is the number of events after the first occurrence of the event: a recurrence of <em>2</em> means the event will happen three times.', 'my-calendar') . '
				<div class="mc_recur_notice" aria-live="polite"><p><span class="dashicons dashicons-no"></span>' . __('Month by day events currently only support monthly recurrances.', 'my-calendar') . '</p></div>
			</p>
		</fieldset>	
	</div>
							' . $post;
            } else {
                if ($every == '' && $repeats == '') {
                    $every = 'S';
                    $repeats = '0';
                }
                $return = '
				<div>' . $prev . '		
					<input type="hidden" name="event_repeats" value="' . esc_attr($repeats) . '" />
					<input type="hidden" name="event_every" value="' . esc_attr($every) . '" />
					<input type="hidden" name="event_recur" value="' . esc_attr($recur) . '" />
				</div>';
            }
            break;
        case 'event_access':
            if ($show_block) {
                $label = __('Event Access', 'my-calendar');
                $return = $pre . '
						<h2>' . $label . '</h2>
							<div class="inside">		
								' . mc_event_accessibility('', $data, $label) . apply_filters('mc_event_access_fields', '', $has_data, $data) . '						
							</div>' . $post;
            }
            break;
        case 'event_open':
            if ($show_block) {
                $return = $pre . '
				<h2>' . __('Event Registration Settings', 'my-calendar') . '</h2>
				<div class="inside">
					<fieldset>
					<legend class="screen-reader-text">' . __('Event Registration', 'my-calendar') . '</legend>
					' . apply_filters('mc_event_registration', '', $has_data, $data, 'admin') . '		
					</fieldset>
				</div>
				' . $post;
            } else {
                $open = $has_data ? esc_attr($data->event_open) : '2';
                $tickets = $has_data ? esc_url($data->event_tickets) : '';
                $registration = $has_data ? esc_attr($data->event_registration) : '';
                $return = '
				<div>
					<input type="hidden" name="event_open" value="' . $open . '" />
					<input type="hidden"  name="event_tickets" value="' . $tickets . '" />
					<input type="hidden" name="event_registration" value="' . $registration . '" />
				</div>';
            }
            break;
        case 'event_location':
            if ($show_block) {
                $return = mc_locations_fields($has_data, $data, 'event');
            } else {
                if ($has_data) {
                    $return = "\r\n\t\t\t\t<div>\r\n\t\t\t\t\t<input type='hidden' name='event_label' value='" . esc_attr(stripslashes($data->event_label)) . "' />\r\n\t\t\t\t\t<input type='hidden' name='event_street' value='" . esc_attr(stripslashes($data->event_street)) . "' />\r\n\t\t\t\t\t<input type='hidden' name='event_street2' value='" . esc_attr(stripslashes($data->event_street2)) . "' />\r\n\t\t\t\t\t<input type='hidden' name='event_phone' value='" . esc_attr(stripslashes($data->event_phone)) . "' />\r\n\t\t\t\t\t<input type='hidden' name='event_phone2' value='" . esc_attr(stripslashes($data->event_phone2)) . "' />\r\n\t\t\t\t\t<input type='hidden' name='event_city' value='" . esc_attr(stripslashes($data->event_city)) . "' />\r\n\t\t\t\t\t<input type='hidden' name='event_state' value='" . esc_attr(stripslashes($data->event_state)) . "' />\r\n\t\t\t\t\t<input type='hidden' name='event_postcode' value='" . esc_attr(stripslashes($data->event_postcode)) . "' />\r\n\t\t\t\t\t<input type='hidden' name='event_region' value='" . esc_attr(stripslashes($data->event_region)) . "' />\r\n\t\t\t\t\t<input type='hidden' name='event_country' value='" . esc_attr(stripslashes($data->event_country)) . "' />\r\n\t\t\t\t\t<input type='hidden' name='event_zoom' value='" . esc_attr(stripslashes($data->event_zoom)) . "' />\r\n\t\t\t\t\t<input type='hidden' name='event_url' value='" . esc_attr(stripslashes($data->event_url)) . "' />\r\n\t\t\t\t\t<input type='hidden' name='event_latitude' value='" . esc_attr(stripslashes($data->event_latitude)) . "' />\r\n\t\t\t\t\t<input type='hidden' name='event_longitude' value='" . esc_attr(stripslashes($data->event_longitude)) . "' />\r\n\t\t\t\t</div>";
                }
            }
            break;
        default:
            return;
    }
    $return = apply_filters('mc_show_block', $return, $data, $field);
    if ($echo == true) {
        echo $return;
    } else {
        return $return;
    }
}
コード例 #3
0
function mc_show_block($field, $has_data, $data)
{
    $return = $checked = $value = '';
    $show_block = mc_show_edit_block($field);
    $pre = '<div class="ui-sortable meta-box-sortables"><div class="postbox">';
    $post = '</div></div>';
    switch ($field) {
        case 'event_desc':
            if ($show_block) {
                // because wp_editor cannot return a value, event_desc fields cannot be filtered if its enabled.
                $value = $has_data ? stripslashes($data->event_desc) : '';
                echo '
				<div class="event_description">
				<label for="content">' . __('Event Description', 'my-calendar') . '</label><br />';
                if (user_can_richedit()) {
                    if (version_compare(get_bloginfo('version'), '3.3', '>=')) {
                        wp_editor($value, 'content', array('textarea_rows' => 10));
                    } else {
                        the_editor($value);
                    }
                } else {
                    echo '<textarea id="content" name="content" class="event_desc" rows="8" cols="80">' . stripslashes(esc_attr($value)) . '</textarea>';
                }
                echo '</div>';
            }
            break;
        case 'event_short':
            if ($show_block) {
                $value = $has_data ? stripslashes(esc_attr($data->event_short)) : '';
                $return = '
				<p>
					<label for="e_short">' . __('Short Description', 'my-calendar') . '</label><br /><textarea id="e_short" name="event_short" rows="2" cols="80">' . $value . '</textarea>
				</p>';
            }
            break;
        case 'event_image':
            if ($show_block) {
                $value = $has_data ? esc_attr($data->event_image) : '';
                $return = '
				<div class="mc-image-upload field-holder">
					<input type="hidden" name="event_image_id" value="" class="textfield" id="e_image_id" />
					<label for="e_image">' . __("Add an image:", 'my-calendar') . '</label><br /><input type="text" name="event_image" id="e_image" size="60" value="' . $value . '" placeholder="http://yourdomain.com/image.jpg" /> <a href="#" class="button textfield-field">' . __("Upload", 'my-calendar') . '</a>';
                if (!empty($data->event_image)) {
                    $return .= '<div class="event_image"><img src="' . esc_attr($data->event_image) . '" alt="" /></div>';
                } else {
                    $return .= '<div class="event_image"></div>';
                }
                $return .= '</div>';
            } else {
                $return = '<input type="hidden" name="event_image" value="' . $value . '" />';
            }
            break;
        case 'event_category':
            if ($show_block) {
                $return = '<p>
				<label for="e_category">' . __('Category', 'my-calendar') . '</label>
				<select id="e_category" name="event_category">' . mc_category_select($data) . '
				</select>
				</p>';
            } else {
                $return = '<div><input type="hidden" name="event_category" value="' . mc_category_select($data, false) . '" /></div>';
            }
            break;
        case 'event_link':
            if ($show_block) {
                $value = $has_data ? esc_url($data->event_link) : '';
                if ($has_data && $data->event_link_expires == '1') {
                    $checked = " checked=\"checked\"";
                } else {
                    if ($has_data && $data->event_link_expires == '0') {
                        $checked = "";
                    } else {
                        if (get_option('mc_event_link_expires') == 'true') {
                            $checked = " checked=\"checked\"";
                        }
                    }
                }
                $return = '
					<p>
						<label for="e_link">' . __('URL', 'my-calendar') . '</label> <input type="text" id="e_link" name="event_link" size="40" value="' . $value . '" /> <input type="checkbox" value="1" id="e_link_expires" name="event_link_expires"' . $checked . ' /> <label for="e_link_expires">' . __('Link will expire after event', 'my-calendar') . '</label>
					</p>';
            }
            break;
        case 'event_recur':
            if (is_object($data)) {
                $event_recur = is_object($data) ? $data->event_recur : '';
                $recurs = str_split($event_recur, 1);
                $recur = $recurs[0];
                $every = isset($recurs[1]) ? $recurs[1] : 1;
                if ($every == 1 && $recur == 'B') {
                    $every = 2;
                }
                $prev = '<input type="hidden" name="prev_event_repeats" value="' . $data->event_repeats . '" /><input type="hidden" name="prev_event_recur" value="' . $data->event_recur . '" />';
            } else {
                $recur = false;
                $every = 1;
                $prev = '';
            }
            if ($show_block && empty($_GET['date'])) {
                if (is_object($data) && $data->event_repeats != NULL) {
                    $repeats = $data->event_repeats;
                } else {
                    $repeats = 0;
                }
                $return = $pre . '
							<h3>' . __('Recurring', 'my-calendar') . '</h3>
								<div class="inside">' . $prev . '
									<fieldset>
									<legend>' . __('Recurring Events', 'my-calendar') . '</legend>
										<p>
											<label for="e_repeats">' . __('Repeats', 'my-calendar') . ' <input type="text" name="event_repeats" aria-labelledby="e_repeats_label" id="e_repeats" size="1" value="' . $repeats . '" /> <span id="e_repeats_label">' . __('times', 'my-calendar') . '</span>, </label>
											<label for="e_every">' . __('every', 'my-calendar') . '</label> <input type="number" name="event_every" id="e_every" size="1" min="1" max="9" maxlength="1" value="' . $every . '" /> 
											<label for="e_recur" class="screen-reader-text">' . __('Units', 'my-calendar') . '</label> 
											<select name="event_recur" id="e_recur">
												' . mc_recur_options($recur) . '
											</select><br />
											' . __('Your entry is the number of events after the first occurrence of the event: a recurrence of <em>2</em> means the event will happen three times.', 'my-calendar') . '
										</p>
									</fieldset>	
								</div>
							' . $post;
            } else {
                $return = '
				<div>' . $prev . '		
					<input type="hidden" name="event_repeats" value="0" />
					<input type="hidden" name="event_recur" value="S" />
				</div>';
            }
            break;
        case 'event_access':
            if ($show_block) {
                $label = __('Event Access', 'my-calendar');
                $return = $pre . '
						<h3>' . $label . '</h3>
							<div class="inside">		
								' . mc_event_accessibility('', $data, $label) . apply_filters('mc_event_access_fields', '', $has_data, $data) . '						
							</div>' . $post;
            }
            break;
        case 'event_open':
            if ($show_block) {
                $return = $pre . '
				<h3>' . __('Event Registration Settings', 'my-calendar') . '</h3>
				<div class="inside">
					<fieldset>
					<legend>' . __('Event Registration', 'my-calendar') . '</legend>
					' . apply_filters('mc_event_registration', '', $has_data, $data, 'admin') . '		
					</fieldset>
				</div>
				' . $post;
            } else {
                $open = $has_data ? $data->event_open : '2';
                $tickets = $has_data ? esc_attr(esc_url($data->event_tickets)) : '';
                $registration = $has_data ? esc_attr($data->event_registration) : '';
                $return = '
				<div>
					<input type="hidden" name="event_open" value="' . $open . '" />
					<input type="hidden"  name="event_tickets" value="' . $tickets . '" />
					<input type="hidden" name="event_registration" value="' . $registration . '" />
				</div>';
            }
            break;
        case 'event_location':
            if ($show_block) {
                $return = mc_locations_fields($has_data, $data, 'event');
            } else {
                if ($has_data) {
                    $return = "\n\t\t\t\t<div>\n\t\t\t\t\t<input type='hidden' name='event_label' value='" . esc_attr(stripslashes($data->event_label)) . "' />\n\t\t\t\t\t<input type='hidden' name='event_street' value='" . stripslashes($data->event_street) . "' />\n\t\t\t\t\t<input type='hidden' name='event_street2' value='" . stripslashes($data->event_street2) . "' />\n\t\t\t\t\t<input type='hidden' name='event_phone' value='" . stripslashes($data->event_phone) . "' />\n\t\t\t\t\t<input type='hidden' name='event_phone2' value='" . stripslashes($data->event_phone2) . "' />\n\t\t\t\t\t<input type='hidden' name='event_city' value='" . stripslashes($data->event_city) . "' />\n\t\t\t\t\t<input type='hidden' name='event_state' value='" . stripslashes($data->event_state) . "' />\n\t\t\t\t\t<input type='hidden' name='event_postcode' value='" . stripslashes($data->event_postcode) . "' />\n\t\t\t\t\t<input type='hidden' name='event_region' value='" . stripslashes($data->event_region) . "' />\n\t\t\t\t\t<input type='hidden' name='event_country' value='" . stripslashes($data->event_country) . "' />\n\t\t\t\t\t<input type='hidden' name='event_zoom' value='" . stripslashes($data->event_zoom) . "' />\n\t\t\t\t\t<input type='hidden' name='event_url' value='" . stripslashes($data->event_url) . "' />\n\t\t\t\t\t<input type='hidden' name='event_latitude' value='" . stripslashes($data->event_latitude) . "' />\n\t\t\t\t\t<input type='hidden' name='event_longitude' value='" . stripslashes($data->event_longitude) . "' />\n\t\t\t\t</div>";
                }
            }
            break;
        default:
            return;
    }
    echo apply_filters('mc_show_block', $return, $data, $field);
}