Preparing rss stuff to be showed in lists of activities...
[moodle.git] / rss / rsslib.php
index e9d82c5..a3e5565 100644 (file)
@@ -1,8 +1,8 @@
 <?PHP  // $Id$
        // This file contains all the common stuff to be used in RSS System
 
 <?PHP  // $Id$
        // This file contains all the common stuff to be used in RSS System
 
-//This function prints the icon (from theme) with the link to rss/file.php
-function rss_print_link($courseid, $userid, $modulename, $id, $tooltiptext="") {
+//This function returns the icon (from theme) with the link to rss/file.php
+function rss_get_link($courseid, $userid, $modulename, $id, $tooltiptext="") {
 
  global $CFG, $THEME, $USER;
 
 
  global $CFG, $THEME, $USER;
 
@@ -25,10 +25,16 @@ function rss_print_link($courseid, $userid, $modulename, $id, $tooltiptext="") {
 
     $rsspix = $pixpath."/i/rss.gif";
 
 
     $rsspix = $pixpath."/i/rss.gif";
 
-     echo "<a href=\"".$rsspath."\"><img src=\"$rsspix\" title=\"$tooltiptext\"></a>";
+    return "<a href=\"".$rsspath."\"><img src=\"$rsspix\" title=\"$tooltiptext\"></a>";
 
 }
 
 
 }
 
+//This function prints the icon (from theme) with the link to rss/file.php
+function rss_print_link($courseid, $userid, $modulename, $id, $tooltiptext="") {
+
+    echo rss_get_link($courseid, $userid, $modulename, $id, $tooltiptext);
+
+}
 //This function iterates over each module in the server to see if
 //it supports generating rss feeds, searching for a MODULENAME_rss_feeds()
 //function and invoking it foreach activity as necessary
 //This function iterates over each module in the server to see if
 //it supports generating rss feeds, searching for a MODULENAME_rss_feeds()
 //function and invoking it foreach activity as necessary
@@ -38,17 +44,17 @@ function cron_rss_feeds () {
 
     $status = true;
    
 
     $status = true;
    
-    echo "    Generating rssfeeds...\n";
+    mtrace("    Generating rssfeeds...");
 
     //Check for required functions...
     if(!function_exists('utf8_encode')) {
 
     //Check for required functions...
     if(!function_exists('utf8_encode')) {
-        echo "        ERROR: You need to add XML support to your PHP installation!\n";
+        mtrace("        ERROR: You need to add XML support to your PHP installation!");
         return true;
     }
 
     if ($allmods = get_records("modules") ) {
         foreach ($allmods as $mod) {
         return true;
     }
 
     if ($allmods = get_records("modules") ) {
         foreach ($allmods as $mod) {
-            echo '        '.$mod->name.': ';
+            mtrace('        '.$mod->name.': ', '');
             $modname = $mod->name;
             $modfile = "$CFG->dirroot/mod/$modname/rsslib.php";
             //If file exists and we have selected to restore that type of module
             $modname = $mod->name;
             $modfile = "$CFG->dirroot/mod/$modname/rsslib.php";
             //If file exists and we have selected to restore that type of module
@@ -57,29 +63,29 @@ function cron_rss_feeds () {
                 $generaterssfeeds = $modname.'_rss_feeds';
                 if (function_exists($generaterssfeeds)) {
                     if ($status) {
                 $generaterssfeeds = $modname.'_rss_feeds';
                 if (function_exists($generaterssfeeds)) {
                     if ($status) {
-                        echo 'generating ';
+                        mtrace('generating ', '');;
                         $status = $generaterssfeeds();
                         if (!empty($status)) {
                         $status = $generaterssfeeds();
                         if (!empty($status)) {
-                            echo "...OK\n";
+                            mtrace("...OK");
                         } else {
                         } else {
-                            echo "...FAILED\n";
+                            mtrace("...FAILED");
                         }
                     } else {
                         }
                     } else {
-                        echo "...SKIPPED (failed above)\n";
+                        mtrace("...SKIPPED (failed above)");
                     }
                 } else {
                     }
                 } else {
-                    echo "...NOT SUPPORTED (function)\n";
+                    mtrace("...NOT SUPPORTED (function)");
                 }
             } else {
                 }
             } else {
-                echo "...NOT SUPPORTED (file)\n";
+                mtrace("...NOT SUPPORTED (file)");
             }
         }
     }
             }
         }
     }
-    echo "    Ending  rssfeeds...";
+    mtrace("    Ending  rssfeeds...", '');
     if (!empty($status)) {
     if (!empty($status)) {
-        echo "...OK\n";
+        mtrace("...OK");
     } else {
     } else {
-        echo "...FAILED\n";
+        mtrace("...FAILED");
     }
 
     return $status;
     }
 
     return $status;
@@ -92,27 +98,31 @@ function rss_save_file ($modname,$mod,$result) {
     
     $status = true;
 
     
     $status = true;
 
-    $basedir = $CFG->dataroot."/rss";
-
-    //Check dataroot/rss exists
-    $status = check_dir_exists($basedir,true);
-
-    $basedir .= "/".$modname;
-
-    //Check dataroot/rrs/$modname exists
-    $status = check_dir_exists($basedir,true);
+    if (! $basedir = make_upload_directory ("rss/".$modname)) {
+        //Cannot be created, so error
+        $status = false;
+    }
 
     if ($status) {
 
     if ($status) {
-        $file = $basedir .= "/".$mod->id.".xml";
+        $file = rss_file_name($modname, $mod);
         $rss_file = fopen($file,"w");
         if ($rss_file) {
             $status = fwrite ($rss_file,$result);
             fclose($rss_file);
         $rss_file = fopen($file,"w");
         if ($rss_file) {
             $status = fwrite ($rss_file,$result);
             fclose($rss_file);
+        } else {
+            $status = false;
         }
     }
     return $status;
 }
 
         }
     }
     return $status;
 }
 
+
+function rss_file_name($modname, $mod) {
+    global $CFG;
+
+    return "$CFG->dataroot/rss/$modname/$mod->id.xml";
+}
+
 //This function return all the common headers for every rss feed in the site
 function rss_standard_header($title = NULL, $link = NULL, $description = NULL) {
 
 //This function return all the common headers for every rss feed in the site
 function rss_standard_header($title = NULL, $link = NULL, $description = NULL) {