File "module.php"
Full path: /home/kosmetik/public_html/wp-content/plugins/powerpack-elements/modules/query-control/module.php
File
size: 3.05 B
MIME-type: text/x-php
Charset: utf-8
Download Open Edit Advanced Editor Back
<?php
namespace PowerpackElements\Modules\QueryControl;
use PowerpackElements\Base\Module_Base;
use PowerpackElements\Controls\Control_Query as Query;
// Elementor Classes
use Elementor\Widget_Base;
use Elementor\Controls_Manager;
use Elementor\Core\Common\Modules\Ajax\Module as Ajax;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
/**
* \Modules\QueryControl\Module
*
* @since 1.4.13.1
*/
class Module extends Module_Base {
/**
* Module constructor.
*
* @since 1.4.13.1
* @param array $args
*/
public function __construct() {
parent::__construct();
// ACF 5 and up
if ( class_exists( '\acf' ) && function_exists( 'acf_get_field_groups' ) ) {
$this->add_component( 'acf', new Types\Acf() );
}
// Pods
if ( function_exists( 'pods' ) ) {
$this->add_component( 'pods', new Types\Pods() );
}
// Toolset
if ( function_exists( 'wpcf_admin_fields_get_groups' ) ) {
$this->add_component( 'toolset', new Types\Toolset() );
}
$this->add_component( 'posts', new Types\Posts() );
$this->add_component( 'terms', new Types\Terms() );
$this->add_component( 'authors', new Types\Authors() );
$this->add_component( 'users', new Types\Users() );
$this->add_component( 'templates', new Types\Templates() );
$this->add_component( 'templates-all', new Types\Templates_All() );
$this->add_component( 'templates-page', new Types\Templates_Page() );
$this->add_component( 'templates-section', new Types\Templates_Section() );
$this->add_component( 'templates-widget', new Types\Templates_Widget() );
$this->add_actions();
}
/**
* Get Name
*
* Get the name of the module
*
* @since 1.4.13.1
* @return string
*/
public function get_name() {
return 'query-control';
}
/**
* Add Actions
*
* Registeres actions to Elementor hooks
*
* @since 1.4.13.1
* @return void
*/
protected function add_actions() {
add_action( 'elementor/ajax/register_actions', [ $this, 'register_ajax_actions' ] );
}
/**
* Calls function depending on ajax query data
*
* @since 1.4.13.1
* @return array
*/
public function ajax_call_filter_autocomplete( array $data ) {
if ( empty( $data['query_type'] ) || empty( $data['q'] ) ) {
throw new \Exception( 'Bad Request' );
}
$results = $this->get_component( $data['query_type'] )->get_autocomplete_values( $data );
return [
'results' => $results,
];
}
/**
* Calls function to get value titles depending on ajax query type
*
* @since 1.4.13.1
* @return array
*/
public function ajax_call_control_value_titles( array $request ) {
$results = $this->get_component( $request['query_type'] )->get_value_titles( $request );
return $results;
}
/**
* Register Elementor Ajax Actions
*
* @since 1.4.13.1
* @return array
*/
public function register_ajax_actions( $ajax_manager ) {
$ajax_manager->register_ajax_action( 'pp_query_control_value_titles', [ $this, 'ajax_call_control_value_titles' ] );
$ajax_manager->register_ajax_action( 'pp_query_control_filter_autocomplete', [ $this, 'ajax_call_filter_autocomplete' ] );
}
}