MDL-51283 core_tag: Allow each tag area to set 'showstandard'
[moodle.git] / lib / db / upgrade.php
index 11523d5..7e6ca5c 100644 (file)
@@ -4890,5 +4890,31 @@ function xmldb_main_upgrade($oldversion) {
         upgrade_main_savepoint(true, 2016020200.00);
     }
 
+    if ($oldversion < 2016020201.00) {
+
+        // Define field showstandard to be added to tag_area.
+        $table = new xmldb_table('tag_area');
+        $field = new xmldb_field('showstandard', XMLDB_TYPE_INTEGER, '1', null, XMLDB_NOTNULL, null, '0', 'callbackfile');
+
+        // Conditionally launch add field showstandard.
+        if (!$dbman->field_exists($table, $field)) {
+            $dbman->add_field($table, $field);
+        }
+
+        // By default set user area to hide standard tags. 2 = core_tag_tag::HIDE_STANDARD (can not use constant here).
+        $DB->execute("UPDATE {tag_area} SET showstandard = ? WHERE itemtype = ? AND component = ?",
+            array(2, 'user', 'core'));
+
+        // Changing precision of field enabled on table tag_area to (1).
+        $table = new xmldb_table('tag_area');
+        $field = new xmldb_field('enabled', XMLDB_TYPE_INTEGER, '1', null, XMLDB_NOTNULL, null, '1', 'itemtype');
+
+        // Launch change of precision for field enabled.
+        $dbman->change_field_precision($table, $field);
+
+        // Main savepoint reached.
+        upgrade_main_savepoint(true, 2016020201.00);
+    }
+
     return true;
 }