Changeset 3115037
- Timestamp:
- 07/09/2024 01:48:56 PM (4 weeks ago)
- Location:
- quick-event-calendar
- Files:
-
- 28 added
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
quick-event-calendar/trunk/calendar.js
r2943754 r3115037 4 4 * Set week days and get current date 5 5 */ 6 var mon = 'Mon', 6 var sun = 'Sun', 7 mon = 'Mon', 7 8 tue = 'Tue', 8 9 wed = 'Wed', 9 10 thu = 'Thu', 10 11 fri = 'Fri', 11 sat = 'Sat', 12 sun = 'Sun'; 12 sat = 'Sat'; 13 13 14 14 var d = new Date(); 15 15 16 //var strDate = d.getFullYear() + "/" + (d.getMonth() + 1) + "/" + d.getDate();17 16 var yearNumber = (new Date).getFullYear(); 18 17 var strDate = yearNumber + "/" + (d.getMonth() + 1) + "/" + d.getDate(); … … 28 27 } 29 28 30 function setMonth(monthNumber, mon, tue, wed, thu, fri, sat, sun) {29 function setMonth(monthNumber, ) { 31 30 jQuery('.month').text(GetMonthName(monthNumber) + ' ' + yearNumber); 32 31 jQuery('.month').attr('data-month', monthNumber); 33 printDateNumber(monthNumber, mon, tue, wed, thu, fri, sat, sun);32 printDateNumber(monthNumber, ); 34 33 } 35 34 36 setMonth(monthNumber, mon, tue, wed, thu, fri, sat, sun);35 setMonth(monthNumber, ); 37 36 38 37 jQuery('.qcc-btn-next').on('click', function (e) { 39 var monthNumber = jQuery('.month').attr('data-month');38 var monthNumber = ); 40 39 if (monthNumber > 11) { 41 jQuery('.month').attr('data-month', '0'); 42 var monthNumber = jQuery('.month').attr('data-month'); 43 yearNumber = yearNumber + 1; 44 setMonth(parseInt(monthNumber) + 1, mon, tue, wed, thu, fri, sat, sun); 40 monthNumber = 1; 41 yearNumber++; 45 42 } else { 46 setMonth(parseInt(monthNumber) + 1, mon, tue, wed, thu, fri, sat, sun);43 ; 47 44 } 45 46 48 47 e.preventDefault(); 49 48 }); 50 49 51 50 jQuery('.qcc-btn-prev').on('click', function (e) { 52 var monthNumber = jQuery('.month').attr('data-month');51 var monthNumber = ); 53 52 if (monthNumber < 2) { 54 jQuery('.month').attr('data-month', '13'); 55 var monthNumber = jQuery('.month').attr('data-month'); 56 yearNumber = yearNumber - 1; 57 setMonth(parseInt(monthNumber) - 1, mon, tue, wed, thu, fri, sat, sun); 53 monthNumber = 12; 54 yearNumber--; 58 55 } else { 59 setMonth(parseInt(monthNumber) - 1, mon, tue, wed, thu, fri, sat, sun); 60 }; 56 monthNumber--; 57 } 58 jQuery('.month').attr('data-month', monthNumber); 59 setMonth(monthNumber, sun, mon, tue, wed, thu, fri, sat); 61 60 e.preventDefault(); 62 61 }); … … 66 65 */ 67 66 68 function printDateNumber(monthNumber, mon, tue, wed, thu, fri, sat, sun) { 69 jQuery(jQuery('.qcc-calendar-container tbody tr')).each(function(index) { 67 function setDaysInOrder(sun, mon, tue, wed, thu, fri, sat) { 68 jQuery('.qcc-calendar-container thead tr').append( 69 '<td>' + sun + '</td><td>' + mon + '</td><td>' + tue + '</td><td>' + wed + '</td><td>' + thu + '</td><td>' + fri + '</td><td>' + sat + '</td>' 70 ); 71 } 72 73 function printDateNumber(monthNumber, sun, mon, tue, wed, thu, fri, sat) { 74 jQuery('.qcc-calendar-container tbody tr').each(function() { 70 75 jQuery(this).empty(); 71 76 }); 72 77 73 jQuery(jQuery('.qcc-calendar-container thead tr')).each(function(index) { 74 jQuery(this).empty(); 75 }); 78 jQuery('.qcc-calendar-container thead tr').empty(); 76 79 77 function getDaysInMonth(month, year) { 78 // Since no month has fewer than 28 days 79 var date = new Date(year, month, 1); 80 var days = []; 81 while (date.getMonth() === month) { 82 days.push(new Date(date)); 83 date.setDate(date.getDate() + 1); 80 setDaysInOrder(sun, mon, tue, wed, thu, fri, sat); 81 82 var firstDay = new Date(yearNumber, monthNumber - 1, 1); 83 var startingDay = firstDay.getDay(); // 0 (Sunday) to 6 (Saturday) 84 var monthLength = new Date(yearNumber, monthNumber, 0).getDate(); 85 86 var day = 1; 87 var rows = Math.ceil((startingDay + monthLength) / 7); 88 89 for (var i = 0; i < rows; i++) { 90 var row = jQuery('.qcc-calendar-container tbody tr').eq(i); 91 for (var j = 0; j < 7; j++) { 92 if (i === 0 && j < startingDay) { 93 row.append('<td></td>'); 94 } else if (day > monthLength) { 95 break; 96 } else { 97 let dataset_timestamp = `${yearNumber}-${monthNumber}-${day}`; 98 row.append('<td data-timestamp="' + dataset_timestamp + '" date-year="' + yearNumber + '" date-month="' + monthNumber + '" date-day="' + day + '">' + day + '</td>'); 99 day++; 100 } 84 101 } 85 return days;86 102 } 87 103 88 i = 0; 89 90 setDaysInOrder(mon, tue, wed, thu, fri, sat, sun); 91 92 function setDaysInOrder(mon, tue, wed, thu, fri, sat, sun) { 93 var monthDay = getDaysInMonth(monthNumber - 1, yearNumber)[0].toString().substring(0, 3); 94 if (monthDay === 'Mon') { 95 jQuery('.qcc-calendar-container thead tr').append('<td>' + mon + '</td><td>' + tue + '</td><td>' + wed + '</td><td>' + thu + '</td><td>' + fri + '</td><td>' + sat + '</td><td>' + sun + '</td>'); 96 } else if (monthDay === 'Tue') { 97 jQuery('.qcc-calendar-container thead tr').append('<td>' + tue + '</td><td>' + wed + '</td><td>' + thu + '</td><td>' + fri + '</td><td>' + sat + '</td><td>' + sun + '</td><td>' + mon + '</td>'); 98 } else if (monthDay === 'Wed') { 99 jQuery('.qcc-calendar-container thead tr').append('<td>' + wed + '</td><td>' + thu + '</td><td>' + fri + '</td><td>' + sat + '</td><td>' + sun + '</td><td>' + mon + '</td><td>' + tue + '</td>'); 100 } else if (monthDay === 'Thu') { 101 jQuery('.qcc-calendar-container thead tr').append('<td>' + thu + '</td><td>' + fri + '</td><td>' + sat + '</td><td>' + sun + '</td><td>' + mon + '</td><td>' + tue + '</td><td>' + wed + '</td>'); 102 } else if (monthDay === 'Fri') { 103 jQuery('.qcc-calendar-container thead tr').append('<td>' + fri + '</td><td>' + sat + '</td><td>' + sun + '</td><td>' + mon + '</td><td>' + tue + '</td><td>' + wed + '</td><td>' + thu + '</td>'); 104 } else if (monthDay === 'Sat') { 105 jQuery('.qcc-calendar-container thead tr').append('<td>' + sat + '</td><td>' + sun + '</td><td>' + mon + '</td><td>' + tue + '</td><td>' + wed + '</td><td>' + thu + '</td><td>' + fri + '</td>'); 106 } else if (monthDay === 'Sun') { 107 jQuery('.qcc-calendar-container thead tr').append('<td>' + sun + '</td><td>' + mon + '</td><td>' + tue + '</td><td>' + wed + '</td><td>' + thu + '</td><td>' + fri + '</td><td>' + sat + '</td>'); 108 } 109 } 110 jQuery(getDaysInMonth(monthNumber - 1, yearNumber)).each(function (index) { 111 var index = index + 1; 112 113 let dataset_timestamp = `${yearNumber}-${monthNumber}-${index}`; 114 115 if (index < 8) { 116 jQuery('.qcc-calendar-container tbody tr.1').append('<td data-timestamp="' + dataset_timestamp + '" date-year="' + yearNumber + '" date-month="' + monthNumber + '" date-day="' + index + '">' + index + '</td>'); 117 } else if (index < 15) { 118 jQuery('.qcc-calendar-container tbody tr.2').append('<td data-timestamp="' + dataset_timestamp + '" date-year="' + yearNumber + '" date-month="' + monthNumber + '" date-day="' + index + '">' + index + '</td>'); 119 } else if (index < 22) { 120 jQuery('.qcc-calendar-container tbody tr.3').append('<td data-timestamp="' + dataset_timestamp + '" date-year="' + yearNumber + '" date-month="' + monthNumber + '" date-day="' + index + '">' + index + '</td>'); 121 } else if (index < 29) { 122 jQuery('.qcc-calendar-container tbody tr.4').append('<td data-timestamp="' + dataset_timestamp + '" date-year="' + yearNumber + '" date-month="' + monthNumber + '" date-day="' + index + '">' + index + '</td>'); 123 } else if (index < 32) { 124 jQuery('.qcc-calendar-container tbody tr.5').append('<td data-timestamp="' + dataset_timestamp + '" date-year="' + yearNumber + '" date-month="' + monthNumber + '" date-day="' + index + '">' + index + '</td>'); 125 } 126 i++; 127 }); 128 var date = new Date(); 129 var month = date.getMonth() + 1; 130 setCurrentDay(month); 104 setCurrentDay(d.getMonth() + 1); 131 105 setEvent(); 132 106 displayEvent(); … … 146 120 * Add class '.active' on calendar date 147 121 */ 148 jQuery('.qcc-calendar-container tbody td').on('click', function (e) {122 jQuery('.qcc-calendar-container tbody', function (e) { 149 123 if (jQuery(this).hasClass('qcc-event')) { 150 124 jQuery('.qcc-calendar-container tbody td').removeClass('active'); … … 176 150 */ 177 151 function displayEvent() { 178 jQuery('.qcc-calendar-container tbody td').on('click', function (e) {152 jQuery('.qcc-calendar-container tbody', function (e) { 179 153 jQuery('.qcc-day-event').slideUp('fast'); 180 154 var monthEvent = jQuery(this).attr('date-month'), -
quick-event-calendar/trunk/css/gbad.css
r3048726 r3115037 10 10 font-size: 19px; 11 11 } 12 13 14 15 16 17 18 12 19 .gb-ad svg { 13 20 height: 34px; 14 21 vertical-align: text-bottom; 15 22 } 16 .gb- ad h3.gb-ad--header{17 color: # ffffff;18 font-size: 1.90em;19 font-weight: 400;23 .gb- { 24 color: #; 25 font-size: ; 26 font-weight: 00; 20 27 line-height: 1.75; 21 margin: 8px 0;22 padding: 16px 24px;23 border-bottom: 1px solid rgba(255, 255, 255, 0.15);28 margin: px 0; 29 padding: 4px; 30 border-bottom: 1px solid ; 24 31 } 25 32 .gb-ad .gb-ad--content { -
quick-event-calendar/trunk/includes/functions.php
r3048603 r3115037 142 142 $qcc_post_type = get_option('qcc_post_type'); 143 143 $qcc_category = get_option('qcc_category'); 144 145 144 146 145 147 if (isset($_POST['qcc_new_event_submit']) && wp_verify_nonce($_POST['qcc_new_event_field'], 'qcc_new_event_action')) { … … 165 167 do_action('wp_insert_post', 'wp_insert_post'); 166 168 167 echo '<p>' . __('Event submitted successfully!', 'qcc') . '</p>';169 >'; 168 170 } 169 171 170 $display = '<form method="post" class="qcc-form">172 $display = '<form method="post" class="qcc-form"> 171 173 <p> 172 174 <input type="text" size="48" name="qcc_date" id="qcc-datepicker" placeholder="' . __('Date', 'qcc') . '" required> -
quick-event-calendar/trunk/includes/settings.php
r3048615 r3115037 3 3 4 4 function qcc_calendar_admin_page() { 5 6 7 8 9 10 11 12 5 ?> 6 <div class="wrap"> 7 <h1><?php _e('Quick Event Calendar', 'quick-event-calendar'); ?></h1> 8 9 <?php 10 $t = isset($_GET['tab']) ? $_GET['tab'] : 'dashboard_tab'; 11 if(isset($_GET['tab'])) 12 $t = $_GET['tab']; 13 13 14 14 $i = get_option('ip_slug'); 15 ?> 16 <h2 class="nav-tab-wrapper"> 17 <a href="options-general.php?page=qcc&tab=dashboard_tab" class="nav-tab <?php echo $t == 'dashboard_tab' ? 'nav-tab-active' : ''; ?>"><?php _e('Dashboard', 'quick-event-calendar'); ?></a> 18 <a href="options-general.php?page=qcc&tab=settings_tab" class="nav-tab <?php echo $t == 'settings_tab' ? 'nav-tab-active' : ''; ?>"><?php _e('Settings', 'quick-event-calendar'); ?></a> 19 <a href="options-general.php?page=qcc&tab=configurator_tab" class="nav-tab <?php echo $t == 'configurator_tab' ? 'nav-tab-active' : ''; ?>"><?php _e('Configurator', 'quick-event-calendar'); ?></a> 20 <a href="options-general.php?page=qcc&tab=documentation" class="nav-tab <?php echo $t == 'documentation' ? 'nav-tab-active' : ''; ?>"><?php _e('Documentation', 'quick-event-calendar'); ?></a> 21 </h2> 22 23 <?php if($t == 'dashboard_tab') { 24 global $wpdb; ?> 25 26 <div class="gb-ad" id="gb-ad"> 27 <h3 class="gb-ad--header"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 68 68"><defs/><rect width="100%" height="100%" fill="none"/><g class="currentLayer"><path fill="#fff" d="M34.76 33C22.85 21.1 20.1 13.33 28.23 5.2 36.37-2.95 46.74.01 50.53 3.8c3.8 3.8 5.14 17.94-5.04 28.12-2.95 2.95-5.97 5.84-5.97 5.84L34.76 33"/><path fill="#fff" d="M43.98 42.21c5.54 5.55 14.59 11.06 20.35 5.3 5.76-5.77 3.67-13.1.98-15.79-2.68-2.68-10.87-5.25-18.07 1.96-2.95 2.95-5.96 5.84-5.96 5.84l2.7 2.7m-1.76 1.75c5.55 5.54 11.06 14.59 5.3 20.35-5.77 5.76-13.1 3.67-15.79.98-2.69-2.68-5.25-10.87 1.95-18.07 2.85-2.84 5.84-5.96 5.84-5.96l2.7 2.7" class="selected"/><path fill="#fff" d="M33 34.75c-11.9-11.9-19.67-14.67-27.8-6.52-8.15 8.14-5.2 18.5-1.4 22.3 3.8 3.79 17.95 5.13 28.13-5.05 3.1-3.11 5.84-5.97 5.84-5.97L33 34.75"/></g></svg> Thank you for using Quick Event Calendar!</h3> 28 <div class="gb-ad--content"> 29 <p>This plugin has been recently adopted by <a href="https://wpcorner.co" rel="external">WP Corner</a>. We are committed to ensuring<br> its continued development, maintenance, and support. Any existing users can rest assured <br>that the plugin is in good hands and will receive regular updates and improvements going forward.</p> 30 <p>We would like to thank the previous developer for their hard work in creating and maintaining<br> this plugin. We are excited to build upon their efforts and take this plugin to new heights.</p> 31 <p>If you encounter any issues or have questions regarding Quick Event Calendar, please visit the<br> <a href="https://wordpress.org/support/plugin/quick-event-calendar/" rel="external">plugin’s support forum</a> or <a href="https://wpcorner.co/contact" rel="external">contact us</a> for assistance.</p> 32 <p>Stay tuned for exciting updates and new features in the coming months.</p> 33 15 ?> 16 <h2 class="nav-tab-wrapper"> 17 <a href="options-general.php?page=qcc&tab=dashboard_tab" class="nav-tab <?php echo $t == 'dashboard_tab' ? 'nav-tab-active' : ''; ?>"><?php _e('Dashboard', 'quick-event-calendar'); ?></a> 18 <a href="options-general.php?page=qcc&tab=settings_tab" class="nav-tab <?php echo $t == 'settings_tab' ? 'nav-tab-active' : ''; ?>"><?php _e('Settings', 'quick-event-calendar'); ?></a> 19 <a href="options-general.php?page=qcc&tab=configurator_tab" class="nav-tab <?php echo $t == 'configurator_tab' ? 'nav-tab-active' : ''; ?>"><?php _e('Configurator', 'quick-event-calendar'); ?></a> 20 <a href="options-general.php?page=qcc&tab=documentation" class="nav-tab <?php echo $t == 'documentation' ? 'nav-tab-active' : ''; ?>"><?php _e('Documentation', 'quick-event-calendar'); ?></a> 21 </h2> 22 23 <div class="qcc-admin-content"> 24 <div class="qcc-admin-main"> 25 <?php if($t == 'dashboard_tab') { 26 global $wpdb; ?> 27 28 <h2 class="gb-h"><?php _e('Quick Event Calendar Overview', 'quick-event-calendar'); ?></h2> 29 <div class="qcc-video-container"> 30 <div style="padding:56.25% 0 0 0;position:relative;"><iframe src="https://player.vimeo.com/video/981290390?badge=0&autopause=0&player_id=0&app_id=58479" frameborder="0" allow="autoplay; fullscreen; picture-in-picture; clipboard-write" style="position:absolute;top:0;left:0;width:100%;height:100%;" title="Quick Event Calendar Settings Overview"></iframe></div><script src="https://player.vimeo.com/api/player.js"></script> 31 </div> 32 33 <?php 34 echo '<p>You are using Quick Event Calendar plugin version <strong>' . QEC_VERSION . '</strong>.</p>'; 35 } else if($t == 'configurator_tab') { 36 if(isset($_POST['isQCCSubmit'])) { 37 update_option('qcc_accent_colour', sanitize_text_field($_POST['qcc_accent_colour'])); 38 update_option('qcc_day_colour', sanitize_text_field($_POST['qcc_day_colour'])); 39 update_option('qcc_event_colour', sanitize_text_field($_POST['qcc_event_colour'])); 40 41 echo '<div class="updated notice is-dismissible"><p>Settings updated successfully!</p></div>'; 42 } 43 ?> 44 <form method="post" action=""> 45 <h2><?php _e('Calendar Configurator', 'qcc'); ?></h2> 46 <p>The <b>Calendar configurator</b> allows you to select calendar colours to match your site design.</p> 47 <table class="form-table"> 48 <tbody> 49 <tr> 50 <th scope="row"><label>Calendar design</label></th> 51 <td> 52 <p> 53 <input type="text" name="qcc_accent_colour" id="qcc_accent_colour" placeholder="#1e2833" class="qcc-color-picker" value="<?php echo get_option('qcc_accent_colour'); ?>" data-default-color="#1e2833"> <label for="qcc_accent_colour">Accent colour</label> 54 <br><small><?php _e('The accent colour is used for selected dates background and hover states.', 'qcc'); ?></small> 55 </p> 56 <p> 57 <input type="text" name="qcc_day_colour" id="qcc_day_colour" placeholder="#1e2833" class="qcc-color-picker" value="<?php echo get_option('qcc_day_colour'); ?>" data-default-color="#1e2833"> <label for="qcc_day_colour">Current day background colour</label> 58 <br><small><?php _e('The current day colour is used for current date background.', 'qcc'); ?></small> 59 </p> 60 <p> 61 <input type="text" name="qcc_event_colour" id="qcc_event_colour" placeholder="#1e2833" class="qcc-color-picker" value="<?php echo get_option('qcc_event_colour'); ?>" data-default-color="#1e2833"> <label for="qcc_event_colour">Event colour</label> 62 <br><small><?php _e('The event colour is used for event dot indicators.', 'qcc'); ?></small> 63 </p> 64 </td> 65 </tr> 66 </tbody> 67 </table> 68 69 <hr> 70 <p><input type="submit" name="isQCCSubmit" value="<?php _e('Save Changes', 'qcc'); ?>" class="button-primary"></p> 71 </form> 72 <?php } else if($t == 'settings_tab') { 73 if(isset($_POST['isQCCSubmit'])) { 74 update_option('qcc_post_type', sanitize_text_field($_POST['qcc_post_type'])); 75 update_option('qcc_category', (int) $_POST['qcc_category']); 76 77 update_option('qcc_show_published', (int) $_POST['qcc_show_published']); 78 update_option('qcc_show_scheduled', (int) $_POST['qcc_show_scheduled']); 79 80 update_option('qcc_use_date_meta', (int) $_POST['qcc_use_date_meta']); 81 update_option('qcc_date_meta_month', sanitize_text_field($_POST['qcc_date_meta_month'])); 82 update_option('qcc_date_meta_day', sanitize_text_field($_POST['qcc_date_meta_day'])); 83 84 echo '<div class="updated notice is-dismissible"><p>Settings updated successfully!</p></div>'; 85 } 86 ?> 87 <form method="post" action=""> 88 <h2><?php _e('General Settings', 'qcc'); ?></h2> 89 <p><?php _e('These settings apply to the default behaviour of your calendar.', 'qcc'); ?></p> 90 <table class="form-table"> 91 <tbody> 92 <tr> 93 <th scope="row"><label for="qcc_post_type">(Custom) Post Type</label></th> 94 <td> 95 <p> 96 <select name="qcc_post_type" id="qcc_post_type" placeholder="<?php _e('Select a custom post type...', 'qcc'); ?>"> 97 <option value="" disabled selected><?php _e('Select a custom post type...', 'qcc'); ?></option> 98 <?php 99 $qcc_post_type = get_option('qcc_post_type'); 100 101 $args = [ 102 'public' => true, 103 ]; 104 $post_types = get_post_types($args, 'names'); 105 foreach($post_types as $post_type) { 106 if($qcc_post_type == $post_type) { 107 $selected = 'selected'; 108 } else { 109 $selected = ''; 110 } 111 echo '<option value="' . $post_type . '" ' . $selected . '>' . $post_type . '</option>'; 112 } 113 ?> 114 </select> 115 <br><small><?php _e('Use this (custom) post type as calendar event type.', 'qcc'); ?></small> 116 </p> 117 <p> 118 <?php 119 $qcc_category = get_option('qcc_category'); 120 121 $args = [ 122 'show_count' => 1, 123 'hide_empty' => 0, 124 'hierarchical' => 1, 125 'name' => 'qcc_category', 126 'taxonomy' => 'category', 127 'selected' => $qcc_category, 128 ]; 129 130 wp_dropdown_categories($args); 131 ?> 132 <br><small><?php _e('Use this category as calendar event category.', 'qcc'); ?></small> 133 </p> 134 </td> 135 </tr> 136 <tr> 137 <th scope="row"><label for="qcc_show_published">Visibility</label></th> 138 <td> 139 <p> 140 <input type="checkbox" class="wppd-ui-toggle" name="qcc_show_published" id="qcc_show_published" value="1" <?php if(get_option('qcc_show_published') == 1) echo 'checked'; ?>> <label for="qcc_show_published"><?php _e('Show published posts', 'qcc'); ?></label><br> 141 <small><?php _e('Show published posts in the calendar.', 'qcc'); ?></small><br> 142 143 <input type="checkbox" class="wppd-ui-toggle" name="qcc_show_scheduled" id="qcc_show_scheduled" value="1" <?php if(get_option('qcc_show_scheduled') == 1) echo 'checked'; ?>> <label for="qcc_show_scheduled"><?php _e('Show scheduled/future posts', 'qcc'); ?></label><br> 144 <small><?php _e('Show scheduled/future posts in the calendar.', 'qcc'); ?></small> 145 </p> 146 </td> 147 </tr> 148 <tr> 149 <th scope="row"><label for="qcc_use_date_meta">Date</label></th> 150 <td> 151 <p> 152 <input type="checkbox" class="wppd-ui-toggle" name="qcc_use_date_meta" id="qcc_use_date_meta" value="1" <?php if(get_option('qcc_use_date_meta') == 1) echo 'checked'; ?>> <label for="qcc_use_date_meta"><?php _e('Use custom fields for date', 'qcc'); ?></label> 153 <br><small><?php _e('Use existing custom fields for date (as opposed to post date). Use third party plugins to add custom meta data to your post types. Make sure your existing custom fields are numerical. If this option is checked, it will override the visibility options above.', 'qcc'); ?></small> 154 </p> 155 <p class="qcc_use_date_meta_hidden"> 156 <input type="text" class="regular-text" name="qcc_date_meta_month" id="qcc_date_meta_month" value="<?php echo get_option('qcc_date_meta_month'); ?>"> 157 <label for="qcc_date_meta_month"><?php _e('Month custom field name', 'qcc'); ?></label> 158 <br><small><?php _e('Your month custom field name.', 'qcc'); ?></small> 159 </p> 160 <p class="qcc_use_date_meta_hidden"> 161 <input type="text" class="regular-text" name="qcc_date_meta_day" id="qcc_date_meta_day" value="<?php echo get_option('qcc_date_meta_day'); ?>"> 162 <label for="qcc_date_meta_day"><?php _e('Day custom field name', 'qcc'); ?></label> 163 <br><small><?php _e('Your day custom field name.', 'qcc'); ?></small> 164 </p> 165 </td> 166 </tr> 167 </tbody> 168 </table> 169 170 <hr> 171 <p><input type="submit" name="isQCCSubmit" value="<?php _e('Save Changes', 'qcc'); ?>" class="button-primary"></p> 172 </form> 173 <?php } else if($t == 'documentation') { ?> 174 <h2 class="gb-h">Getting started with Quick Event Calendar</h2> 175 176 <p class="p"><b>Quick Event Calendar</b> is a lightweight, performant, and WordPress-integrated event calendar plugin. It allows you to display events, posts, or any other custom post type in a flexible, responsive calendar format. The calendar can be easily embedded into posts, pages, or widgets using shortcodes or template tags.</p> 177 <h3>Installation</h3> 178 <ul> 179 <li>Log in to your WordPress admin panel.</li> 180 <li>Go to <code>Plugins > Add New</code>.</li> 181 <li>Search for <code>“Quick Event Calendar”</code> and click <code>“Install Now”</code>.</li> 182 <li>After installation, click <code>“Activate”</code>.</li> 183 </ul> 184 185 <h3>Configuration</h3> 186 <p>Navigate to Settings > Quick Event Calendar.</p> 187 <p>In the <code>Settings</code> tab, select the desired post type (e.g., posts, events, or a custom post type) to display in the calendar.</p> 188 <p>If the selected post type is <code>“Posts”</code>, choose the desired category.</p> 189 <p>Select which posts you want to display in the calendar (published, scheduled, or future).</p> 190 <p>If you want to use custom meta fields, note that Quick Event Calendar works with preexisting custom meta fields. You may need to install a third-party plugin to add new custom fields.</p> 191 <p>In the <code>Configurator</code> tab, select the accent colour, the event colour and the background colour for the current day.</p> 192 <p>When you are done with the settings, use the <code>[qcc-calendar]</code> shortcode in any post, page or widget to show the calendar.</p> 193 194 <h3>Help with shortcodes</h3> 195 <p>Use the <code>[qcc-calendar]</code> shortcode in any post or page or widget to show the calendar.</p> 196 <p>Use the <code>[qcc-form]</code> shortcode in any post or page or widget to show the calendar submission form.</p> 197 198 <h3>Help with template tags</h3> 199 <p>Use the <code><?php echo do_shortcode("[qcc-calendar]"); ?></code> code in any page template to show the calendar.</p> 200 <p>Use the <code><?php echo do_shortcode("[qcc-form]"); ?></code> code in any page template to show the calendar submission form.</p> 201 202 <h3>Help with styling</h3> 203 <p>Use the included themes to style your calendar. Use the Default or the Flat theme to match your current WordPress theme appearance.</p> 204 205 <h3>Support</h3> 206 <p>If you encounter any issues or have questions regarding Quick Event Calendar, please <a href="https://wordpress.org/support/plugin/quick-event-calendar/">visit the plugin's support forum</a> or <br> 207 <a href="mailto:support@wpcorner.co">contact us</a> for assistance.</p> 208 <?php } ?> 209 </div> 210 <div class="qcc-admin-sidebar"> 211 <div class="qcc-card"> 212 <h3><?php _e('Documentation', 'quick-event-calendar'); ?></h3> 213 <p><?php _e('Get started by spending some time with the documentation to get familiar with Quick Event Calendar. The Documentation will cover all the information needed when using our plugin to build an amazing calendar, as well as some helpful tips and tricks that will make your experience easier and more enjoyable.', 'quick-event-calendar'); ?></p> 214 <a href="<?php echo admin_url('options-general.php?page=qcc&tab=documentation'); ?>" class="button button-primary"><?php _e('Documentation', 'quick-event-calendar'); ?></a> 215 </div> 216 <div class="qcc-card"> 217 <h3><?php _e('Need Help?', 'quick-event-calendar'); ?></h3> 218 <p><?php _e('Having issues or difficulties? Get help from the community on our support forum or contact us through our website contact form.', 'quick-event-calendar'); ?></p> 219 <a href="https://wordpress.org/support/plugin/quick-event-calendar/" class="button button-secondary"><?php _e('Visit Support Forum', 'quick-event-calendar'); ?></a> 220 <a href="https://wpcorner.co/contact" class="button button-secondary"><?php _e('Contact Support', 'quick-event-calendar'); ?></a> 34 221 </div> 35 <div class="gb-ad--footer"> 36 <p>For support, feature requests and bug reporting, please visit the <a href="hhttps://github.com/wpcorner/quick-event-calendar/issues" rel="external">plugin's Github Repository</a> to open an issue.<br>Built by <a href="https://wpcorner.co" rel="external"><strong>WP Corner</strong>.com</a> · <a href="https://wpcorner.co/support/quick-event-calendar/">Documentation</a> · <small>Code wrangling since 2005</small></p> 37 38 <p> 39 <small>You are using PHP <?php echo PHP_VERSION; ?> and MySQL <?php echo $wpdb->db_version(); ?>.</small> 40 </p> 222 <div class="qcc-card"> 223 <h3 class="mot"><?php _e('Motivate us!', 'quick-event-calendar'); ?></h3> 224 <p><?php _e('Could you please do us a BIG favor and give it a 5-star rating on WordPress? This would boost our motivation and help other users make a comfortable decision while choosing the Quick Event Calendar.', 'quick-event-calendar'); ?></p> 225 <div class="star-rating"> 226 <!-- Add star rating HTML here --> 227 </div> 228 <a href="https://wordpress.org/support/plugin/quick-event-calendar/reviews/#new-post" class="button button-secondary"><?php _e('Write a review', 'quick-event-calendar'); ?></a> 41 229 </div> 42 230 </div> 43 44 <?php 45 echo '<small>You are using Quick Event Calendar plugin version <strong>' . QEC_VERSION . '</strong>.</small> 46 </p>'; 47 } else if($t == 'configurator_tab') { 48 if(isset($_POST['isQCCSubmit'])) { 49 update_option('qcc_accent_colour', sanitize_text_field($_POST['qcc_accent_colour'])); 50 update_option('qcc_day_colour', sanitize_text_field($_POST['qcc_day_colour'])); 51 update_option('qcc_event_colour', sanitize_text_field($_POST['qcc_event_colour'])); 52 53 echo '<div class="updated notice is-dismissible"><p>Settings updated successfully!</p></div>'; 54 } 55 ?> 56 <style> 57 .wp-color-result { 58 margin: 0 6px 0 0; 59 vertical-align: middle; 60 } 61 </style> 62 <form method="post" action=""> 63 <h2><?php _e('Calendar Configurator', 'qcc'); ?></h2> 64 <p>The <b>Calendar configurator</b> allows you to select calendar colours to match your site design.</p> 65 <table class="form-table"> 66 <tbody> 67 <tr> 68 <th scope="row"><label>Calendar design</label></th> 69 <td> 70 <p> 71 <input type="text" name="qcc_accent_colour" id="qcc_accent_colour" placeholder="#1e2833" class="qcc-color-picker" value="<?php echo get_option('qcc_accent_colour'); ?>" data-default-color="#1e2833"> <label for="qcc_accent_colour">Accent colour</label> 72 <br><small><?php _e('The accent colour is used for selected dates background and hover states.', 'qcc'); ?></small> 73 </p> 74 <p> 75 <input type="text" name="qcc_day_colour" id="qcc_day_colour" placeholder="#1e2833" class="qcc-color-picker" value="<?php echo get_option('qcc_day_colour'); ?>" data-default-color="#1e2833"> <label for="qcc_day_colour">Current day background colour</label> 76 <br><small><?php _e('The current day colour is used for current date background.', 'qcc'); ?></small> 77 </p> 78 <p> 79 <input type="text" name="qcc_event_colour" id="qcc_event_colour" placeholder="#1e2833" class="qcc-color-picker" value="<?php echo get_option('qcc_event_colour'); ?>" data-default-color="#1e2833"> <label for="qcc_event_colour">Event colour</label> 80 <br><small><?php _e('The event colour is used for event dot indicators.', 'qcc'); ?></small> 81 </p> 82 </td> 83 </tr> 84 </tbody> 85 </table> 86 87 <hr> 88 <p><input type="submit" name="isQCCSubmit" value="<?php _e('Save Changes', 'qcc'); ?>" class="button-primary"></p> 89 </form> 90 <?php } else if($t == 'settings_tab') { ?> 91 <?php 92 if(isset($_POST['isQCCSubmit'])) { 93 update_option('qcc_post_type', sanitize_text_field($_POST['qcc_post_type'])); 94 update_option('qcc_category', (int) $_POST['qcc_category']); 95 96 update_option('qcc_show_published', (int) $_POST['qcc_show_published']); 97 update_option('qcc_show_scheduled', (int) $_POST['qcc_show_scheduled']); 98 99 update_option('qcc_use_date_meta', (int) $_POST['qcc_use_date_meta']); 100 update_option('qcc_date_meta_month', sanitize_text_field($_POST['qcc_date_meta_month'])); 101 update_option('qcc_date_meta_day', sanitize_text_field($_POST['qcc_date_meta_day'])); 102 103 echo '<div class="updated notice is-dismissible"><p>Settings updated successfully!</p></div>'; 104 } 105 ?> 106 <form method="post" action=""> 107 <h2><?php _e('General Settings', 'qcc'); ?></h2> 108 <p><?php _e('These settings apply to the default behaviour of your calendar.', 'qcc'); ?></p> 109 <table class="form-table"> 110 <tbody> 111 <tr> 112 <th scope="row"><label for="qcc_post_type">(Custom) Post Type</label></th> 113 <td> 114 <p> 115 <select name="qcc_post_type" id="qcc_post_type" placeholder="<?php _e('Select a custom post type...', 'qcc'); ?>"> 116 <option value="" disabled selected><?php _e('Select a custom post type...', 'qcc'); ?></option> 117 <?php 118 $qcc_post_type = get_option('qcc_post_type'); 119 120 $args = [ 121 'public' => true, 122 ]; 123 $post_types = get_post_types($args, 'names'); 124 foreach($post_types as $post_type) { 125 if($qcc_post_type == $post_type) { 126 $selected = 'selected'; 127 } else { 128 $selected = ''; 129 } 130 echo '<option value="' . $post_type . '" ' . $selected . '>' . $post_type . '</option>'; 131 } 132 ?> 133 </select> 134 <br><small><?php _e('Use this (custom) post type as calendar event type.', 'qcc'); ?></small> 135 </p> 136 <p> 137 <?php 138 $qcc_category = get_option('qcc_category'); 139 140 $args = [ 141 'show_count' => 1, 142 'hide_empty' => 0, 143 'hierarchical' => 1, 144 'name' => 'qcc_category', 145 'taxonomy' => 'category', 146 'selected' => $qcc_category, 147 ]; 148 149 wp_dropdown_categories($args); 150 ?> 151 <br><small><?php _e('Use this category as calendar event category.', 'qcc'); ?></small> 152 </p> 153 </td> 154 </tr> 155 <tr> 156 <th scope="row"><label for="qcc_show_published">Visibility</label></th> 157 <td> 158 <p> 159 <input type="checkbox" class="wppd-ui-toggle" name="qcc_show_published" id="qcc_show_published" value="1" <?php if(get_option('qcc_show_published') == 1) echo 'checked'; ?>> <label for="qcc_show_published"><?php _e('Show published posts', 'qcc'); ?></label><br> 160 <small><?php _e('Show published posts in the calendar.', 'qcc'); ?></small><br> 161 162 <input type="checkbox" class="wppd-ui-toggle" name="qcc_show_scheduled" id="qcc_show_scheduled" value="1" <?php if(get_option('qcc_show_scheduled') == 1) echo 'checked'; ?>> <label for="qcc_show_scheduled"><?php _e('Show scheduled/future posts', 'qcc'); ?></label><br> 163 <small><?php _e('Show scheduled/future posts in the calendar.', 'qcc'); ?></small> 164 </p> 165 </td> 166 </tr> 167 <tr> 168 <th scope="row"><label for="qcc_use_date_meta">Date</label></th> 169 <td> 170 <p> 171 <input type="checkbox" class="wppd-ui-toggle" name="qcc_use_date_meta" id="qcc_use_date_meta" value="1" <?php if(get_option('qcc_use_date_meta') == 1) echo 'checked'; ?>> <label for="qcc_use_date_meta"><?php _e('Use custom fields for date', 'qcc'); ?></label> 172 <br><small><?php _e('Use existing custom fields for date (as opposed to post date). Use third party plugins to add custom meta data to your post types. Make sure your existing custom fields are numerical. If this option is checked, it will override the visibility options above.', 'qcc'); ?></small> 173 </p> 174 <p class="qcc_use_date_meta_hidden"> 175 <input type="text" class="regular-text" name="qcc_date_meta_month" id="qcc_date_meta_month" value="<?php echo get_option('qcc_date_meta_month'); ?>"> 176 <label for="qcc_date_meta_month"><?php _e('Month custom field name', 'qcc'); ?></label> 177 <br><small><?php _e('Your month custom field name.', 'qcc'); ?></small> 178 </p> 179 <p class="qcc_use_date_meta_hidden"> 180 <input type="text" class="regular-text" name="qcc_date_meta_day" id="qcc_date_meta_day" value="<?php echo get_option('qcc_date_meta_day'); ?>"> 181 <label for="qcc_date_meta_day"><?php _e('Day custom field name', 'qcc'); ?></label> 182 <br><small><?php _e('Your day custom field name.', 'qcc'); ?></small> 183 </p> 184 </td> 185 </tr> 186 </tbody> 187 </table> 188 189 <hr> 190 <p><input type="submit" name="isQCCSubmit" value="<?php _e('Save Changes', 'qcc'); ?>" class="button-primary"></p> 191 </form> 192 <?php } else if($t == 'documentation') { ?> 193 <h2>Installation</h2> 194 195 <p>After installing the plugin, you need to configure it by selecting several options:</p> 196 <p>In your <b>Settings</b> tab, Select the desired post type, select the desired category (if post type is 'post') and select which posts you want to show. For an event calendar, the default should be both published and scheduled/future posts.</p> 197 <p>In case you want to use custom meta fields, the calendar works with preexisting meta fields. Using custom meta fields requires a third-party plugin to add new fields.</p> 198 <p>After selecting the desired options, pick one of the predefined themes to match your site.</p> 199 <p>After selecting a theme, you need to match your site's colours with the calendar template.</p> 200 <p>In your <b>Configurator</b> tab, select the accent colour, the event colour and the background colour for the current day.</p> 201 <p>When you are done with the settings, use the <code>[qcc-calendar]</code> shortcode in any post, page or widget to show the calendar.</p> 202 203 <h3>Help with shortcodes</h3> 204 <p>Use the <code>[qcc-calendar]</code> shortcode in any post or page or widget to show the calendar.</p> 205 <p>Use the <code>[qcc-form]</code> shortcode in any post or page or widget to show the calendar submission form.</p> 206 207 <h3>Help with template tags</h3> 208 <p>Use the <code><php echo do_shortcode("[qcc-calendar]"); ?></code> code in any page template to show the calendar.</p> 209 <p>Use the <code><php echo do_shortcode("[qcc-form]"); ?></code> code in any page template to show the calendar submission form.</p> 210 211 <h3>Help with styling</h3> 212 <p>Use the included themes to style your calendar. Use the Default or the Flat theme to match your current WordPress theme appearance.</p> 213 214 <h3>Support</h3> 215 <p>If you encounter any issues or have questions regarding Quick Event Calendar, please <a href="https://wordpress.org/support/plugin/quick-event-calendar/">visit the plugin’s support forum</a>a or <br> 216 <a href="mailto:support@wpcorner.co">contact us</a> for assistance. 217 218 <?php } ?> 219 </div> 220 <?php 231 </div> 232 </div> 233 <style> 234 .qcc-admin-content { 235 display: flex; 236 margin-top: 20px; 237 } 238 .qcc-admin-main { 239 flex: 1; 240 background-color: #fff; 241 padding: 20px; 242 margin-right: 20px; 243 } 244 .qcc-admin-sidebar { 245 width: 300px; 246 } 247 .qcc-card { 248 background-color: #fff; 249 padding: 20px; 250 margin-bottom: 20px; 251 } 252 .qcc-card h3 { 253 margin-top: 0; 254 } 255 .qcc-card .button { 256 display: inline-block; 257 margin-top: 10px; 258 } 259 /* New styles to match all buttons with the Documentation button */ 260 .qcc-card .button-primary, 261 .qcc-card .button-secondary { 262 background-color: #0085ba; 263 border-color: #0073aa #006799 #006799; 264 color: #fff; 265 text-decoration: none; 266 text-shadow: 0 -1px 1px #006799, 1px 0 1px #006799, 0 1px 1px #006799, -1px 0 1px #006799; 267 } 268 .qcc-card .button-primary:hover, 269 .qcc-card .button-secondary:hover { 270 background-color: #008ec2; 271 color: #fff; 272 border-color: #006799; 273 } 274 .star-rating { 275 /* Add star rating styles here */ 276 } 277 .qcc-video-container { 278 position: relative; 279 padding-bottom: 56.25%; /* 16:9 aspect ratio */ 280 height: 0; 281 overflow: hidden; 282 max-width: 100%; 283 } 284 .qcc-video-container iframe { 285 position: absolute; 286 top: 0; 287 left: 0; 288 width: 100%; 289 height: 100%; 290 } 291 </style> 292 <?php 221 293 } -
quick-event-calendar/trunk/quick-event-calendar.php
r3114339 r3115037 4 4 Plugin URI: https://wpcorner.co/quick-event-calendar/ 5 5 Description: Quick Event Calendar is a very simple, performant and WordPress-integrated event calendar plugin. Quick Event Calendar allows you to add posts, events or any other custom post type to a flexible, responsive calendar which can be placed in a post, page or widget. 6 Version: 1.4. 76 Version: 1.4. 7 7 Author: WP Corner 8 8 Author URI: https://wpcorner.co … … 34 34 define( 'QEC_PLUGIN_URL', WP_PLUGIN_URL . '/' . dirname( plugin_basename( __FILE__ ) ) ); 35 35 define( 'QEC_PLUGIN_PATH', WP_PLUGIN_DIR . '/' . dirname( plugin_basename( __FILE__ ) ) ); 36 define( 'QEC_VERSION', '1.4. 3' );36 define( 'QEC_VERSION', '1.4.' ); 37 37 38 38 add_shortcode( 'qcc-calendar', 'qcc_get_calendar' ); -
quick-event-calendar/trunk/readme.txt
r3114339 r3115037 1 1 === Quick Event Calendar === 2 Contributors: wpcorner ke, lumiblog2 Contributors: wpcorner, lumiblog 3 3 Donate Link: https://wpcorner.co/donate/ 4 4 Tags: event calendar, calendar, event, date, schedule 5 5 Requires at least: 4.9 6 6 Tested up to: 6.6 7 Requires PHP: 7.0 8 Stable tag: 1.4. 77 Requires PHP: 7.0 8 Stable tag: 1.4. 9 9 License: GPLv3 or later 10 10 License URI: https://www.gnu.org/licenses/gpl-3.0.html … … 16 16 ### Quick Event Calendar - Simple, fancy event calendar. ### 17 17 18 19 18 **Quick Event Calendar** is a very simple, performant, and WordPress-integrated event calendar plugin. Quick Event Calendar allows you to add **posts**, **events** or any other **custom post type** to a flexible, responsive calendar which can be placed in a post, page or widget. 20 19 … … 29 28 ### Quick Event Calendar plugin can be used by: ### 30 29 31 * **Website Owners / Administrators **: Anyone who runs a WordPress website can use this plugin to display events or custom post types in a calendar format on their site.30 * **Website Owners / Administrators: Anyone who runs a WordPress website can use this plugin to display events or custom post types in a calendar format on their site. 32 31 33 32 * **Event Organizers**: Individuals or organizations that host events can utilize this plugin to create an event calendar on their WordPress website, allowing visitors to easily view and potentially submit events. … … 58 57 59 58 ### How to Use Quick Event Calendar ### 59 60 60 61 61 62 * **Install and Activate**: Install and activate the Quick Event Calendar plugin from the WordPress plugin repository. … … 107 108 6. Activate the plugin 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 109 136 == Screenshots == 110 137 … … 114 141 4. Calendar showing events on a live page 115 142 116 == Frequently Asked Questions ==117 118 = Is the calendar responsive? =119 120 Yes, Quick Event Calendar is fully responsive and will adapt to different screen sizes and devices, ensuring a seamless user experience.121 122 = Can I display the calendar on multiple pages? =123 124 Quick Event Calendar is designed to work on a single page, utilizing AJAX to load events for a specific month. If you need to display the calendar on multiple pages, you can use the provided **shortcodes** or **template tags** on those pages.125 126 = Can I use custom meta fields with Quick Event Calendar? =127 128 Yes, Quick Event Calendar works with preexisting custom meta fields. However, you may need to use a third-party plugin to add new custom fields.129 130 = How do I style the calendar to match my WordPress theme? =131 132 Quick Event Calendar includes predefined themes that you can select from the plugin settings. Additionally, you can customize the calendar's colors to match your site's branding.133 134 = Can I display events from custom post types? =135 136 Yes, Quick Event Calendar allows you to display events or any other custom post type in the calendar.137 138 = How do I get support? =139 140 If you encounter any issues or have questions regarding Quick Event Calendar, please visit [the plugin’s support forum](https://wordpress.org/support/plugin/quick-event-calendar/) or [contact us](mailto:support@wpcorner.co) for assistance.141 142 143 == Changelog == 143 144 145 146 147 148 149 144 150 = 1.4.7 = 145 151 * UPDATE: Updated WordPress compatibility 146 152 147 153 = 1.4.6 = 148 * FIX: Fixed link color changing to red in the plugin page.154 * 149 155 150 156 = 1.4.5 = 151 * FIX: Fixed "contact us" URL in the plugin's dashboard. 157 * UPDATE: Updated readme.txt and plugin info in the main plugin file 158 * TODO: Add WPML compatibility 159 * TODO: Compare JS to https://github.com/fdut/ContactDevOps/blob/22dd6f38bbd591aeb3a5e5653cf2cdcb066ca146/contact-web/ContactWeb/client/js/transports/calendarController.js 160 * TODO: Refactor JS to ES6 161 * TODO: Test form submission and add demo page 162 * TODO: Reconsider custom date field 152 163 153 164 = 1.4.4 = 154 * UPDATE: Event Form Submission redesigned to make form input fields fullwidth. 155 * UPDATE: Event form submit button text changed to "Add Event" 156 * UPDATE: Events created through event submission form automatically added to the selected qcc category. 165 * TODO: Compare JS to https://github.com/fdut/ContactDevOps/blob/22dd6f38bbd591aeb3a5e5653cf2cdcb066ca146/contact-web/ContactWeb/client/js/transports/calendarController.js 166 * TODO: Refactor JS to ES6 167 * TODO: Test form submission and add demo page 168 * TODO: Reconsider custom date field 157 169 158 170 = 1.4.3 =
Note: See TracChangeset
for help on using the changeset viewer.