/** * Upgrade the user tours plugin. * * @param int $oldversion The old version of the user tours plugin * @return bool */ function xmldb_tool_usertours_upgrade($oldversion) { global $CFG, $DB; if ($oldversion < 2016120501) { // Update the tours shipped with Moodle. manager::update_shipped_tours(); upgrade_plugin_savepoint(true, 2016120501, 'tool', 'usertours'); } // Automatically generated Moodle v3.2.0 release upgrade line. // Put any upgrade step following this. return true; }
/** * Perform the post-install procedures. */ function xmldb_tool_usertours_install() { global $DB; $localplugin = core_plugin_manager::instance()->get_plugin_info('local_usertours'); if ($localplugin) { // If the old local plugin was previously installed, copy over the data from the old tables. // The 'comment' field was renamed to 'description' in: // * 3.0 version 2015111604 // * 3.1 version 2016052303 // We need to attempt to fetch comment for these older versions. $hasdescription = $localplugin->versiondb < 2016052301 && $localplugin->versiondb >= 2015111604; $hasdescription = $hasdescription || $localplugin->versiondb > 2016052303; $tours = $DB->get_recordset('usertours_tours'); $mapping = []; foreach ($tours as $tour) { if (!$hasdescription) { if (property_exists($tour, 'comment')) { $tour->description = $tour->comment; unset($tour->comment); } else { $tour->description = ''; } } $mapping[$tour->id] = $DB->insert_record('tool_usertours_tours', $tour); } $tours->close(); $steps = $DB->get_recordset('usertours_steps'); foreach ($steps as $step) { if (!isset($mapping[$step->tourid])) { // Skip this one. It has somehow become orphaned. continue; } $step->tourid = $mapping[$step->tourid]; $DB->insert_record('tool_usertours_steps', $step); } $steps->close(); // Delete the old records. $DB->delete_records('usertours_steps', null); $DB->delete_records('usertours_tours', null); } // Update the tours shipped with Moodle. manager::update_shipped_tours(); }