diff --git a/core/lib/Drupal/Core/Extension/ThemeHandler.php b/core/lib/Drupal/Core/Extension/ThemeHandler.php index 4333ae9..f42f1bd 100644 --- a/core/lib/Drupal/Core/Extension/ThemeHandler.php +++ b/core/lib/Drupal/Core/Extension/ThemeHandler.php @@ -320,8 +320,9 @@ public function uninstall(array $theme_list) { } // Base themes cannot be uninstalled if sub themes are installed, and if // they are not uninstalled at the same time. - // @todo ensure that sub themes are uninstalled first - this might be the - // case already. + // @todo https://www.drupal.org/node/474684 and + // https://www.drupal.org/node/1297856 themes should leverage the module + // dependency system. if (!empty($list[$key]->sub_themes)) { foreach ($list[$key]->sub_themes as $sub_key => $sub_label) { if (isset($list[$sub_key]) && !in_array($sub_key, $theme_list, TRUE)) { diff --git a/core/lib/Drupal/Core/Utility/ProjectInfo.php b/core/lib/Drupal/Core/Utility/ProjectInfo.php index ddfb222..dd64510 100644 --- a/core/lib/Drupal/Core/Utility/ProjectInfo.php +++ b/core/lib/Drupal/Core/Utility/ProjectInfo.php @@ -19,7 +19,10 @@ class ProjectInfo { /** * Populates an array of project data. * - * @todo update since extensions cna no longer be hidden. + * @todo https://www.drupal.org/node/2338167 update class since extensions can + * no longer be hidden, enabled or disabled. Additionally base themes have + * to be installed for sub themes. to work. + * * This iterates over a list of the installed modules or themes and groups * them by project and status. A few parts of this function assume that * enabled modules and themes are always processed first, and if disabled @@ -47,7 +50,6 @@ class ProjectInfo { */ function processInfoList(array &$projects, array $list, $project_type, $status, array $additional_whitelist = array()) { foreach ($list as $file) { - // @todo this situation is now impossible. // A disabled or hidden base theme of an enabled sub-theme still has all // of its code run by the sub-theme, so we include it in our "enabled" // projects list. @@ -58,7 +60,6 @@ function processInfoList(array &$projects, array $list, $project_type, $status, $file->installed_sub_themes[$key] = $name; } } - // @todo the following looks incorrect // If the theme is uninstalled and there are no installed subthemes, we // should ignore this base theme for the installed case. If the site is // trying to display uninstalled themes, we'll catch it then. @@ -120,7 +121,6 @@ function processInfoList(array &$projects, array $list, $project_type, $status, $project_display_type = $project_type; } if (empty($status) && empty($file->installed_sub_themes)) { - // @todo the base theme thing here look like it is impossible now. // If we're processing disabled modules or themes, append a suffix. // However, we don't do this to a base theme with installed // subthemes, since we treat that case as if it is installed. diff --git a/core/modules/update/src/Tests/UpdateContribTest.php b/core/modules/update/src/Tests/UpdateContribTest.php index f24fa90..622d448 100644 --- a/core/modules/update/src/Tests/UpdateContribTest.php +++ b/core/modules/update/src/Tests/UpdateContribTest.php @@ -162,7 +162,8 @@ function testUpdateContribOrder() { * Tests that subthemes are notified about security updates for base themes. */ function testUpdateBaseThemeSecurityUpdate() { - // @todo this situation this is testing is impossible now. + // @todo https://www.drupal.org/node/2338175 base themes have to be + // installed. // Only install the subtheme, not the base theme. \Drupal::service('theme_handler')->install(array('update_test_subtheme')); @@ -199,7 +200,8 @@ function testUpdateBaseThemeSecurityUpdate() { /** * Tests that disabled themes are only shown when desired. * - * @todo fix + * @todo https://www.drupal.org/node/2338175 extensions can not be hidden and + * base themes have to be installed. */ function testUpdateShowDisabledThemes() { $update_settings = \Drupal::config('update.settings');