4 // SourceForge: Breaking Down the Barriers to Open Source Development
5 // Copyright 1999-2001 (c) VA Linux Systems
6 // http://sourceforge.net
8 // Attempt to set up the include path, to fix problems with relative includes
10 //require_once('../env.inc.php');
11 //require_once('pre.php');
12 require_once $gfcommon.'include/FusionForge.class.php';
13 require_once $gfcommon.'include/tag_cloud.php';
15 function show_features_boxes() {
16 GLOBAL $HTML,$sys_use_ratings,$sys_use_frs,$sys_use_project_tags;
19 if ($sys_use_project_tags) {
20 $return .= $HTML->boxTop(_('Tag Cloud'));
21 $return .= '<center>';
22 $return .= tag_cloud();
23 $return .= '</center>';
24 $return .= $HTML->boxMiddle(sprintf(_('%1$s Statistics'), $GLOBALS['sys_name']),0);
26 $return .= $HTML->boxTop(sprintf(_('%1$s Statistics'), $GLOBALS['sys_name']),0);
28 $return .= show_sitestats();
30 $return .= $HTML->boxMiddle(_('Top Project Downloads'));
31 $return .= show_top_downloads();
33 if ($sys_use_ratings) {
34 $return .= $HTML->boxMiddle(_('Highest Ranked Users'));
35 $return .= show_highest_ranked_users();
37 $return .= $HTML->boxMiddle(_('Most Active This Week'));
38 $return .= show_highest_ranked_projects();
39 $return .= $HTML->boxMiddle(_('Recently Registered Projects'));
40 $return .= show_newest_projects();
41 $hook_params = array () ;
42 $hook_params['returned_text'] = '' ;
43 plugin_hook ("features_boxes_bottom", $hook_params);
44 $return .= $HTML->boxBottom(0);
48 function show_top_downloads() {
49 // TODO yesterday is now defined as two days ago. Quick fix
50 // to allow download list to be cached before nightly
51 // aggregation is done. jbyers 2001.03.19
53 $month = date("Ym",time()-(2*3600*24));
54 $day = date("d",time()-(2*3600*24));
56 $res_topdown = db_query_params ('
57 SELECT groups.group_id,
59 groups.unix_group_name,
60 frs_dlstats_grouptotal_vw.downloads
61 FROM frs_dlstats_grouptotal_vw,groups
63 frs_dlstats_grouptotal_vw.group_id=groups.group_id AND groups.is_public=1 and groups.status=$1
64 ORDER BY downloads DESC
70 if (db_numrows($res_topdown) == 0) {
71 return _('No Stats Available');
75 while ($row_topdown = db_fetch_array($res_topdown)) {
76 if ($row_topdown['downloads'] > 0)
77 $return .= '<strong>(' . number_format($row_topdown['downloads']) . ')</strong> '
78 . util_make_link_g ($row_topdown['unix_group_name'],$row_topdown['group_id'],$row_topdown['group_name'])
81 $return .= '<div align="center">'.util_make_link ('/top/',_('More')).'</div>';
88 function stats_getprojects_active_public() {
89 $res_count = db_query_params ('SELECT count(*) AS count FROM groups WHERE status=$1 AND is_public=1',
91 if (db_numrows($res_count) > 0) {
92 $row_count = db_fetch_array($res_count);
93 return $row_count['count'];
99 function stats_getprojects_total() {
100 $res_count = db_query_params ('SELECT count(*) AS count FROM groups WHERE status=$1 OR status=$2',
103 if (db_numrows($res_count) > 0) {
104 $row_count = db_fetch_array($res_count);
105 return $row_count['count'];
111 function stats_getpageviews_total() {
112 $res_count = db_query_params ('SELECT SUM(site_views) AS site, SUM(subdomain_views) AS subdomain FROM stats_site',
114 if (db_numrows($res_count) > 0) {
115 $row_count = db_fetch_array($res_count);
116 return ($row_count['site'] + $row_count['subdomain']);
122 function stats_downloads_total() {
123 $res_count = db_query_params ('SELECT SUM(downloads) AS downloads FROM stats_site',
125 if (db_numrows($res_count) > 0) {
126 $row_count = db_fetch_array($res_count);
127 return $row_count['downloads'];
133 function show_sitestats() {
134 global $sys_use_trove;
135 $gforge = new FusionForge();
136 $return = _('Hosted Projects').': ';
137 if ($sys_use_trove) {
138 $return .= '<a href="softwaremap/full_list.php">';
140 $return .= '<strong>'.number_format($gforge->getNumberOfPublicHostedProjects()).'</strong>';
141 if ($sys_use_trove) {
144 $return .= '<br />'._('Registered Users').': <strong>'.
145 number_format($gforge->getNumberOfActiveUsers()).'</strong>';
149 function show_newest_projects() {
150 $sql = "SELECT group_id,unix_group_name,group_name,register_time FROM groups
151 WHERE is_public=1 AND status='A' AND type_id=1 AND register_time > 0
152 ORDER BY register_time DESC";
153 $res_newproj = db_query($sql,10);
157 if (!$res_newproj || db_numrows($res_newproj) < 1) {
158 return _('No Stats Available')." ".db_error();
160 while ( $row_newproj = db_fetch_array($res_newproj) ) {
161 $return .= "<strong>(" . date(_('m/d'),$row_newproj['register_time']) . ")</strong> "
162 . util_make_link_g ($row_newproj['unix_group_name'],$row_newproj['group_id'],$row_newproj['group_name'])
167 $return .= '<div align="center">'.util_make_link ('/softwaremap/full_list.php','[ '._('More').' ]').'</div>';
171 function show_highest_ranked_users() {
172 //select out the users information to show the top users on the site
173 $sql="SELECT users.user_name,users.user_id,users.realname,user_metric.metric
174 FROM user_metric,users
175 WHERE users.user_id=user_metric.user_id AND user_metric.ranking < 11 AND users.status != 'D'
176 ORDER BY ranking ASC";
178 $rows=db_numrows($res);
179 if (!$res || $rows<1) {
180 return _('No Stats Available').db_error();
183 for ($i=0; $i<$rows; $i++) {
184 $return .= ($i+1).' - ('. number_format(db_result($res,$i,'metric'),4) .') '
185 . util_make_link_u (db_result($res,$i,'user_name'),db_result($res,$i,'user_id'),db_result($res,$i,'realname'))
189 $return .= '<div align="center">'.util_make_link ('/top/topusers.php','[ '._('More').' ]').'</div>';
193 function show_highest_ranked_projects() {
194 $sql="SELECT groups.group_name,groups.unix_group_name,groups.group_id,
195 project_weekly_metric.ranking,project_weekly_metric.percentile
196 FROM groups,project_weekly_metric
197 WHERE groups.group_id=project_weekly_metric.group_id
198 AND groups.is_public=1
200 AND groups.status != 'D'
201 AND groups.use_stats=1
202 ORDER BY ranking ASC";
203 $result=db_query($sql,20);
204 if (!$result || db_numrows($result) < 1) {
205 return _('No Stats Available')." ".db_error();
208 while ($row=db_fetch_array($result)) {
209 $return .= '<strong>(#'.number_format(substr($row['ranking'],0,5),1).')</strong> '
210 .util_make_link_g ($row['unix_group_name'],$row['group_id'],$row['group_name'])
213 $return .= '<div align="center">'
214 .util_make_link ('/top/mostactive.php?type=week','[ '._('More').' ]')
222 // c-file-style: "bsd"