diff --git a/enrol/imsenterprise/db/install.php b/enrol/imsenterprise/db/install.php new file mode 100644 index 0000000000000..0180d168bcc89 --- /dev/null +++ b/enrol/imsenterprise/db/install.php @@ -0,0 +1,78 @@ +. + +/** + * imsenterprise enrolment plugin installation. + * + * @package enrol + * @subpackage imsenterprise + * @copyright 2011 Petr Skoda {@link http://skodak.org} + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +defined('MOODLE_INTERNAL') || die(); + +function xmldb_enrol_imsenterprise_install() { + global $CFG, $DB; + + // NOTE: this file is executed during upgrade from 1.9.x! + + + // this plugin does not use the new file api - lets undo the migration + $fs = get_file_storage(); + + if ($DB->record_exists('course', array('id'=>1))) { //course 1 is hardcoded here intentionally! + if ($context = get_context_instance(CONTEXT_COURSE, 1)) { + if ($file = $fs->get_file($context->id, 'course', 'legacy', 0, '/', 'imsenterprise-enrol.xml')) { + if (!file_exists("$CFG->dataroot/1/imsenterprise-enrol.xml")) { + check_dir_exists($CFG->dataroot.'/'); + $file->copy_content_to("$CFG->dataroot/1/imsenterprise-enrol.xml"); + } + $file->delete(); + } + } + } + + if (!empty($CFG->enrol_imsfilelocation)) { + if (strpos($CFG->enrol_imsfilelocation, "$CFG->dataroot/") === 0) { + $location = str_replace("$CFG->dataroot/", '', $CFG->enrol_imsfilelocation); + $location = str_replace('\\', '/', $location); + $parts = explode('/', $location); + $courseid = array_shift($parts); + if (is_number($courseid) and $DB->record_exists('course', array('id'=>$courseid))) { + if ($context = get_context_instance(CONTEXT_COURSE, $courseid)) { + $file = array_pop($parts); + if ($parts) { + $dir = '/'.implode('/', $parts).'/'; + } else { + $dir = '/'; + } + if ($file = $fs->get_file($context->id, 'course', 'legacy', 0, $dir, $file)) { + if (!file_exists($CFG->enrol_imsfilelocation)) { + check_dir_exists($CFG->dataroot.'/'.$courseid.$dir); + $file->copy_content_to($CFG->enrol_imsfilelocation); + } + $file->delete(); + } + } + } + } + } + + + // TODO: migrate old config settings + +} diff --git a/enrol/imsenterprise/db/upgrade.php b/enrol/imsenterprise/db/upgrade.php new file mode 100644 index 0000000000000..a7d9841ee6417 --- /dev/null +++ b/enrol/imsenterprise/db/upgrade.php @@ -0,0 +1,87 @@ +. + +/** + * This file keeps track of upgrades to the imsenterprise enrolment plugin + * + * @package enrol + * @subpackage imsenterprise + * @copyright 2011 Petr Skoda {@link http://skodak.org + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +defined('MOODLE_INTERNAL') || die(); + +function xmldb_enrol_imsenterprise_upgrade($oldversion) { + global $CFG, $DB, $OUTPUT; + + $dbman = $DB->get_manager(); + + + //NOTE: this file is not executed during upgrade from 1.9.x! + + + if ($oldversion < 2011013000) { + // this plugin does not use the new file api - lets undo the migration + + $fs = get_file_storage(); + + if ($DB->record_exists('course', array('id'=>1))) { //course 1 is hardcoded here intentionally! + if ($context = get_context_instance(CONTEXT_COURSE, 1)) { + if ($file = $fs->get_file($context->id, 'course', 'legacy', 0, '/', 'imsenterprise-enrol.xml')) { + if (!file_exists("$CFG->dataroot/1/imsenterprise-enrol.xml")) { + check_dir_exists($CFG->dataroot.'/'); + $file->copy_content_to("$CFG->dataroot/1/imsenterprise-enrol.xml"); + } + $file->delete(); + } + } + } + + if (!empty($CFG->enrol_imsfilelocation)) { + if (strpos($CFG->enrol_imsfilelocation, "$CFG->dataroot/") === 0) { + $location = str_replace("$CFG->dataroot/", '', $CFG->enrol_imsfilelocation); + $location = str_replace('\\', '/', $location); + $parts = explode('/', $location); + $courseid = array_shift($parts); + if (is_number($courseid) and $DB->record_exists('course', array('id'=>$courseid))) { + if ($context = get_context_instance(CONTEXT_COURSE, $courseid)) { + $file = array_pop($parts); + if ($parts) { + $dir = '/'.implode('/', $parts).'/'; + } else { + $dir = '/'; + } + if ($file = $fs->get_file($context->id, 'course', 'legacy', 0, $dir, $file)) { + if (!file_exists($CFG->enrol_imsfilelocation)) { + check_dir_exists($CFG->dataroot.'/'.$courseid.$dir); + $file->copy_content_to($CFG->enrol_imsfilelocation); + } + $file->delete(); + } + } + } + } + } + + upgrade_plugin_savepoint(true, 2011013000, 'enrol', 'imsenterprise'); + } + + + return true; +} + + diff --git a/enrol/imsenterprise/version.php b/enrol/imsenterprise/version.php index e0be8af2151d5..a955872b2319d 100644 --- a/enrol/imsenterprise/version.php +++ b/enrol/imsenterprise/version.php @@ -26,5 +26,5 @@ defined('MOODLE_INTERNAL') || die(); -$plugin->version = 2010071200; +$plugin->version = 2011013000; $plugin->cron = 60;