Postponed until 8.1.x

We have a moduleHandler class which is used to assist with enabling / disabling modules. Proposing we have a similar mechanism for themes.

theme_enable()
theme_disable() etc... would be converted so we would end up with

Drupal::themeHandler()->disable($theme_list)
....

This would be useful in [#1808248] where we would like to override the default behavior if we are enabling a theme via a config import.

Comments

tayzlor’s picture

Issue tags:+Configuration system

tagging

catch’s picture

markcarver’s picture

Title:Create a theme handler to manage enabling / disabling of themes» Create Drupal::themeHandler() to manage common tasks

We should also probably move the theme related stuff in Drupal::moduleHandler()->alter() to something like Drupal::themeHandler()->alter(). We're also going to need something like Drupal::themeHandler()->invoke() (for active theme only, no invokeAll) for #2035055: Introduce hook_theme_prepare[_alter]() and remove hook_preprocess_HOOK().

markcarver’s picture

fubhy’s picture

Title:Create Drupal::themeHandler() to manage common tasks» Implement a ThemeHandler to manage themes (@see ModuleHandler)

Re-titling.

webchick’s picture

Priority:Major» Normal

As far as I can see, this is just a nice to have, and part of #2024083: [META] Improve the extension system (modules, profiles, themes) which is only "normal."

I'd also like to remind people that API freeze was over a month ago. ;)

klonos’s picture

Issue summary:View changes

...mentioning parent issue #2024083

dawehner’s picture

#2109287: Replace list_themes() with a service. introduces such a theme handler.

dawehner’s picture

Status:Active» Closed (duplicate)

Let's mark it as duplicate.

markcarver’s picture

Status:Closed (duplicate)» Active

Not sure why this was marked as a dup. Yes, #2109287: Replace list_themes() with a service. introduced a theme handler, but this issue is about improving upon all the extension handling (module, theme, profiles) from a base class: #2024083: [META] Improve the extension system (modules, profiles, themes).

filijonka’s picture

Version:8.0.x-dev» 8.1.x-dev
Issue summary:View changes
Status:Active» Postponed

META has been postponed to 8.1.x hence this too

Cottser’s picture

To follow up on #10 this needs an issue summary update because #2109287: Replace list_themes() with a service. fixes the issue summary (from my perspective anyway).

dawehner’s picture

Status:Postponed» Fixed

We have theme enable / disable in the theme handler, maybe even split that up #2465887: Extract the install/uninstall functionality to a ThemeInstaller but it seems to be that the promise of
#2029819-10: Implement a ThemeHandler to manage themes (@see ModuleHandler) would be partially solved by #2208429: Extension System, Part III: ExtensionList/ExtensionHandler .