' . _('Features Boxes') . ''; if (forge_get_config('use_project_tags')) { $return .= $HTML->boxTop(_('Tag Cloud'), 'Tag_Cloud'); $return .= tag_cloud(); $return .= $HTML->boxMiddle(sprintf(_('%1$s Statistics'), forge_get_config ('forge_name')), 'Forge_Statistics'); } else { $return .= $HTML->boxTop(sprintf(_('%1$s Statistics'), forge_get_config ('forge_name')), 'Forge_Statistics'); } $return .= show_sitestats(); if (forge_get_config('use_frs')) { $return .= $HTML->boxMiddle(_('Top Project Downloads'), 'Top_Projects_Downloads'); $return .= show_top_downloads(); } if (forge_get_config('use_ratings')) { $return .= $HTML->boxMiddle(_('Highest Ranked Users'), 'Highest_Ranked_Users'); $return .= show_highest_ranked_users(); } $return .= $HTML->boxMiddle(_('Most Active This Week'), 'Most_Active_This_Week'); $return .= show_highest_ranked_projects(); $return .= $HTML->boxMiddle(_('Recently Registered Projects'), 'Recently_Registered_Projects'); $return .= show_newest_projects(); $return .= $HTML->boxMiddle(_('System Information'), 'System_Information'); $ff = new FusionForge(); $return .= sprintf(_('%s is running %s version %s'), forge_get_config ('forge_name'), $ff->software_name, $ff->software_version); $return .= $HTML->boxBottom(); plugin_hook ("features_boxes_bottom", array()); return $return; } function show_top_downloads() { // TODO yesterday is now defined as two days ago. Quick fix // to allow download list to be cached before nightly // aggregation is done. jbyers 2001.03.19 // $month = date("Ym",time()-(2*3600*24)); $day = date("d",time()-(2*3600*24)); $return = '' ; $res_topdown = db_query_params (' SELECT groups.group_id, groups.group_name, groups.unix_group_name, frs_dlstats_grouptotal_vw.downloads FROM frs_dlstats_grouptotal_vw,groups WHERE frs_dlstats_grouptotal_vw.group_id=groups.group_id AND groups.status=$1 ORDER BY downloads DESC ', array ('A')); // print each one $count = 0 ; while (($row_topdown=db_fetch_array($res_topdown)) && ($count < 10)) { if (!forge_check_perm ('project_read', $row_topdown['group_id'])) { continue ; } if ($row_topdown['downloads'] > 0) { $t_downloads = number_format($row_topdown['downloads']); $t_prj_link = util_make_link_g ($row_topdown['unix_group_name'], $row_topdown['group_id'], $row_topdown['group_name']); $return .= '
'; $return .= _('Hosted Projects').': '; if (forge_get_config('use_trove')) { $return .= ''; } $return .= ''.number_format($gforge->getNumberOfPublicHostedProjects()).''; if (forge_get_config('use_trove')) { $return .= ''; } $return .= "
"; $return .= _('Registered Users').': '.number_format($gforge->getNumberOfActiveUsers()).''; $return .= "
\n"; return $return; } function show_newest_projects() { $res_newproj = db_query_params ('SELECT group_id,unix_group_name,group_name,register_time FROM groups WHERE status=$1 AND type_id=1 AND register_time > 0 ORDER BY register_time DESC', array ('A')); $return = ''; $count = 0 ; while (($row_newproj=db_fetch_array($res_newproj)) && ($count < 10)) { if (!forge_check_perm ('project_read', $row_newproj['group_id'])) { continue ; } $count++ ; $t_prj_date = date(_('m/d'),$row_newproj['register_time']); $t_prj_link = util_make_link_g ($row_newproj['unix_group_name'],$row_newproj['group_id'],$row_newproj['group_name']); $return .= "