This issue has come up in several places before, but most recently in https://github.com/backdrop/backdrop-issues/issues/4814 when @BWPanda noticed the strange processes required for properly handling theme settings, or more specifically, how to set their default values.
I would like to propose that themes get a themename.install
file just like modules do, and that we place install, uninstall, and update hooks there (for themes that have settings).
We could also allow hook_config_info()
to be defined in template.php
, and if it were present, we could handle the automatic installation of a provided config file when a theme was installed, and the automatic removal of that config file when the theme was uninstalled (the same way we do for modules).
Now, I'm not sure that the enabled/disabled/installed/uninstalled state system is the ideal approach for add-ons for Backdrop, but until we land on another method I think it would make sense to treat themes the same way we do modules. It would be consistent, and once someone learned it for one system they wouldn't need to learn anything different for the other.
I'm not sure this is possible to do in a backwards-compatible way, and if not, this proposal should be for backdrop 2.x :)
PS: FTR, most of the relevant work in Drupal was done as part of the meta-issue here: https://www.drupal.org/project/drupal/issues/1067408. Then there was this follow-up issue: https://www.drupal.org/project/drupal/issues/2652542, but it was closed as "won't fix", and there's been no further activity since May 2018. [edit] In July 2021, the following comment was added to that issue:
I'm here as I was surprised to find that while themes can define default configuration, they cannot define update hooks to modify that configuration or install new configuration if needed. For example, I have a Drupal 9 platform with themes that provide default config entities for the Layout Builder Styles and CKEditor Standlone Styles modules. If I want to make changes or add new config entities for sites that already exist and use those themes, it seems my only hope is to create a module, make that module a dependency of the theme, and put the config and update hooks in there?
Recent comments
Thank you for providing the links to the Ckeditor 5 problem when using the gin theme that may occur after updating Backdrop to the 1.32.0 release, and the link to the new release of gin that...
Backdrop CMS 1.32.0 Upgrade Issues or Feedback
Here is a possibly related issue in the core issue queue: After upgrade from 1.31.1 to 1.32.0 update.php shows fatal errors and leaves site in maintenance mode https://github.com/...
Backdrop CMS 1.32.0 Upgrade Issues or Feedback
It sounds like a CSS/JS bug in the Layouts UI: when the "Add block" row is hidden with display:none, its help/description element isn’t being hidden together. 🔧 Things to try...
Add blocks filtering problem