MDL-23204 convert text to html in imscp intro
[moodle.git] / mod / imscp / db / upgradelib.php
index 1319c41..a6e2840 100644 (file)
@@ -28,7 +28,7 @@
  * @return void
  */
 function imscp_20_migrate() {
-    global $CFG, $DB;
+    global $CFG, $DB, $OUTPUT;
     require_once("$CFG->libdir/filelib.php");
     require_once("$CFG->dirroot/course/lib.php");
     require_once("$CFG->dirroot/mod/imscp/locallib.php");
@@ -55,11 +55,19 @@ function imscp_20_migrate() {
     foreach ($candidates as $candidate) {
         upgrade_set_timeout(60);
 
+        if ($CFG->texteditors !== 'textarea') {
+            $intro       = text_to_html($candidate->intro, false, false, true);
+            $introformat = FORMAT_HTML;
+        } else {
+            $intro       = $candidate->intro;
+            $introformat = FORMAT_MOODLE;
+        }
+
         $imscp = new object();
         $imscp->course       = $candidate->course;
         $imscp->name         = $candidate->name;
-        $imscp->intro        = $candidate->intro;
-        $imscp->introformat  = $candidate->introformat;
+        $imscp->intro        = $intro;
+        $imscp->introformat  = $introformat;
         $imscp->revision     = 1;
         $imscp->keepold      = 1;
         $imscp->timemodified = time();
@@ -77,7 +85,8 @@ function imscp_20_migrate() {
             $fullpath = $root.'/'.$package;
             if (file_exists($fullpath)) {
                 $file_record = array('contextid' => $context->id,
-                                     'filearea'  => 'imscp_backup',
+                                     'component' => 'mod_imscp',
+                                     'filearea'  => 'backup',
                                      'itemid'    => 1,
                                      'filepath'  => '/',
                                      'filename'  => $package);
@@ -87,7 +96,13 @@ function imscp_20_migrate() {
 
         // migrate extracted package data
         $files = imsc_migrate_get_old_files($root, '');
-        $file_record = array('contextid'=>$context->id, 'filearea'=>'imscp_content', 'itemid'=>1);
+        if (empty($files)) {
+            // if ims package doesn't exist, continue loop
+            echo $OUTPUT->notification("IMS package data cannot be found, failed migrating activity: \"$candidate->name\", please fix it manually");
+            continue;
+        }
+
+        $file_record = array('contextid'=>$context->id, 'component'=>'mod_imscp', 'filearea'=>'content', 'itemid'=>1);
         $error = false;
         foreach ($files as $relname=>$fullpath) {
             $parts = explode('/', $relname);
@@ -100,7 +115,7 @@ function imscp_20_migrate() {
             } catch (Exception $e) {
                 //continue on error, we can not recover anyway
                 $error = true;
-                notify("IMSCP: failed migrating file: $relname");
+                echo $OUTPUT->notification("IMSCP: failed migrating file: $relname");
             }
         }
         unset($files);
@@ -126,7 +141,12 @@ function imscp_20_migrate() {
  * Private function returning all extracted IMS content package file
  */
 function imsc_migrate_get_old_files($path, $relative) {
+    global $OUTPUT;
     $result = array();
+    if (!file_exists($path)) {
+        echo $OUTPUT->notification("File path doesn't exist: $path <br/> Please fix it manually.");
+        return array();
+    }
     $items = new DirectoryIterator($path);
     foreach ($items as $item) {
         if ($item->isDot() or $item->isLink()) {
@@ -144,4 +164,4 @@ function imsc_migrate_get_old_files($path, $relative) {
     }
     unset($items);
     return $result;
-}
\ No newline at end of file
+}