%PDF- %PDF-
Direktori : /home/ugotscom/public_html/boniface/blog/wp-content/plugins/elementor/core/kits/ |
Current File : /home/ugotscom/public_html/boniface/blog/wp-content/plugins/elementor/core/kits/manager.php |
<?php namespace Elementor\Core\Kits; use Elementor\Plugin; use Elementor\Core\Files\CSS\Post as Post_CSS; use Elementor\Core\Files\CSS\Post_Preview as Post_Preview; use Elementor\Core\Documents_Manager; use Elementor\Core\Kits\Documents\Kit; use Elementor\TemplateLibrary\Source_Local; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } class Manager { const OPTION_ACTIVE = 'elementor_active_kit'; public function get_active_id() { $id = get_option( self::OPTION_ACTIVE ); $kit_post = null; if ( $id ) { $kit_post = get_post( $id ); } if ( ! $id || ! $kit_post || 'trash' === $kit_post->post_status ) { $id = $this->create_default(); update_option( self::OPTION_ACTIVE, $id ); } return $id; } public function get_active_kit() { $id = $this->get_active_id(); return Plugin::$instance->documents->get( $id ); } private function create_default() { $kit = Plugin::$instance->documents->create( 'kit', [ 'post_type' => Source_Local::CPT, 'post_title' => __( 'Default Kit', 'elementor' ), 'post_status' => 'publish', ] ); return $kit->get_id(); } /** * @param Documents_Manager $documents_manager */ public function register_document( $documents_manager ) { $documents_manager->register_document_type( 'kit', Kit::get_class_full_name() ); } public function localize_settings( $settings ) { $kit = $this->get_active_kit(); $settings = array_replace_recursive( $settings, [ 'kit_id' => $kit->get_main_id(), 'user' => [ 'can_edit_kit' => $kit->is_editable_by_current_user(), ], 'i18n' => [ 'Close' => __( 'Close', 'elementor' ), 'Back' => __( 'Back', 'elementor' ), 'Theme Style' => __( 'Theme Style', 'elementor' ), ], ] ); return $settings; } public function preview_enqueue_styles() { $kit = $this->get_kit_for_frontend(); if ( $kit ) { // On preview, the global style is not enqueued. $this->frontend_before_enqueue_styles(); Plugin::$instance->frontend->print_fonts_links(); } } public function frontend_before_enqueue_styles() { $kit = $this->get_kit_for_frontend(); if ( $kit ) { if ( $kit->is_autosave() ) { $css_file = Post_Preview::create( $kit->get_id() ); } else { $css_file = Post_CSS::create( $kit->get_id() ); } $css_file->enqueue(); Plugin::$instance->frontend->add_body_class( 'elementor-kit-' . $kit->get_main_id() ); } } public function render_panel_html() { require __DIR__ . '/views/panel.php'; } public function get_kit_for_frontend() { $kit = false; $active_kit = $this->get_active_kit(); $is_kit_preview = is_preview() && isset( $_GET['preview_id'] ) && $active_kit->get_main_id() === (int) $_GET['preview_id']; if ( $is_kit_preview ) { $kit = Plugin::$instance->documents->get_doc_or_auto_save( $active_kit->get_main_id(), get_current_user_id() ); } elseif ( 'publish' === $active_kit->get_main_post()->post_status ) { $kit = $active_kit; } return $kit; } public function __construct() { add_action( 'elementor/documents/register', [ $this, 'register_document' ] ); add_filter( 'elementor/editor/localize_settings', [ $this, 'localize_settings' ] ); add_filter( 'elementor/editor/footer', [ $this, 'render_panel_html' ] ); add_action( 'elementor/frontend/after_enqueue_global', [ $this, 'frontend_before_enqueue_styles' ], 0 ); add_action( 'elementor/preview/enqueue_styles', [ $this, 'preview_enqueue_styles' ], 0 ); } }