root/devel/mod/file/lib/function_rss_publish.php

Revision 1539, 2.6 kB (checked in by renato, 1 year ago)

Setting prop svn:eol-style in LOTS of files.

  • Property svn:eol-style set to native
Line 
1 <?php
2 global $CFG;
3 require_once($CFG->dirroot.'lib/uploadlib.php');
4 /*
5  *    Function to publish weblog posts as RSS, either a static file or return output
6  *   
7  *    $parameter[0] is the numeric id of the user to publish
8  *   
9  *    $parameter[1] is true to return a string of RSS, or false to publish static file.
10  *        (Defaults to publishing file)
11  *
12  */
13
14     $run_result = false;
15     
16     if (isset($parameter) && is_array($parameter)) {
17         
18         $userid = (int) $parameter[0];
19         if ($userid > 0) {
20             $username = user_info('username', $userid);
21         }
22         if ($username) {
23             
24             // make output dirs if they don't already exist
25             $publish_folder = substr($username,0,1);
26             
27             $publish_folder = "rss/" . $publish_folder . "/" . $username ;
28             
29             make_upload_directory($publish_folder,false);
30             
31             $rssfile = $CFG->dataroot.$publish_folder.'/files.xml';
32             
33             //generate rss
34             $sitename = sitename;
35             $rssfiles = __gettext("Files");
36             
37             $info = get_record('users','ident',$userid);
38             $name = stripslashes(user_name($info->ident));
39             $username = $info->username;
40             $mainurl = $CFG->wwwroot . $username . "/files/";
41             $rssurl = $mainurl . "rss/";
42             $rssdescription = sprintf(__gettext("Files for %s, hosted on %s."),$name,$sitename);
43             $output = <<< END
44 <?xml-stylesheet type="text/xsl" href="{$rssurl}rssstyles.xsl"?>
45 <rss version='2.0'   xmlns:dc='http://purl.org/dc/elements/1.1/'>
46     <channel xml:base='$mainurl'>
47         <title><![CDATA[$name : $rssfiles]]></title>
48         <description><![CDATA[$rssdescription]]></description>
49         <generator>Elgg</generator>
50         <link>$mainurl</link>
51 END;
52             
53             // WEBLOGS
54             $output .= run("files:rss:getitems", array($userid, 10, ""));
55             
56             $output .= <<< END
57
58     </channel>
59 </rss>
60 END;
61             
62             if ($parameter[1] === true) {
63                 
64                 $run_result = $output;
65                 
66             } else {
67                 
68                 // write to file
69                 if ($handle = fopen($rssfile, "wb")) {
70                     $writeresult = fwrite($handle, $output);
71                     $closeresult = fclose($handle);
72                     if ($writeresult && $closeresult) {
73                         $run_result = true;
74                     }
75                 }
76                 
77             }
78             
79         } // if ($username)
80         
81     }
82
83 ?>
Note: See TracBrowser for help on using the browser.