]> git.mjollnir.org Git - moodle.git/commitdiff
- External webpage resources now are parsed and automatic links are added to the...
authorwillcast <willcast>
Thu, 27 Nov 2003 19:09:47 +0000 (19:09 +0000)
committerwillcast <willcast>
Thu, 27 Nov 2003 19:09:47 +0000 (19:09 +0000)
mod/resource/fetch.php
mod/resource/lib.php
mod/resource/view.php

index d200ab080735f5b5f9cb494ede0ce803243a4203..a9667ede36892987ad2ba2ebd11e232d4596fc9b 100644 (file)
@@ -19,7 +19,7 @@
         error("Resource ID was incorrect");
     }
 
-    $content = resource_fetch_remote_file($url);
+    $content = resource_fetch_remote_file($cm, $url);
     
     echo format_text($content->results,FORMAT_HTML);
 ?>
\ No newline at end of file
index 6acb902d1f32e22277f15731611616a607e1cb76..c17b19411a8dc0edbcad1a4eb4fd42b1d8d39987 100644 (file)
@@ -161,7 +161,7 @@ function resource_get_coursemodule_info($coursemodule) {
    return false;
 }
  
-function resource_fetch_remote_file ($url, $headers = "" ) {
+function resource_fetch_remote_file ($cm, $url, $headers = "" ) {
        // Snoopy is an HTTP client in PHP
        $client = new Snoopy();
        $client->agent = MAGPIE_USER_AGENT;
index ba376948ecfc5575521ad4ddb83ba2cfa66d9b50..5f9264b2a2fa725ea56cd41226aacbf487978ddd 100644 (file)
@@ -2,7 +2,8 @@
 
     require_once("../../config.php");
     require_once("lib.php");
-
+    require_once("../../lib/snoopy/Snoopy.class.inc");
     require_variable($id);    // Course Module ID
     optional_variable($frameset, "");
 
             break;
 
         case WEBLINK:
+            if ( $CFG->filterexternalpages ) {
+                $url = "fetch.php?id=$cm->id&url=$resource->reference";
+            } else {
+                $url = "$resource->reference";
+            }
             add_to_log($course->id, "resource", "view", "view.php?id=$cm->id", "$resource->id");
-            redirect($resource->reference, "", 0);
+            redirect($url, "", 0);
             break;
 
         case WEBPAGE:
                 echo "<center><font size=-1>".text_to_html($resource->summary, true, false)."</font></center>";
 
             } else {
+                if ( $CFG->filterexternalpages ) {
+                    $url = "fetch.php?id=$cm->id&url=$resource->reference";
+                } else {
+                    $url = "$resource->reference";
+                }
                 add_to_log($course->id, "resource", "view", "view.php?id=$cm->id", "$resource->id");
                 echo "<head><title>$course->shortname: $resource->name</title></head>\n";
                 echo "<frameset rows=\"$CFG->resource_framesize,*\" border=\"2\">";
                 echo "<frame src=\"view.php?id=$cm->id&frameset=top\">";
-                echo "<frame src=\"$resource->reference\">";
+                echo "<frame src=\"$url\">";
                 echo "</frameset>";
             }
             break;
 
         case UPLOADEDFILE:
             require_once("../../files/mimetypes.php");
+            $inpopup = !empty($_GET["inpopup"]);
 
+            if ( $CFG->filterexternalpages ) {
+                if ($inpopup) {
+                    $fetchingprefix = "$CFG->wwwroot/mod/resouce/fetch.php?id=$cm->id&url=";
+                } else {
+                    $fetchingprefix = "fetch.php?id=$cm->id&url=";
+                }
+                // until we found a way to show uploaded files properly throught the 
+                // fetch_remote_file function
+                $fetchingprefix = "";
+            } else {
+                $fetchingprefix = "";
+            }
             if ($CFG->slasharguments) {
                 $fullurl = "$CFG->wwwroot/file.php/$course->id/$resource->reference";
             } else {
                 $fullurl = "$CFG->wwwroot/file.php?file=/$course->id/$resource->reference";
             }
 
-            $inpopup = !empty($_GET["inpopup"]);
-
             $embedded = false;
 
             if (mimeinfo("icon", $fullurl) == "image.gif") {  //  It's an image
                 $resourceimage = false;
             } // Later, look for more things to embed
 
+            if (mimeinfo("icon", $fullurl) == "html.gif" or 
+                mimeinfo("icon", $fullurl) == "html.gif") {  //  It's a web page
+                $resourcehtml = true;
+            } else {
+                $resourcehtml = false;
+            } 
+
             if ($inpopup) {
                 add_to_log($course->id, "resource", "view", "view.php?id=$cm->id", "$resource->id");
                 if ($embedded) {
                     print_header($pagetitle);
                     echo "<center><font size=-1>".text_to_html($resource->summary, true, false)."</font></center>";
                 } else {
-                    redirect($fullurl);
+                    if ( $resourcehtml ) {
+                        redirect("$fetchingprefix$fullurl");
+                    } else {
+                        redirect($fullurl);
+                    }
                     break;
                 }
 
                 if ($resourceimage) {  
                     echo "<br />";
                     echo "<center><img class=\"resourceimage\" src=\"$fullurl\"></center>";
+                    echo "<br />";
+                } elseif ( $resourcehtml and $CFG->filterexternalpages ) {
+                    echo "<br />";
+                    
+                    $content = resource_fetch_remote_file("$fetchingprefix$fullurl");
+                    echo $content->results;
+                    
                     echo "<br />";
                 }
                 if (!$inpopup) {
                 echo "<head><title>$course->shortname: $resource->name</title></head>\n";
                 echo "<frameset rows=\"$CFG->resource_framesize,*\" border=\"2\">";
                 echo "<frame src=\"view.php?id=$cm->id&frameset=top\">";
-                echo "<frame src=\"$fullurl\">";
+
+                if ($CFG->slasharguments) {
+                    $fullurl = "$CFG->wwwroot/file.php/$course->id/$resource->reference";
+                } else {
+                    $fullurl = "$CFG->wwwroot/file.php?file=/$course->id/$resource->reference";
+                }
+
+                if ( $resourcehtml  and $CFG->filterexternalpages ) {
+                    echo "<frame src=\"fetch.php?id=$cm->id&url=$fetchingprefix$fullurl\">";
+                } else {
+                    echo "<frame src=\"$fullurl\">";
+                }
                 echo "</frameset>";
             }
             break;