2 // export projects release news in RSS 2.0
3 // Author: Scott Grayban <sgrayban@borgnet.us>
6 require_once '../env.inc.php';
7 require_once $gfwww.'include/pre.php';
8 require_once $gfwww.'export/rss_utils.inc';
10 header("Content-Type: text/xml; charset=utf-8");
11 print '<?xml version="1.0" encoding="UTF-8"?>
15 $group_id = getIntFromRequest('group_id');
16 $limit = getIntFromRequest('limit', 10);
18 if ($limit > 100) $limit = 100;
21 $res = db_query_params ('SELECT group_name FROM groups WHERE group_id=$1 AND is_public=1',
23 $row = db_fetch_array($res);
24 $title = ": ".$row['group_name']." - ";
25 $link = "/project/showfiles.php?group_id=$group_id";
26 $description = " of ".$row['group_name'];
27 $reswm = db_query_params ('SELECT users.user_name,users.realname FROM user_group,users WHERE group_id=$1 AND admin_flags=$2 AND users.user_id=user_group.user_id ORDER BY users.add_date',
30 if ($rowwm = db_fetch_array($reswm)) {
31 $webmaster = $rowwm['user_name']."@".$GLOBALS['sys_users_host']." (".$rowwm['realname'].")";
33 $webmaster = $GLOBALS['sys_admin_email'];
39 $webmaster = $GLOBALS['sys_admin_email'];
44 print " <title>".$GLOBALS['sys_name']." Project$title Releases</title>\n";
45 print " <link>http://".$GLOBALS['sys_default_domain']."$link</link>\n";
46 print " <description>".$GLOBALS['sys_name']." Project Releases$description</description>\n";
47 print " <language>en-us</language>\n";
48 print " <copyright>Copyright ".date("Y")." ".$GLOBALS['sys_name']."</copyright>\n";
49 print " <webMaster>$webmaster</webMaster>\n";
50 print " <lastBuildDate>".rss_date(time())."</lastBuildDate>\n";
51 print " <docs>http://blogs.law.harvard.edu/tech/rss</docs>\n";
53 $res = db_query_params ('SELECT groups.group_name AS group_name,
54 frs_package.group_id AS group_id,
55 groups.unix_group_name AS unix_group_name,
56 groups.short_description AS short_description,
57 groups.license AS license,
58 users.user_name AS user_name,
59 users.user_id AS user_id,
60 users.realname AS realname,
61 frs_package.name AS package_name,
62 frs_release.package_id AS filemodule_id,
63 frs_release.name AS module_name,
64 frs_release.notes AS module_notes,
65 frs_release.status_id AS release_status,
66 frs_release.release_date AS release_date,
67 frs_file.release_time AS release_time,
68 frs_file.filename AS filename,
69 frs_file.release_id AS filerelease_id
70 FROM users,frs_file,frs_release,frs_package,groups
71 WHERE frs_release.released_by=users.user_id
72 AND frs_release.package_id=frs_package.package_id
73 AND frs_package.group_id=groups.group_id
74 AND frs_release.status_id=1
75 AND groups.is_public=1
76 AND (frs_package.group_id=$1 OR 1!=$2)
77 AND frs_file.release_id=frs_release.release_id
78 ORDER BY frs_file.release_time DESC',
87 while ($row = db_fetch_array($res)) {
88 if (!isset ($seen[$row['filerelease_id']])) {
90 print " <title>".htmlspecialchars($row['package_name'])." ".htmlspecialchars($row['module_name'])."</title>\n";
91 print " <link>http://".$GLOBALS['sys_default_domain']."/project/showfiles.php?group_id=".$row['group_id']."&release_id=".$row['filerelease_id']."</link>\n";
92 print " <description>".rss_description($row['module_notes'])."</description>\n";
93 print " <author>".$row['user_name']."@".$GLOBALS['sys_users_host']." (".$row['realname'].")</author>\n";
94 print " <comments>http://".$GLOBALS['sys_default_domain']."/project/shownotes.php?group_id=".$row['group_id']."&release_id=".$row['filerelease_id']."</comments>\n";
95 print " <pubDate>".rss_date($row['release_date'])."</pubDate>\n";
96 print " <guid>http://".$GLOBALS['sys_default_domain']."/project/showfiles.php?group_id=".$row['group_id']."&release_id=".$row['filerelease_id']."</guid>\n";
100 // eliminate dupes, only do $limit of these
101 $seen[$row['filerelease_id']] = 1;
102 if ($outputtotal >= $limit) break;
105 print " </channel>\n";