| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 |
- <?php
- /**
- * @author ThemePunch <info@themepunch.com>
- * @link http://www.themepunch.com/
- * @copyright 2015 ThemePunch
- */
- if( !defined( 'ABSPATH') ) exit();
- class RevSliderEventsManager {
-
- const DEFAULT_FILTER = "none";
-
- /**
- *
- * check if events class exists
- */
- public static function isEventsExists(){
- if(defined("EM_VERSION") && defined("EM_PRO_MIN_VERSION"))
- return(true);
-
- return(false);
- }
-
-
- /**
- *
- * get sort by list
- */
- public static function getArrFilterTypes(){
-
- $arrEventsSort = array("none" => __("All Events",'revslider'),
- "today" => __("Today",'revslider'),
- "tomorrow"=>__("Tomorrow",'revslider'),
- "future"=>__("Future",'revslider'),
- "past"=>__("Past",'revslider'),
- "month"=>__("This Month",'revslider'),
- "nextmonth"=>__("Next Month",'revslider')
- );
-
- return($arrEventsSort);
- }
-
-
- /**
- *
- * get meta query
- */
- public static function getWPQuery($filterType, $sortBy){
- $response = array();
-
- $dayMs = 60*60*24;
-
- $time = current_time('timestamp');
- $todayStart = strtotime(date('Y-m-d', $time));
- $todayEnd = $todayStart + $dayMs-1;
- $tomorrowStart = $todayEnd+1;
- $tomorrowEnd = $tomorrowStart + $dayMs-1;
-
- $start_month = strtotime(date('Y-m-1',$time));
- $end_month = strtotime(date('Y-m-t',$time)) + 86399;
- $next_month_middle = strtotime('+1 month', $time); //get the end of this month + 1 day
- $start_next_month = strtotime(date('Y-m-1',$next_month_middle));
- $end_next_month = strtotime(date('Y-m-t',$next_month_middle)) + 86399;
-
- $query = array();
-
- switch($filterType){
- case self::DEFAULT_FILTER: //none
- break;
- case "today":
- $query[] = array( 'key' => '_start_ts', 'value' => $todayEnd, 'compare' => '<=' );
- $query[] = array( 'key' => '_end_ts', 'value' => $todayStart, 'compare' => '>=' );
- break;
- case "future":
- $query[] = array( 'key' => '_start_ts', 'value' => $time, 'compare' => '>' );
- break;
- case "tomorrow":
- $query[] = array( 'key' => '_start_ts', 'value' => $tomorrowEnd, 'compare' => '<=' );
- $query[] = array( 'key' => '_end_ts', 'value' => $todayStart, 'compare' => '>=' );
- break;
- case "past":
- $query[] = array( 'key' => '_end_ts', 'value' => $todayStart, 'compare' => '<' );
- break;
- case "month":
- $query[] = array( 'key' => '_start_ts', 'value' => $end_month, 'compare' => '<=' );
- $query[] = array( 'key' => '_end_ts', 'value' => $start_month, 'compare' => '>=' );
- break;
- case "nextmonth":
- $query[] = array( 'key' => '_start_ts', 'value' => $end_next_month, 'compare' => '<=' );
- $query[] = array( 'key' => '_end_ts', 'value' => $start_next_month, 'compare' => '>=' );
- break;
- default:
- RevSliderFunctions::throwError("Wrong event filter");
- break;
- }
-
- if(!empty($query))
- $response["meta_query"] = $query;
-
- //convert sortby
- switch($sortBy){
- case "event_start_date":
- $response["orderby"] = "meta_value_num";
- $response["meta_key"] = "_start_ts";
- break;
- case "event_end_date":
- $response["orderby"] = "meta_value_num";
- $response["meta_key"] = "_end_ts";
- break;
- }
-
- return($response);
- }
-
- /**
- *
- * get event post data in array.
- * if the post is not event, return empty array
- */
- public static function getEventPostData($postID){
- if(self::isEventsExists() == false)
- return(array());
-
- $postType = get_post_type($postID);
- if($postType != EM_POST_TYPE_EVENT)
- return(array());
-
- $event = new EM_Event($postID, 'post_id');
- $location = $event->get_location();
-
- $arrEvent = $event->to_array();
- $arrLocation = $location->to_array();
- $date_format = get_option('date_format');
- $time_format = get_option('time_format');
-
- $arrEvent["event_start_date"] = date_format(date_create_from_format('Y-m-d', $arrEvent["event_start_date"]), $date_format);
- $arrEvent["event_end_date"] = date_format(date_create_from_format('Y-m-d', $arrEvent["event_end_date"]), $date_format);
- $arrEvent["event_start_time"] = date_format(date_create_from_format('H:i:s', $arrEvent["event_start_time"]), $time_format);
- $arrEvent["event_end_time"] = date_format(date_create_from_format('H:i:s', $arrEvent["event_end_time"]), $time_format);
-
- $response = array();
- $response["start_date"] = $arrEvent["event_start_date"];
- $response["end_date"] = $arrEvent["event_end_date"];
- $response["start_time"] = $arrEvent["event_start_time"];
- $response["end_time"] = $arrEvent["event_end_time"];
- $response["id"] = $arrEvent["event_id"];
- $response["location_name"] = $arrLocation["location_name"];
- $response["location_address"] = $arrLocation["location_address"];
- $response["location_slug"] = $arrLocation["location_slug"];
- $response["location_town"] = $arrLocation["location_town"];
- $response["location_state"] = $arrLocation["location_state"];
- $response["location_postcode"] = $arrLocation["location_postcode"];
- $response["location_region"] = $arrLocation["location_region"];
- $response["location_country"] = $arrLocation["location_country"];
- $response["location_latitude"] = $arrLocation["location_latitude"];
- $response["location_longitude"] = $arrLocation["location_longitude"];
-
- return($response);
- }
-
- /**
- *
- * get events sort by array
- */
- public static function getArrSortBy(){
- $arrSortBy = array();
- $arrSortBy["event_start_date"] = __("Event Start Date",'revslider');
- $arrSortBy["event_end_date"] = __("Event End Date",'revslider');
- return($arrSortBy);
- }
-
- }
- /**
- * old classname extends new one (old classnames will be obsolete soon)
- * @since: 5.0
- **/
- class UniteEmRev extends RevSliderEventsManager {}
- ?>
|