3 * Copyright (c) Xerox Corporation, Codendi Team, 2001-2009. All rights reserved
5 * This file is a part of Codendi.
7 * Codendi is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
12 * Codendi is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with Codendi. If not, see <http://www.gnu.org/licenses/>.
21 require_once('Widget.class.php');
24 * Widget_ProjectMembers
26 class Widget_ProjectMembers extends Widget {
27 public function __construct() {
28 $this->Widget('projectmembers');
30 public function getTitle() {
31 return _('Project Members');
33 public function getContent() {
34 $request =& HTTPRequest::instance();
35 $group_id = $request->get('group_id');
36 $pm = ProjectManager::instance();
37 $project = $pm->getProject($group_id);
38 $res_admin = db_query_params ('SELECT users.user_id,users.user_name,users.realname,user_group.admin_flags
40 WHERE user_group.user_id=users.user_id
41 AND user_group.group_id=$1
43 ORDER BY admin_flags DESC,realname',
48 if (db_numrows($res_admin) > 0) {
50 echo '<span class="develtitle">'._('Project Admins').'</span><br />';
51 $started_developers = false;
53 while ($row_admin = db_fetch_array($res_admin)) {
54 if (trim($row_admin['admin_flags']) != 'A' && !$started_developers) {
55 $started_developers=true;
56 echo '<span class="develtitle">'. _('Developers').':</span><br />';
58 if (!$started_developers) {
59 echo '<div rel="doap:maintainer">'."\n";
61 echo '<div rel="doap:developer">'."\n";
63 # a foaf:Person that holds an account on the forge
64 $developer_url = util_make_url_u ($row_admin['user_name'],$row_admin['user_id']);
65 echo '<div typeof="foaf:Person" xmlns:foaf="http://xmlns.com/foaf/0.1/" about="'.
66 $developer_url.'#me' .'" >'."\n";
67 echo '<div rel="foaf:account">'."\n";
68 echo '<div typeof="sioc:UserAccount" about="'.
70 '" xmlns:sioc="http://rdfs.org/sioc/ns#">'."\n";
71 echo util_make_link_u ($row_admin['user_name'],$row_admin['user_id'],$row_admin['realname']) ."<br />\n";
72 echo "</div>\n"; // /sioc:UserAccount
73 echo "</div>\n"; // /foaf:holdsAccount
74 echo "</div>\n"; // /foaf:Person
75 echo "</div>\n"; // /doap:maintainer|developer
76 if ($row_admin['user_id'] == user_getid())
82 $members = $project->getUsers();
83 echo '<p><span rel="sioc:has_usergroup" xmlns:sioc="http://rdfs.org/sioc/ns#">';
84 echo '<div about="members/" typeof="sioc:UserGroup">';
85 echo '<span rel="http://www.w3.org/2002/07/owl#sameAs">';
86 echo util_make_link ('/project/memberlist.php?group_id='.$group_id,sprintf(_('View the %1$d Member(s)'),count($members)));
90 // end of project usergroup description
93 echo '<p>'.util_make_link ('/project/request.php?group_id='.$group_id,_('Request to join')).'</p>';
95 /*echo '<span class="develtitle">' . _('Project admins').':</span><br />';
96 while ($row_admin = db_fetch_array($res_admin)) {
98 $em->processEvent('get_user_display_name', array(
99 'user_id' => $row_admin['user_id'],
100 'user_name' => $row_admin['user_name'],
101 'realname' => $row_admin['realname'],
102 'user_display_name' => &$display_name
104 if (!$display_name) {
105 $display_name = $user_helper->getDisplayNameFromUserId($row_admin['user_id']);
107 echo '<a href="/users/'.$row_admin['user_name'].'/">'. $display_name .'</a><br />';
109 echo '<hr width="100%" size="1" NoShade>';
111 echo '<span class="develtitle">' . _('Developers') . ':</span><br />';
112 // count of developers on this project
113 $res_count = db_query_params("SELECT user_id FROM user_group WHERE group_id=$1",array($group_id));
114 echo db_numrows($res_count);
115 echo ' <a href="/project/memberlist.php?group_id=' . $group_id . '">[' . _('View members') . ']</a>';*/
117 public function canBeUsedByProject(&$project) {
120 function getDescription() {
121 return _('List the project members.');