Viewing File: /home/maglabs/exclusive/wp-content/plugins/g5-blog/inc/elementor.class.php
<?php
// Do not allow directly accessing this file.
if (!defined('ABSPATH')) {
exit('Direct script access denied.');
}
if (!class_exists('G5Blog_Elementor')) {
class G5Blog_Elementor {
private static $_instance;
public static function getInstance()
{
if (self::$_instance == NULL) {
self::$_instance = new self();
}
return self::$_instance;
}
public function init() {
add_filter('ube_get_element_configs',array($this,'change_ube_get_element_configs'));
add_filter('ube_autoload_file_dir',array($this,'change_ube_autoload_file_dir'),10,2);
add_filter('ube_element_listing_query_args',array($this,'set_query_args'),10,2);
add_action( 'init', array( $this, 'register_scripts' ) );
}
private function get_elements() {
return apply_filters('g5blog_elements',array(
'Posts' => esc_html__('Posts','g5-blog'),
'Posts_Slider' => esc_html__('Posts Slider','g5-blog'),
));
}
public function change_ube_get_element_configs($configs) {
$elements = $this->get_elements();
$g5_elements = isset($configs['g5_elements']) ? $configs['g5_elements'] : array(
'title' => esc_html__('G5 Elements', 'g5-blog'),
'items' => array()
);
foreach ($elements as $k => $v) {
$g5_elements['items']["G5Blog_{$k}"] = array(
'title' => $v
);
}
$configs['g5_elements'] = $g5_elements;
return $configs;
}
public function change_ube_autoload_file_dir($path, $class) {
$prefix = 'UBE_Element_G5Blog_';
if (strpos($class,$prefix) === 0) {
$file_name = substr($class,strlen($prefix));
$file_name = str_replace( '_', '-', $file_name );
$file_name = strtolower( $file_name );
//return G5BLOG()->plugin_dir( "inc/elements/{$file_name}.class.php" );
return G5BLOG()->locate_template("elements/$file_name/config.php");
}
return $path;
}
public function register_scripts() {
wp_register_script(G5BLOG()->assets_handle('post-slider'),G5BLOG()->asset_url('assets/js/elements/post-slider.min.js'),array(),G5BLOG()->plugin_ver());
wp_register_script(G5BLOG()->assets_handle('posts'),G5BLOG()->asset_url('assets/js/elements/posts.min.js'),array(),G5BLOG()->plugin_ver());
}
public function set_query_args($query_args,$atts) {
if ($query_args['post_type'] === 'post') {
$query_args['orderby'] = $atts['orderby'];
$query_args['meta_key'] = ( 'meta_value' == $atts['orderby'] || 'meta_value_num' == $atts['orderby'] ) ? $atts['meta_key'] : '';
if (!empty($atts['cat'])) {
$query_args['category__in'] = array_map('absint',$atts['cat']);
}
if (!empty($atts['tag'])) {
$query_args['tag__in'] = array_map('absint',$atts['tag']);
}
if ( $atts['time_filter'] !== 'none' ) {
$query_args['date_query'] = $this ->get_time_filter_query( $atts['time_filter'] );
}
if ( ! empty( $atts['ids']) ) {
$query_args['post__in'] = array_map('absint',$atts['ids']);
}
}
return $query_args;
}
public function get_time_filter_query($time_filter = null)
{
$date_query = array();
switch ($time_filter) {
// Today posts
case 'today':
$date_query = array(
array(
'after' => '1 day ago', // should not escaped because will be passed to WP_Query
),
);
break;
// Today + Yesterday posts
case 'yesterday':
$date_query = array(
array(
'after' => '2 day ago', // should not escaped because will be passed to WP_Query
),
);
break;
// Week posts
case 'week':
$date_query = array(
array(
'after' => '1 week ago', // should not escaped because will be passed to WP_Query
),
);
break;
// Month posts
case 'month':
$date_query = array(
array(
'after' => '1 month ago', // should not escaped because will be passed to WP_Query
),
);
break;
// Year posts
case 'year':
$date_query = array(
array(
'after' => '1 year ago', // should not escaped because will be passed to WP_Query
),
);
break;
}
return $date_query;
}
}
}
Back to Directory
File Manager