There are already parts of the theme system that try to prevent against circular dependencies amongst themes. See http://api.drupal.org/api/function/system_find_base_theme/7

Unfortunately, we don't carry those checks to other parts of the system. For example, admin/build/themes allows you to enable a theme with a circular dependency. And if you do so, the system will enter an infinite loop and present the admin user with a WSOD.

Now, there are 2 possible ways a circular dependency could occur.

  1. Accident by theme developer. I don't think this case justifies adding code to core to prevent a developer from making a dumb mistake. (just listing this for completeness.)
  2. Themes downloaded from different sources. If someone downloads a theme from d.o. that depends on Zen, but also downloads a Zen theme from a 3rd party site that depends on something else, an unwitting admin could create a problem. This is pretty unlikely, but the fix is pretty straight-forward.

Comments

johnalbin’s picture

johnalbin’s picture

dvessel’s picture

subscribing. We should also check for a non-existing dependency (base theme).

Status: Active » Closed (outdated)

Automatically closed because Drupal 7 security and bugfix support has ended as of 5 January 2025. If the issue verifiably applies to later versions, please reopen with details and update the version.