function ThemeController::uninstall
Uninstalls a theme.
Parameters
\Symfony\Component\HttpFoundation\Request $request: A request object containing a theme name and a valid token.
Return value
\Symfony\Component\HttpFoundation\RedirectResponse Redirects back to the appearance admin page.
Throws
\Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException Throws access denied when no theme or token is set in the request or when the token is invalid.
1 string reference to 'ThemeController::uninstall'
- system.routing.yml in core/
modules/ system/ system.routing.yml  - core/modules/system/system.routing.yml
 
File
- 
              core/
modules/ system/ src/ Controller/ ThemeController.php, line 75  
Class
- ThemeController
 - Controller for theme handling.
 
Namespace
Drupal\system\ControllerCode
public function uninstall(Request $request) {
  $theme = $request->query
    ->get('theme');
  $config = $this->config('system.theme');
  if (isset($theme)) {
    // Get current list of themes.
    $themes = $this->themeHandler
      ->listInfo();
    // Check if the specified theme is one recognized by the system.
    if (!empty($themes[$theme])) {
      // Do not uninstall the default or admin theme.
      if ($theme === $config->get('default') || $theme === $config->get('admin')) {
        $this->messenger()
          ->addError($this->t('%theme is the default theme and cannot be uninstalled.', [
          '%theme' => $themes[$theme]->info['name'],
        ]));
      }
      else {
        $this->themeInstaller
          ->uninstall([
          $theme,
        ]);
        $this->messenger()
          ->addStatus($this->t('The %theme theme has been uninstalled.', [
          '%theme' => $themes[$theme]->info['name'],
        ]));
      }
    }
    else {
      $this->messenger()
        ->addError($this->t('The %theme theme was not found.', [
        '%theme' => $theme,
      ]));
    }
    return $this->redirect('system.themes_page');
  }
  throw new AccessDeniedHttpException();
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.