}
$options[$plugin] = $reader->get_name();
}
+
+ if (empty($defaultreader)) {
+ // We fall here during initial site installation because log stores are not
+ // enabled until admin/tool/log/db/install.php is executed and get_readers
+ // return nothing.
+
+ if ($enabledlogstores = get_config('tool_log', 'enabled_stores')) {
+ $enabledlogstores = explode(',', $enabledlogstores);
+ $defaultreader = reset($enabledlogstores);
+
+ // No need to set the correct name, just the value, this will not be displayed.
+ $options[$defaultreader] = $defaultreader;
+ }
+ }
$settings->add(new admin_setting_configselect('analytics/logstore',
new lang_string('analyticslogstore', 'analytics'), new lang_string('analyticslogstore_help', 'analytics'),
$defaultreader, $options));
public static function get_analytics_logstore() {
$readers = get_log_manager()->get_readers('core\log\sql_reader');
$analyticsstore = get_config('analytics', 'logstore');
- if (empty($analyticsstore)) {
- $logstore = reset($readers);
- } else if (!empty($readers[$analyticsstore])) {
+
+ if (!empty($analyticsstore) && !empty($readers[$analyticsstore])) {
$logstore = $readers[$analyticsstore];
+ } else if (empty($analyticsstore) && !empty($readers)) {
+ // The first one, it is the same default than in settings.
+ $logstore = reset($readers);
} else if (!empty($readers)) {
$logstore = reset($readers);
debugging('The selected log store for analytics is not available anymore. Using "' .