Merge branch 'w05_MDL-26189_20_imse' of git://github.com/skodak/moodle
authorEloy Lafuente (stronk7) <stronk7@moodle.org>
Mon, 31 Jan 2011 13:57:22 +0000 (14:57 +0100)
committerEloy Lafuente (stronk7) <stronk7@moodle.org>
Mon, 31 Jan 2011 13:57:22 +0000 (14:57 +0100)
enrol/imsenterprise/db/install.php [new file with mode: 0644]
enrol/imsenterprise/db/upgrade.php [new file with mode: 0644]
enrol/imsenterprise/version.php

diff --git a/enrol/imsenterprise/db/install.php b/enrol/imsenterprise/db/install.php
new file mode 100644 (file)
index 0000000..0180d16
--- /dev/null
@@ -0,0 +1,78 @@
+<?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
+
+/**
+ * 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 (file)
index 0000000..a7d9841
--- /dev/null
@@ -0,0 +1,87 @@
+<?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
+
+/**
+ * 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;
+}
+
+
index e0be8af..a955872 100644 (file)
@@ -26,5 +26,5 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2010071200;
+$plugin->version = 2011013000;
 $plugin->cron = 60;