MDL-32480 fix display of IMS content packages with external links
authorNicolas Dunand <nico@kolya.ch>
Mon, 3 Jun 2013 06:13:19 +0000 (08:13 +0200)
committerPetr Škoda <commits@skodak.org>
Fri, 7 Jun 2013 08:00:52 +0000 (10:00 +0200)
mod/imscp/locallib.php

index 04b16fb..9b53902 100644 (file)
@@ -61,10 +61,15 @@ function imscp_print_content($imscp, $cm, $course) {
 function imscp_htmllize_item($item, $imscp, $cm) {
     global $CFG;
 
-    $context = get_context_instance(CONTEXT_MODULE, $cm->id);
-    $urlbase = "$CFG->wwwroot/pluginfile.php";
-    $path = '/'.$context->id.'/mod_imscp/content/'.$imscp->revision.'/'.$item['href'];
-    $url = file_encode_url($urlbase, $path, false);
+    if (strpos($item['href'], 'http://') === 0) {
+        $url = $item['href'];
+    }
+    else {
+        $context = context_module::instance($cm->id);
+        $urlbase = "$CFG->wwwroot/pluginfile.php";
+        $path = '/'.$context->id.'/mod_imscp/content/'.$imscp->revision.'/'.$item['href'];
+        $url = file_encode_url($urlbase, $path, false);
+    }
     $result = "<li><a href=\"$url\">".$item['title'].'</a>';
     if ($item['subitems']) {
         $result .= '<ul>';