diff --git a/lib/db/caches.php b/lib/db/caches.php index 14dca042857..b05d07977e3 100644 --- a/lib/db/caches.php +++ b/lib/db/caches.php @@ -466,7 +466,7 @@ $definitions = array( // Cache for licenses. 'license' => [ 'mode' => cache_store::MODE_APPLICATION, - 'simplekeys' => false, - 'simpledata' => false + 'simplekeys' => true, + 'simpledata' => false, ], ); diff --git a/lib/licenselib.php b/lib/licenselib.php index 3010ef9b2dd..c12bc54c113 100644 --- a/lib/licenselib.php +++ b/lib/licenselib.php @@ -227,21 +227,24 @@ class license_manager { $cache = \cache::make('core', 'license'); $licenses = $cache->get('licenses'); - if (empty($licenses)) { + if ($licenses === false) { $licenses = []; $records = $DB->get_records_select('license', null, null, 'sortorder ASC'); foreach ($records as $license) { - // Interpret core license strings for internationalisation. - if ($license->custom == self::CORE_LICENSE) { - $license->fullname = get_string($license->shortname, 'license'); - } else { - $license->fullname = format_string($license->fullname); - } $licenses[$license->shortname] = $license; } $cache->set('licenses', $licenses); } + foreach ($licenses as $license) { + // Localise the license names. + if ($license->custom == self::CORE_LICENSE) { + $license->fullname = get_string($license->shortname, 'core_license'); + } else { + $license->fullname = format_string($license->fullname); + } + } + return $licenses; }