root/releases/0.6rc2/_weblog/rss2.php

Revision 296, 3.5 kB (checked in by carmartin, 3 years ago)

Includes should use full path given that we know where things are. Patch 1.

  • Property svn:eol-style set to native
Line 
1 <?php
2 global $CFG;
3 //    ELGG weblog RSS 2.0 page
4 // this is now only used for tag-search feeds
5
6 // Run includes
7 require_once(dirname(dirname(__FILE__))."/includes.php");
8
9 run("profile:init");
10 run("friends:init");
11 run("weblogs:init");
12
13 global $page_owner;
14 $tag = optional_param('tag');
15 if (isset($page_owner)) {
16             
17     $username = run("users:id_to_name", $page_owner);
18     if ($username) {
19         /*
20         if (!isset($_REQUEST['tag']) || trim($_REQUEST['tag'])=="" ) {
21             // no tag, serve plain file
22         $publish_folder = substr($username,0,1);
23         NOTE THAT IF THIS GETS UNCOMMENTED THIS NEEDS TO CHANGE TO BE INSIDE DATAROOT NOW. (Penny)
24         $rssfile = path . "_rss/data/" . $publish_folder . "/" . $username . "/weblog.xml";
25         $rssurl = url . $username . "/weblog/rss2/";
26         
27         if (!file_exists($rssfile)) {
28             $rssresult = run("weblogs:rss:publish", array($page_owner, false));
29         }
30         header("{$_SERVER['SERVER_PROTOCOL']} 301 Moved Permanently");
31         header("Location: $rssurl");
32         exit;
33         } else {
34             // a tag has been set
35             // not using static file for tags, because number of tags * number of users...
36 */               
37             $sitename = sitename;
38             
39             $output = "";
40             
41             $rssweblog = sprintf(gettext("Weblog items tagged with %s"),$tag);
42             
43             if ($info = get_record('users','ident',$page_owner)) {
44                 $name = (stripslashes($info->name));
45                 $url = url;
46                 $username = (stripslashes($info->username));
47                 $mainurl = (url . $username . "/weblog/");
48                 $rssurl = $mainurl . "rss/" . urlencode(trim($tag));
49                 $rssdescription = sprintf(gettext("The weblog for %s, hosted on %s."),$name,$sitename);
50
51                     /* <?xml-stylesheet type="text/xsl" href="{$url}_rss/styles.xsl?url=$mainurl&rssurl=$rssurl"?> */
52                     /* <?xml-stylesheet type="text/xsl" href="{$rssurl}/rssstyles.xsl"?> */
53                 $output .= <<< END
54 <?xml-stylesheet type="text/xsl" href="{$rssurl}/rssstyles.xsl"?>
55
56 <rss version='2.0'   xmlns:dc='http://purl.org/dc/elements/1.1/'>       
57     <channel xml:base='$mainurl'>
58         <title><![CDATA[$name : $rssweblog]]></title>
59         <description><![CDATA[$rssdescription]]></description>
60         <link>$mainurl</link>
61 END;
62                 $modifier = optional_param('modifier');
63                 $output .= run("weblogs:rss:getitems", array($page_owner, 10, $tag, $modifier));
64                 
65                 $output .= <<< END
66
67     </channel>
68 </rss>
69 END;
70             }
71             
72             if ($output) {
73                 header("Pragma: public");
74                 header("Cache-Control: public");
75                 header('Expires: ' . gmdate("D, d M Y H:i:s", (time()+3600)) . " GMT");
76                 
77                 $if_none_match = preg_replace('/[^0-9a-f]/', '', $_SERVER['HTTP_IF_NONE_MATCH']);
78                 
79                 $etag = md5($output);
80                     header('ETag: "' . $etag . '"');
81                 
82                 if ($if_none_match == $etag) {
83                     header("{$_SERVER['SERVER_PROTOCOL']} 304 Not Modified");
84                     exit;
85                 }
86                 
87                 header("Content-Length: " . strlen($output));
88                 
89                 header("Content-type: text/xml; charset=utf-8");
90                 echo $output;
91             }
92             //        }
93     }
94 }
95
Note: See TracBrowser for help on using the browser.