Grav\Plugin\Admin\AdminController::taskActivate PHP Method

taskActivate() public method

Set the default theme.
public taskActivate ( ) : boolean
return boolean True if the action was performed.
    public function taskActivate()
    {
        if (!$this->authorizeTask('activate theme', ['admin.themes', 'admin.super'])) {
            return false;
        }
        if ($this->view != 'themes') {
            return false;
        }
        $this->post = ['_redirect' => 'themes'];
        // Make sure theme exists (throws exception)
        $name = $this->route;
        $this->grav['themes']->get($name);
        // Store system configuration.
        $system = $this->admin->data('config/system');
        $system->set('pages.theme', $name);
        $system->save();
        // Force configuration reload and save.
        /** @var Config $config */
        $config = $this->grav['config'];
        $config->reload()->save();
        $config->set('system.pages.theme', $name);
        $this->admin->setMessage($this->admin->translate('PLUGIN_ADMIN.SUCCESSFULLY_CHANGED_THEME'), 'info');
        return true;
    }