PluginProbe
Import Social Events / 1.1.1
Import Social Events v1.1.1
1.9.1 1.9.0 trunk 1.0.0 1.0.1 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.2.0 1.3.0 1.4.0 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.6.0 1.6.1 1.6.10 1.6.11 1.6.12 All 61 releases
import-facebook-events / includes / class-import-facebook-events-cpt.php

class-import-facebook-events-cpt.php in Import Social Events 1.1.1, at includes/class-import-facebook-events-cpt.php

657 lines 24.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Class for Register and manage Events.
4 *
5 * @link http://xylusthemes.com/
6 * @since 1.0.0
7 *
8 * @package Import_Facebook_Events
9 * @subpackage Import_Facebook_Events/includes
10 */
11 // Exit if accessed directly
12 if ( ! defined( 'ABSPATH' ) ) exit;
13
14 class Import_Facebook_Events_Cpt {
15
16 // The Events Calendar Event Taxonomy
17 protected $event_slug;
18
19 // Event post type.
20 protected $event_posttype;
21
22 // Event post type.
23 protected $event_category;
24
25 // Event post type.
26 protected $event_tag;
27
28 /**
29 * Initialize the class and set its properties.
30 *
31 * @since 1.0.0
32 */
33 public function __construct() {
34
35 $this->event_slug = 'facebook-event';
36
37 $this->event_posttype = 'facebook_events';
38 $this->event_category = 'facebook_category';
39 $this->event_tag = 'facebook_tag';
40
41 add_action( 'init', array( $this, 'register_event_post_type' ) );
42 add_action( 'init', array( $this, 'register_event_taxonomy' ) );
43 add_action( 'add_meta_boxes', array($this, 'add_event_meta_boxes' ) );
44 add_action( 'save_post', array($this, 'save_event_meta_boxes'), 10, 2);
45
46 add_filter( 'manage_facebook_events_posts_columns', array( $this, 'facebook_events_columns' ), 10, 1 );
47 add_action( 'manage_posts_custom_column', array( $this, 'facebook_events_columns_data' ), 10, 2 );
48
49 add_filter( 'the_content', array( $this, 'facebook_events_meta_before_content' ) );
50 add_shortcode('facebook_events', array( $this, 'facebook_events_archive' ) );
51
52 }
53
54 /**
55 * Get Events Post type.
56 *
57 * @since 1.0.0
58 */
59 public function get_event_posttype(){
60 return $this->event_posttype;
61 }
62
63 /**
64 * get events category taxonomy
65 *
66 * @since 1.0.0
67 */
68 public function get_event_categroy_taxonomy(){
69 return $this->event_category;
70 }
71
72 /**
73 * get events tag taxonomy
74 *
75 * @since 1.0.0
76 */
77 public function get_event_tag_taxonomy(){
78 return $this->event_tag;
79 }
80
81 /**
82 * Register Events Post type
83 *
84 * @since 1.0.0
85 */
86 public function register_event_post_type(){
87
88 /*
89 * Event labels
90 */
91 $event_labels = array(
92 'name' => _x( 'Facebook Events', 'Post Type General Name', 'import-facebook-events' ),
93 'singular_name' => _x( 'Facebook Event', 'Post Type Singular Name', 'import-facebook-events' ),
94 'menu_name' => __( 'Facebook Events', 'import-facebook-events' ),
95 'name_admin_bar' => __( 'Facebook Event', 'import-facebook-events' ),
96 'archives' => __( 'Event Archives', 'import-facebook-events' ),
97 'parent_item_colon' => __( 'Parent Event:', 'import-facebook-events' ),
98 'all_items' => __( 'Facebook Events', 'import-facebook-events' ),
99 'add_new_item' => __( 'Add New Event', 'import-facebook-events' ),
100 'add_new' => __( 'Add New', 'import-facebook-events' ),
101 'new_item' => __( 'New Event', 'import-facebook-events' ),
102 'edit_item' => __( 'Edit Event', 'import-facebook-events' ),
103 'update_item' => __( 'Update Event', 'import-facebook-events' ),
104 'view_item' => __( 'View Event', 'import-facebook-events' ),
105 'search_items' => __( 'Search Event', 'import-facebook-events' ),
106 'not_found' => __( 'Not found', 'import-facebook-events' ),
107 'not_found_in_trash' => __( 'Not found in Trash', 'import-facebook-events' ),
108 'featured_image' => __( 'Featured Image', 'import-facebook-events' ),
109 'set_featured_image' => __( 'Set featured image', 'import-facebook-events' ),
110 'remove_featured_image' => __( 'Remove featured image', 'import-facebook-events' ),
111 'use_featured_image' => __( 'Use as featured image', 'import-facebook-events' ),
112 'insert_into_item' => __( 'Insert into Event', 'import-facebook-events' ),
113 'uploaded_to_this_item' => __( 'Uploaded to this Event', 'import-facebook-events' ),
114 'items_list' => __( 'Event Items list', 'import-facebook-events' ),
115 'items_list_navigation' => __( 'Event Items list navigation', 'import-facebook-events' ),
116 'filter_items_list' => __( 'Filter Event items list', 'import-facebook-events' ),
117 );
118 $rewrite = array(
119 'slug' => $this->event_slug,
120 'with_front' => false,
121 'pages' => true,
122 'feeds' => true,
123 'ep_mask' => EP_NONE
124 );
125 $event_cpt_args = array(
126 'label' => __( 'Events', 'import-facebook-events' ),
127 'description' => __( 'Post type for Events', 'import-facebook-events' ),
128 'labels' => $event_labels,
129 'supports' => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'revisions', 'custom-fields' ),
130 'taxonomies' => array( $this->event_category, $this->event_tag ),
131 'hierarchical' => false,
132 'public' => true,
133 'show_ui' => true,
134 'show_in_menu' => true,
135 'menu_position' => 5,
136 'menu_icon' => 'dashicons-calendar',
137 'show_in_admin_bar' => true,
138 'show_in_nav_menus' => true,
139 'can_export' => true,
140 'has_archive' => true,
141 'exclude_from_search' => false,
142 'publicly_queryable' => true,
143 'rewrite' => $rewrite,
144 );
145 register_post_type( $this->event_posttype, $event_cpt_args );
146 }
147
148
149 /**
150 * Register Event tag taxonomy
151 *
152 * @since 1.0.0
153 */
154 public function register_event_taxonomy(){
155
156 /* Register the Event Category taxonomy. */
157 register_taxonomy( $this->event_category, array( $this->event_posttype ), array(
158 'labels' => array(
159 'name' => __( 'Event Categories', 'import-facebook-events' ),
160 'singular_name' => __( 'Event Category', 'import-facebook-events' ),
161 'menu_name' => __( 'Event Categories', 'import-facebook-events' ),
162 'name_admin_bar' => __( 'Event Category', 'import-facebook-events' ),
163 'search_items' => __( 'Search Categories', 'import-facebook-events' ),
164 'popular_items' => __( 'Popular Categories', 'import-facebook-events' ),
165 'all_items' => __( 'All Categories', 'import-facebook-events' ),
166 'edit_item' => __( 'Edit Category', 'import-facebook-events' ),
167 'view_item' => __( 'View Category', 'import-facebook-events' ),
168 'update_item' => __( 'Update Category', 'import-facebook-events' ),
169 'add_new_item' => __( 'Add New Category', 'import-facebook-events' ),
170 'new_item_name' => __( 'New Category Name', 'import-facebook-events' ),
171 ),
172 'public' => true,
173 'show_ui' => true,
174 'show_in_nav_menus' => true,
175 'show_admin_column' => true,
176 'hierarchical' => true,
177 'query_var' => true,
178 ) );
179
180 /* Register the event Tag taxonomy. */
181 register_taxonomy(
182 $this->event_tag,
183 array( $this->event_posttype ),
184 array(
185 'public' => true,
186 'show_ui' => true,
187 'show_in_nav_menus' => true,
188 'show_tagcloud' => true,
189 'show_admin_column' => true,
190 'hierarchical' => false,
191 'query_var' => $this->event_tag,
192 /* Labels used when displaying taxonomy and terms. */
193 'labels' => array(
194 'name' => __( 'Event Tags', 'import-facebook-events' ),
195 'singular_name' => __( 'Event Tag', 'import-facebook-events' ),
196 'menu_name' => __( 'Event Tags', 'import-facebook-events' ),
197 'name_admin_bar' => __( 'Event Tag', 'import-facebook-events' ),
198 'search_items' => __( 'Search Tags', 'import-facebook-events' ),
199 'popular_items' => __( 'Popular Tags', 'import-facebook-events' ),
200 'all_items' => __( 'All Tags', 'import-facebook-events' ),
201 'edit_item' => __( 'Edit Tag', 'import-facebook-events' ),
202 'view_item' => __( 'View Tag', 'import-facebook-events' ),
203 'update_item' => __( 'Update Tag', 'import-facebook-events' ),
204 'add_new_item' => __( 'Add New Tag', 'import-facebook-events' ),
205 'new_item_name' => __( 'New Tag Name', 'import-facebook-events' ),
206 'separate_items_with_commas' => __( 'Separate tags with commas', 'import-facebook-events' ),
207 'add_or_remove_items' => __( 'Add or remove tags', 'import-facebook-events' ),
208 'choose_from_most_used' => __( 'Choose from the most used tags','import-facebook-events' ),
209 'not_found' => __( 'No tags found', 'import-facebook-events' ),
210 'parent_item' => null,
211 'parent_item_colon' => null,
212 )
213 )
214 );
215
216 }
217
218
219 /*
220 * Add Meta box for team link meta box.
221 */
222 public function add_event_meta_boxes() {
223 add_meta_box(
224 'facebook_events_metabox',
225 __( 'Events Details', 'import-facebook-events' ),
226 array($this,'render_event_meta_boxes'),
227 array( $this->event_posttype ),
228 'normal',
229 'high'
230 );
231 }
232
233 /*
234 * Event meta box render
235 */
236 public function render_event_meta_boxes( $post ) {
237
238 // Use nonce for verification
239 wp_nonce_field( IFE_PLUGIN_DIR, 'ife_event_metabox_nonce' );
240
241 $start_hour = get_post_meta($post->ID, 'event_start_hour', true);
242 $start_minute = get_post_meta($post->ID, 'event_start_minute', true);
243 $start_meridian = get_post_meta($post->ID, 'event_start_meridian', true);
244 $end_hour = get_post_meta($post->ID, 'event_end_hour', true);
245 $end_minute = get_post_meta($post->ID, 'event_end_minute', true);
246 $end_meridian = get_post_meta($post->ID, 'event_end_meridian', true);
247 ?>
248 <table class="ife_form_table">
249 <thead>
250 <tr>
251 <th colspan="2">
252 <?php _e('Time & Date', 'import-facebook-events'); ?>
253 <hr>
254 </th>
255 </tr>
256 </thead>
257 <tbody>
258 <tr>
259 <td><?php _e('Start Date & Time', 'import-facebook-events'); ?>:</td>
260 <td>
261 <input type="text" name="event_start_date" class="xt_datepicker" id="event_start_date" value="<?php echo get_post_meta($post->ID, 'event_start_date', true); ?>" /> @
262 <?php
263 $this->generate_dropdown( 'event_start', 'hour', $start_hour );
264 $this->generate_dropdown( 'event_start', 'minute', $start_minute );
265 $this->generate_dropdown( 'event_start', 'meridian', $start_meridian );
266 ?>
267 </td>
268 </tr>
269 <tr>
270 <td><?php _e('End Date & Time', 'import-facebook-events'); ?>:</td>
271 <td>
272 <input type="text" name="event_end_date" class="xt_datepicker" id="event_end_date" value="<?php echo get_post_meta($post->ID, 'event_end_date', true); ?>" /> @
273 <?php
274 $this->generate_dropdown( 'event_end', 'hour', $end_hour );
275 $this->generate_dropdown( 'event_end', 'minute', $end_minute );
276 $this->generate_dropdown( 'event_end', 'meridian', $end_meridian );
277 ?>
278 </td>
279 </tr>
280 </tbody>
281 </table>
282 <div style="clear: both;"></div>
283 <table class="ife_form_table">
284 <thead>
285 <tr>
286 <th colspan="2">
287 <?php _e('Location Details', 'import-facebook-events'); ?>
288 <hr>
289 </th>
290 </tr>
291 </thead>
292
293 <tbody>
294 <tr>
295 <td><?php _e('Venue', 'import-facebook-events'); ?>:</td>
296 <td>
297 <input type="text" name="venue_name" id="venue_name" value="<?php echo get_post_meta($post->ID, 'venue_name', true); ?>" />
298 </td>
299 </tr>
300
301 <tr>
302 <td><?php _e('Address', 'import-facebook-events'); ?>:</td>
303 <td>
304 <input type="text" name="venue_address" id="venue_address" value="<?php echo get_post_meta($post->ID, 'venue_address', true); ?>" />
305 </td>
306 </tr>
307
308 <tr>
309 <td><?php _e('City', 'import-facebook-events'); ?>:</td>
310 <td>
311 <input type="text" name="venue_city" id="venue_city" value="<?php echo get_post_meta($post->ID, 'venue_city', true); ?>" />
312 </td>
313 </tr>
314
315 <tr>
316 <td><?php _e('State', 'import-facebook-events'); ?>:</td>
317 <td>
318 <input type="text" name="venue_state" id="venue_state" value="<?php echo get_post_meta($post->ID, 'venue_state', true); ?>" />
319 </td>
320 </tr>
321
322 <tr>
323 <td><?php _e('Country', 'import-facebook-events'); ?>:</td>
324 <td>
325 <input type="text" name="venue_country" id="venue_country" value="<?php echo get_post_meta($post->ID, 'venue_country', true); ?>" />
326 </td>
327 </tr>
328
329 <tr>
330 <td><?php _e('Zipcode', 'import-facebook-events'); ?>:</td>
331 <td>
332 <input type="text" name="venue_zipcode" id="venue_zipcode" value="<?php echo get_post_meta($post->ID, 'venue_zipcode', true); ?>" />
333 </td>
334 </tr>
335
336 <tr>
337 <td><?php _e('Latitude', 'import-facebook-events'); ?>:</td>
338 <td>
339 <input type="text" name="venue_lat" id="venue_lat" value="<?php echo get_post_meta($post->ID, 'venue_lat', true); ?>" />
340 </td>
341 </tr>
342
343 <tr>
344 <td><?php _e('Latitude', 'import-facebook-events'); ?>:</td>
345 <td>
346 <input type="text" name="venue_lon" id="venue_lon" value="<?php echo get_post_meta($post->ID, 'venue_lon', true); ?>" />
347 </td>
348 </tr>
349
350 <tr>
351 <td><?php _e('Website', 'import-facebook-events'); ?>:</td>
352 <td>
353 <input type="text" name="venue_url" id="venue_url" value="<?php echo get_post_meta($post->ID, 'venue_url', true); ?>" />
354 </td>
355 </tr>
356 </tbody>
357 </table>
358 <div style="clear: both;"></div>
359 <table class="ife_form_table">
360 <thead>
361 <tr>
362 <th colspan="2">
363 <?php _e('Organizer Details', 'import-facebook-events'); ?>
364 <hr>
365 </th>
366 </tr>
367 </thead>
368 <tbody>
369 <tr>
370 <td><?php _e('Organizer Name', 'import-facebook-events'); ?>:</td>
371 <td>
372 <input type="text" name="organizer_name" id="organizer_name" value="<?php echo get_post_meta($post->ID, 'organizer_name', true); ?>" />
373 </td>
374 </tr>
375 <tr>
376 <td><?php _e('Email', 'import-facebook-events'); ?>:</td>
377 <td>
378 <input type="email" name="organizer_email" id="organizer_email" value="<?php echo get_post_meta($post->ID, 'organizer_email', true); ?>" />
379 </td>
380 </tr>
381 <tr>
382 <td><?php _e('Phone', 'import-facebook-events'); ?>:</td>
383 <td>
384 <input type="text" name="organizer_phone" id="organizer_phone" value="<?php echo get_post_meta($post->ID, 'organizer_phone', true); ?>" />
385 </td>
386 </tr>
387 <tr>
388 <td><?php _e('Website', 'import-facebook-events'); ?>:</td>
389 <td>
390 <input type="text" name="organizer_url" id="organizer_url" value="<?php echo get_post_meta($post->ID, 'organizer_url', true); ?>" />
391 </td>
392 </tr>
393 </tbody>
394 </table>
395
396 <?php
397 }
398
399 /**
400 * generate dropdowns for event time.
401 *
402 */
403 function generate_dropdown( $start_end, $type, $selected = '' ){
404 if( $start_end == '' || $type == '' ){
405 return;
406 }
407 $select_name = $start_end.'_'.$type;
408 if( $type == 'hour'){
409 ?>
410 <select name="<?php echo $select_name;?>">
411 <option value="01" <?php selected( $selected, '01' ); ?>>01</option>
412 <option value="02" <?php selected( $selected, '02' ); ?>>02</option>
413 <option value="03" <?php selected( $selected, '03' ); ?>>03</option>
414 <option value="04" <?php selected( $selected, '04' ); ?>>04</option>
415 <option value="05" <?php selected( $selected, '05' ); ?>>05</option>
416 <option value="06" <?php selected( $selected, '06' ); ?>>06</option>
417 <option value="07" <?php selected( $selected, '07' ); ?>>07</option>
418 <option value="08" <?php selected( $selected, '08' ); ?>>08</option>
419 <option value="09" <?php selected( $selected, '09' ); ?>>09</option>
420 <option value="10" <?php selected( $selected, '10' ); ?>>10</option>
421 <option value="11" <?php selected( $selected, '11' ); ?>>11</option>
422 <option value="12" <?php selected( $selected, '12' ); ?>>12</option>
423 </select>
424 <?php
425 }elseif( $type == 'minute'){
426 ?>
427 <select name="<?php echo $select_name;?>">
428 <option value="00" <?php selected( $selected, '00' ); ?>>00</option>
429 <option value="05" <?php selected( $selected, '05' ); ?>>05</option>
430 <option value="10" <?php selected( $selected, '10' ); ?>>10</option>
431 <option value="15" <?php selected( $selected, '15' ); ?>>15</option>
432 <option value="20" <?php selected( $selected, '20' ); ?>>20</option>
433 <option value="25" <?php selected( $selected, '25' ); ?>>25</option>
434 <option value="30" <?php selected( $selected, '30' ); ?>>30</option>
435 <option value="35" <?php selected( $selected, '35' ); ?>>35</option>
436 <option value="40" <?php selected( $selected, '40' ); ?>>40</option>
437 <option value="45" <?php selected( $selected, '45' ); ?>>45</option>
438 <option value="50" <?php selected( $selected, '50' ); ?>>50</option>
439 <option value="55" <?php selected( $selected, '55' ); ?>>55</option>
440 </select>
441 <?php
442 }elseif( $type == 'meridian'){
443 ?>
444 <select name="<?php echo $select_name;?>">
445 <option value="am" <?php selected( $selected, 'am' ); ?>>am</option>
446 <option value="pm" <?php selected( $selected, 'pm' ); ?>>pm</option>
447 </select>
448 <?php
449 }
450 }
451
452 /**
453 * Save Testimonial meta box Options
454 *
455 */
456 public function save_event_meta_boxes($post_id, $post)
457 {
458
459 // Verify the nonce before proceeding.
460 if ( !isset( $_POST['ife_event_metabox_nonce'] ) || !wp_verify_nonce( $_POST['ife_event_metabox_nonce'], IFE_PLUGIN_DIR ) ){
461 return $post_id;
462 }
463
464 // check user capability to edit post
465 if(!current_user_can("edit_post", $post_id)){
466 return $post_id;
467 }
468
469 // can't save if auto save
470 if(defined("DOING_AUTOSAVE") && DOING_AUTOSAVE){
471 return $post_id;
472 }
473
474 // check if team then save it.
475 if($post->post_type != $this->event_posttype ){
476 return $post_id;
477 }
478
479
480 // Event Date & time Details
481 $event_start_date = isset( $_POST['event_start_date'] ) ? sanitize_text_field($_POST['event_start_date']) : '';
482 $event_end_date = isset( $_POST['event_end_date'] ) ? sanitize_text_field($_POST['event_end_date']) : '';
483 $event_start_hour = isset( $_POST['event_start_hour'] ) ? sanitize_text_field($_POST['event_start_hour']) : '';
484 $event_start_minute = isset( $_POST['event_start_minute'] ) ? sanitize_text_field($_POST['event_start_minute']) : '';
485 $event_start_meridian = isset( $_POST['event_start_meridian'] ) ? sanitize_text_field($_POST['event_start_meridian']) : '';
486 $event_end_hour = isset( $_POST['event_end_hour'] ) ? sanitize_text_field($_POST['event_end_hour']) : '';
487 $event_end_minute = isset( $_POST['event_end_minute'] ) ? sanitize_text_field($_POST['event_end_minute']) : '';
488 $event_end_meridian = isset( $_POST['event_end_meridian'] ) ? sanitize_text_field($_POST['event_end_meridian']) : '';
489
490 // Venue Deatails
491 $venue_name = isset( $_POST['venue_name'] ) ? sanitize_text_field( $_POST['venue_name'] ) : '';
492 $venue_address = isset( $_POST['venue_address'] ) ? sanitize_text_field( $_POST['venue_address'] ) : '';
493 $venue_city = isset( $_POST['venue_city'] ) ? sanitize_text_field( $_POST['venue_city'] ) : '';
494 $venue_state = isset( $_POST['venue_state'] ) ? sanitize_text_field( $_POST['venue_state'] ) : '';
495 $venue_country = isset( $_POST['venue_country'] ) ? sanitize_text_field( $_POST['venue_country'] ) : '';
496 $venue_zipcode = isset( $_POST['venue_zipcode'] ) ? sanitize_text_field( $_POST['venue_zipcode'] ) : '';
497 $venue_lat = isset( $_POST['venue_lat'] ) ? sanitize_text_field( $_POST['venue_lat'] ) : '';
498 $venue_lon = isset( $_POST['venue_lon'] ) ? sanitize_text_field( $_POST['venue_lon'] ) : '';
499 $venue_url = isset( $_POST['venue_url'] ) ? esc_url( $_POST['venue_url'] ) : '';
500
501 // Oraganizer Deatails
502 $organizer_name = isset( $_POST['organizer_name'] ) ? sanitize_text_field( $_POST['organizer_name'] ) : '';
503 $organizer_email = isset( $_POST['organizer_email'] ) ? sanitize_text_field( $_POST['organizer_email'] ) : '';
504 $organizer_phone = isset( $_POST['organizer_phone'] ) ? sanitize_text_field( $_POST['organizer_phone'] ) : '';
505 $organizer_url = isset( $_POST['organizer_url'] ) ? esc_url( $_POST['organizer_url'] ) : '';
506
507 // Save Event Data
508 // Date & Time
509 update_post_meta( $post_id, 'event_start_date', $event_start_date );
510 update_post_meta( $post_id, 'event_start_hour', $event_start_hour );
511 update_post_meta( $post_id, 'event_start_minute', $event_start_minute );
512 update_post_meta( $post_id, 'event_start_meridian', $event_start_meridian );
513 update_post_meta( $post_id, 'event_end_date', $event_end_date );
514 update_post_meta( $post_id, 'event_end_hour', $event_end_hour );
515 update_post_meta( $post_id, 'event_end_minute', $event_end_minute );
516 update_post_meta( $post_id, 'event_end_meridian', $event_end_meridian );
517
518 // Venue
519 update_post_meta( $post_id, 'venue_name', $venue_name );
520 update_post_meta( $post_id, 'venue_address', $venue_address );
521 update_post_meta( $post_id, 'venue_city', $venue_city );
522 update_post_meta( $post_id, 'venue_state', $venue_state );
523 update_post_meta( $post_id, 'venue_country', $venue_country );
524 update_post_meta( $post_id, 'venue_zipcode', $venue_zipcode );
525 update_post_meta( $post_id, 'venue_lat', $venue_lat );
526 update_post_meta( $post_id, 'venue_lon', $venue_lon );
527 update_post_meta( $post_id, 'venue_url', $venue_url );
528
529 // Organizer
530 update_post_meta( $post_id, 'organizer_name', $organizer_name );
531 update_post_meta( $post_id, 'organizer_email', $organizer_email );
532 update_post_meta( $post_id, 'organizer_phone', $organizer_phone );
533 update_post_meta( $post_id, 'organizer_url', $organizer_url );
534 }
535
536 /**
537 * Add column to event listing in admin
538 *
539 */
540 function facebook_events_columns( $cols ) {
541 $cols['event_start_date'] = __('Event Date', 'event-list-calendar');
542 return $cols;
543 }
544
545 /**
546 * set column data
547 *
548 */
549 function facebook_events_columns_data( $column, $post_id ) {
550 switch ( $column ) {
551 case "event_start_date":
552 $start_date = get_post_meta( $post_id, 'event_start_date', true);
553 if( $start_date != '' ){
554 $start_date = strtotime( $start_date );
555 echo date( 'F j, Y', $start_date );
556 }else{
557 echo '-';
558 }
559
560 break;
561 }
562 }
563
564 /**
565 * render event information above event content
566 *
567 */
568 function facebook_events_meta_before_content( $content ) {
569 if ( is_singular( $this->event_posttype ) ) {
570 $event_details = $this->facebook_events_get_event_meta( get_the_ID() );
571 $content = $event_details . $content;
572 }
573 return $content;
574 }
575
576 /**
577 * get meta information for event.
578 *
579 */
580 function facebook_events_get_event_meta( $event_id = '' ){
581
582 ob_start();
583
584 include IFE_PLUGIN_DIR . '/templates/event-meta.php';
585
586 $event_meta_details = ob_get_contents();
587 ob_end_clean();
588 return $event_meta_details;
589 }
590
591 /**
592 * render events lisiting.
593 *
594 */
595 public function facebook_events_archive( $atts = array() ){
596
597 $current_date = current_time('Y-m-d');
598 $eve_args = array(
599 'post_type' => 'facebook_events',
600 'post_status' => 'publish',
601 'meta_query' => array(
602 array(
603 'key' => 'event_end_date',
604 'compare' => '>=',
605 'value' => $current_date,
606 )
607 ),
608 'meta_key' => 'event_end_date',
609 'orderby' => 'meta_value',
610 'order' => 'ASC',
611 'paged' => ( get_query_var('paged') ? get_query_var('paged') : 1 ),
612 );
613
614 if( isset( $atts['posts_per_page'] ) && $atts['posts_per_page'] != '' && is_numeric( $atts['posts_per_page'] ) ){
615 $eve_args['posts_per_page'] = $atts['posts_per_page'];
616 }
617
618 $facebook_events = new WP_Query( $eve_args );
619
620 $wp_list_events = '';
621 /* Start the Loop */
622
623 ob_start();
624 ?>
625 <div class="row_grid">
626 <?php
627 if( $facebook_events->have_posts() ):
628 while ( $facebook_events->have_posts() ) : $facebook_events->the_post();
629
630 include IFE_PLUGIN_DIR . '/templates/archive-content.php';
631
632 endwhile; // End of the loop.
633
634 if ($facebook_events->max_num_pages > 1) : // custom pagination ?>
635 <div class="col-ife-md-12">
636 <nav class="prev-next-posts">
637 <div class="prev-posts-link alignright">
638 <?php echo get_next_posts_link( 'Next Events &raquo;', $facebook_events->max_num_pages ); ?>
639 </div>
640 <div class="next-posts-link alignleft">
641 <?php echo get_previous_posts_link( '&laquo; Previous Events' ); ?>
642 </div>
643 </nav>
644 </div>
645 <?php endif;
646 endif;
647
648 ?>
649 </div>
650 <?php
651 $wp_list_events = ob_get_contents();
652 ob_end_clean();
653 wp_reset_postdata();
654 return $wp_list_events;
655
656 }
657 }