Willkommen bei WordPress. Dies ist dein erster Beitrag. Bearbeite oder lösche ihn und beginne mit dem Schreiben!
Hallo Welt!
von raredesign | Dez 3, 2019 | Allgemein | 0 Kommentare
Cokiee Shell
Current Path : /var/www/web28/html/wp-content/plugins/fusion-builder/inc/ |
Current File : //var/www/web28/html/wp-content/plugins/fusion-builder/inc/class-awb-demo-import.php |
<?php /** * Avada Demo Import * * @package Avada-Builder * @since 3.5 */ // Do not allow directly accessing this file. if ( ! defined( 'ABSPATH' ) ) { exit( 'Direct script access denied.' ); } /** * AWB Demo class. * * @since 3.5 */ class AWB_Demo_Import { /** * The one, true instance of this object. * * @static * @access private * @since 3.5 * @var object */ private static $instance; /** * Location. * * @access private * @since 3.5 * @var object */ private $location; /** * URL to fetch for demo data. * * @access private * @since 3.5 * @var boolean */ private $demo_url = 'https://updates.theme-fusion.com'; /** * The demo data. * * @access public * @since 3.5 * @var mixed */ public $demo_data = null; /** * URL to fetch for page data. * * @access private * @since 3.5 * @var boolean */ private $page_url = 'https://avada.website'; /** * Class constructor. * * @since 3.5 * @access private */ private function __construct() { add_action( 'wp_ajax_awb_load_websites', [ $this, 'get_ajax_website_data' ] ); add_action( 'wp_ajax_awb_load_websites_page', [ $this, 'load_website_page' ] ); add_action( 'fusion_builder_load_templates', [ $this, 'library_template' ] ); add_action( 'fusion_builder_after', [ $this, 'library_template' ] ); $this->location = true === Fusion_App()->is_builder || ( isset( $_POST ) && isset( $_POST['fusion_front_end'] ) && $_POST['fusion_front_end'] ) ? 'front' : 'back'; // phpcs:ignore WordPress.Security.NonceVerification, WordPress.Security.ValidatedSanitizedInput } /** * Creates or returns an instance of this class. * * @static * @access public * @since 3.5 */ public static function get_instance() { // If an instance hasn't been created and set to $instance create an instance and set it to $instance. if ( null === self::$instance ) { self::$instance = new AWB_Demo_Import(); } return self::$instance; } /** * Get the data for ajax website requests. * * @access public * @since 3.5 * @return void */ public function get_ajax_website_data() { check_ajax_referer( 'fusion_load_nonce', 'fusion_load_nonce' ); echo wp_json_encode( $this->get_website_data() ); wp_die(); } /** * Return the demo URL. * * @access public * @since 3.5 * @return string */ public function get_demo_url() { return $this->demo_url; } /** * Get the demo data from REST endpoint. * * @access public * @since 3.5 * @return array */ public function get_website_data() { if ( null !== $this->demo_data ) { return $this->demo_data; } if ( false !== get_transient( 'awb_library_demo' ) ) { $this->demo_data = get_transient( 'awb_library_demo' ); return $this->demo_data; } $response = wp_remote_get( $this->get_demo_url() . '/wp-json/demo/full', [ 'timeout' => 60 ] ); // Exit if error. if ( is_wp_error( $response ) ) { return; } // Get the body. $resources = json_decode( wp_remote_retrieve_body( $response ), true ); if ( is_array( $resources ) && ! isset( $resources['tags'] ) ) { return; } set_transient( 'awb_library_demo', $resources, DAY_IN_SECONDS ); return $resources; } /** * Load website page. * * @access public * @since 3.5 * @return void */ public function load_website_page() { check_ajax_referer( 'fusion_load_nonce', 'fusion_load_nonce' ); if ( ! isset( $_POST['post_id'] ) && '' === $_POST['post_id'] ) { die( -1 ); } if ( ! isset( $_POST['demo_name'] ) && '' === $_POST['demo_name'] ) { die( -1 ); } if ( ! isset( $_POST['page_id'] ) && '' === $_POST['page_id'] ) { die( -1 ); } $demo_name = sanitize_text_field( wp_unslash( $_POST['demo_name'] ) ); $demo_name = str_replace( '_', '-', $demo_name ); $post_id = (int) $_POST['post_id']; $page_id = (int) $_POST['page_id']; $data = [ 'success' => true, 'post_id' => $post_id, ]; $page_ep = $this->page_url . '/' . $demo_name . '/wp-json/wp/v2/pages/' . $page_id . '/'; $response = wp_remote_get( $page_ep, [ 'timeout' => 60 ] ); // Exit if error. if ( is_wp_error( $response ) ) { $data['success'] = false; echo wp_json_encode( $data ); die(); } // Get the body. $resources = json_decode( wp_remote_retrieve_body( $response ), true ); // Set post_content. if ( isset( $resources['content'] ) && isset( $resources['content']['raw'] ) ) { $data['post_content'] = $resources['content']['raw']; } else { $data['success'] = false; // required to have post_content otherwise flag it as error. } // Set page template. if ( isset( $resources['template'] ) && ! empty( $resources['template'] ) ) { $data['page_template'] = $resources['template']; } // TODO: data meta. if ( isset( $resources['avada_media'] ) && is_array( $resources['avada_media'] ) ) { $data['avada_media'] = $resources['avada_media']; } $json_data = wp_json_encode( $data ); die( $json_data ); // phpcs:ignore WordPress.Security.EscapeOutput } /** * Template used for website layouts. * * @access public * @since 3.5 * @return void */ public function library_template() { ?> <script type="text/html" id="tmpl-fusion_website_tags"> <# var total = _.size( data ); #> <h3 class="awb-sites-heading-primary"><?php esc_html_e( 'Import Websites Pages', 'fusion-builder' ); ?></h3> <div class="awb-sites-search-wrapper"> <span class="fusiona-search"></span> <input type="text" id="awb_sites_search_demos" placeholder="<?php esc_html_e( 'Paste page URL', 'fusion-builder' ); ?>"> </div> <h4 class="awb-sites-heading-secondary"><?php esc_html_e( 'Filter Websites', 'fusion-builder' ); ?></h4> <ul> <li data-slug="all" class="current"><?php esc_html_e( 'All', 'fusion-builder' ); ?> <span>{{ total }}</span></li> <# _.each( tags, function( tag, slug ) { #> <li data-slug="{{ slug }}">{{{ tag.name }}} <span>{{ tag.count }}</span></li> <# } );#> </ul> </script> <script type="text/html" id="tmpl-fusion_website_layout"> <# var slugs = ''; if ( 'object' === typeof tags ) { _.each( tags, function( tag ) { slugs += tag + ' '; } ); slugs.trim(); } #> <li class="fusion-page-layout awb-demo-pages-layout" data-website_id="{{ slug }}" data-website_title="{{{ post_title }}}" data-slug="{{ slugs }}"> <div class="preview lazy-load"> <# if ( 'undefined' !== typeof thumbnail ) { #> <img src="data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27{{ thumbnail.width }}%27%20height%3D%27{{ thumbnail.height }}%27%20viewBox%3D%270%200%20{{ thumbnail.width }}%20{{ thumbnail.height }}%27%3E%3Crect%20width%3D%27{{ thumbnail.width }}%27%20height%3D%273{{ thumbnail.height }}%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E" alt="" width="{{ thumbnail.width }}" height="{{ thumbnail.height }}" data-src="{{ thumbnail.url }}" data-alt="{{ post_title }}"/> <# } #> </div> <div class="bar"> <span class="fusion_module_title">{{ post_title }}</span> </div> </li> </script> <script type="text/html" id="tmpl-fusion_website_pages"> <div class="awb-page-item demo-{{{ slug }}} hidden" data-website_id="{{ slug }}" data-website_title="{{{ post_title }}}"> <div class="awb-page-wrap"> <ul class="awb-website-pages"> <# if ( 'undefined' !== typeof pages ) { _.each( pages, function( page, page_key ) { var site_link = page.link.replace( /^(https?):\/\//, '' ); #> <li class="awb-demo-page-link" data-page-link="{{{ site_link }}}"><span>{{{ page.name }}}</span> <a href="{{{ page.link }}}" class="awb-sites-preview" target="_blank"><span class="fusiona-eye"></span> <?php esc_html_e( 'Preview', 'fusion-builder' ); ?></a> <a href="#" data-demo-name="{{{ slug }}}" data-page-name="{{ page_key }}" data-page-id="{{ page.ID }}" data-post-id="{{ <?php echo ( 'front' === $this->location ) ? '0' : 'fusionBuilderConfig.post_id'; ?> }}" class="button button-primary awb-sites-import-js"><?php esc_html_e( 'Import', 'fusion-builder' ); ?></a></li> <# } ); } #> </ul> <# if ( 'undefined' !== typeof thumbnail ) { #> <img width="240" src="{{{ thumbnail.url }}}"> <# } #> </div> </div> </script> <script type="text/template" id="fusion-builder-demo-import-modal"> <div class="awb-admin-modal-wrap"> <div class="awb-admin-modal-inner"> <div class="awb-admin-modal-content"> <h2 class="awb-studio-modal-title"> <i class="fusiona-exclamation-sign"></i> <span><?php echo esc_html( __( 'Importing Prebuilt Page Content', 'fusion-builder' ) ); ?></span> </h2> <div class="awb-studio-modal-text"> <?php echo esc_html( __( 'Your prebuilt page content is now being imported. This includes the layout, and any associated images and videos. The import process should only take a few seconds, depending on the amount of content to be imported.', 'fusion-builder' ) ); ?> </div> </div> <div class="awb-admin-modal-status-bar"> <div class="awb-admin-modal-status-bar-label"><span></span></div> <div class="awb-admin-modal-status-bar-progress-bar"></div> <a class="button-done-demo demo-update-modal-close" href="#"><?php esc_html_e( 'Done' ); ?></a> </div> </div> <a href="#" class="awb-admin-modal-corner-close"><span class="dashicons dashicons-no-alt"></span></a> </div> <div class="awb-modal-overlay"></div> </script> <?php } } /** * Instantiates the AWB_Demo_Import class. * Make sure the class is properly set-up. * * @since object 3.0 * @return object AWB_Demo_Import */ function AWB_Demo_Import() { // phpcs:ignore WordPress.NamingConventions return AWB_Demo_Import::get_instance(); } AWB_Demo_Import();
Cokiee Shell Web 1.0, Coded By Razor
Neueste Kommentare