function my_calendar_print_group_fields($data, $mode, $event_id, $group_id = '') { global $user_ID, $wpdb; $mcdb = $wpdb; get_currentuserinfo(); $has_data = empty($data) ? false : true; $user = get_userdata($user_ID); $mc_input_administrator = get_option('mc_input_options_administrators') == 'true' && current_user_can('manage_options') ? true : false; $mc_input = get_option('mc_input_options'); ?> <div class="postbox-container jcd-wide"> <div class="metabox-holder"> <form method="post" action="<?php echo admin_url("admin.php?page=my-calendar-groups&mode=edit&event_id={$event_id}&group_id={$group_id}"); ?> "> <div> <input type="hidden" name="_wpnonce" value="<?php echo wp_create_nonce('my-calendar-nonce'); ?> " /> <input type="hidden" name="group_id" value="<?php if (!empty($data->event_group_id)) { echo $data->event_group_id; } else { echo mc_group_id(); } ?> " /> <input type="hidden" name="event_action" value="<?php echo $mode; ?> " /> <input type="hidden" name="event_id" value="<?php echo $event_id; ?> " /> <input type="hidden" name="event_author" value="<?php echo $user_ID; ?> " /> <input type="hidden" name="event_post" value="<?php echo $data->event_post; ?> " /> <input type="hidden" name="event_nonce_name" value="<?php echo wp_create_nonce('event_nonce'); ?> " /> </div> <div class="ui-sortable meta-box-sortables"> <div class="postbox"> <h3><?php _e('Manage Event Groups', 'my-calendar'); ?> </h3> <div class="inside"> <fieldset> <legend><?php _e('Enter your Event Information', 'my-calendar'); ?> </legend> <p> <label for="e_title"><?php _e('Event Title', 'my-calendar'); ?> <span><?php _e('(required)', 'my-calendar'); ?> </span><?php if (!mc_compare_group_members($group_id, 'event_title')) { echo " <span>" . __('Fields do not match', 'my-calendar') . "</span>"; } ?> </label><br /><input type="text" id="e_title" name="event_title" size="60" value="<?php if (!empty($data)) { echo stripslashes(esc_attr($data->event_title)); } ?> " /> </p> <?php $apply = mc_group_form($group_id, 'apply'); echo $apply; if ($data->event_repeats == 0 && ($data->event_recur == 'S1' || $data->event_recur == 'S')) { ?> <p> <input type="checkbox" value="1" id="e_span" name="event_span"<?php if (!empty($data) && $data->event_span == '1') { echo " checked=\"checked\""; } else { if (!empty($data) && $data->event_span == '0') { echo ""; } else { if (get_option('mc_event_span') == 'true') { echo " checked=\"checked\""; } } } ?> /> <label for="e_span"><?php _e('Selected dates are a single multi-day event.', 'my-calendar'); if (!mc_compare_group_members($group_id, 'event_span')) { echo " <span>" . __('Fields do not match', 'my-calendar') . "</span>"; } ?> </label> </p> <?php } else { ?> <div><input type='hidden' name='event_span' value='<?php echo $data->event_span; ?> ' /></div> <?php } ?> <?php if ($mc_input['event_desc'] == 'on' || $mc_input_administrator) { ?> <div id="group_description"><?php if (!empty($data)) { $description = $data->event_desc; } else { $description = ''; } ?> <label for="content"><?php _e('Event Description (<abbr title="hypertext markup language">HTML</abbr> allowed)', 'my-calendar'); if (!mc_compare_group_members($group_id, 'event_desc')) { echo " <span>" . __('Fields do not match', 'my-calendar') . "</span>"; } ?> </label><br /><?php if (version_compare(get_bloginfo('version'), '3.3', '>=')) { wp_editor(stripslashes($description), 'content', array('textarea_rows' => 10)); } else { the_editor(stripslashes($description)); } ?> </div> <?php } ?> <?php if ($mc_input['event_short'] == 'on' || $mc_input_administrator) { ?> <p> <label for="e_short"><?php _e('Event Short Description (<abbr title="hypertext markup language">HTML</abbr> allowed)', 'my-calendar'); if (!mc_compare_group_members($group_id, 'event_short')) { echo " <span>" . __('Fields do not match', 'my-calendar') . "</span>"; } ?> </label><br /><textarea id="e_short" name="event_short" rows="2" cols="80"><?php if (!empty($data)) { echo stripslashes(esc_attr($data->event_short)); } ?> </textarea> </p> <?php } if (mc_show_edit_block('event_image')) { ?> <div class='mc-image-upload field-holder'> <?php if (!empty($data->event_image)) { ?> <div class="event_image"><img src="<?php if ($has_data) { echo esc_attr($data->event_image); } ?> " alt="" /></div> <?php } else { ?> <div class="event_image"></div> <?php } ?> <input type="hidden" name="event_image_id" value="" class="textfield" id="e_image_id" /> <label for="e_image"><?php _e("Add an image:", 'my-calendar'); if (!mc_compare_group_members($group_id, 'event_image')) { echo " <span>" . __('Fields do not match', 'my-calendar') . "</span>"; } ?> </label> <input type="text" name="event_image" id="e_image" size="60" value="<?php if ($has_data) { echo esc_attr($data->event_image); } ?> " placeholder="http://yourdomain.com/image.jpg" /> <a href="#" class="button textfield-field"><?php _e("Upload", 'my-calendar'); ?> </a> </div> <?php } else { ?> <div> <input type="hidden" name="event_image" value="<?php if ($has_data) { echo esc_attr($data->event_image); } ?> " /> <?php if (!empty($data->event_image)) { ?> <div class="event_image"><img src="<?php echo esc_attr($data->event_image); ?> " alt="" /></div> <?php } ?> </div> <?php } ?> <p> <label for="e_host"><?php _e('Event Host', 'my-calendar'); if (!mc_compare_group_members($group_id, 'event_host')) { echo " <span>" . __('Fields do not match', 'my-calendar') . "</span>"; } ?> </label> <select id="e_host" name="event_host"> <?php // Grab all the categories and list them $userList = my_calendar_getUsers(); foreach ($userList as $u) { echo '<option value="' . $u->ID . '"'; if (is_object($data) && $data->event_host == $u->ID) { echo ' selected="selected"'; } else { if (is_object($u) && $u->ID == $user->ID && empty($data->event_host)) { echo ' selected="selected"'; } } $display_name = $u->display_name == '' ? $u->user_nicename : $u->display_name; echo ">{$display_name}</option>\n"; } ?> </select> </p> <?php if ($mc_input['event_category'] == 'on' || $mc_input_administrator) { ?> <p> <label for="e_category"><?php _e('Event Category', 'my-calendar'); if (!mc_compare_group_members($group_id, 'event_category')) { echo " <span>" . __('Fields do not match', 'my-calendar') . "</span>"; } ?> </label> <select id="e_category" name="event_category"> <?php echo mc_category_select($data); ?> </select> </p> <?php } else { ?> <div> <input type="hidden" name="event_category" value="1" /> </div> <?php } ?> <?php if ($mc_input['event_link'] == 'on' || $mc_input_administrator) { ?> <p> <label for="e_link"><?php _e('Event Link (Optional)', 'my-calendar'); if (!mc_compare_group_members($group_id, 'event_link')) { echo " <span>" . __('Fields do not match', 'my-calendar') . "</span>"; } ?> </label> <input type="text" id="e_link" name="event_link" size="40" value="<?php if (!empty($data)) { echo esc_url($data->event_link); } ?> " /> <input type="checkbox" value="1" id="e_link_expires" name="event_link_expires"<?php if (!empty($data) && $data->event_link_expires == '1') { echo " checked=\"checked\""; } else { if (!empty($data) && $data->event_link_expires == '0') { echo ""; } else { if (get_option('mc_event_link_expires') == 'true') { echo " checked=\"checked\""; } } } ?> /> <label for="e_link_expires"><?php _e('Link will expire after event.', 'my-calendar'); ?> </label> </p> <?php } ?> </fieldset> <p> <input type="submit" name="save" class="button-primary" value="<?php _e('Edit Event Group', 'my-calendar'); ?> " /> </p> </div> </div> </div> <?php if ($mc_input['event_open'] == 'on' || $mc_input_administrator) { // add a "don't change" option here ?> <div class="ui-sortable meta-box-sortables"> <div class="postbox"> <h3><?php _e('Event Registration Options', 'my-calendar'); ?> </h3> <div class="inside"> <fieldset> <legend><?php _e('Event Registration Status', 'my-calendar'); if (!mc_compare_group_members($group_id, 'event_open')) { echo " <span>" . __('Fields do not match', 'my-calendar') . "</span>"; } ?> </legend> <?php echo apply_filters('mc_event_registration', '', $has_data, $data, 'admin'); ?> </fieldset> </div> </div> </div> <?php } else { ?> <div> <input type="hidden" name="event_open" value="<?php echo $has_data ? $data->event_open : '2'; ?> " /> <input type="hidden" name="event_tickets" value="<?php echo $has_data ? esc_attr($data->event_tickets) : ''; ?> " /> <input type="hidden" name="event_registration" value="<?php echo $has_data ? esc_attr($data->event_registration) : ''; ?> " /> </div> <?php } ?> <?php if ($mc_input['event_location'] == 'on' || $mc_input['event_location_dropdown'] == 'on' || $mc_input_administrator) { ?> <div class="ui-sortable meta-box-sortables"> <div class="postbox"> <h3><?php _e('Event Location', 'my-calendar'); ?> </h3> <div class="inside location_form"> <fieldset> <legend><?php _e('Event Location', 'my-calendar'); ?> </legend> <?php } ?> <?php if ($mc_input['event_location_dropdown'] == 'on' || $mc_input_administrator) { ?> <?php $locations = $mcdb->get_results("SELECT location_id,location_label FROM " . my_calendar_locations_table() . " ORDER BY location_label ASC"); if (!empty($locations)) { ?> <p> <label for="location_preset"><?php _e('Choose a preset location:', 'my-calendar'); ?> </label> <select name="location_preset" id="location_preset"> <option value="none"> -- </option> <?php foreach ($locations as $location) { echo "<option value=\"" . $location->location_id . "\">" . stripslashes($location->location_label) . "</option>"; } ?> </select> </p> <?php } else { ?> <input type="hidden" name="location_preset" value="none" /> <p><a href="<?php echo admin_url("admin.php?page=my-calendar-locations"); ?> "><?php _e('Add recurring locations for later use.', 'my-calendar'); ?> </a></p> <?php } ?> <?php } else { ?> <input type="hidden" name="location_preset" value="none" /> <?php } ?> <?php if ($mc_input['event_location'] == 'on' || $mc_input_administrator) { ?> <p> <label for="e_label"><?php _e('Name of Location (e.g. <em>Joe\'s Bar and Grill</em>)', 'my-calendar'); if (!mc_compare_group_members($group_id, 'event_label')) { echo " <span>" . __('Fields do not match', 'my-calendar') . "</span>"; } ?> </label><br /><input type="text" id="e_label" name="event_label" size="40" value="<?php if (!empty($data)) { esc_attr_e(stripslashes($data->event_label)); } ?> " /> </p> <p> <label for="e_street"><?php _e('Street Address', 'my-calendar'); if (!mc_compare_group_members($group_id, 'event_street')) { echo " <span>" . __('Fields do not match', 'my-calendar') . "</span>"; } ?> </label> <input type="text" id="e_street" name="event_street" size="40" value="<?php if (!empty($data)) { esc_attr_e(stripslashes($data->event_street)); } ?> " /> </p> <p> <label for="e_street2"><?php _e('Street Address (2)', 'my-calendar'); if (!mc_compare_group_members($group_id, 'event_street2')) { echo " <span>" . __('Fields do not match', 'my-calendar') . "</span>"; } ?> </label> <input type="text" id="e_street2" name="event_street2" size="40" value="<?php if (!empty($data)) { esc_attr_e(stripslashes($data->event_street2)); } ?> " /> </p> <p> <label for="e_city"><?php _e('City', 'my-calendar'); if (!mc_compare_group_members($group_id, 'event_city')) { echo " <span>" . __('Fields do not match', 'my-calendar') . "</span>"; } ?> </label> <input type="text" id="e_city" name="event_city" size="40" value="<?php if (!empty($data)) { esc_attr_e(stripslashes($data->event_city)); } ?> " /> <label for="e_state"><?php _e('State/Province', 'my-calendar'); if (!mc_compare_group_members($group_id, 'event_state')) { echo " <span>" . __('Fields do not match', 'my-calendar') . "</span>"; } ?> </label> <input type="text" id="e_state" name="event_state" size="10" value="<?php if (!empty($data)) { esc_attr_e(stripslashes($data->event_state)); } ?> " /> </p> <p> <label for="e_postcode"><?php _e('Postal Code', 'my-calendar'); if (!mc_compare_group_members($group_id, 'event_postcode')) { echo " <span>" . __('Fields do not match', 'my-calendar') . "</span>"; } ?> </label> <input type="text" id="e_postcode" name="event_postcode" size="10" value="<?php if (!empty($data)) { esc_attr_e(stripslashes($data->event_postcode)); } ?> " /> <label for="e_region"><?php _e('Region', 'my-calendar'); if (!mc_compare_group_members($group_id, 'event_region')) { echo " <span>" . __('Fields do not match', 'my-calendar') . "</span>"; } ?> </label> <input type="text" id="e_region" name="event_region" size="40" value="<?php if (!empty($data)) { esc_attr_e(stripslashes($data->event_region)); } ?> " /> </p> <p> <label for="e_country"><?php _e('Country', 'my-calendar'); if (!mc_compare_group_members($group_id, 'event_country')) { echo " <span>" . __('Fields do not match', 'my-calendar') . "</span>"; } ?> </label> <input type="text" id="e_country" name="event_country" size="10" value="<?php if (!empty($data)) { esc_attr_e(stripslashes($data->event_country)); } ?> " /> </p> <p> <label for="e_zoom"><?php _e('Initial Zoom', 'my-calendar'); if (!mc_compare_group_members($group_id, 'event_zoom')) { echo " <span>" . __('Fields do not match', 'my-calendar') . "</span>"; } ?> </label> <select name="event_zoom" id="e_zoom"> <option value="16"<?php if (!empty($data) && $data->event_zoom == 16) { echo " selected=\"selected\""; } ?> ><?php _e('Neighborhood', 'my-calendar'); ?> </option> <option value="14"<?php if (!empty($data) && $data->event_zoom == 14) { echo " selected=\"selected\""; } ?> ><?php _e('Small City', 'my-calendar'); ?> </option> <option value="12"<?php if (!empty($data) && $data->event_zoom == 12) { echo " selected=\"selected\""; } ?> ><?php _e('Large City', 'my-calendar'); ?> </option> <option value="10"<?php if (!empty($data) && $data->event_zoom == 10) { echo " selected=\"selected\""; } ?> ><?php _e('Greater Metro Area', 'my-calendar'); ?> </option> <option value="8"<?php if (!empty($data) && $data->event_zoom == 8) { echo " selected=\"selected\""; } ?> ><?php _e('State', 'my-calendar'); ?> </option> <option value="6"<?php if (!empty($data) && $data->event_zoom == 6) { echo " selected=\"selected\""; } ?> ><?php _e('Region', 'my-calendar'); ?> </option> </select> </p> <p> <label for="e_phone"><?php _e('Phone', 'my-calendar'); if (!mc_compare_group_members($group_id, 'event_phone')) { echo " <span>" . __('Fields do not match', 'my-calendar') . "</span>"; } ?> </label> <input type="text" id="e_phone" name="event_phone" size="32" value="<?php if (!empty($data)) { esc_attr_e(stripslashes($data->event_phone)); } ?> " /> </p> <p> <label for="e_url"><?php _e('Location URL', 'my-calendar'); if (!mc_compare_group_members($group_id, 'event_url')) { echo " <span>" . __('Fields do not match', 'my-calendar') . "</span>"; } ?> </label> <input type="text" id="e_url" name="event_url" size="40" value="<?php if (!empty($data)) { esc_attr_e(stripslashes($data->event_url)); } ?> " /> </p> <fieldset> <legend><?php _e('GPS Coordinates (optional)', 'my-calendar'); ?> </legend> <p> <label for="e_latitude"><?php _e('Latitude', 'my-calendar'); if (!mc_compare_group_members($group_id, 'event_latitude')) { echo " <span>" . __('Fields do not match', 'my-calendar') . "</span>"; } if (!mc_compare_group_members($group_id, 'event_longitude')) { echo " <span>" . __('Fields do not match', 'my-calendar') . "</span>"; } ?> </label> <input type="text" id="e_latitude" name="event_latitude" size="10" value="<?php if (!empty($data)) { esc_attr_e(stripslashes($data->event_latitude)); } ?> " /> <label for="e_longitude"><?php _e('Longitude', 'my-calendar'); ?> </label> <input type="text" id="e_longitude" name="event_longitude" size="10" value="<?php if (!empty($data)) { esc_attr_e(stripslashes($data->event_longitude)); } ?> " /> </p> </fieldset> <fieldset> <legend><?php _e('Location Accessibility', 'my-calendar'); ?> </legend> <ul class='checkboxes'> <?php $access = apply_filters('mc_venue_accessibility', get_option('mc_location_access')); $access_list = ''; if (!empty($data)) { $location_access = unserialize($data->event_access); } else { $location_access = array(); } foreach ($access as $k => $a) { $id = "loc_access_{$k}"; $label = $a; $checked = ''; if (is_array($location_access)) { $checked = in_array($k, $location_access) ? " checked='checked'" : ''; } $item = sprintf('<li><input type="checkbox" id="%1$s" name="event_access[]" value="%4$s" class="checkbox" %2$s /> <label for="%1$s">%3$s</label></li>', $id, $checked, $label, $k); $access_list .= $item; } echo $access_list; ?> </ul> </fieldset> <?php } ?> <?php if ($mc_input['event_location'] == 'on' || $mc_input['event_location_dropdown'] == 'on' || $mc_input_administrator) { ?> </fieldset> </div> </div> </div> <?php } ?> <p> <input type="submit" name="save" class="button-secondary" value="<?php _e('Edit Event Group', 'my-calendar'); ?> " /> </p> </form> </div> </div> <?php }
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 mcs_generate_fields() { $standard_fields = array('event_title', 'event_date', 'event_time', 'end_date', 'end_time', 'mcs_name', 'mcs_email', 'event_host', 'event_recurring', 'description', 'short_description', 'access', 'event_link', 'event_image', 'registration'); $output = "<table class='widefat wp-list-table'><caption>" . __('Event Field Settings', 'my-calendar-submissions') . "</caption><thead><tr><th>" . __('Enable Field', 'my-calendar-submissions') . "</th><th>" . __('Label', 'my-calendar-submissions') . "</th></tr></thead><tbody>"; foreach ($standard_fields as $field) { $field_title = ucfirst(str_replace('_', ' ', str_replace(array('event_', 'mcs_'), '', $field))); if ($field == 'event_recurring' || $field == 'registration') { $disabled = 'disabled="disabled" placeholder="Custom Label Not available"'; } else { $disabled = ''; } if ($field == 'event_title' || $field == 'event_date' || $field == 'event_time' || $field == 'mcs_name' || $field == 'mcs_email') { $required = "<input type='hidden' value='on' name='fields[{$field}][active]' id='{$field}' />(" . __('Required', 'my-calendar-submissions') . ")"; } else { $required = "<input type='checkbox' value='on' name='fields[{$field}][active]' id='{$field}' />"; } $output .= "<tr><td>{$required} <label for='{$field}'>{$field_title}</label></td><td><label class='screen-reader-text' for='label_{$field}'>" . sprintf(__('%s label', 'my-calendar-submissions'), $field_title) . "</label> <input {$disabled} type='text' name='fields[{$field}][label]' id='label_{$field}' /></td></tr>"; } $output .= "</tbody></table>"; $output .= "<p><input type='checkbox' name='categories' id='categories' value='on' /> <label for='categories'>" . __('Enable Category Dropdown', 'my-calendar-submissions') . "</label></p>"; $output .= "<p><label for='category'>" . __('Select default category', 'my-calendar-submissions') . "</label> <select name='category' id='category'>" . mc_category_select() . "</select></p>"; $output .= "<p><label for='locations'>" . __('Enable Location Options', 'my-calendar-submissions') . "</label> \n\t\t<select name='locations' id='locations'>\n\t\t\t<option value='none'>" . __('User cannot enter locations', 'my-calendar-submissions') . "</option>\n\t\t\t<option value='choose'>" . __('User can choose locations from a dropdown', 'my-calendar-submissions') . "</option>\n\t\t\t<option value='enter'>" . __('User can enter new locations', 'my-calendar-submissions') . "</option>\n\t\t\t<option value='either'>" . __('User can either enter new locations or select an existing location', 'my-calendar-submissions') . "</option>\n\t\t</select>\n\t\t</p>"; $output .= "<p><label for='location'>" . __('Select default location', 'my-calendar-submissions') . "</label> <select name='location' id='location'>" . mc_location_select() . "</select></p>"; $location_fields = array('event_label', 'street', 'street2', 'phone', 'city', 'state', 'zip', 'region', 'country', 'url', 'gps'); $output .= "<table class='widefat wp-list-table'><caption>" . __('Location Field Settings', 'my-calendar-submissions') . "</caption><thead><tr><th>" . __('Enable Location Field', 'my-calendar-submissions') . "</th><th>" . __('Label', 'my-calendar-submissions') . "</th></tr></thead><tbody>"; foreach ($location_fields as $field) { $field_title = ucfirst(str_replace('_', ' ', str_replace(array('event_', 'mcs_'), '', $field))); if ($field == 'event_gps') { $disabled = 'disabled="disabled" placeholder="Custom Label Not available"'; } else { $disabled = ''; } $output .= "<tr><td><input type='checkbox' value='on' name='location_fields[{$field}][active]' id='{$field}' /> <label for='{$field}'>{$field_title}</label></td><td><label class='screen-reader-text' for='label_{$field}'>" . sprintf(__('%s label', 'my-calendar-submissions'), $field_title) . "</label> <input {$disabled} type='text' name='location_fields[{$field}][label]' id='label_{$field}' /></td></tr>"; } $output .= "</tbody></table>"; return $output; }
/** * Show user profile data on Edit User pages. * * return @string Configuration forms for My Calendar user-specific settings. */ function mc_profile() { global $user_ID; $current_user = wp_get_current_user(); $user_edit = isset($_GET['user_id']) ? (int) $_GET['user_id'] : $user_ID; if (user_can($user_edit, 'mc_manage_events') && current_user_can('manage_options')) { $permissions = (array) get_user_meta($user_edit, 'mc_user_permissions', true); $selected = empty($permissions) || in_array('all', $permissions) ? ' selected="selected"' : ''; ?> <h3><?php _e('My Calendar Editor Permissions', 'my-calendar'); ?> </h3> <table class="form-table"> <tr> <th scope="row"> <label for="mc_user_permissions"><?php _e("Allowed Categories", 'my-calendar'); ?> </label> </th> <td> <select name="mc_user_permissions[]" id="mc_user_permissions" multiple> <option value='all'<?php echo $selected; ?> ><?php _e('All', 'my-calendar'); ?> </option> <?php echo mc_category_select($permissions, true, 'multiple'); ?> </select> </td> </tr> <?php echo apply_filters('mc_user_fields', '', $user_edit); ?> </table> <?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); }
function form($instance) { mcs_check(); $options = get_option('mcs_options'); $fields = $options['fields']; $location_fields = $options['location_fields']; if (empty($fields)) { $options = mcs_default_settings(false); $fields = $options['fields']; $location_fields = $options['location_fields']; } $defaults = $options['widget_defaults']; $widget_title = !empty($instance['title']) ? esc_attr($instance['title']) : $defaults['title']; if (!empty($instance)) { $widget_fields = empty($instance['fields']) ? $fields : $instance['fields']; } else { $widget_fields = $fields; } if (!empty($instance)) { $widget_location_fields = empty($instance['location_fields']) ? $location_fields : $instance['location_fields']; } else { $widget_location_fields = $location_fields; } $widget_categories = !empty($instance['categories']) ? esc_attr($instance['categories']) : ''; $widget_category = !empty($instance['category']) ? esc_attr($instance['category']) : ''; $widget_locations = !empty($instance['locations']) ? esc_attr($instance['locations']) : ''; $widget_location = !empty($instance['location']) ? esc_attr($instance['location']) : ''; ?> <p> <label for="<?php echo $this->get_field_id('title'); ?> "><?php _e('Widget Title', 'my-calendar-submissions'); ?> :</label><br /> <input class="widefat" type="text" id="<?php echo $this->get_field_id('title'); ?> " name="<?php echo $this->get_field_name('title'); ?> " value="<?php esc_attr_e($widget_title); ?> "/> </p> <fieldset> <legend><strong><?php _e('Included Fields', 'my-calendar-submissions'); ?> </strong></legend> <ul> <li><?php _e('Event Title (required)', 'my-calendar-submissions'); ?> </li> <li><?php _e('Date/Time (required)', 'my-calendar-submissions'); ?> </li> <li><?php _e('Name', 'my-calendar-submissions'); ?> </li> <li><?php _e('Email (required)', 'my-calendar-submissions'); ?> </li> <?php $checked = " checked='checked'"; // can select: each field to require (title and date must be included) if (is_array($fields)) { foreach ($fields as $key => $value) { $check = in_array($value, $widget_fields) ? $checked : ''; $title = mcs_get_field_name($key, $value); echo "<li><input type='checkbox' name='" . $this->get_field_name('fields') . "[{$key}]' id='" . $this->get_field_id('title') . "mc_{$key}' value='{$value}'{$check} /> <label for='" . $this->get_field_id('title') . "mc_{$key}'>" . esc_html($title) . "</label></li>\n"; } } ?> </ul> </fieldset> <fieldset> <legend><strong><?php _e('Categories', 'my-calendar-submissions'); ?> </strong></legend> <p> <input type="checkbox" name="<?php echo $this->get_field_name('categories'); ?> " id="<?php echo $this->get_field_name('categories'); ?> " value="true"<?php echo $widget_categories == 'true' ? $checked : ''; ?> > <label for="<?php echo $this->get_field_name('categories'); ?> "><?php _e('Include list of categories', 'my-calendar-submissions'); ?> </label> </p> <p> <select name="<?php echo $this->get_field_name('category'); ?> " id="<?php echo $this->get_field_name('category'); ?> "> <?php echo mc_category_select($widget_category); ?> </select> <label for="<?php echo $this->get_field_name('category'); ?> "><?php _e('Default category', 'my-calendar-submissions'); ?> </label> </p> </fieldset> <fieldset> <legend><strong><?php _e('Locations', 'my-calendar-submissions'); ?> </strong></legend> <ul> <li><input type="radio" name="<?php echo $this->get_field_name('locations'); ?> " id="<?php echo $this->get_field_id('locations'); ?> choose" value="choose"<?php echo $widget_locations == 'choose' ? $checked : ''; ?> > <label for="<?php echo $this->get_field_id('locations'); ?> choose"><?php _e('Can choose a location', 'my-calendar-submissions'); ?> </label></li> <li><input type="radio" name="<?php echo $this->get_field_name('locations'); ?> " id="<?php echo $this->get_field_id('locations'); ?> either" value="either"<?php echo $widget_locations == 'either' ? $checked : ''; ?> > <label for="<?php echo $this->get_field_id('locations'); ?> either"><?php _e('Can enter or choose a location', 'my-calendar-submissions'); ?> </label></li> <li><input type="radio" name="<?php echo $this->get_field_name('locations'); ?> " id="<?php echo $this->get_field_id('locations'); ?> enter" value="enter"<?php echo $widget_locations == 'enter' ? $checked : ''; ?> > <label for="<?php echo $this->get_field_id('locations'); ?> enter"><?php _e('Can enter a location', 'my-calendar-submissions'); ?> </label></li> <li><input type="radio" name="<?php echo $this->get_field_name('locations'); ?> " id="<?php echo $this->get_field_id('locations'); ?> neither" value="neither"<?php echo $widget_locations == 'neither' ? $checked : ''; ?> > <label for="<?php echo $this->get_field_id('locations'); ?> neither"><?php _e('None of the above', 'my-calendar-submissions'); ?> </label></li> </ul> <p> <label for="<?php echo $this->get_field_name('location'); ?> "><?php _e('Default location', 'my-calendar-submissions'); ?> </label> <select name="<?php echo $this->get_field_name('location'); ?> " id="<?php echo $this->get_field_name('location'); ?> "> <option value=''><?php _e('None', 'my-calendar-submissions'); ?> </option> <?php echo mc_location_select($widget_location); ?> </select> </p> </fieldset> <fieldset> <legend><strong><?php _e('Included Location Fields', 'my-calendar-submissions'); ?> </strong></legend> <ul> <li><?php _e('Location Label (required)', 'my-calendar-submissions'); ?> </li> <?php // can select: each field to require (label must be included) if (is_array($location_fields)) { foreach ($location_fields as $key => $value) { $check = in_array($value, $widget_location_fields) ? $checked : ''; $title = mcs_get_field_name($key, $value); echo "<li><input type='checkbox' name='" . $this->get_field_name('location_fields') . "[{$key}]' id='" . $this->get_field_id('location_fields') . "mc_{$key}' value='{$value}'{$check} /> <label for='" . $this->get_field_id('location_fields') . "mc_{$key}'>" . esc_html($title) . "</label></li>\n"; } } ?> </ul> </fieldset> <?php }