Ejemplo n.º 1
0
/**
 * 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;
}
Ejemplo n.º 2
0
/**
 * 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();
}