From 7abd8de776b8ac4879ce72eb7c8202afdba2a90d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Mudr=C3=A1k?= Date: Thu, 15 Jun 2017 20:51:58 +0200 Subject: [PATCH] MDL-46418 repositories: Fix how enabled repositories are populated Repository instances are stored in the 'repository' table. Repositories in the table are either 'Enabled and visible' or 'Enabled but hidden'. Hidden repositories still serve their files, but are not visible in the filepicker UI. Disabling a repository instance removes its record from the table. In the original implementation of the plugin manager (see b9934a17), the method plugintype_repository::get_enabled_repositories() correctly returned all records from the repository table. Then as a part of the bigger refactoring in MDL-41437, the commit bde002b8 replaced the original method with the new get_enabled_plugins() one which started to return visible repositories only. As a consequence, the admin tree stopped populating setting page nodes for hidden repository instances. So attempting to visit their setting page threw a section error. Credit goes to Ike Quigley for debugging and tracing this down. This patch fixes the way how the list of enabled repositories is populated by the plugin manager so that both visible and hidden repositories are returned again. This does not affect the filepicker itself as it is using its own methods for obtaining the list. --- lib/classes/plugininfo/repository.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/classes/plugininfo/repository.php b/lib/classes/plugininfo/repository.php index 861b24d2547..689edde3c91 100644 --- a/lib/classes/plugininfo/repository.php +++ b/lib/classes/plugininfo/repository.php @@ -37,7 +37,7 @@ class repository extends base { */ public static function get_enabled_plugins() { global $DB; - return $DB->get_records_menu('repository', array('visible'=>1), 'type ASC', 'type, type AS val'); + return $DB->get_records_menu('repository', null, 'type ASC', 'type, type AS val'); } public function get_settings_section_name() {