}
/**
* Get processors.
*
* @param string $command
*
* @return \Elementor\Data\V2\Base\Processor[]
*/
public function get_processors( $command ) {
$result = [];
if ( isset( $this->processors[ $command ] ) ) {
$result = $this->processors[ $command ];
}
return $result;
}
/**
* Register processors.
*/
public function register_processors() {
}
/**
* Register index endpoint.
*/
protected function register_index_endpoint() {
if ( ! $this->parent ) {
$this->register_endpoint( new Endpoint\Index( $this ) );
return;
}
$this->register_endpoint( new Endpoint\Index\Sub_Index_Endpoint( $this ) );
}
/**
* Register endpoint.
*
* @param \Elementor\Data\V2\Base\Endpoint $endpoint
*
* @return \Elementor\Data\V2\Base\Endpoint
*/
protected function register_endpoint( Endpoint $endpoint ) {
$command = $endpoint->get_full_command();
if ( $endpoint instanceof Endpoint\Index ) {
$this->index_endpoint = $endpoint;
} else {
$this->endpoints[ $command ] = $endpoint;
}
$format = $endpoint->get_format();
// `$e.data.registerFormat()`.
Manager::instance()->register_endpoint_format( $command, $format );
return $endpoint;
}
/**
* Register a processor.
*
* That will be later attached to the endpoint class.
*
* @param Processor $processor
*
* @return \Elementor\Data\V2\Base\Processor $processor_instance
*/
protected function register_processor( Processor $processor ) {
$command = $processor->get_command();
if ( ! isset( $this->processors[ $command ] ) ) {
$this->processors[ $command ] = [];
}
$this->processors[ $command ] [] = $processor;
return $processor;
}
/**
* Register.
*
* Endpoints & processors.
*/
protected function register() {
$this->register_index_endpoint();
$this->register_endpoints();
// Aka hooks.
$this->register_processors();
}
/**
* Get collection params by 'additionalProperties' context.
*
* @param string $context
*
* @return array
*/
protected function get_collection_params_by_additional_props_context( $context ) {
$result = [];
$collection_params = $this->get_collection_params();
foreach ( $collection_params as $collection_param_key => $collection_param ) {
if ( isset( $collection_param['additionalProperties']['context'] ) && $context === $collection_param['additionalProperties']['context'] ) {
$result[ $collection_param_key ] = $collection_param;
}
}
return $result;
}
/**
* When `$this->get_parent_name` is extended, the controller will have a parent, and will know to behave like a sub-controller.
*
* @param string $parent_name
*/
private function act_as_sub_controller( $parent_name ) {
$this->parent = Manager::instance()->get_controller( $parent_name );
if ( ! $this->parent ) {
trigger_error( "Cannot find parent controller: '$parent_name'", E_USER_ERROR ); // phpcs:ignore
}
$this->parent->sub_controllers [] = $this;
}
/**
* Controller constructor.
*
* Register endpoints on 'rest_api_init'.
*/
public function __construct() {
$this->namespace = static::get_default_namespace() . '/v' . static::get_default_version();
$this->rest_base = $this->get_name();
add_action( 'rest_api_init', function () {
$this->register(); // Because 'register' is protected.
} );
/**
* Since all actions were removed for custom internal REST server.
* Re-add the actions.
*/
add_action( 'elementor_rest_api_before_init', function () {
add_action( 'rest_api_init', function () {
$this->register();
} );
} );
$parent_name = $this->get_parent_name();
if ( $parent_name ) {
$this->act_as_sub_controller( $parent_name );
}
}
}
Fatal error: Uncaught Error: Class 'Elementor\Data\V2\Base\Controller' not found in /home/sportuga/public_html/wp-content/plugins/elementor/core/editor/data/globals/controller.php:8
Stack trace:
#0 /home/sportuga/public_html/wp-content/plugins/elementor/includes/autoloader.php(294): require()
#1 /home/sportuga/public_html/wp-content/plugins/elementor/includes/autoloader.php(330): Elementor\Autoloader::load_class('Core\\Editor\\Dat...')
#2 [internal function]: Elementor\Autoloader::autoload('Elementor\\Core\\...')
#3 /home/sportuga/public_html/wp-content/plugins/elementor/core/editor/editor.php(533): spl_autoload_call('Elementor\\Core\\...')
#4 /home/sportuga/public_html/wp-content/plugins/elementor/includes/plugin.php(725): Elementor\Core\Editor\Editor->__construct()
#5 /home/sportuga/public_html/wp-content/plugins/elementor/includes/plugin.php(647): Elementor\Plugin->init_components()
#6 /home/sportuga/public_html/wp-includes/class-wp-hook.php(324): Elementor\Plugin->init('')
#7 /home/sportuga/public_html/wp-includes/cla in /home/sportuga/public_html/wp-content/plugins/elementor/core/editor/data/globals/controller.php on line 8