Habari\InstallHandler::activate_plugins PHP Метод

activate_plugins() публичный Метод

public activate_plugins ( )
    public function activate_plugins()
    {
        // extract checked plugin IDs from $_POST
        $plugin_ids = array();
        foreach ($this->handler_vars as $id => $activate) {
            if (preg_match('/plugin_([a-f0-9]{8})/u', $id, $matches) && $activate) {
                $plugin_ids[] = $matches[1];
            } elseif (preg_match('/plugin_(.+)/u', $id, $matches) && $activate) {
                $plugin_ids[] = $matches[1];
            }
        }
        if (count($plugin_ids) == 0) {
            return;
        }
        // set the user_id in the session in case plugin activation methods need it
        if (!($u = User::get_by_name($this->handler_vars['admin_username']))) {
            // @todo die gracefully
            die(_t('No admin user found'));
        }
        $u->remember();
        // loop through all plugins to find matching plugin files
        $plugin_files = Plugins::list_all();
        foreach ($plugin_files as $file) {
            if (in_array(basename($file), $plugin_ids)) {
                Plugins::activate_plugin($file);
                continue;
            }
            $id = Plugins::id_from_file($file);
            if (in_array($id, $plugin_ids)) {
                Plugins::activate_plugin($file);
            }
        }
        // unset the user_id session variable
        Session::clear_userid($_SESSION['user_id']);
        unset($_SESSION['user_id']);
    }