3 * Function to publish weblog posts as RSS, either a static file or return output
5 * $parameter[0] is the numeric id of the user to publish
7 * $parameter[1] is true to return a string of RSS, or false to publish static file.
8 * (Defaults to publishing file)
14 if (isset($parameter) && is_array($parameter)) {
16 $userid = (int) $parameter[0];
18 $username = run("users:id_to_name", $userid);
22 // make output dirs if they don't already exist
23 $publish_folder = substr($username,0,1);
25 if (!file_exists(path
. "_rss/data/" . $publish_folder)) {
26 mkdir(path
. "_rss/data/" . $publish_folder);
29 if (!file_exists(path
. "_rss/data/" . $publish_folder . "/" . $username)) {
30 mkdir(path
. "_rss/data/" . $publish_folder . "/" . $username);
33 $rssfile = path
. "_rss/data/" . $publish_folder . "/" . $username . "/files.xml";
37 $rssfiles = gettext("Files");
40 <rss version
='2.0' xmlns
:dc
='http://purl.org/dc/elements/1.1/'>
43 $info = db_query("select * from users where ident = $userid");
46 $name = (stripslashes($info->name
));
47 $username = (stripslashes($info->username
));
48 $mainurl = (url
. $username . "/files/");
49 $rssdescription = sprintf(gettext("Files for %s, hosted on %s."),$name,$sitename);
51 <channel xml
:base
='$mainurl'>
52 <title
><![CDATA
[$name : $rssfiles]]></title
>
53 <description
><![CDATA
[$rssdescription]]></description
>
58 $output .= run("files:rss:getitems", array($userid, 10, ""));
66 if ($parameter[1] === true) {
68 $run_result = $output;
73 if ($handle = fopen($rssfile, "wb")) {
74 $writeresult = fwrite($handle, $output);
75 $closeresult = fclose($handle);
76 if ($writeresult && $closeresult) {