2013-04-22 06:29:25 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								< ? php  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Plugin  Name :  Sync  Facebook  Events  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Plugin  URI :  http :// pdxt . com  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Description :  Sync  Facebook  Events  to  The  Events  Calendar  Plugin   
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Author :  Mark  Nelson  
						 
					
						
							
								
									
										
										
										
											2015-12-10 15:40:02 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Version :  1.0 . 9  
						 
					
						
							
								
									
										
										
										
											2013-04-22 06:29:25 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								Author  URI :  http :// pdxt . com  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*/  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*   Copyright  2012  PDX  Technologies ,  LLC .  ( mark . nelson @ pdxt . com )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    This  program  is  free  software ;  you  can  redistribute  it  and / or  modify 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    it  under  the  terms  of  the  GNU  General  Public  License  as  published  by 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    the  Free  Software  Foundation ;  either  version  2  of  the  License ,  or 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ( at  your  option )  any  later  version . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    This  program  is  distributed  in  the  hope  that  it  will  be  useful , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    but  WITHOUT  ANY  WARRANTY ;  without  even  the  implied  warranty  of 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    MERCHANTABILITY  or  FITNESS  FOR  A  PARTICULAR  PURPOSE .  See  the 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    GNU  General  Public  License  for  more  details . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    You  should  have  received  a  copy  of  the  GNU  General  Public  License 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    along  with  this  program ;  if  not ,  write  to  the  Free  Software 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Foundation ,  Inc . ,  51  Franklin  St ,  Fifth  Floor ,  Boston ,  MA  02110 - 1301  USA 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*/  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								register_activation_hook ( __FILE__ , 'activate_fbes' );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								register_deactivation_hook ( __FILE__ , 'deactivate_fbes' );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function  activate_fbes ()  {  wp_schedule_event ( time (),  'daily' ,  'fbes_execute_sync' );  }  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function  deactivate_fbes ()  {  wp_clear_scheduled_hook ( 'fbes_execute_sync' );  }  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								add_action ( 'fbes_execute_sync' ,  'fbes_process_events' );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function  update_schedule ( $fbes_frequency )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										wp_clear_scheduled_hook ( 'fbes_execute_sync' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										wp_schedule_event ( time (),  $fbes_frequency ,  'fbes_execute_sync' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function  fbes_add_page ()  {  add_options_page ( 'Sync FB Events' ,  'Sync FB Events' ,  8 ,  __FILE__ ,  'fbes_options_page' );  }  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								add_action ( 'admin_menu' ,  'fbes_add_page' );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function  fbes_process_events ()  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									#Get option values
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$fbes_api_key  =  get_option ( 'fbes_api_key' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$fbes_api_secret  =  get_option ( 'fbes_api_secret' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$fbes_api_uid  =  get_option ( 'fbes_api_uid' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$fbes_api_uids  =  get_option ( 'fbes_api_uids' ); 	
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$fbes_frequency  =  get_option ( 'fbes_frequency' ); 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-23 02:22:57 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									$fbes_access_token  =  get_option ( 'fbes_access_token' );  // modified
 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 06:29:25 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
									
										
										
										
											2013-04-23 02:22:57 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									$events  =  fbes_get_events ( $fbes_api_key ,  $fbes_api_secret ,  $fbes_access_token ,  $fbes_api_uids ); 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 06:29:25 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									fbes_send_events ( $events ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-04-23 02:22:57 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function  fbes_get_events ( $fbes_api_key ,  $fbes_api_secret ,  $fbes_access_token ,  $fbes_api_uids )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									require  'facebook-php-sdk/facebook.php' ;  //modified
 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 06:29:25 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$facebook  =  new  Facebook ( array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										'appId'   =>   $fbes_api_key , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										'secret'  =>   $fbes_api_secret , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										'cookie'  =>  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									)); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-04-23 03:29:31 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									$facebook -> setAccessToken ( $fbes_access_token ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-04-23 02:22:57 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  $ret  =  array (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  foreach  ( $fbes_api_uids  as  $key  =>  $value )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if ( $value != '' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      $result  =  $facebook -> api ( '/' . $value . '/events' ,  'GET' ,  array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'fields'  =>  'name,start_time,end_time,location,description,timezone' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      $result  =  $result [ 'data' ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      foreach ( $result  as  $k  =>  $v ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $result [ $k ][ 'uid' ]  =  $value ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      $ret  =  array_merge ( $ret ,  $result ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 06:29:25 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  $ret ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function  fbes_segments ( $url = '' )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$parsed_url  =  parse_url ( $url ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$path  =  trim ( $parsed_url [ 'path' ], '/' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  explode ( '/' , $path ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function  fbes_send_events ( $events )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$query  =  new  WP_Query ( array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										'post_type' => 'tribe_events' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										'posts_per_page' => '-1' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									)); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									foreach ( $query -> posts  as  $post )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if ( ! empty ( $post -> to_ping ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$segments  =  fbes_segments ( $post -> to_ping ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$eid  =  array_pop ( $segments ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$eids [ $eid ]  =  $post -> ID ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//if you're reading this and you want to delete all those duplicate events, uncomment this temporarially. Note, it will also delete all manually made events since June 13
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//http://codex.wordpress.org/Version_3.4 - June 13, 2012
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//depending on many duplicates you had, you might end up re-loading this script a bunch of times after it times out. Me, I had 14k duplicates. Had to run the script like 10 times.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$post_date  =  trim ( substr ( $post -> post_date ,  0 ,  10 )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if ( $post -> post_date  >  '2012-06-12' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												wp_delete_post ( $post -> ID ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*/  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									//file_put_contents($_SERVER['DOCUMENT_ROOT'].'/fbevent.log', print_r(array(time(),$events,$eids),1)."\n".str_repeat('=',40)."\n", FILE_APPEND);
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									foreach ( $events  as  $event )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$args [ 'post_title' ]  =  $event [ 'name' ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$offset  =  get_option ( 'gmt_offset' ) * 3600 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$offsetStart  =  $event [ 'start_time' ] + $offset ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$offsetEnd  =  $event [ 'end_time' ] + $offset ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										//don't update or insert events from the past.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if ( $offsetEnd  >  time ())  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$args [ 'EventStartDate' ]  =  date ( " m/d/Y " ,  $offsetStart ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$args [ 'EventStartHour' ]  =  date ( " H " ,  $offsetStart ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$args [ 'EventStartMinute' ]  =  date ( " i " ,  $offsetStart ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$args [ 'EventEndDate' ]  =  date ( " m/d/Y " ,  $offsetEnd ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$args [ 'EventEndHour' ]  =  date ( " H " ,  $offsetEnd ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$args [ 'EventEndMinute' ]  =  date ( " i " ,  $offsetEnd ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$args [ 'post_content' ]  =  $event [ 'description' ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$args [ 'Venue' ][ 'Venue' ]  =  $event [ 'location' ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$args [ 'post_status' ]  =  " Publish " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$args [ 'post_type' ]  =  " tribe_events " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											//$args['to_ping'] = $event['eid']; //damn you, sanitize_trackback_urls in 3.4
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$args [ 'to_ping' ]  =  'https://www.facebook.com/events/' . $event [ 'eid' ] . '/' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if ( $args [ 'EventStartHour' ]  ==  '22'  &&  $event [ 'uid' ]  ==  '256763181050120' )  {  //why are UT events 2 hours off???
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$args [ 'EventStartHour' ]  =  '20' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$args [ 'EventEndHour' ]  =  '22' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$args [ 'EventEndDate' ]  =  date ( 'm/d/Y' , strtotime ( $args [ 'EventEndDate' ],  '-1 day' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$inserting  =  $post_id  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( ! array_key_exists ( $event [ 'eid' ],  $eids ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												//double check
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$already_exists  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												foreach ( $query -> posts  as  $post )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													if ( $post -> to_ping  ==  $args [ 'to_ping' ]  ||  trim ( $post -> pinged )  ==  $args [ 'to_ping' ])  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														$already_exists  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if ( ! $already_exists )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													file_put_contents ( $_SERVER [ 'DOCUMENT_ROOT' ] . '/fbevent.log' ,  print_r ( array ( time (), 'creating' ,  $args ,  $eids ,  $query -> posts ), 1 ) . " \n " . str_repeat ( '=' , 40 ) . " \n " ,  FILE_APPEND ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$post_id  =  tribe_create_event ( $args ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													echo  " <br />Inserting:  " . $post_id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$inserting  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if ( ! $inserting )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$post_id  =  $eids [ $event [ 'eid' ]]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												tribe_update_event ( $post_id ,  $args ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												echo  " <br />Updating:  " . $eids [ $event [ 'eid' ]]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if ( $post_id )  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												update_metadata ( 'post' ,  $post_id ,  'fb_event_obj' ,  $event ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												//eid, name, start_time, end_time, location, description
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										reset ( $eids ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function  fbes_options_page ()  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$fbes_api_uids  =  array (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									#Get option values
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$fbes_api_key  =  get_option ( 'fbes_api_key' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$fbes_api_secret  =  get_option ( 'fbes_api_secret' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$fbes_api_uid  =  get_option ( 'fbes_api_uid' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$fbes_api_uids  =  get_option ( 'fbes_api_uids' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$fbes_frequency  =  get_option ( 'fbes_frequency' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									#Get new updated option values, and save them
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if (  ! empty ( $_POST [ 'update' ])  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$fbes_api_key  =  $_POST [ 'fbes_api_key' ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										update_option ( 'fbes_api_key' ,  $fbes_api_key ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$fbes_api_secret  =  $_POST [ 'fbes_api_secret' ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										update_option ( 'fbes_api_secret' ,  $fbes_api_secret ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$fbes_api_uid  =  $_POST [ 'fbes_api_uid' ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										update_option ( 'fbes_api_uid' ,  $fbes_api_uid ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$fbes_frequency  =  $_POST [ 'fbes_frequency' ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										update_option ( 'fbes_frequency' ,  $fbes_frequency ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$events  =  fbes_get_events ( $fbes_api_key ,  $fbes_api_secret ,  $fbes_api_uids ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										update_schedule ( $fbes_frequency ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$msg  =  " Syncronization of Events from Facebook Complete. " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								?> 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< div  id = " message "  class = " updated fade " >< p >< strong >< ? php  echo  $msg ;  ?> </strong></p></div>
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< ? php  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									}  elseif (  ! empty ( $_POST [ 'add-uid' ])  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if ( ! in_array ( $_POST [ 'fbes_api_uid' ],  $fbes_api_uids ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$fbes_api_uids []  =  $_POST [ 'fbes_api_uid' ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											update_option ( 'fbes_api_uids' ,  $fbes_api_uids ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									}  elseif (  ! empty ( $_GET [ 'r' ])  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										foreach  ( $fbes_api_uids  as  $key  =>  $value ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if ( $fbes_api_uids [ $key ]  ==  $_GET [ 'r' ]) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												unset ( $fbes_api_uids [ $key ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										update_option ( 'fbes_api_uids' ,  $fbes_api_uids ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 	
							 
						 
					
						
							
								
									
										
										
										
											2013-04-23 02:22:57 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									require  'facebook-php-sdk/facebook.php' ;  //modified
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$facebook  =  new  Facebook ( array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										'appId'   =>   $fbes_api_key , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										'secret'  =>   $fbes_api_secret , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										'cookie'  =>  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									)); 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-23 03:29:31 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									$facebook -> setAccessToken ( $fbes_access_token ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$events  =  fbes_get_events ( $fbes_api_key ,  $fbes_api_secret ,  $fbes_access_token ,  $fbes_api_uids ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									echo  " <pre> " . json_encode ( $events ,  JSON_PRETTY_PRINT ) . " </pre> " ; 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 06:29:25 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								?> 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									< div  class = " wrap " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 	< br  />< div  class = " icon32 "  id = " icon-plugins " >< br /></ div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< h2  style = " margin-bottom:10px; " > Sync  Facebook  Events </ h2 > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< form  method = " post "  action = " <?php echo  $_SERVER['REQUEST_URI']  ?> " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< input  type = " hidden "  name = " update "  /> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< ? php 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<form action="' .  $_SERVER [ " REQUEST_URI " ]  . '" method="post"><table style="width:475px;">' ;  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<tr><td>Facebook App ID:</td><td><input type="text" id="fbes_api_key" name="fbes_api_key" value="' . htmlentities ( $fbes_api_key ) . '" size="35" /></td><tr>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<tr><td>Facebook App Secret:</td><td><input type="text" id="fbes_api_secret" name="fbes_api_secret" value="' . htmlentities ( $fbes_api_secret )  . '" size="35" /></td><tr>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<tr><td>Update Fequency:</td><td><select id="fbes_frequency" name="fbes_frequency">' ; 		
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if ( htmlentities ( $fbes_frequency ) == " daily " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<option value="daily" SELECTED>Daily</option>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<option value="daily">Daily</option>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 	
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if ( htmlentities ( $fbes_frequency ) == " twicedaily " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<option value="twicedaily" SELECTED>Twice Daily</option>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<option value="twicedaily">Twice Daily</option>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if ( htmlentities ( $fbes_frequency ) == " hourly " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<option value="hourly" SELECTED>Hourly</option>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<option value="hourly">Hourly</option>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</select>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<tr><td>Add Facebook Page UID:</td><td><input type="text" id="fbes_api_uid" name="fbes_api_uid" value="" size="15" />' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<input type="submit" value="Add" class="button-secondary" name="add-uid" /></td></tr>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<tr><td style="vertical-align:top;"></td><td>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										foreach  ( $fbes_api_uids  as  $value )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if ( $value != '' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										    	echo  '  ' . $value . '  <a href="' . $_SERVER [ " REQUEST_URI " ] . '&r=' . $value . '">remove</a><br />' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</td></tr>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<tr><td colspan="2"></td></tr><tr><td colspan="2"><br /><input type="submit" value="Update" class="button-primary"' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  ' name="update" /></td></tr></table>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										?> 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										</ form > 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-23 02:22:57 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										< ? php 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										  $code  =  $_REQUEST [ " code " ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										  if ( ! empty ( $code )){ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										    update_option ( 'fbes_access_token' ,  $facebook -> getAccessToken ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										  else  if ( ! get_option ( 'fbes_access_token' )){ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											  $params  =  array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											    'scope'         =>  'manage_pages' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											    'redirect_uri'  =>  curPageURL () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											  $loginUrl  =  $facebook -> getLoginUrl ( $params ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											  echo  " <a href=' $loginUrl '>Authorize Facebook</a> " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										?> 
 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 06:29:25 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									</ div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									< ? php  if ( isset ( $events ))  {  ?> 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< div  style = " margin-top:20px;font-size:14px;color:#444;border:1px solid #999;padding:15px;width:95%;font-face:couriernew; " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< span  style = " color:red; " > Updaing  all  facebook  events ...</ span >< br  /> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< ? php  fbes_send_events ( $events );  ?> <br />
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< span  style = " color:red; " > Events  Calendar  updated  with  current  Facebook  events .</ span >< br  />< br  /> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										</ div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									< ?  }  ?> 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< ? php 	 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2013-04-23 02:22:57 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function  curPageURL ()  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 $pageURL  =  'http' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 if  ( $_SERVER [ " HTTPS " ]  ==  " on " )  { $pageURL  .=  " s " ;} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 $pageURL  .=  " :// " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 if  ( $_SERVER [ " SERVER_PORT " ]  !=  " 80 " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  $pageURL  .=  $_SERVER [ " SERVER_NAME " ] . " : " . $_SERVER [ " SERVER_PORT " ] . $_SERVER [ " REQUEST_URI " ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  $pageURL  .=  $_SERVER [ " SERVER_NAME " ] . $_SERVER [ " REQUEST_URI " ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 return  $pageURL ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2013-04-22 06:29:25 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								?>