. */ require_once('Widget.class.php'); /** * Widget_ProjectPublicAreas */ class Widget_ProjectPublicAreas extends Widget { function Widget_ProjectPublicAreas() { $this->Widget('projectpublicareas'); } function getTitle() { return _('Public Areas'); } function getContent() { $request =& HTTPRequest::instance(); $group_id = $request->get('group_id'); $pm = ProjectManager::instance(); $project = $pm->getProject($group_id); $HTML = $GLOBALS['HTML']; // ################# Homepage Link echo '
'; if ( util_check_url($project->getHomePage())) { echo util_make_link ($project->getHomePage(), $HTML->getHomePic(_('Home Page')) . ' ' . _('Project Home Page'), false, true); } else { echo util_make_link ('http://' . $project->getHomePage(), $HTML->getHomePic(_('Home Page')) . ' ' . _('Project Home Page'), false, true); } echo "
\n"; // ################## ArtifactTypes if ($project->usesTracker()) { echo '
'."\n"; $link_content = $HTML->getFollowPic(_('Tracker')) . ' ' . _('Tracker'); echo util_make_link ( '/tracker/?group_id=' . $group_id, $link_content); $result=db_query_params ('SELECT agl.*,aca.count,aca.open_count FROM artifact_group_list agl LEFT JOIN artifact_counts_agg aca USING (group_artifact_id) WHERE agl.group_id=$1 AND agl.is_public=1 ORDER BY group_artifact_id ASC', array($group_id)); $rows = db_numrows($result); if (!$result || $rows < 1) { echo "
\n"._('There are no public trackers available').''; } else { echo "\n".'\n"; } echo "
\n"; } // ################## forums if ($project->usesForum()) { echo '
'."\n"; // print '
'; $link_content = $HTML->getForumPic('') . ' ' . _('Public Forums'); echo util_make_link ( '/forum/?group_id=' . $group_id, $link_content); print ' ('; $messages_count = project_get_public_forum_message_count($group_id); $forums_count = project_get_public_forum_count($group_id); printf(ngettext("%d message","%d messages",$messages_count),$messages_count); print ' in '; printf(ngettext("%d forum","%d forums",$forums_count),$forums_count); print ')' ; print "\n
"; } // ##################### Doc Manager if ($project->usesDocman()) { echo '
'."\n"; $link_content = $HTML->getDocmanPic('') . ' ' . _('DocManager: Project Documentation'); // '; print util_make_link( '/docman/?group_id='.$group_id, $link_content); echo "\n
\n"; } // ##################### Mailing lists if ($project->usesMail()) { echo '
'."\n"; $link_content = $HTML->getMailPic('') . ' ' . _('Mailing Lists'); print util_make_link( '/mail/?group_id='.$group_id, $link_content); $n = project_get_mail_list_count($group_id); echo ' '; printf(ngettext('(%1$s public mailing list)', '(%1$s public mailing lists)', $n), $n); echo "\n
\n"; } // ##################### Task Manager if ($project->usesPm()) { echo '
'."\n"; $link_content = $HTML->getPmPic('') . ' ' . _('Tasks'); print util_make_link( '/pm/?group_id='.$group_id, $link_content); $result = db_query_params ('SELECT * FROM project_group_list WHERE group_id=$1 AND is_public=1', array ($group_id)); $rows = db_numrows($result); if (!$result || $rows < 1) { echo "
\n"._('There are no public subprojects available').''; } else { echo "\n".'"; } echo "\n
\n"; } // ######################### Surveys if ($project->usesSurvey()) { echo '
'."\n"; $link_content = $HTML->getSurveyPic('') . ' ' . _('Surveys'); echo util_make_link( '/survey/?group_id='.$group_id, $link_content); echo ' ('. project_get_survey_count($group_id) .' ' . _('surveys').')'; echo "\n
\n"; } // ######################### SCM if ($project->usesSCM()) { echo '
'."\n"; $link_content = $HTML->getScmPic('') . ' ' . _('SCM Repository'); // print '
'; print util_make_link( '/scm/?group_id='.$group_id, $link_content); $hook_params = array () ; $hook_params['group_id'] = $group_id ; plugin_hook ("scm_stats", $hook_params) ; echo "\n
\n"; } // ######################### Plugins $hook_params = array (); $hook_params['group_id'] = $group_id; plugin_hook ("project_public_area", $hook_params); // ######################## AnonFTP // CB hide FTP if desired if ($project->usesFTP()) { if ($project->isActive()) { echo '
'."\n"; $link_content = $HTML->getFtpPic('') . ' ' . _('Anonymous FTP Space'); // print ''; if (forge_get_config('use_project_vhost')) { print util_make_link('ftp://' . $project->getUnixName() . '.' . forge_get_config('web_host') . '/pub/'. $project->getUnixName(), $link_content, false, true); } else { print util_make_link('ftp://' . forge_get_config('web_host') . '/pub/'. $project->getUnixName(), $link_content, false, true); } echo "\n
\n"; } } //webcalendar plugin_hook("cal_link_group",$group_id); } function canBeUsedByProject(&$project) { return true; } function getDescription() { return _('List all available services for this project along with some information next to it. Click on any of this item to access a service.
The role of this area is pretty much equivalent to the Project Main Menu at the top of the screen except that it shows additional information about each of the service (e.g. total number of open bugs, tasks, ...)'); } } ?>