/**
  * 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;
         }
     }
 }
Example #3
0
 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);
 }
Example #4
0
 /**
  * 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);
     }
 }