$v ) { if ( ! in_array( $k, array( 'controls', 'sections', 'panels', 'plugin', 'path', 'backup', 'plugin_uri', 'plugin_dir', ) ) ) { continue; } $this->$k = $v; } if ( $this->backup ) { /** * Let's initiate a backup instance */ $backup = Epsilon_Content_Backup::get_instance(); } /** * Define Framework uri and paths */ $this->define_paths(); /** * Enqueue scripts and styles */ $this->start_enqueues(); /** * Add quick links */ $this->add_action_links(); /** * AJAX handling moved to a different class */ new Epsilon_Ajax_Controller(); } /** * Init custom controls * * @param object $wp_customize */ public function init_controls( $wp_customize ) { foreach ( $this->controls as $control ) { if ( file_exists( EPSILON_PATH . '/customizer/controls/class-epsilon-control-' . $control . '.php' ) ) { require_once EPSILON_PATH . '/customizer/controls/class-epsilon-control-' . $control . '.php'; } if ( file_exists( EPSILON_PATH . '/customizer/settings/class-epsilon-setting-' . $control . '.php' ) ) { require_once EPSILON_PATH . '/customizer/settings/class-epsilon-setting-' . $control . '.php'; } } foreach ( $this->sections as $section ) { if ( file_exists( EPSILON_PATH . '/customizer/sections/class-epsilon-section-' . $section . '.php' ) ) { require_once EPSILON_PATH . '/customizer/sections/class-epsilon-section-' . $section . '.php'; } } foreach ( $this->panels as $panel ) { if ( file_exists( EPSILON_PATH . '/customizer/panels/class-epsilon-panel-' . $panel . '.php' ) ) { require_once EPSILON_PATH . '/customizer/panels/class-epsilon-panel-' . $panel . '.php'; } } /** * Expose Manager to the Epsilon Customizer class. */ Epsilon_Customizer::get_instance( $wp_customize ); } /** * Add quick links to point in customizer */ public function add_action_links() { add_filter( 'page_row_actions', array( 'Epsilon_Customizer', 'add_action_links' ), 99, 2 ); } /** * Centralize scripts and styles in a function for easier maintenance * * @since 1.1.0 */ public function start_enqueues() { /** * Admin enqueues */ add_action( 'admin_enqueue_scripts', array( $this, 'enqueue' ) ); /** * Customizer enqueues & controls */ add_action( 'customize_register', array( $this, 'init_controls' ), 10 ); add_action( 'customize_controls_enqueue_scripts', array( $this, 'customizer_enqueue_scripts' ), 25 ); add_action( 'customize_preview_init', array( $this, 'customize_preview_styles' ), 25 ); /** * Repeater fields templates */ add_action( 'customize_controls_print_footer_scripts', array( 'Epsilon_Repeater_Templates', 'field_repeater_js_template', ), 0 ); add_action( 'customize_controls_print_footer_scripts', array( 'Epsilon_Repeater_Templates', 'section_repeater_js_template', ), 0 ); } /** * @since 1.0.0 */ public function enqueue() { wp_enqueue_script( 'epsilon-admin', EPSILON_URI . '/assets/js/epsilon-framework-admin.js', array( 'jquery' ) ); wp_localize_script( 'epsilon-admin', 'EpsilonWPUrls', array( 'siteurl' => get_option( 'siteurl' ), 'theme' => get_template_directory_uri(), 'ajaxurl' => admin_url( 'admin-ajax.php' ), 'ajax_nonce' => wp_create_nonce( 'epsilon_nonce' ), ) ); wp_enqueue_style( 'epsilon-admin', EPSILON_URI . '/assets/css/style-admin.css' ); } /** * Binds JS handlers to make Theme Customizer preview reload changes asynchronously. */ public function customize_preview_styles() { wp_enqueue_style( 'epsilon-styles', EPSILON_URI . '/assets/css/style.css' ); wp_enqueue_script( 'epsilon-previewer', EPSILON_URI . '/assets/js/epsilon-framework-previewer.js', array( 'jquery', 'customize-preview', ), 2, true ); wp_localize_script( 'epsilon-previewer', 'EpsilonWPUrls', array( 'siteurl' => get_option( 'siteurl' ), 'theme' => get_template_directory_uri(), 'ajaxurl' => admin_url( 'admin-ajax.php' ), 'ajax_nonce' => wp_create_nonce( 'epsilon_nonce' ), ) ); } /* * Our Customizer script * * Dependencies: Customizer Controls script (core) */ public function customizer_enqueue_scripts() { wp_enqueue_script( 'epsilon-object', EPSILON_URI . '/assets/js/epsilon-framework-customizer.js', array( 'jquery', 'customize-controls', ) ); wp_localize_script( 'epsilon-object', 'EpsilonWPUrls', array( 'siteurl' => get_option( 'siteurl' ), 'theme' => get_template_directory_uri(), 'ajaxurl' => admin_url( 'admin-ajax.php' ), 'ajax_nonce' => wp_create_nonce( 'epsilon_nonce' ), ) ); wp_localize_script( 'epsilon-object', 'EpsilonTranslations', array( 'remove' => esc_html__( 'Remove', 'epsilon-framework' ), 'add' => esc_html__( 'Add', 'epsilon-framework' ), 'selectFile' => esc_html__( 'Upload image', 'epsilon-framework' ), 'row' => esc_html__( 'Row', 'epsilon-framework' ), ) ); wp_enqueue_style( 'font-awesome', EPSILON_URI . '/assets/vendors/fontawesome/font-awesome.css' ); wp_enqueue_style( 'epsilon-styles', EPSILON_URI . '/assets/css/style.css' ); } /** * Define epsilon loading paths */ public function define_paths() { $dir_uri = get_template_directory_uri(); $dir = get_template_directory(); if ( $this->plugin ) { $dir_uri = $this->plugin_uri; $dir = $this->plugin_path; } /** * Define URI and PATH for the framework */ define( 'EPSILON_URI', $dir_uri . $this->path . '/epsilon-framework' ); define( 'EPSILON_PATH', $dir . $this->path . '/epsilon-framework' ); define( 'EPSILON_BACKUP', $this->backup ); } }