示例#1
0
 /**
  * include_add_ons
  * Inlcude add-ons registered with piklist.
  *
  * @access public
  * @static
  * @since 1.0
  */
 public static function include_add_ons()
 {
     require_once ABSPATH . 'wp-admin/includes/plugin.php';
     $site_wide_plugins = get_site_option('active_sitewide_plugins');
     if (!empty($site_wide_plugins)) {
         $plugins = array_merge(get_option('active_plugins'), array_keys($site_wide_plugins));
     } else {
         $plugins = get_option('active_plugins');
     }
     foreach ($plugins as $plugin) {
         $path = WP_PLUGIN_DIR . '/' . $plugin;
         if (file_exists($path)) {
             $data = piklist::get_file_data($path, array('type' => 'Plugin Type', 'version' => 'Version'));
             if ($data['type'] && strtolower($data['type']) == 'piklist') {
                 piklist::add_plugin(basename(dirname($plugin)), dirname($path));
                 add_action('load-plugins.php', array('piklist_admin', 'deactivation_link'));
                 piklist_admin::$piklist_dependent = true;
                 if ($data['version']) {
                     $file = $plugin;
                     $version = $data['version'];
                     piklist_admin::check_update($file, $version);
                 }
             }
         }
     }
     $addon_paths = piklist::paths();
     $paths = array();
     foreach ($addon_paths as $from => $path) {
         if ($from != 'theme') {
             array_push($paths, $path . '/add-ons');
             if ($from != 'piklist') {
                 array_push($paths, $path);
             }
         }
     }
     foreach ($paths as $path) {
         if (is_dir($path)) {
             if (strstr($path, 'add-ons')) {
                 $add_ons = piklist::get_directory_list($path);
                 foreach ($add_ons as $add_on) {
                     $file = file_exists($path . '/' . $add_on . '/' . $add_on . '.php') ? $path . '/' . $add_on . '/' . $add_on . '.php' : $path . '/' . $add_on . '/plugin.php';
                     self::register_add_on($add_on, $file, $path);
                 }
             } else {
                 $add_on = basename($path);
                 $file = file_exists($path . '/' . $add_on . '.php') ? $path . '/' . $add_on . '.php' : $path . '/plugin.php';
                 self::register_add_on($add_on, $file, $path, true);
             }
         }
     }
     do_action('piklist_activate_add_on');
 }