[evolvis-commits] r11445: added RSS2.0 feeds (patch by Scott Grayban) ↵

mirabilos at evolvis.org mirabilos at evolvis.org
Thu Feb 24 18:11:04 CET 2011


Author: mirabilos
Date: 2011-02-24 18:11:04 +0100 (Thu, 24 Feb 2011)
New Revision: 11445

Added:
   trunk/gforge_base/evolvisforge-5.1/gforge/www/export/rss20_newreleases.php
   trunk/gforge_base/evolvisforge-5.1/gforge/www/export/rss20_news.php
   trunk/gforge_base/evolvisforge-5.1/gforge/www/export/rss20_projects.php
   trunk/gforge_base/evolvisforge-5.1/gforge/www/export/rss_project.php
Modified:
   trunk/gforge_base/evolvisforge-5.1/gforge/www/export/index.php
   trunk/gforge_base/evolvisforge-5.1/gforge/www/include/languages/Base.tab
   trunk/gforge_base/evolvisforge-5.1/gforge/www/include/project_home.php
Log:
added RSS2.0 feeds (patch by Scott Grayban)


Modified: trunk/gforge_base/evolvisforge-5.1/gforge/www/export/index.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/export/index.php	2011-02-24 17:11:02 UTC (rev 11444)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/export/index.php	2011-02-24 17:11:04 UTC (rev 11445)
@@ -21,7 +21,7 @@
 data generated by these pages is realtime.</p>
 
 <h3>
-XML Exports
+RSS/XML Exports
 </h3>
 
 <h4>News Data</h4>
@@ -33,14 +33,22 @@
 <a href="http://my.netscape.com/publish/formats/rss-0.91.dtd"><rss-0.91.dtd></a>)</li>
 </ul>
 
+<ul>
+<li><a href="rss20_news.php"><?php print $GLOBALS[sys_name] ?> Front Page News/Project News</a>
+(<a href="http://blogs.law.harvard.edu/tech/rss">RSS 2.0</a>)
+<li><a href="rss20_newreleases.php"><?php print $GLOBALS[sys_name] ?> New Releases/New Project Releases</a>
+(<a href="http://blogs.law.harvard.edu/tech/rss">RSS 2.0</a>)</li>
+</ul>
+
 <h4>Site Information</h4>
 <ul>
 <li><a href="rss_sfprojects.php"><?php echo $GLOBALS['sys_name']; ?> Full Project Listing</a>
 (<a href="http://my.netscape.com/publish/formats/rss-spec-0.91.html">RSS 0.91</a>,
 <a href="http://my.netscape.com/publish/formats/rss-0.91.dtd"><rss-0.91.dtd></a>)</li>
+<li><A href="rss20_projects.php"><?php print $GLOBALS[sys_name] ?> Full Project Listing</a>
+(<a href="http://blogs.law.harvard.edu/tech/rss">RSS 2.0</a>)</li>
 <li><a href="trove_tree.php"><?php echo $GLOBALS['sys_name']; ?> Trove Categories Tree</a>
-(<a href="http://www.w3.org/XML">XML</a>,
-<a href="trove_tree_0.1.dtd"><trove_tree_0.1.dtd></a>)</li>
+(<a href="http://www.w3.org/XML">XML</a>,<a href="trove_tree_0.1.dtd"><trove_tree_0.1.dtd></a>)</li>
 </ul>
 
 <h4>Project Information</h4>
@@ -51,16 +59,13 @@
 </p>
 
 <ul>
-<li><a href="forum.php">Project Forums</a>
-(<a href="forum_0.1.dtd"><forum_0.1.dtd></a>)</li>
+<li><a href="forum.php">Project Forums</a>(<a href="forum_0.1.dtd"><forum_0.1.dtd></a>)</li>
 </ul>
 
 <!--
 <ul>
-<li><a href="bug_dump.php">Project Bugs</a>
-(<a href="bug_0.1.dtd"><bug_0.1.dtd></a>)</li>
-<li><a href="patch_dump.php">Project Patches</a>
-(<a href="patch_0.1.dtd"><patch_0.1.dtd></a>)</li>
+<li><a href="bug_dump.php">Project Bugs</a>(<a href="bug_0.1.dtd"><bug_0.1.dtd></a>)</li>
+<li><a href="patch_dump.php">Project Patches</a>(<a href="patch_0.1.dtd"><patch_0.1.dtd></a>)</li>
 </ul>
 -->
 
@@ -73,8 +78,6 @@
 For details, check <a href="http://sourceforge.net/docman/display_doc.php?docid=1502&group_id=1">this</a> out.
 </p>
 
-
-
 <?php
 $HTML->footer(array());
 ?>

Added: trunk/gforge_base/evolvisforge-5.1/gforge/www/export/rss20_newreleases.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/export/rss20_newreleases.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/export/rss20_newreleases.php	2011-02-24 17:11:04 UTC (rev 11445)
@@ -0,0 +1,106 @@
+<?php
+// export projects release news in RSS 2.0
+// Author: Scott Grayban <sgrayban at borgnet.us>
+//
+
+include "pre.php";
+include "rss_utils.inc";
+header("Content-Type: text/xml");
+print '<?xml version="1.0" encoding="UTF-8"?>
+<rss version="2.0">
+';
+
+// ## default limit
+if (!$limit) $limit = 10;
+if ($limit > 100) $limit = 100;
+
+if ($group_id) {
+	$where = "frs_package.group_id=$group_id AND ";
+	$res = db_query("SELECT group_name FROM groups WHERE group_id=$group_id");
+	$row = db_fetch_array($res);
+	$title = ": ".$row[group_name]." - ";
+	$link = "/project/showfiles.php?group_id=$group_id";
+	$description = " of ".$row[group_name];
+	$querywm =  "SELECT users.user_name,users.realname FROM user_group,users WHERE group_id=$group_id AND admin_flags='A' AND users.user_id=user_group.user_id ORDER BY users.add_date";
+	$reswm = db_query($querywm,1);
+	if ($rowwm = db_fetch_array($reswm)) {
+	  $webmaster = $rowwm[user_name]."@".$GLOBALS[sys_users_host]." (".$rowwm[realname].")";
+	} else {
+	  $webmaster = "admin@".$GLOBALS[sys_default_domain];
+	}
+} else {
+	$where = "";
+    $title = "";
+	$link = "/new/";
+	$description = "";
+	$webmaster = "admin@".$GLOBALS[sys_default_domain];
+}
+
+// ## one time output
+print " <channel>\n";
+print "  <title>".$GLOBALS[sys_default_name]." Project$title Releases</title>\n";
+print "  <link>http://".$GLOBALS[sys_default_domain]."$link</link>\n";
+print "  <description>".$GLOBALS[sys_name]." Project Releases$description</description>\n";
+print "  <language>en-us</language>\n";
+print "  <copyright>Copyright 2000-".date("Y")." ".$GLOBALS[sys_name]." OSI</copyright>\n";
+print "  <webMaster>$webmaster</webMaster>\n";
+print "  <lastBuildDate>".gmdate('D, d M Y G:i:s',time())." GMT</lastBuildDate>\n";
+print "  <docs>http://blogs.law.harvard.edu/tech/rss</docs>\n";
+print "  <image>\n";
+print "    <url>http://".$GLOBALS[sys_default_domain]."/images/bflogo-88.png</url>\n";
+print "    <title>".$GLOBALS[sys_name]." Developer</title>\n";
+print "    <link>http://".$GLOBALS[sys_default_domain]."/</link>\n";
+print "    <width>124</width>\n";
+print "    <heigth>32</heigth>\n";
+print "  </image>\n";
+
+$res = db_query("SELECT groups.group_name AS group_name,"
+	. "frs_package.group_id AS group_id,"
+	. "groups.unix_group_name AS unix_group_name,"
+	. "groups.short_description AS short_description,"
+	. "groups.license AS license,"
+	. "users.user_name AS user_name,"
+	. "users.user_id AS user_id,"
+	. "users.realname AS realname,"
+        . "frs_package.name AS package_name,"
+	. "frs_release.package_id AS filemodule_id,"
+	. "frs_release.name AS module_name,"
+	. "frs_release.notes AS module_notes,"
+	. "frs_release.status_id AS release_status,"
+	. "frs_release.release_date AS release_date,"
+	. "frs_file.release_time AS release_time,"
+	. "frs_file.filename AS filename,"
+	. "frs_file.release_id AS filerelease_id "
+	. "FROM users,frs_file,frs_release,frs_package,groups WHERE "
+	. "frs_release.released_by=users.user_id AND "
+	. "frs_release.package_id=frs_package.package_id AND "
+	. "frs_package.group_id=groups.group_id AND "
+	. "frs_release.status_id=1 AND "
+	. $where
+	. "frs_file.release_id=frs_release.release_id "
+	. "ORDER BY frs_file.release_time DESC",($limit * 3));
+
+
+// ## item outputs
+$outputtotal = 0;
+while ($row = db_fetch_array($res)) {
+	if (!$G_RELEASE["$row[filerelease_id]"]) {
+		print "  <item>\n";
+		print "   <title>".htmlspecialchars($row[package_name])." ".htmlspecialchars($row[module_name])."</title>\n";
+		print "   <link>http://".$GLOBALS[sys_default_domain]."/project/showfiles.php?group_id=".$row[group_id]."&release_id=".$row[filerelease_id]."</link>\n";
+		print "   <description>".rss_description($row[module_notes])."</description>\n";
+		print "   <author>".$row[user_name]."@".$GLOBALS[sys_users_host]." (".$row[realname].")</author>\n";
+		print "   <comment>http://".$GLOBALS[sys_default_domain]."/project/shownotes.php?group_id=".$row[group_id]."&release_id=".$row[filerelease_id]."</comment>\n";
+		print "   <pubDate>".gmdate('D, d M Y G:i:s',$row[release_date])." GMT</pubDate>\n";
+		print "   <guid>http://".$GLOBALS[sys_default_domain]."/project/showfiles.php?group_id=".$row[group_id]."&release_id=".$row[filerelease_id]."</guid>\n";
+		print "  </item>\n";
+		$outputtotal++;
+	}
+	// ## eliminate dupes, only do $limit of these
+	$G_RELEASE["$row[filerelease_id]"] = 1;
+	if ($outputtotal >= $limit) break;
+}
+// ## end output
+print " </channel>\n";
+?>
+</rss>

Added: trunk/gforge_base/evolvisforge-5.1/gforge/www/export/rss20_news.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/export/rss20_news.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/export/rss20_news.php	2011-02-24 17:11:04 UTC (rev 11445)
@@ -0,0 +1,99 @@
+<?php
+// export projects release news in RSS 2.0
+// Author: Scott Grayban <sgrayban at borgnet.us>
+//
+
+include "pre.php";
+include "rss_utils.inc";
+header("Content-Type: text/xml");
+print '<?xml version="1.0" encoding="UTF-8"?>
+<rss version="2.0">
+';
+// ## default limit
+if (!$limit) $limit = 10;
+if ($limit > 100) $limit = 100;
+
+if ($group_id) {
+	$where = "group_id=$group_id";
+	$query = "SELECT group_name FROM groups WHERE $where";
+	$res = db_query($query,1);
+	$row = db_fetch_array($res);
+	$title = ": ".$row[group_name]." - ";
+	$link = "?group_id=$group_id";
+	$description = " of ".$row[group_name];
+	$querywm =  "SELECT users.user_name,users.realname FROM user_group,users WHERE group_id=$group_id AND admin_flags='A' AND users.user_id=user_group.user_id ORDER BY users.add_date";
+	$reswm = db_query($querywm,1);
+	if ($rowwm = db_fetch_array($reswm)) {
+	  $webmaster = $rowwm[user_name]."@".$GLOBALS[sys_users_host]." (".$rowwm[realname].")";
+	} else {
+	  $webmaster = "admin@".$GLOBALS[sys_default_domain];
+	}
+} else {
+	$where = "is_approved=1";
+	$title = "";
+	$link = "";
+	$description = "";
+	$webmaster = "admin@".$GLOBALS[sys_default_domain];
+}
+
+// ## one time output
+print " <channel>\n";
+print "  <title>".$GLOBALS[sys_default_name]." Project$title News</title>\n";
+print "  <link>http://".$GLOBALS[sys_default_domain]."/news/$link</link>\n";
+print "  <description>".$GLOBALS[sys_name]." Project News$description</description>\n";
+print "  <language>en-us</language>\n";
+print "  <copyright>Copyright 2000-".date("Y")." ".$GLOBALS[sys_name]." OSI</copyright>\n";
+print "  <webMaster>$webmaster</webMaster>\n";
+print "  <lastBuildDate>".gmdate('D, d M Y G:i:s',time())." GMT</lastBuildDate>\n";
+print "  <docs>http://blogs.law.harvard.edu/tech/rss</docs>\n";
+print "  <generator>".$GLOBALS[sys_name]." RSS generator</generator>\n";
+print "  <image>\n";
+print "    <url>http://".$GLOBALS[sys_default_domain]."/images/bflogo-88.png</url>\n";
+print "    <title>".$GLOBALS[sys_name]." Developer</title>\n";
+print "    <link>http://".$GLOBALS[sys_default_domain]."/</link>\n";
+print "    <width>124</width>\n";
+print "    <heigth>32</heigth>\n";
+print "  </image>\n";
+
+$sql = "SELECT forum_id,summary,post_date,details,g.group_id,g.group_name,u.realname,u.user_name
+        FROM news_bytes, groups g,users u
+        WHERE news_bytes.group_id=g.group_id
+        AND u.user_id=news_bytes.submitted_by
+        AND g.is_public='1'
+        AND g.status='A'
+        $where_clause
+        order by post_date desc";
+        $res = db_query($sql, $limit);
+
+$res = db_query($sql, $limit);
+
+// ## item outputs
+while ($row = db_fetch_array($res)) {
+	print "  <item>\n";
+	print "   <title>".htmlspecialchars($row[summary])."</title>\n";
+	// if news group, link is main page
+	if ($row[group_id] != $sys_news_group) {
+		print "   <link>http://".$GLOBALS[sys_default_domain]."/forum/forum.php?forum_id=".$row[forum_id]."</link>\n";
+	} else {
+		print "   <link>http://".$GLOBALS[sys_default_domain]."/</link>\n";
+	}
+	print "   <description>".rss_description($row[details])."</description>\n";
+	print "   <author>".$row[user_name]."@".$GLOBALS[sys_users_host]." (".$row[realname].")</author>\n";
+	print "   <pubDate>".gmdate('D, d M Y G:i:s',$row[date])." GMT</pubDate>\n";
+	if ($row[group_id] != $sys_news_group) {
+		print "   <guid>http://".$GLOBALS[sys_default_domain]."/forum/forum.php?forum_id=".$row[forum_id]."</guid>\n";
+	} else {
+		print "   <guid>http://".$GLOBALS[sys_default_domain]."/</guid>\n";
+	}
+	// if news group, comment is main page
+	if ($row[group_id] != $sys_news_group) {
+		print "   <comment>http://".$GLOBALS[sys_default_domain]."/forum/forum.php?forum_id=".$row[forum_id]."</comment>\n";
+	} else {
+		print "   <comment>http://".$GLOBALS[sys_default_domain]."/</comment>\n";
+	}
+	print "  </item>\n";
+}
+// ## end output
+print " </channel>\n";
+?>
+</rss>

Added: trunk/gforge_base/evolvisforge-5.1/gforge/www/export/rss20_projects.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/export/rss20_projects.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/export/rss20_projects.php	2011-02-24 17:11:04 UTC (rev 11445)
@@ -0,0 +1,20 @@
+<?php
+// export projects list in RSS 2.0
+// Author: Scott Grayban <sgrayban at borgnet.us>
+//
+
+include "pre.php";
+include "rss_utils.inc";
+header("Content-Type: text/xml");
+print '<?xml version="1.0"?>
+<rss version="2.0">
+';
+$res = db_query(
+	 'SELECT group_id,group_name,unix_group_name,homepage,short_description,register_time '
+	.'FROM groups '
+	.'WHERE is_public=1 AND status=\'A\' '
+        .'ORDER BY group_id',$limit);
+
+rss20_dump_project_result_set($res,$GLOBALS[sys_default_name].' Full Project Listing');
+?>
+</rss>

Added: trunk/gforge_base/evolvisforge-5.1/gforge/www/export/rss_project.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/export/rss_project.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/export/rss_project.php	2011-02-24 17:11:04 UTC (rev 11445)
@@ -0,0 +1,41 @@
+<?php
+//
+// SourceForge: Breaking Down the Barriers to Open Source Development
+// Copyright 1999-2000 (c) The SourceForge Crew
+// http://sourceforge.net
+//
+
+require "pre.php";
+$HTML->header(array(title=>"Project Exports"));
+?>
+<h2>RSS/XML Exports</h2>
+
+<p><?php print $GLOBALS[sys_default_name] ?> data is exported in a variety of standard formats. Many of
+the export URLs can also accept form/get data to customize the output. All
+data generated by these pages is realtime.
+
+<h3>News Data</h3>
+<p>
+To get Project News or New Project Releases of a specific project use the Links below.
+<ul>
+<li><a href="rss_sfnews.php?group_id=<?php echo $group_id; ?>"><?php print $GLOBALS[sys_name] ?> Developer Project News</a>
+(<a href="http://my.netscape.com/publish/formats/rss-spec-0.91.html">RSS 0.91</a>,
+<a href="http://my.netscape.com/publish/formats/rss-0.91.dtd"><rss-0.91.dtd></a>)</li>
+<li><a href="rss_sfnewreleases.php?group_id=<?php echo $group_id; ?>"><?php print $GLOBALS[sys_name] ?> Developer New Project Releases</a>
+(<a href="http://my.netscape.com/publish/formats/rss-spec-0.91.html">RSS 0.91</a>,
+<a href="http://my.netscape.com/publish/formats/rss-0.91.dtd"><rss-0.91.dtd></a>)</li>
+</ul>
+
+
+<ul>
+<li><a href="rss20_news.php?group_id=<?php echo $group_id; ?>"><?php print $GLOBALS[sys_name] ?> Developer Project News</a>
+(<a href="http://blogs.law.harvard.edu/tech/rss">RSS 2.0</a>)</li>
+<li><a href="rss20_newreleases.php?group_id=<?php echo $group_id; ?>"><?php print $GLOBALS[sys_name] ?> Developer New Project Releases</a>
+(<a href="http://blogs.law.harvard.edu/tech/rss">RSS 2.0</a>)</li>
+</ul>
+
+<a HREF="javascript:history.go(-1)">[Go back]</a>
+<br>
+<?php
+$HTML->footer(array());
+?>

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/www/include/languages/Base.tab
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/include/languages/Base.tab	2011-02-24 17:11:02 UTC (rev 11444)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/include/languages/Base.tab	2011-02-24 17:11:04 UTC (rev 11445)
@@ -1126,6 +1126,7 @@
 group	short_support	Support
 group	short_survey	Surveys
 group	short_tracker	Tracker
+group	rssfeeds	View list of <a href="/export/rss_project.php?group_id=$1">RSS feeds</a> available for this project
 help	page_information	Page Information
 help	title	Welcome to $1
 help_forum	close_window	Close Window

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/www/include/project_home.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/include/project_home.php	2011-02-24 17:11:02 UTC (rev 11444)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/include/project_home.php	2011-02-24 17:11:04 UTC (rev 11445)
@@ -64,6 +64,7 @@
 	}
 	print '<br />'.$Language->getText('group', 'activity'). substr($actv_res, 0, 5). '%';
 	print '<br />'.$Language->getText('group', 'activitystat', $group_id);
+	print '<br />'.$Language->getText('group', 'rssfeeds', $group_id);
 }
 
 if($GLOBALS['sys_use_people']) {



More information about the evolvis-commits mailing list