public function enable($packages)
{
if (!is_array($packages)) {
$packages = [$packages];
}
foreach ($packages as $package) {
App::trigger('package.enable', [$package]);
if (!($current = App::config('system')->get('packages.' . $package->get('module')))) {
$current = $this->doInstall($package);
}
$scripts = $this->getScripts($package, $current);
if ($scripts->hasUpdates()) {
$scripts->update();
}
$version = $this->getVersion($package);
App::config('system')->set('packages.' . $package->get('module'), $version);
$scripts->enable();
if ($package->getType() == 'pagekit-theme') {
App::config('system')->set('site.theme', $package->get('module'));
} elseif ($package->getType() == 'pagekit-extension') {
App::config('system')->push('extensions', $package->get('module'));
}
}
}
/** * @Request({"name"}, csrf=true) */ public function enableAction($name) { $handler = $this->errorHandler($name); if (!($package = App::package($name))) { App::abort(400, __('Unable to find "%name%".', ['%name%' => $name])); } App::module()->load($package->get('module')); if (!($module = App::module($package->get('module')))) { App::abort(400, __('Unable to enable "%name%".', ['%name%' => $package->get('title')])); } $this->manager->enable($package); App::exception()->setHandler($handler); return ['message' => 'success']; }