diff --git a/admin/blocks.php b/admin/blocks.php index 77febe60ed7..dcf00f6001e 100644 --- a/admin/blocks.php +++ b/admin/blocks.php @@ -154,7 +154,10 @@ $settings = '' . get_string('settings') . ''; } else if ($blocksettings instanceof admin_settingpage) { $settings = ''.$strsettings.''; - } else { + } else if (!file_exists($CFG->dirroot.'/blocks/'.$block->name.'/settings.php')) { + // If the block's settings node was not found, we check that the block really provides the settings.php file. + // Note that blocks can inject their settings to other nodes in the admin tree without using the default locations. + // This can be done by assigning null to $setting in settings.php and it is a valid case. debugging('Warning: block_'.$block->name.' returns true in has_config() but does not provide a settings.php file', DEBUG_DEVELOPER); }