mirror of
https://github.com/moodle/moodle.git
synced 2025-08-08 02:16:41 +02:00
MDL-73953 core_adminpresets: Marking core presets on DB
This commit is contained in:
parent
77ca86bf87
commit
c0196fb096
12 changed files with 159 additions and 14 deletions
|
@ -4563,7 +4563,7 @@
|
|||
<FIELD NAME="author" TYPE="char" LENGTH="255" NOTNULL="false" SEQUENCE="false"/>
|
||||
<FIELD NAME="moodleversion" TYPE="char" LENGTH="20" NOTNULL="true" SEQUENCE="false"/>
|
||||
<FIELD NAME="moodlerelease" TYPE="char" LENGTH="255" NOTNULL="true" SEQUENCE="false"/>
|
||||
<FIELD NAME="iscore" TYPE="int" LENGTH="1" NOTNULL="true" DEFAULT="0" SEQUENCE="false" COMMENT="Whether this is a core preset or not"/>
|
||||
<FIELD NAME="iscore" TYPE="int" LENGTH="1" NOTNULL="true" DEFAULT="0" SEQUENCE="false" COMMENT="Whether this is a core preset or not, and which core preset"/>
|
||||
<FIELD NAME="timecreated" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
|
||||
<FIELD NAME="timeimported" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
|
||||
</FIELDS>
|
||||
|
|
|
@ -4150,5 +4150,60 @@ privatefiles,moodle|/user/files.php';
|
|||
upgrade_main_savepoint(true, 2022021100.02);
|
||||
}
|
||||
|
||||
if ($oldversion < 2022030100.00) {
|
||||
$sql = "SELECT preset.*
|
||||
FROM {adminpresets} preset
|
||||
INNER JOIN {adminpresets_it} it ON preset.id = it.adminpresetid
|
||||
WHERE it.name = :name AND it.value = :value AND preset.iscore = 1";
|
||||
|
||||
$name = get_string('starterpreset', 'core_adminpresets');
|
||||
$params = ['name' => $name, 'iscore' => 1];
|
||||
$starterpreset = $DB->get_record('adminpresets', $params);
|
||||
if (!$starterpreset) {
|
||||
// Starter admin preset might have been created using the English name. Let's change it to current language.
|
||||
$englishname = get_string_manager()->get_string('starterpreset', 'core_adminpresets', null, 'en');
|
||||
$params['name'] = $englishname;
|
||||
$starterpreset = $DB->get_record('adminpresets', $params);
|
||||
}
|
||||
if (!$starterpreset) {
|
||||
// We tried, but we didn't find starter by name. Let's find a core preset that sets 'usecomments' setting to 0.
|
||||
$params = ['name' => 'usecomments', 'value' => '0'];
|
||||
$starterpreset = $DB->get_record_sql($sql, $params);
|
||||
}
|
||||
// The iscore field is already 1 for starterpreset, so we don't need to change it.
|
||||
// We only need to update the name and comment in case they are different to current language strings.
|
||||
if ($starterpreset && $starterpreset->name != $name) {
|
||||
$starterpreset->name = $name;
|
||||
$starterpreset->comments = get_string('starterpresetdescription', 'core_adminpresets');
|
||||
$DB->update_record('adminpresets', $starterpreset);
|
||||
}
|
||||
|
||||
// Let's mark Full admin presets with current FULL_PRESETS value and change the name to current language.
|
||||
$name = get_string('fullpreset', 'core_adminpresets');
|
||||
$params = ['name' => $name, 'iscore' => 1];
|
||||
$fullpreset = $DB->get_record('adminpresets', $params);
|
||||
if (!$fullpreset) {
|
||||
// Full admin preset might have been created using the English name.
|
||||
$englishname = get_string_manager()->get_string('fullpreset', 'core_adminpresets', null, 'en');
|
||||
$params['name'] = $englishname;
|
||||
$fullpreset = $DB->get_record('adminpresets', $params);
|
||||
}
|
||||
if (!$fullpreset) {
|
||||
// We tried, but we didn't find full by name. Let's find a core preset that sets 'usecomments' setting to 1.
|
||||
$params = ['name' => 'usecomments', 'value' => '1'];
|
||||
$fullpreset = $DB->get_record_sql($sql, $params);
|
||||
}
|
||||
if ($fullpreset) {
|
||||
// We need to update iscore field value, whether the name is the same or not.
|
||||
$fullpreset->name = $name;
|
||||
$fullpreset->comments = get_string('fullpresetdescription', 'core_adminpresets');
|
||||
$fullpreset->iscore = 2;
|
||||
$DB->update_record('adminpresets', $fullpreset);
|
||||
}
|
||||
|
||||
// Main savepoint reached.
|
||||
upgrade_main_savepoint(true, 2022030100.00);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue