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; }
function mc_edit_event_form($mode = 'add', $event_id = false) { global $users_entries; if ($event_id && !mc_can_edit_event($event_id)) { echo "<div class='error'><p>"; _e('You do not have permission to edit this event.', 'my-calendar'); echo "</p></div>"; return; } if ($event_id != false) { $data = mc_form_data($event_id); } else { $data = $users_entries; } if (is_object($data) && $data->event_approved != 1 && $mode == 'edit') { $message = __('This event must be approved in order for it to appear on the calendar.', 'my-calendar'); } else { $message = ""; } echo $message != '' ? "<div class='error'><p>{$message}</p></div>" : ''; mc_form_fields($data, $mode, $event_id); }
function mc_edit_event_form($mode = 'add', $event_id = false) { global $wpdb, $users_entries, $output; $mcdb = $wpdb; if ($event_id != false) { $data = mc_form_data($event_id); } else { $data = $users_entries; } if (is_object($data) && $data->event_approved != 1 && $mode == 'edit') { $message = __('This event must be approved in order for it to appear on the calendar.', 'my-calendar'); } else { $message = ""; } echo $message != '' ? "<div class='error'><p>{$message}</p></div>" : ''; mc_form_fields($data, $mode, $event_id); }