/** * 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'); }