first commit

This commit is contained in:
Roman Pyrih
2026-03-10 09:50:10 +01:00
commit 64c4a90405
7289 changed files with 2645777 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
<?php
namespace Elementor\Modules\AtomicWidgets\Query;
use Elementor\Modules\WpRest\Base\Query as Query_Base;
use Elementor\Modules\WpRest\Classes\Post_Query;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
class Post_Query_Builder extends Query_Builder_Base {
public function build(): array {
$config = $this->config;
$params = Post_Query::build_query_params( [
Post_Query::KEYS_CONVERSION_MAP_KEY => $config[ Query_Base::KEYS_CONVERSION_MAP_KEY ] ?? null,
Post_Query::INCLUDED_TYPE_KEY => $config[ Query_Base::INCLUDED_TYPE_KEY ] ?? null,
Post_Query::EXCLUDED_TYPE_KEY => $config[ Query_Base::EXCLUDED_TYPE_KEY ] ?? null,
Post_Query::META_QUERY_KEY => $config[ Query_Base::META_QUERY_KEY ] ?? null,
Post_Query::TAX_QUERY_KEY => $config[ Query_Base::TAX_QUERY_KEY ] ?? null,
Post_Query::IS_PUBLIC_KEY => $config[ Query_Base::IS_PUBLIC_KEY ] ?? null,
Post_Query::ITEMS_COUNT_KEY => $config[ Query_Base::ITEMS_COUNT_KEY ] ?? null,
] );
$endpoint = $config['endpoint'] ?? Post_Query::ENDPOINT;
$namespace = $config['namespace'] ?? Post_Query::NAMESPACE;
$url = $namespace . '/' . $endpoint;
return [
'params' => $params,
'url' => $url,
];
}
}

View File

@@ -0,0 +1,17 @@
<?php
namespace Elementor\Modules\AtomicWidgets\Query;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
abstract class Query_Builder_Base {
protected array $config;
public function __construct( array $config ) {
$this->config = $config;
}
abstract public function build(): array;
}

View File

@@ -0,0 +1,33 @@
<?php
namespace Elementor\Modules\AtomicWidgets\Query;
use Elementor\Modules\WpRest\Classes\Post_Query;
use Elementor\Modules\WpRest\Classes\Term_Query;
use Elementor\Modules\WpRest\Classes\User_Query;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
class Query_Builder_Factory {
const ENDPOINT_KEY = 'endpoint';
private const BUILDERS = [
Post_Query::ENDPOINT => Post_Query_Builder::class,
Term_Query::ENDPOINT => Term_Query_Builder::class,
User_Query::ENDPOINT => User_Query_Builder::class,
];
public static function create( ?array $config = [] ): Query_Builder_Base {
$endpoint = $config[ self::ENDPOINT_KEY ] ?? Post_Query::ENDPOINT;
$class = self::BUILDERS[ $endpoint ] ?? null;
if ( ! $class ) {
throw new \Exception( 'Unsupported query type' );
}
return new $class( $config ?? [] );
}
}

View File

@@ -0,0 +1,35 @@
<?php
namespace Elementor\Modules\AtomicWidgets\Query;
use Elementor\Modules\WpRest\Base\Query as Query_Base;
use Elementor\Modules\WpRest\Classes\Term_Query;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
class Term_Query_Builder extends Query_Builder_Base {
public function build(): array {
$config = $this->config;
$params = Term_Query::build_query_params( [
Term_Query::KEYS_CONVERSION_MAP_KEY => $config[ Query_Base::KEYS_CONVERSION_MAP_KEY ] ?? null,
Term_Query::INCLUDED_TYPE_KEY => $config[ Query_Base::INCLUDED_TYPE_KEY ] ?? null,
Term_Query::EXCLUDED_TYPE_KEY => $config[ Query_Base::EXCLUDED_TYPE_KEY ] ?? null,
Term_Query::META_QUERY_KEY => $config[ Query_Base::META_QUERY_KEY ] ?? null,
Term_Query::IS_PUBLIC_KEY => $config[ Query_Base::IS_PUBLIC_KEY ] ?? null,
Term_Query::HIDE_EMPTY_KEY => $config[ Query_Base::HIDE_EMPTY_KEY ] ?? null,
Term_Query::ITEMS_COUNT_KEY => $config[ Query_Base::ITEMS_COUNT_KEY ] ?? null,
] );
$endpoint = $config['endpoint'] ?? Term_Query::ENDPOINT;
$namespace = $config['namespace'] ?? Term_Query::NAMESPACE;
$url = $namespace . '/' . $endpoint;
return [
'params' => $params,
'url' => $url,
];
}
}

View File

@@ -0,0 +1,33 @@
<?php
namespace Elementor\Modules\AtomicWidgets\Query;
use Elementor\Modules\WpRest\Base\Query as Query_Base;
use Elementor\Modules\WpRest\Classes\User_Query;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
class User_Query_Builder extends Query_Builder_Base {
public function build(): array {
$config = $this->config;
$params = User_Query::build_query_params( [
User_Query::KEYS_CONVERSION_MAP_KEY => $config[ Query_Base::KEYS_CONVERSION_MAP_KEY ] ?? null,
User_Query::INCLUDED_TYPE_KEY => $config[ Query_Base::INCLUDED_TYPE_KEY ] ?? null,
User_Query::EXCLUDED_TYPE_KEY => $config[ Query_Base::EXCLUDED_TYPE_KEY ] ?? null,
User_Query::META_QUERY_KEY => $config[ Query_Base::META_QUERY_KEY ] ?? null,
User_Query::ITEMS_COUNT_KEY => $config[ Query_Base::ITEMS_COUNT_KEY ] ?? null,
] );
$endpoint = $config['endpoint'] ?? User_Query::ENDPOINT;
$namespace = $config['namespace'] ?? User_Query::NAMESPACE;
$url = $namespace . '/' . $endpoint;
return [
'params' => $params,
'url' => $url,
];
}
}