HEX
Server: Apache/2.4.6 (CentOS) PHP/5.6.39
System: Linux izj6c6ukj0hyugxsgmuxz3z 3.10.0-514.6.2.el7.x86_64 #1 SMP Thu Feb 23 03:04:39 UTC 2017 x86_64
User: root (0)
PHP: 5.6.39
Disabled: NONE
Upload Files
File: /web/data/blog.tbbbearing.com/wp-content/themes/blogasm/inc/framework/demo-importer/class-demo.php
<?php
/**
 * Demo class
 *
 * @package Blogasm
 */

if ( ! class_exists( 'Blogasm_Demo' ) ) {

    /**
     * Main class.
     *
     * @since 0.2.0
     */
    class Blogasm_Demo {

        /**
         * Singleton instance of Blogasm_Demo.
         *
         * @var Blogasm_Demo $instance Blogasm_Demo instance.
         */
        private static $instance;

        /**
         * Configuration.
         *
         * @var array $config Configuration.
         */
        private $config;

        /**
         * Main Blogasm_Demo instance.
         *
         * @since 0.2.0
         *
         * @param array $config Configuration array.
         */
        public static function init( $config ) {
            if ( ! isset( self::$instance ) && ! ( self::$instance instanceof Blogasm_Demo ) ) {
                self::$instance = new Blogasm_Demo();
                if ( ! empty( $config ) && is_array( $config ) ) {
                    self::$instance->config = $config;
                    self::$instance->setup_actions();
                }
            }
        }

        /**
         * Setup actions.
         *
         * @since 0.2.0
         */
        public function setup_actions() {

            // Disable branding.
            add_filter( 'pt-ocdi/disable_pt_branding', '__return_true' );

            // OCDI import files.
            add_filter( 'pt-ocdi/import_files', array( $this, 'ocdi_files' ), 99 );

            // OCDI after import.
            add_action( 'pt-ocdi/after_import', array( $this, 'ocdi_after_import' ) );

            // OCDI additional intro text.
            add_filter( 'pt-ocdi/plugin_intro_text', array( $this, 'additional_intro_text' ) );


        }

        /**
         * OCDI files.
         *
         * @since 0.2.0
         */
        public function ocdi_files() {

            $ocdi = isset( $this->config['ocdi'] ) ? $this->config['ocdi'] : array();
            return $ocdi;
        }

        /**
         * Intro message.
         *
         * @since 0.2.0
         *
         * @param string $intro Intro.
         * @return string Modified intro.
         */
        public function additional_intro_text( $intro ) {

            $intro_content = isset( $this->config['intro_content'] ) ? $this->config['intro_content'] : '';

            if ( ! empty( $intro_content ) ) {
                $message  = '<div class="ocdi__intro-text">';
                $message .= wp_kses_post( wpautop( $intro_content ) );
                $message .= '</div><!-- .ocdi__intro-text -->';
                $intro   .= $message;
            }
            return $intro;
        }


        /**
         * OCDI after import.
         *
         * @since 0.2.0
         */
        public function ocdi_after_import( $selected_import ) {

            // Set static front page.
            $static_page = isset( $this->config['static_page'] ) ? $this->config['static_page'] : '';
            $posts_page  = isset( $this->config['posts_page'] ) ? $this->config['posts_page'] : '';

            $pages = array();

            if ( $static_page ) {
                $pages['page_on_front'] = $static_page;
            }

            if ( $posts_page ) {
                $pages['page_for_posts'] = $posts_page;
            }

            if ( ! empty( $pages ) ) {
                foreach ( $pages as $option_key => $slug ) {
                    $result = get_page_by_path( $slug );
                    if ( $result ) {
                        if ( is_array( $result ) ) {
                            $object = array_shift( $result );
                        } else {
                            $object = $result;
                        }

                        update_option( $option_key, $object->ID );
                    }
                }

                update_option( 'show_on_front', 'page' );
            }

            // Set menu locations.
            $menu_details = isset( $this->config['menu_locations'] ) ? $this->config['menu_locations'] : array();
            if ( ! empty( $menu_details ) ) {
                $nav_settings  = array();
                $current_menus = wp_get_nav_menus();

                if ( ! empty( $current_menus ) && ! is_wp_error( $current_menus ) ) {
                    foreach ( $current_menus as $menu ) {
                        foreach ( $menu_details as $location => $menu_slug ) {
                            if ( $menu->slug === $menu_slug ) {
                                $nav_settings[ $location ] = $menu->term_id;
                            }
                        }
                    }
                }

                set_theme_mod( 'nav_menu_locations', $nav_settings );
            }

            // Update default post as draft
            $post_id = 1;
            $post_type = get_post_type( $post_id );

            if ( 'post' == $post_type ) {

                //add the default category with id
                $data = array(
                    'ID'            => $post_id,
                    'post_status'   => 'draft',
                );

                wp_update_post( $data );
            }

            if ( 'Demo 1' === $selected_import['import_file_name'] ) {
                // Set posts per page.
                update_option( 'posts_per_page', 15 );
            }
        }
    }

} // End if().

/**
 * Demo configuration
 *
 * @package Blogasm
 */

$config = array(
    'menu_locations' => array(
        'primary-menu'      => 'primary-menu',
        'secondary-menu'    => 'secondary-menu',
    ),
    'ocdi'           => array(

        array(
            'import_file_name'             => 'Demo 1',
            //'categories'                   => array( 'Minimalist' ),
            'local_import_file'            => BLOGASM_THEME_DIR . '/inc/framework/demo-importer/demo/demo-1/content.xml',
            'local_import_widget_file'     => BLOGASM_THEME_DIR . '/inc/framework/demo-importer/demo/demo-1/widget.wie',
            'local_import_customizer_file' => BLOGASM_THEME_DIR . '/inc/framework/demo-importer/demo/demo-1/customizer.dat',
            'import_preview_image_url'     => BLOGASM_THEME_URI . '/inc/framework/demo-importer/demo/demo-1/screenshot.jpg',
            'preview_url'                  => 'https://precisethemes.com/demo/blogasm-free/',
        ),
    ),

    'intro_content'  => esc_html__( 'NOTE: In demo import, category selection could be omitted in old (non-fresh) WordPress setup. After import is complete, please go to Widgets admin page under Appearance menu and select the appropriate category in the widgets.', 'blogasm' ),
);

Blogasm_Demo::init( apply_filters( 'blogasm_demo_filter', $config ) );