Remove old images and logos
[elgg.git] / units / files / function_rss_publish.php
blobee67baddcd5b5defa7edae2a9408a96b21315d35
1 <?php
2 /*
3 * Function to publish weblog posts as RSS, either a static file or return output
4 *
5 * $parameter[0] is the numeric id of the user to publish
6 *
7 * $parameter[1] is true to return a string of RSS, or false to publish static file.
8 * (Defaults to publishing file)
12 $run_result = false;
14 if (isset($parameter) && is_array($parameter)) {
16 $userid = (int) $parameter[0];
17 if ($userid > 0) {
18 $username = run("users:id_to_name", $userid);
20 if ($username) {
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";
35 //generate rss
36 $sitename = sitename;
37 $rssfiles = gettext("Files");
39 $output .= <<< END
40 <rss version='2.0' xmlns:dc='http://purl.org/dc/elements/1.1/'>
42 END;
43 $info = db_query("select * from users where ident = $userid");
45 $info = $info[0];
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);
50 $output .= <<< END
51 <channel xml:base='$mainurl'>
52 <title><![CDATA[$name : $rssfiles]]></title>
53 <description><![CDATA[$rssdescription]]></description>
54 <link>$mainurl</link>
55 END;
57 // WEBLOGS
58 $output .= run("files:rss:getitems", array($userid, 10, ""));
60 $output .= <<< END
62 </channel>
63 </rss>
64 END;
66 if ($parameter[1] === true) {
68 $run_result = $output;
70 } else {
72 // write to file
73 if ($handle = fopen($rssfile, "wb")) {
74 $writeresult = fwrite($handle, $output);
75 $closeresult = fclose($handle);
76 if ($writeresult && $closeresult) {
77 $run_result = true;
83 } // if ($username)