. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
| Server IP : 198.54.115.242 / Your IP :
216.73.216.33 [
Web Server : LiteSpeed System : Linux server233.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64 User : imereohc ( 2529) PHP Version : 8.2.30 Disable Function : NONE Domains : 1 Domains MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/imereohc/public_html/wp-content/plugins/happy-elementor-addons/classes/ |
Upload File : |
<?php
namespace Happy_Addons\Elementor;
use Elementor\Core\Common\Modules\Ajax\Module as Ajax;
defined('ABSPATH') || die();
class Library_Manager {
protected static $source = null;
public static function init() {
add_action( 'elementor/editor/footer', [ __CLASS__, 'print_template_views' ] );
add_action( 'elementor/ajax/register_actions', [ __CLASS__, 'register_ajax_actions' ] );
}
public static function print_template_views() {
include_once HAPPY_ADDONS_DIR_PATH . 'templates/template-library/templates.php';
}
public static function enqueue_assets() {
wp_enqueue_style(
'happy-addons-templates-library',
HAPPY_ADDONS_ASSETS . 'admin/css/template-library.min.css',
[
'elementor-editor',
],
HAPPY_ADDONS_VERSION
);
wp_enqueue_script(
'happy-addons-templates-library',
HAPPY_ADDONS_ASSETS . 'admin/js/template-library.min.js',
[
'happy-elementor-addons-editor',
'jquery-hover-intent',
],
HAPPY_ADDONS_VERSION,
true
);
}
/**
* Undocumented function
*
* @return Library_Source
*/
public static function get_source() {
if ( is_null( self::$source ) ) {
self::$source = new Library_Source();
}
return self::$source;
}
public static function register_ajax_actions( Ajax $ajax ) {
$ajax->register_ajax_action( 'get_ha_library_data', function( $data ) {
if ( ! current_user_can( 'edit_posts' ) ) {
throw new \Exception( 'Access Denied' );
}
if ( ! empty( $data['editor_post_id'] ) ) {
$editor_post_id = absint( $data['editor_post_id'] );
if ( ! get_post( $editor_post_id ) ) {
throw new \Exception( __( 'Post not found.', 'happy-elementor-addons' ) );
}
ha_elementor()->db->switch_to_post( $editor_post_id );
}
$result = self::get_library_data( $data );
return $result;
} );
$ajax->register_ajax_action( 'get_ha_template_data', function( $data ) {
if ( ! current_user_can( 'edit_posts' ) ) {
throw new \Exception( 'Access Denied' );
}
if ( ! empty( $data['editor_post_id'] ) ) {
$editor_post_id = absint( $data['editor_post_id'] );
if ( ! get_post( $editor_post_id ) ) {
throw new \Exception( __( 'Post not found', 'happy-elementor-addons' ) );
}
ha_elementor()->db->switch_to_post( $editor_post_id );
}
if ( empty( $data['template_id'] ) ) {
throw new \Exception( __( 'Template id missing', 'happy-elementor-addons' ) );
}
$result = self::get_template_data( $data );
return $result;
} );
}
public static function get_template_data( array $args ) {
$source = self::get_source();
$data = $source->get_data( $args );
return $data;
}
/**
* Get library data from cache or remote
*
* type_tags has been added in version 2.15.0
*
* @param array $args
*
* @return array
*/
public static function get_library_data( array $args ) {
$source = self::get_source();
if ( ! empty( $args['sync'] ) ) {
Library_Source::get_library_data( true );
}
return [
'templates' => $source->get_items(),
'tags' => $source->get_tags(),
'type_tags' => $source->get_type_tags(),
];
}
}
Library_Manager::init();