/** * Class Constructor. Defines the args for the theme options class * * @since 1.0.0 * * @param array $sections Panel sections. * @param array $args Class constructor arguments. * @param array $extra_tabs Extra panel tabs. // REMOVE * * @return \AvadaReduxFramework */ public function __construct($sections = array(), $args = array(), $extra_tabs = array()) { // Disregard WP AJAX 'heartbeat'call. Why waste resources? if (isset($_POST) && isset($_POST['action']) && $_POST['action'] == 'heartbeat') { // Hook, for purists. if (!has_action('avadaredux/ajax/heartbeat')) { do_action('avadaredux/ajax/heartbeat', $this); } // Buh bye! return; } // Pass parent pointer to function helper. AvadaRedux_Functions::$_parent = $this; AvadaRedux_CDN::$_parent = $this; AvadaRedux_Admin_Notices::$_parent = $this; // Set values $this->set_default_args(); $this->args = wp_parse_args($args, $this->args); if (empty($this->args['transient_time'])) { $this->args['transient_time'] = 60 * MINUTE_IN_SECONDS; } if (empty($this->args['footer_credit'])) { $this->args['footer_credit'] = '<span id="footer-thankyou">' . sprintf(__('Options panel created using %1$s', 'avadaredux-framework'), '<a href="' . esc_url($this->framework_url) . '" target="_blank">' . __('AvadaRedux Framework', 'avadaredux-framework') . '</a> v' . self::$_version) . '</span>'; } if (empty($this->args['menu_title'])) { $this->args['menu_title'] = __('Options', 'avadaredux-framework'); } if (empty($this->args['page_title'])) { $this->args['page_title'] = __('Options', 'avadaredux-framework'); } $this->old_opt_name = $this->args['opt_name']; /** * filter 'avadaredux/args/{opt_name}' * * @param array $args AvadaReduxFramework configuration */ $this->args = apply_filters("avadaredux/args/{$this->args['opt_name']}", $this->args); /** * filter 'avadaredux/options/{opt_name}/args' * * @param array $args AvadaReduxFramework configuration */ $this->args = apply_filters("avadaredux/options/{$this->args['opt_name']}/args", $this->args); if ($this->args['opt_name'] == $this->old_opt_name) { unset($this->old_opt_name); } // Do not save the defaults if we're on a live preview! if ($GLOBALS['pagenow'] == "customize" && isset($_GET['theme']) && !empty($_GET['theme'])) { $this->args['save_defaults'] = false; } $this->change_demo_defaults(); if (!empty($this->args['opt_name'])) { /** * SHIM SECTION * Old variables and ways of doing things that need correcting. ;) * */ // Variable name change if (!empty($this->args['page_cap'])) { $this->args['page_permissions'] = $this->args['page_cap']; unset($this->args['page_cap']); } if (!empty($this->args['page_position'])) { $this->args['page_priority'] = $this->args['page_position']; unset($this->args['page_position']); } if (!empty($this->args['page_type'])) { $this->args['menu_type'] = $this->args['page_type']; unset($this->args['page_type']); } // Get rid of extra_tabs! Not needed. if (is_array($extra_tabs) && !empty($extra_tabs)) { foreach ($extra_tabs as $tab) { array_push($this->sections, $tab); } } // Move to the first loop area! /** * filter 'avadaredux-sections' * * @deprecated * * @param array $sections field option sections */ $this->sections = apply_filters('avadaredux-sections', $sections); // REMOVE LATER /** * filter 'avadaredux-sections-{opt_name}' * * @deprecated * * @param array $sections field option sections */ $this->sections = apply_filters("avadaredux-sections-{$this->args['opt_name']}", $this->sections); // REMOVE LATER /** * filter 'avadaredux/options/{opt_name}/sections' * * @param array $sections field option sections */ $this->sections = apply_filters("avadaredux/options/{$this->args['opt_name']}/sections", $this->sections); /** * Construct hook * action 'avadaredux/construct' * * @param object $this AvadaReduxFramework */ do_action('avadaredux/construct', $this); // Set the default values $this->_default_cleanup(); // Internataionalization $this->_internationalization(); $this->filesystem = AvadaRedux_Filesystem::get_instance($this); //set avadaredux upload folder $this->set_avadaredux_content(); // Register extra extensions $this->_register_extensions(); // Grab database values $this->get_options(); // Tracking if (isset($this->args['allow_tracking']) && $this->args['allow_tracking'] && AvadaRedux_Helpers::isTheme(__FILE__)) { $this->_tracking(); } // Options page add_action('admin_menu', array($this, '_options_page')); // Add a network menu if ($this->args['database'] == "network" && $this->args['network_admin']) { add_action('network_admin_menu', array($this, '_options_page')); } // Admin Bar menu add_action('admin_bar_menu', array($this, '_admin_bar_menu'), $this->args['admin_bar_priority']); // Register setting add_action('admin_init', array($this, '_register_settings')); // Display admin notices in dev_mode if (true == $this->args['dev_mode']) { if (true == $this->args['update_notice']) { add_action('admin_init', array($this, '_update_check')); } } // Display admin notices add_action('admin_notices', array($this, '_admin_notices'), 99); // Check for dismissed admin notices. add_action('admin_init', array($this, '_dismiss_admin_notice'), 9); // Enqueue the admin page CSS and JS if (isset($_GET['page']) && $_GET['page'] == $this->args['page_slug']) { add_action('admin_enqueue_scripts', array($this, '_enqueue'), 1); } // Output dynamic CSS // Frontend: Maybe enqueue dynamic CSS and Google fonts if (empty($this->args['output_location']) || in_array('frontend', $this->args['output_location'])) { add_action('wp_head', array(&$this, '_output_css'), 150); add_action('wp_enqueue_scripts', array(&$this, '_enqueue_output'), 150); } // Login page: Maybe enqueue dynamic CSS and Google fonts if (in_array('login', $this->args['output_location'])) { add_action('login_head', array(&$this, '_output_css'), 150); add_action('login_enqueue_scripts', array(&$this, '_enqueue_output'), 150); } // Admin area: Maybe enqueue dynamic CSS and Google fonts if (in_array('admin', $this->args['output_location'])) { add_action('admin_head', array(&$this, '_output_css'), 150); add_action('admin_enqueue_scripts', array(&$this, '_enqueue_output'), 150); } add_action('wp_print_scripts', array($this, 'vc_fixes'), 100); add_action('admin_enqueue_scripts', array($this, 'vc_fixes'), 100); if ($this->args['database'] == "network" && $this->args['network_admin']) { add_action('network_admin_edit_avadaredux_' . $this->args['opt_name'], array($this, 'save_network_page'), 10, 0); add_action('admin_bar_menu', array($this, 'network_admin_bar'), 999); } // Ajax saving!!! add_action("wp_ajax_" . $this->args['opt_name'] . '_ajax_save', array($this, "ajax_save")); // if ( $this->args['dev_mode'] == true || AvadaRedux_Helpers::isLocalHost() == true ) { // require_once 'core/dashboard.php'; // new avadareduxDashboardWidget( $this ); // // if ( ! isset ( $GLOBALS['avadaredux_notice_check'] ) ) { // require_once 'core/newsflash.php'; // // $params = array( // 'dir_name' => 'notice', // 'server_file' => 'http://avadareduxframework.com/wp-content/uploads/avadaredux/avadaredux_notice.json', // 'interval' => 3, // 'cookie_id' => 'avadaredux_blast', // ); // // new avadareduxNewsflash( $this, $params ); // $GLOBALS['avadaredux_notice_check'] = 1; // } // } } /** * Loaded hook * action 'avadaredux/loaded' * * @param object $this AvadaReduxFramework */ do_action('avadaredux/loaded', $this); }
private static function _vendor_plugin($register = true, $handle, $src_cdn, $deps, $ver, $footer_or_media, $is_script = true) { if (class_exists('AvadaRedux_VendorURL')) { $src = AvadaRedux_VendorURL::get_url($handle); if ($register) { self::_register($handle, $src, $deps, $ver, $footer_or_media, $is_script); } else { self::_enqueue($handle, $src, $deps, $ver, $footer_or_media, $is_script); } } else { if (!self::$_set) { self::$_parent->admin_notices[] = array('type' => 'error', 'msg' => sprintf(__('The <a href="%s">Vendor Support plugin</a> (or extension) is either not installed or not activated and thus, some controls may not render properly. Please ensure that it is installed and <a href="%s">activated</a>', 'avadaredux-framework'), 'https://github.com/avadareduxframework/avadaredux-vendor-support', admin_url('plugins.php')), 'id' => $handle . '23', 'dismiss' => false); self::$_set = true; } } }
private function register_scripts() { //***************************************************************** // JQuery / JQuery UI JS //***************************************************************** wp_enqueue_script('jquery'); wp_enqueue_script('jquery-ui-core'); wp_enqueue_script('jquery-ui-dialog'); //***************************************************************** // Select2 Sortable JS //***************************************************************** wp_register_script('avadaredux-select2-sortable-js', AvadaReduxFramework::$_url . 'assets/js/vendor/avadaredux.select2.sortable' . $this->min . '.js', array('jquery'), $this->timestamp, true); //***************************************************************** // Select2 JS //***************************************************************** // JWp6 plugin giving us problems. They need to update. if (wp_script_is('jquerySelect2')) { wp_deregister_script('jquerySelect2'); wp_dequeue_script('jquerySelect2'); wp_dequeue_style('jquerySelect2Style'); } AvadaRedux_CDN::register_script('select2-js', AvadaReduxFramework::$_url . 'assets/js/vendor/select2.min.js', array('jquery', 'avadaredux-select2-sortable-js'), '3.5.2', true); //***************************************************************** // QTip JS //***************************************************************** $js_file = 'jquery.qtip.min.js'; if ($this->parent->args['dev_mode']) { $js_file = 'jquery.qtip.js'; } wp_enqueue_script('qtip-js', AvadaReduxFramework::$_url . 'assets/js/vendor/qtip/' . $js_file, array('jquery'), '2.2.0', true); //***************************************************************** // Spectrum JS //***************************************************************** $js_file = 'avadaredux-spectrum.min.js'; if ($this->parent->args['dev_mode']) { $js_file = 'avadaredux-spectrum.js'; } wp_register_script('avadaredux-spectrum-js', AvadaReduxFramework::$_url . 'assets/js/vendor/spectrum/' . $js_file, array('jquery'), '1.3.3', true); $depArray = array('jquery'); //***************************************************************** // Vendor JS //***************************************************************** if ($this->parent->args['dev_mode']) { wp_register_script('avadaredux-vendor', AvadaReduxFramework::$_url . 'assets/js/vendor.min.js', array('jquery'), $this->timestamp, true); array_push($depArray, 'avadaredux-vendor'); } //***************************************************************** // AvadaRedux JS //***************************************************************** wp_register_script('avadaredux-js', AvadaReduxFramework::$_url . 'assets/js/avadaredux' . $this->min . '.js', $depArray, $this->timestamp, true); wp_enqueue_script('webfontloader', 'https://ajax.googleapis.com/ajax/libs/webfont/1.5.0/webfont.js', array('jquery'), '1.5.0', true); }
/** * Enqueue Function. * If this field requires any scripts, or css define this function and register/enqueue the scripts/css * * @since 1.0.0 * @access public * @return void */ public function enqueue() { if ($this->parent->args['dev_mode']) { if (!wp_style_is('avadaredux-field-ace-editor-css')) { wp_enqueue_style('avadaredux-field-ace-editor-css', AvadaReduxFramework::$_url . 'inc/fields/ace_editor/field_ace_editor.css', array(), time(), 'all'); } } if (!wp_script_is('ace-editor-js')) { AvadaRedux_CDN::enqueue_script('ace-editor-js', AvadaReduxFramework::$_url . 'assets/js/vendor/ace.js', array('jquery'), '1.2.3', true); } if (!wp_script_is('avadaredux-field-ace-editor-js')) { wp_enqueue_script('avadaredux-field-ace-editor-js', AvadaReduxFramework::$_url . 'inc/fields/ace_editor/field_ace_editor' . AvadaRedux_Functions::isMin() . '.js', array('jquery', 'ace-editor-js', 'avadaredux-js'), time(), true); } }