示例#1
0
 /**
  * init
  */
 static function init()
 {
     register_activation_hook(__FILE__, array(__CLASS__, 'activation_hook'));
     add_action('admin_menu', array(__CLASS__, 'admin_menu'));
     add_action('admin_head', array(__CLASS__, 'ajax_javascript'));
     add_action('admin_head', array(__CLASS__, 'admin_css'));
     add_action('wp_ajax_spacker_inc_script', array(__CLASS__, 'wp_ajax_spacker_inc_script'));
     add_action('admin_notices', array(__CLASS__, 'show_admin_messages'));
     if (is_admin()) {
         if (isset($_POST['spacker']) && is_array($_POST['spacker'])) {
             //evScriptOptimizer::$options = $_POST['spacker'];
             self::options_join(evScriptOptimizer::$options, $_POST['spacker']);
             evScriptOptimizer::$options['cache-js'] = array();
             evScriptOptimizer::$options['cache-css'] = array();
             //print_r(evScriptOptimizer::$options);
             evScriptOptimizer::save_options();
             evScriptOptimizer::check_cache_directory();
             self::$saved = true;
         }
     }
 }
 /**
  * init
  */
 static function init()
 {
     $is_logged_in = is_user_logged_in();
     // init some constants
     self::$plugin_path = dirname(__FILE__);
     // load plugin localizations
     load_plugin_textdomain('spacker', false, dirname(plugin_basename(__FILE__)) . '/lang/');
     // load options
     self::$options = get_option('spacker-options');
     //self::$options = false;//***
     if (!is_array(self::$options)) {
         self::$options = array('only-selfhosted-js' => false, 'combine-js' => 'combine', 'packing-js' => true, 'css' => true, 'only-selfhosted-css' => false, 'combine-css' => true, 'packing-css' => true, 'inc-js' => null, 'inc-css' => null, 'exclude-js' => null, 'exclude-css' => null, 'cache' => array(), 'cache-css' => array(), 'strict-ordering-beta' => false, 'cache-dir-path' => SO_REC_CACHE_DIR_PATH, 'cache-dir-url' => SO_REC_CACHE_DIR_URL);
     } else {
         // Old cache directory
         if (!isset(self::$options['cache-dir-path'])) {
             $uploads = wp_upload_dir();
             $upload_path = $uploads['basedir'] . '/';
             $upload_url = $uploads['baseurl'] . '/';
             if (substr($upload_path, -1) != '/') {
                 $upload_path .= '/';
             }
             if (substr($upload_url, -1) != '/') {
                 $upload_url .= '/';
             }
             $cache_directory = $upload_path . 'spacker-cache/';
             $cache_url = $upload_url . 'spacker-cache/';
             self::$options['cache-dir-path'] = $cache_directory;
             self::$options['cache-dir-url'] = $cache_url;
             self::save_options();
         }
     }
     if (!isset(self::$options['strict-ordering-beta'])) {
         self::$options['enable-plugin'] = true;
         self::$options['strict-ordering-beta'] = false;
     }
     if (!isset(self::$options['combine-css']) and !empty(self::$options['combining-css'])) {
         self::$options['combine-css'] = true;
     }
     // Strict ordering temporary disabled
     self::$options['strict-ordering-beta'] = false;
     self::$options['packing-css'] = true;
     // add actions and hooks
     if (!is_admin()) {
         if (self::is_on()) {
             global $wp_version;
             if (version_compare($wp_version, '2.8.0', '>')) {
                 add_action('wp_print_scripts', array(__CLASS__, 'wp_print_scripts_action'), 0);
                 add_action('wp_print_footer_scripts', array(__CLASS__, 'wp_print_scripts_action'), 0);
                 if (self::$options['css']) {
                     add_action('wp_print_styles', array(__CLASS__, 'wp_print_styles_action'), -10000);
                     add_action('wp_print_footer_scripts', array(__CLASS__, 'wp_print_styles_action'), 0);
                 }
             } else {
                 add_action('wp_print_scripts', array(__CLASS__, 'wp_print_scripts_action'), 200);
                 if (self::$options['css']) {
                     add_action('wp_print_styles', array(__CLASS__, 'wp_print_styles_action'), 200);
                 }
             }
             add_action('wp_footer', array(__CLASS__, 'footer'), 20000000);
             //add_action('wp_head', array(__CLASS__, 'head'), 20000000);
             // Include added scripts
             if (is_array(self::$options['inc-js'])) {
                 foreach (self::$options['inc-js'] as $key => $js) {
                     if ($js['url']) {
                         wp_deregister_script($key);
                         wp_register_script($key, $js['url'], false);
                     }
                     wp_enqueue_script($key);
                 }
             }
             if (is_array(self::$options['inc-css'])) {
                 foreach (self::$options['inc-css'] as $key => $css) {
                     if (!$css['loggedIn'] || $is_logged_in) {
                         wp_enqueue_style($key, $css['url'], false, false, $css['media']);
                     }
                 }
             }
             if (self::$options['strict-ordering-beta']) {
                 self::ordering_start();
             }
         }
     } else {
         require_once 'backend.php';
         evScriptOptimizerBackend::init();
     }
 }