function system_theme_disable

Menu callback; Disables a theme.

1 string reference to 'system_theme_disable'
system_menu in modules/system/system.module
Implements hook_menu().

File

modules/system/system.admin.inc, line 318

Code

function system_theme_disable() {
    if (isset($_REQUEST['theme']) && isset($_REQUEST['token']) && drupal_valid_token($_REQUEST['token'], 'system-theme-operation-link')) {
        $theme = $_REQUEST['theme'];
        // Get current list of themes.
        $themes = list_themes();
        // Check if the specified theme is one recognized by the system.
        if (!empty($themes[$theme])) {
            if ($theme == variable_get('theme_default', 'bartik')) {
                // Don't disable the default theme.
                drupal_set_message(t('%theme is the default theme and cannot be disabled.', array(
                    '%theme' => $themes[$theme]->info['name'],
                )), 'error');
            }
            else {
                theme_disable(array(
                    $theme,
                ));
                drupal_set_message(t('The %theme theme has been disabled.', array(
                    '%theme' => $themes[$theme]->info['name'],
                )));
            }
        }
        else {
            drupal_set_message(t('The %theme theme was not found.', array(
                '%theme' => $theme,
            )), 'error');
        }
        drupal_goto('admin/appearance');
    }
    return MENU_ACCESS_DENIED;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.