* On: 21/06/2018 * * @package themeisle-onboarding * @soundtrack Smell the Roses - Roger Waters */ /** * Class Themeisle_OB_Admin * * @package themeisle-onboarding */ class Themeisle_OB_Admin { /** * Initialize the Admin. */ public function init() { add_filter( 'query_vars', array( $this, 'add_onboarding_query_var' ) ); add_filter( 'ti_about_config_filter', array( $this, 'add_demo_import_tab' ), 15 ); add_action( 'after_switch_theme', array( $this, 'get_previous_theme' ) ); } /** * Memorize the previous theme to later display the import template for it. */ public function get_previous_theme() { $previous_theme = strtolower( get_option( 'theme_switched' ) ); set_theme_mod( 'ti_prev_theme', $previous_theme ); } /** * Add our onboarding query var. * * @param array $vars_array the registered query vars. * * @return array */ public function add_onboarding_query_var( $vars_array ) { array_push( $vars_array, 'onboarding' ); return $vars_array; } /** * Add about page tab list item. * * @param array $config about page config. * * @return array */ public function add_demo_import_tab( $config ) { $config['custom_tabs']['sites_library'] = array( 'title' => __( 'Sites Library', 'neve' ), 'render_callback' => array( $this, 'add_demo_import_tab_content', ), ); return $config; } /** * Add about page tab content. */ public function add_demo_import_tab_content() { ?>
render_site_library(); ?>
' . apply_filters( 'themeisle_onboarding_phprequired_text', 'ti_ob_err_phpv_less_than_5-4-0' ) . ''; return; } if ( apply_filters( 'ti_onboarding_filter_module_status', true ) !== true ) { return; } $this->enqueue(); ?>
localize_sites_library() ); wp_enqueue_script( 'themeisle-site-lib' ); } /** * Get return steps. * * @return array Import steps. */ private function get_import_steps() { return array( 'plugins' => array( 'nicename' => __( 'Installing Plugins', 'neve' ), 'done' => 'no', ), 'content' => array( 'nicename' => __( 'Importing Content', 'neve' ), 'done' => 'no', ), 'theme_mods' => array( 'nicename' => __( 'Setting Up Customizer', 'neve' ), 'done' => 'no', ), 'widgets' => array( 'nicename' => __( 'Importing Widgets', 'neve' ), 'done' => 'no', ), ); } /** * Localize the sites library. * * @return array */ private function localize_sites_library() { $theme = wp_get_theme(); $api = array( 'root' => esc_url_raw( rest_url( Themeisle_Onboarding::API_ROOT ) ), 'nonce' => wp_create_nonce( 'wp_rest' ), 'homeUrl' => esc_url( home_url() ), 'i18ln' => $this->get_strings(), 'onboarding' => 'no', 'contentImported' => $this->escape_bool_text( get_theme_mod( 'ti_content_imported', 'no' ) ), 'aboutUrl' => esc_url( admin_url( 'themes.php?page=' . $theme->__get( 'stylesheet' ) . '-welcome' ) ), 'importSteps' => $this->get_import_steps(), ); $is_onboarding = isset( $_GET['onboarding'] ) && $_GET['onboarding'] === 'yes'; if ( $is_onboarding ) { $api['onboarding'] = 'yes'; } return $api; } /** * Get strings. * * @return array */ private function get_strings() { return array( 'preview_btn' => __( 'Preview', 'neve' ), 'import_btn' => __( 'Import', 'neve' ), 'pro_btn' => __( 'Get the PRO version!', 'neve' ), 'importing' => __( 'Importing', 'neve' ), 'cancel_btn' => __( 'Cancel', 'neve' ), 'loading' => __( 'Loading', 'neve' ), 'go_to_site' => __( 'View Website', 'neve' ), 'edit_template' => __( 'Add your own content', 'neve' ), 'back' => __( 'Back to Sites Library', 'neve' ), 'note' => __( 'Note', 'neve' ), 'advanced_options' => __( 'Advanced Options', 'neve' ), 'plugins' => __( 'Plugins', 'neve' ), 'general' => __( 'General', 'neve' ), 'later' => __( 'Keep current layout', 'neve' ), 'search' => __( 'Search', 'neve' ), 'content' => __( 'Content', 'neve' ), 'customizer' => __( 'Customizer', 'neve' ), 'widgets' => __( 'Widgets', 'neve' ), 'backup_disclaimer' => __( 'We recommend you backup your website content before attempting a full site import.', 'neve' ), 'placeholders_disclaimer' => __( 'Due to copyright issues, some of the demo images will not be imported and will be replaced by placeholder images.', 'neve' ), 'import_done' => __( 'Content was successfully imported. Enjoy your new site!', 'neve' ), 'pro_demo' => __( 'Available in the PRO version', 'neve' ), 'copy_error_code' => __( 'Copy error code', 'neve' ), 'error_report' => sprintf( __( 'Hi! It seems there is a configuration issue with your server that\'s causing the import to fail. Please %1$s with us with the error code below, so we can help you fix this.', 'neve' ), sprintf( '%1$s ', __( 'get in touch', 'neve' ) ) ), ); } /** * Escape settings that return 'yes', 'no'. * * @param $value * * @return string */ private function escape_bool_text( $value ) { $allowed = array( 'yes', 'no' ); if ( ! in_array( $value, $allowed ) ) { return 'no'; } return esc_html( $value ); } }