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; } }
function mc_show_location_form($view = 'add', $curID = '') { global $wpdb; $mcdb = $wpdb; $cur_loc = false; if ($curID != '') { $sql = "SELECT * FROM " . my_calendar_locations_table() . " WHERE location_id={$curID}"; $cur_loc = $mcdb->get_row($sql); } $has_data = empty($cur_loc) ? false : true; if ($view == 'add') { ?> <h2><?php _e('Add New Location', 'my-calendar'); ?> </h2> <?php } else { ?> <h2><?php _e('Edit Location', 'my-calendar'); ?> </h2> <?php } ?> <div class="postbox-container jcd-wide"> <div class="metabox-holder"> <div class="ui-sortable meta-box-sortables"> <div class="postbox"> <h3><?php _e('Location Editor', 'my-calendar'); ?> </h3> <div class="inside location_form"> <form id="my-calendar" method="post" action="<?php echo admin_url("admin.php?page=my-calendar-locations"); ?> "> <div><input type="hidden" name="_wpnonce" value="<?php echo wp_create_nonce('my-calendar-nonce'); ?> "/></div> <?php if ($view == 'add') { ?> <div> <input type="hidden" name="mode" value="add"/> <input type="hidden" name="location_id" value=""/> </div> <?php } else { ?> <div> <input type="hidden" name="mode" value="edit"/> <input type="hidden" name="location_id" value="<?php echo $cur_loc->location_id; ?> "/> </div> <?php } echo mc_locations_fields($has_data, $cur_loc, 'location'); ?> <p> <input type="submit" name="save" class="button-primary" value="<?php if ($view == 'edit') { _e('Save Changes', 'my-calendar'); } else { _e('Add Location', 'my-calendar'); } ?> »"/> </p> </form> </div> </div> </div> <?php if ($view == 'edit') { ?> <p> <a href="<?php echo admin_url("admin.php?page=my-calendar-locations"); ?> "><?php _e('Add a New Location', 'my-calendar'); ?> »</a> </p> <?php } ?> <div class="ui-sortable meta-box-sortables"> <div class="postbox"> <h3><?php _e('Manage Locations', 'my-calendar'); ?> </h3> <div class="inside"> <?php mc_manage_locations(); ?> </div> </div> </div> </div> <?php mc_show_sidebar(); ?> </div> <?php }
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); }