6 * SourceForge: Breaking Down the Barriers to Open Source Development
7 * Copyright 1999-2001 (c) VA Linux Systems
8 * http://sourceforge.net
13 require_once('www/include/vote_function.php');
14 require_once('common/include/vars.php');
15 require_once('www/news/news_utils.php');
16 require_once('www/include/trove.php');
17 require_once('www/include/project_summary.php');
20 $imgproj=$HTML->imgproj;
22 $title = $Language->getText('project_home','title').'- '. $project->getPublicName();
24 site_project_header(array('title'=>$title,'group'=>$group_id,'toptab'=>'home','pagename'=>'projects','sectionvals'=>array(group_getname($group_id))));
27 // ########################################### end top area
32 <table width="100%" border="0">
34 <td width="99%" valign="top">
37 // ########################################## top area, not in box
38 $res_admin = db_query("SELECT users.user_id,users.user_name,users.realname
40 WHERE user_group.user_id=users.user_id
41 AND user_group.group_id='$group_id'
42 AND user_group.admin_flags = 'A'
43 AND users.status='A'");
45 if ($project->getStatus() == 'H') {
46 print "<p>".$Language->getText('project_home','holding_note',$GLOBALS['sys_name'])."</p>\n";
49 if ($project->getDescription()) {
50 print "<p>" . $project->getDescription() . '</p>';
52 print "<p>" . $Language->getText('group', 'nodescription') . '</p>';
57 print stripslashes(trove_getcatlisting($group_id,0,1));
60 print($Language->getText('group', 'registered') . date($sys_datefmt, $project->getStartDate()));
62 // Get the activity percentile
63 // CB hide stats if desired
64 if ($project->usesStats()) {
65 $actv = db_query("SELECT percentile FROM project_weekly_metric WHERE group_id='$group_id'");
66 $actv_res = db_result($actv,0,"percentile");
70 print '<br />'.$Language->getText('group', 'activity'). $actv_res . '%';
71 print '<br />'.$Language->getText('group', 'activitystat', $group_id);
74 $jobs_res = db_query("SELECT name
75 FROM people_job,people_job_category
76 WHERE people_job.category_id=people_job_category.category_id
77 AND people_job.status_id=1
78 AND group_id='$group_id'
81 $num=db_numrows($jobs_res);
83 print '<br /><br />'.$Language->getText('project_home','help_wanted').' ';
85 print '<a href="/people/?group_id='.$group_id.'">'. db_result($jobs_res,0,"name").'(s)</a>';
87 print $Language->getText('project_home','help_wanted_multiple', '<a href="/people/?group_id='.$group_id.'">').' </a>';
91 plugin_hook ("project_after_description",false) ;
95 <td nowrap="nowrap" valign="top">
99 // ########################### Developers on this project
101 echo $HTML->boxTop($Language->getText('group','developer_info'));
103 if (db_numrows($res_admin) > 0) {
106 <span class="develtitle"><?php echo $Language->getText('group','project_admins'); ?>:</span><br />
108 while ($row_admin = db_fetch_array($res_admin)) {
109 print "<a href=\"/users/$row_admin[user_name]/\">$row_admin[realname]</a><br />";
112 <hr width="100%" size="1" noshade="noshade" />
118 <span class="develtitle"><?php echo $Language->getText('group','developers'); ?>:</span><br />
120 //count of developers on this project
121 $res_count = db_query("select count(users.user_id) from user_group, users where user_group.group_id='$group_id' and users.user_id=user_group.user_id and users.status='A'");
122 print db_result($res_count,0,'count');
126 <a href="/project/memberlist.php?group_id=<?php print $group_id; ?>">[<?php echo $Language->getText('project_home','view_members') ?>]</a>
129 echo $HTML->boxBottom();
138 // ############################# File Releases
140 // CB hide FRS if desired
141 if ($project->usesFRS()) {
142 echo $HTML->boxTop($Language->getText('frs','latest_file_releases'));
143 $unix_group_name = $project->getUnixName();
146 <table cellspacing="1" cellpadding="5" width="100%" border="0">
147 <tr style="background-color:'.$HTML->COLOR_LTBACK1.'">
149 '.$Language->getText('frs','file_package').'
152 '.$Language->getText('frs','file_version').'
155 '.$Language->getText('frs','file_rel_date').'
158 '.$Language->getText('frs','file_notes').' / '.$Language->getText('frs','file_monitor').'
161 '.$Language->getText('frs','file_download').'
165 $sql="SELECT frs_package.package_id,frs_package.name AS package_name,frs_release.name AS release_name,frs_release.release_id AS release_id,frs_release.release_date AS release_date ".
166 "FROM frs_package,frs_release ".
167 "WHERE frs_package.package_id=frs_release.package_id ".
168 "AND frs_package.group_id='$group_id' ".
169 "AND frs_release.status_id=1 ".
170 "ORDER BY frs_package.package_id,frs_release.release_date DESC";
172 $res_files = db_query($sql);
173 $rows_files=db_numrows($res_files);
174 if (!$res_files || $rows_files < 1) {
177 echo '<tr bgcolor="'.$HTML->COLOR_LTBACK1.'"><td colspan="5"><strong>'.$Language->getText('group', 'norelease').'</strong></td></tr>';
181 This query actually contains ALL releases of all packages
182 We will test each row and make sure the package has changed before printing the row
184 for ($f=0; $f<$rows_files; $f++) {
185 if (db_result($res_files,$f,'package_id')==db_result($res_files,($f-1),'package_id')) {
186 //same package as last iteration - don't show this release
188 $rel_date = getdate(db_result($res_files,$f,'release_date'));
190 <tr style="background-color:'.$HTML->COLOR_LTBACK1.'" align="center">
192 <strong>' . db_result($res_files,$f,'package_name'). '</strong></td>';
193 // Releases to display
194 print '<td>'.db_result($res_files,$f,'release_name') .'
196 <td>' . $rel_date["month"] . ' ' . $rel_date["mday"] . ', ' . $rel_date["year"] . '</td>
197 <td><a href="/project/shownotes.php?group_id=' . $group_id . '&release_id=' . db_result($res_files,$f,'release_id') . '">';
198 echo html_image('ic/manual16c.png','15','15',array('alt'=>$Language->getText('project_home','release_notes')));
199 echo '</a> - <a href="/project/filemodule_monitor.php?filemodule_id=' . db_result($res_files,$f,'package_id') . '&group_id='.$group_id.'&start=1">';
200 echo html_image('ic/mail16d.png','15','15',array('alt'=>$Language->getText('project_home','monitor_package')));
203 <td><a href="/project/showfiles.php?group_id=' . $group_id . '&release_id=' . db_result($res_files,$f,'release_id') . '">'.$Language->getText('frs','file_download').'</a></td></tr>';
210 <a href="/project/showfiles.php?group_id=<?php print $group_id; ?>">[<?php echo $Language->getText('project_home','view_project_files')?>]</a>
213 echo $HTML->boxBottom();
218 <table width="100%" border="0" cellpadding="0" cellspacing="0">
224 // ############################## PUBLIC AREAS
225 echo $HTML->boxTop($Language->getText('group','public_area'));
227 // ################# Homepage Link
229 print "<a href=\"http://" . $project->getHomePage() . "\">";
230 print html_image('ic/home16b.png','20','20',array('alt'=>$Language->getText('group','short_homepage')));
231 print ' '.$Language->getText('group','long_homepage').'</a>';
233 // ################## ArtifactTypes
235 // CB hide tracker if desired
236 if ($project->usesTracker()) {
237 print '<hr size="1" noshade="noshade" /><a href="/tracker/?group_id='.$group_id.'">';
238 print html_image('ic/tracker20g.png','20','20',array('alt'=>$Language->getText('group','short_tracker')));
239 print $Language->getText('group', 'long_tracker').'</a>';
241 $result=db_query("SELECT agl.*,aca.count,aca.open_count
242 FROM artifact_group_list agl
243 LEFT JOIN artifact_counts_agg aca USING (group_artifact_id)
244 WHERE agl.group_id='$group_id'
246 ORDER BY group_artifact_id ASC");
248 $rows = db_numrows($result);
250 if (!$result || $rows < 1) {
251 echo '<br /><em>'.$Language->getText('project_home','no_trackers').'</em>';
253 for ($j = 0; $j < $rows; $j++) {
255 - <a href="/tracker/?atid='. db_result($result, $j, 'group_artifact_id') .
256 '&group_id='.$group_id.'&func=browse">'. db_result($result, $j, 'name') .'</a>
257 ( '.$Language->getText('project_home','tracker_open',array((int) db_result($result, $j, 'open_count'), (int) db_result($result, $j, 'count'))) .' )<br />'.
258 db_result($result, $j, 'description');
263 // ################## forums
265 if ($project->usesForum()) {
266 print '<hr size="1" noshade="noshade" /><a href="/forum/?group_id='.$group_id.'">';
267 print html_image('ic/forum20g.png','20','20',array('alt'=>$Language->getText('group','short_forum')));
268 print ' '.$Language->getText('group','long_forum').'</a>';
269 print " ( ".$Language->getText('project_home','forum_messages',array(project_get_public_forum_message_count($group_id), project_get_public_forum_count($group_id) ))." ";
273 // ##################### Doc Manager
275 if ($project->usesDocman()) {
277 <hr size="1" noshade="noshade" />
278 <a href="/docman/?group_id='.$group_id.'">';
279 print html_image('ic/docman16b.png','20','20',array('alt'=>$Language->getText('group','short_docman')));
280 print ' '.$Language->getText('group','long_docman').'</a>';
283 // ##################### Mailing lists
285 if ($project->usesMail()) {
286 print '<hr size="1" noshade="noshade" /><a href="/mail/?group_id='.$group_id.'">';
287 print html_image('ic/mail16b.png','20','20',array('alt'=>$Language->getText('group','short_mail')));
288 print ' '.$Language->getText('group','long_mail').'</a>';
289 print " ( <strong>". project_get_mail_list_count($group_id) ."</strong> ".$Language->getText('project_home','public_mailing_lists').")";
292 // ##################### Task Manager
294 if ($project->usesPm()) {
295 print '<hr size="1" noshade="noshade" /><a href="/pm/?group_id='.$group_id.'">';
296 print html_image('ic/taskman20g.png','20','20',array('alt'=>$Language->getText('group','short_pm')));
297 print ' '.$Language->getText('group','long_pm').'</a>';
298 $sql="SELECT * FROM project_group_list WHERE group_id='$group_id' AND is_public=1";
299 $result = db_query ($sql);
300 $rows = db_numrows($result);
301 if (!$result || $rows < 1) {
302 echo '<br /><em>'.$Language->getText('project_home','no_subprojects').'</em>';
304 for ($j = 0; $j < $rows; $j++) {
306 <br /> - <a href="/pm/task.php?group_project_id='.db_result($result, $j, 'group_project_id').
307 '&group_id='.$group_id.'&func=browse">'.db_result($result, $j, 'project_name').'</a>';
313 // ######################### Surveys
315 if ($project->usesSurvey()) {
316 print '<hr size="1" noshade="noshade" /><a href="/survey/?group_id='.$group_id.'">';
317 print html_image('ic/survey16b.png','20','20',array('alt'=>$Language->getText('group','short_survey')));
318 print " ".$Language->getText('group','long_survey')."</a>";
319 echo ' ( <strong>'. project_get_survey_count($group_id) .'</strong> '.$Language->getText('project_home','surveys').' )';
322 // ######################### CVS
324 if ($project->usesCVS()) {
325 print '<hr size="1" noshade="noshade" /><a href="/scm/?group_id='.$group_id.'">';
326 print html_image('ic/cvs16b.png','20','20',array('alt'=>$Language->getText('group','short_cvs')));
327 print " ".$Language->getText('group','long_cvs')."</a>";
330 SELECT sum(commits) AS commits,sum(adds) AS adds
332 WHERE group_id='$group_id'
333 ", -1, 0, SYS_DB_STATS);
334 $cvs_commit_num = db_result($result,0,0);
335 $cvs_add_num = db_result($result,0,1);
336 if (!$cvs_commit_num) {
342 echo ' ( '.$Language->getText('project_home','cvs_commits',array(number_format($cvs_commit_num,0),number_format($cvs_add_num,0)))." )";
343 if ($cvs_commit_num || $cvs_add_num) {
344 echo '<br /> -
345 <a href="'.account_group_cvsweb_url($project->getUnixName()).'">
351 // ######################## AnonFTP
353 // CB hide FTP if desired
354 if ($project->usesFTP()) {
355 if ($project->isActive()) {
356 print '<hr size="1" noshade="noshade" />';
357 print "<a href=\"ftp://" . $project->getUnixName() . "." . $GLOBALS['sys_default_domain'] . "/pub/". $project->getUnixName() ."/\">";
358 print html_image('ic/ftp16b.png','20','20',array('alt'=>$Language->getText('group','long_ftp')));
359 print $Language->getText('group','long_ftp')."</a>";
363 echo $HTML->boxBottom();
365 if ($project->usesNews()) {
370 <td width="15"> </td>
374 // ############################# Latest News
376 echo $HTML->boxTop($Language->getText('group','long_news'));
378 echo news_show_latest($group_id,10,false);
380 echo $HTML->boxBottom();
390 site_project_footer(array());