MDL-57791 analytics: Set logstore during install
get_analytics_logstore updated to fix an edge case.
This commit is contained in:
@@ -56,6 +56,20 @@ if ($hassiteconfig) {
|
||||
}
|
||||
$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));
|
||||
|
||||
@@ -314,10 +314,12 @@ class manager {
|
||||
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 "' .
|
||||
|
||||
Reference in New Issue
Block a user