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;
19 $return .= $HTML->boxTop(_('Tag Cloud'));
20 $return .= '<center>';
21 $return .= tag_cloud();
22 $return .= '</center>';
23 $return .= $HTML->boxMiddle(sprintf(_('%1$s Statistics'), $GLOBALS['sys_name']),0);
24 $return .= show_sitestats();
25 $return .= $HTML->boxMiddle(_('Top Project Downloads'));
26 $return .= show_top_downloads();
27 if ($sys_use_ratings) {
28 $return .= $HTML->boxMiddle(_('Highest Ranked Users'));
29 $return .= show_highest_ranked_users();
31 $return .= $HTML->boxMiddle(_('Most Active This Week'));
32 $return .= show_highest_ranked_projects();
33 $return .= $HTML->boxMiddle(_('Recently Registered Projects'));
34 $return .= show_newest_projects();
35 $return .= $HTML->boxBottom(0);
39 function show_top_downloads() {
40 // TODO yesterday is now defined as two days ago. Quick fix
41 // to allow download list to be cached before nightly
42 // aggregation is done. jbyers 2001.03.19
44 $month = date("Ym",time()-(2*3600*24));
45 $day = date("d",time()-(2*3600*24));
47 $res_topdown = db_query("
48 SELECT groups.group_id,
50 groups.unix_group_name,
51 frs_dlstats_grouptotal_vw.downloads
52 FROM frs_dlstats_grouptotal_vw,groups
54 frs_dlstats_grouptotal_vw.group_id=groups.group_id AND groups.is_public='1' and groups.status='A'
55 ORDER BY downloads DESC
56 ", 10, 0, SYS_DB_STATS);
59 if (db_numrows($res_topdown) == 0) {
60 return _('No Stats Available');
64 while ($row_topdown = db_fetch_array($res_topdown)) {
65 if ($row_topdown['downloads'] > 0)
66 $return .= '(' . number_format($row_topdown['downloads']) . ')'
67 . util_make_link_g ($row_topdown['unix_group_name'],$row_topdown['group_id'],$row_topdown['group_name'])
70 $return .= '<div align="center">'.util_make_link ('/top/',_('More')).'</div>';
77 function stats_getprojects_active_public() {
78 $res_count = db_query("SELECT count(*) AS count FROM groups WHERE status='A' AND is_public=1");
79 if (db_numrows($res_count) > 0) {
80 $row_count = db_fetch_array($res_count);
81 return $row_count['count'];
87 function stats_getprojects_total() {
88 $res_count = db_query("SELECT count(*) AS count FROM groups WHERE status='A' OR status='H'");
89 if (db_numrows($res_count) > 0) {
90 $row_count = db_fetch_array($res_count);
91 return $row_count['count'];
97 function stats_getpageviews_total() {
98 $res_count = db_query("SELECT SUM(site_views) AS site, SUM(subdomain_views) AS subdomain FROM stats_site");
99 if (db_numrows($res_count) > 0) {
100 $row_count = db_fetch_array($res_count);
101 return ($row_count['site'] + $row_count['subdomain']);
107 function stats_downloads_total() {
108 $res_count = db_query("SELECT SUM(downloads) AS downloads FROM stats_site");
109 if (db_numrows($res_count) > 0) {
110 $row_count = db_fetch_array($res_count);
111 return $row_count['downloads'];
117 function show_sitestats() {
118 global $sys_use_trove;
119 $gforge = new FusionForge();
120 $return = _('Hosted Projects').': ';
121 if ($sys_use_trove) {
122 $return .= '<a href="softwaremap/full_list.php">';
124 $return .= '<strong>'.number_format($gforge->getNumberOfPublicHostedProjects()).'</strong>';
125 if ($sys_use_trove) {
128 $return .= '<br />'._('Registered Users').': <strong>'.
129 number_format($gforge->getNumberOfActiveUsers()).'</strong>';
133 function show_newest_projects() {
134 $sql = "SELECT group_id,unix_group_name,group_name,register_time FROM groups " .
135 "WHERE is_public=1 AND status='A' AND type_id=1 AND register_time > 0 " .
136 "ORDER BY register_time DESC";
137 $res_newproj = db_query($sql,10);
141 if (!$res_newproj || db_numrows($res_newproj) < 1) {
142 return _('No Stats Available')." ".db_error();
144 while ( $row_newproj = db_fetch_array($res_newproj) ) {
145 $return .= "<strong>(" . date(_('m/d'),$row_newproj['register_time']) . ")</strong> "
146 . util_make_link_g ($row_newproj['unix_group_name'],$row_newproj['group_id'],$row_newproj['group_name'])
151 $return .= '<div align="center">'.util_make_link ('/softwaremap/full_list.php','[ '._('More').' ]').'</div>';
155 function show_highest_ranked_users() {
156 //select out the users information to show the top users on the site
157 $sql="SELECT users.user_name,users.user_id,users.realname,user_metric.metric
158 FROM user_metric,users
159 WHERE users.user_id=user_metric.user_id AND user_metric.ranking < 11 AND users.status != 'D'
160 ORDER BY ranking ASC";
162 $rows=db_numrows($res);
163 if (!$res || $rows<1) {
164 return _('No Stats Available').db_error();
167 for ($i=0; $i<$rows; $i++) {
168 $return .= ($i+1).' - ('. number_format(db_result($res,$i,'metric'),4) .') '
169 . util_make_link_u (db_result($res,$i,'user_name'),db_result($res,$i,'user_id'),db_result($res,$i,'realname'))
173 $return .= '<div align="center">'.util_make_link ('/top/topusers.php','[ '._('More').' ]').'</div>';
177 function show_highest_ranked_projects() {
178 $sql="SELECT groups.group_name,groups.unix_group_name,groups.group_id,".
179 "project_weekly_metric.ranking,project_weekly_metric.percentile ".
180 "FROM groups,project_weekly_metric ".
181 "WHERE groups.group_id=project_weekly_metric.group_id ".
182 "AND groups.is_public=1 ".
183 "AND groups.type_id=1 ".
184 "AND groups.status != 'D' ".
185 "AND groups.use_stats=1 ".
186 "ORDER BY ranking ASC";
187 $result=db_query($sql,20);
188 if (!$result || db_numrows($result) < 1) {
189 return _('No Stats Available')." ".db_error();
192 while ($row=db_fetch_array($result)) {
193 $return .= '<strong>('.number_format(substr($row['percentile'],0,5),1).'%)</strong> '
194 .util_make_link_g ($row['unix_group_name'],$row['group_id'],$row['group_name'])
197 $return .= '<div align="center">'
198 .util_make_link ('/top/mostactive.php?type=week','[ '._('More').' ]')
206 // c-file-style: "bsd"