Use mtrace function for debugging
[moodle.git] / rss / rsslib.php
index 03d06c3..b73948f 100644 (file)
@@ -38,11 +38,17 @@ function cron_rss_feeds () {
 
     $status = true;
    
-    echo "    Generating rssfeeds...\n";
+    mtrace("    Generating rssfeeds...");
+
+    //Check for required functions...
+    if(!function_exists('utf8_encode')) {
+        mtrace("        ERROR: You need to add XML support to your PHP installation!");
+        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
@@ -51,29 +57,29 @@ function cron_rss_feeds () {
                 $generaterssfeeds = $modname.'_rss_feeds';
                 if (function_exists($generaterssfeeds)) {
                     if ($status) {
-                        echo 'generating ';
+                        mtrace('generating ', '');;
                         $status = $generaterssfeeds();
                         if (!empty($status)) {
-                            echo "...OK\n";
+                            mtrace("...OK");
                         } else {
-                            echo "...FAILED\n";
+                            mtrace("...FAILED");
                         }
                     } else {
-                        echo "...SKIPPED (failed above)\n";
+                        mtrace("...SKIPPED (failed above)");
                     }
                 } else {
-                    echo "...NOT SUPPORTED (function)\n";
+                    mtrace("...NOT SUPPORTED (function)");
                 }
             } else {
-                echo "...NOT SUPPORTED (file)\n";
+                mtrace("...NOT SUPPORTED (file)");
             }
         }
     }
-    echo "    Ending  rssfeeds...";
+    mtrace("    Ending  rssfeeds...", '');
     if (!empty($status)) {
-        echo "...OK\n";
+        mtrace("...OK");
     } else {
-        echo "...FAILED\n";
+        mtrace("...FAILED");
     }
 
     return $status;
@@ -86,15 +92,10 @@ function rss_save_file ($modname,$mod,$result) {
     
     $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) {
         $file = $basedir .= "/".$mod->id.".xml";
@@ -102,6 +103,8 @@ function rss_save_file ($modname,$mod,$result) {
         if ($rss_file) {
             $status = fwrite ($rss_file,$result);
             fclose($rss_file);
+        } else {
+            $status = false;
         }
     }
     return $status;
@@ -110,7 +113,7 @@ function rss_save_file ($modname,$mod,$result) {
 //This function return all the common headers for every rss feed in the site
 function rss_standard_header($title = NULL, $link = NULL, $description = NULL) {
 
-    global $CFG, $USER;
+    global $CFG, $THEME, $USER;
 
     static $pixpath = '';
 
@@ -181,7 +184,7 @@ function rss_standard_header($title = NULL, $link = NULL, $description = NULL) {
 
 //This function returns the rss XML code for every item passed in the array
 //item->title: The title of the item
-//item->author: The author of the item
+//item->author: The author of the item. Optional !!
 //item->pubdate: The pubdate of the item
 //item->link: The link url of the item
 //item->description: The content of the item
@@ -197,6 +200,10 @@ function rss_add_items($items) {
             $result .= rss_full_tag("title",3,false,$item->title);
             $result .= rss_full_tag("link",3,false,$item->link);
             $result .= rss_full_tag("pubDate",3,false,date("r",$item->pubdate));
+            //Include the author if exists 
+            if (isset($item->author)) {
+                $item->description = get_string("byname","",$item->author)."<p>".$item->description;
+            }
             $result .= rss_full_tag("description",3,false,$item->description);
             $result .= rss_end_tag("item",2,true);