4 * SourceForge User's Personal Page
6 * SourceForge: Breaking Down the Barriers to Open Source Development
7 * Copyright 1999-2001 (c) VA Linux Systems
8 * http://sourceforge.net
15 require_once('pre.php');
16 require_once('vote_function.php');
17 require_once('common/tracker/ArtifactsForUser.class');
18 require_once('common/forum/ForumsForUser.class');
19 require_once('common/pm/ProjectTasksForUser.class');
23 if (session_loggedin()) { // || $sf_user_hash) {
26 //needs security audit
27 * If user has valid "remember-me" hash, instantiate not-logged in
30 if (!session_loggedin()) {
31 list($user_id,$hash)=explode('_',$sf_user_hash);
34 WHERE user_id='".$user_id."' AND user_pw LIKE '".$hash."%'";
36 $result=db_query($sql);
37 $rows=db_numrows($result);
38 if (!$result || $rows != 1) {
41 $user_id=db_result($result,0,'user_id');
42 $G_SESSION=user_get_object($user_id,$result);
45 echo site_user_header(array('title'=>$Language->getText('my','title',user_getname()),'pagename'=>'my','titlevals'=>array(user_getname())));
49 <?php echo $Language->getText('my', 'about_blurb'); ?>
51 <table width="100%" border="0">
52 <tr><td valign="top" width="50%">
58 echo $HTML->boxTop($Language->getText('my', 'assigneditems'));
59 $artifactsForUser = new ArtifactsForUser(session_get_user());
60 $assignedArtifacts = $artifactsForUser->getAssignedArtifactsByGroup();
61 if (count($assignedArtifacts) > 0) {
62 foreach($assignedArtifacts as $art) {
64 if ($art->ArtifactType->getID() != $last_group) {
66 <tr><td colspan="2"><strong><a href="/tracker/?group_id='.
67 $art->ArtifactType->Group->getID().'&atid='.
68 $art->ArtifactType->getID().'">'.
69 $art->ArtifactType->Group->getPublicName().' - '.
70 $art->ArtifactType->getName().'</a></strong></td></tr>';
74 <tr style="background-color:'.html_get_priority_color($art->getPriority()).'">
75 <td><a href="/tracker/?func=detail&aid='.
77 '&group_id='.$art->ArtifactType->Group->getID().
78 '&atid='.$art->ArtifactType->getID().'">'.
80 <td>' . stripslashes($art->getSummary());
82 $last_group = $art->ArtifactType->getID();
86 <strong>'.$Language->getText('my', 'no_tracker_items_assigned').'</strong>';
90 echo $HTML->boxMiddle($Language->getText('my', 'submitteditems'),false,false);
91 $submittedArtifacts = $artifactsForUser->getSubmittedArtifactsByGroup();
92 if (count($submittedArtifacts) > 0) {
93 foreach ($submittedArtifacts as $art) {
95 if ($art->ArtifactType->getID() != $last_group) {
97 <tr><td colspan="2"><strong><a href="/tracker/?group_id='.
98 $art->ArtifactType->Group->getID().'&atid='.
99 $art->ArtifactType->getID().'">'.
100 $art->ArtifactType->Group->getPublicName().' - '.
101 $art->ArtifactType->getName().'</a></strong></td></tr>';
104 <tr style="background-color:'.html_get_priority_color($art->getPriority()).'">
105 <td>'.$art->getID().'</td>
106 <td><a href="/tracker/?func=detail&aid='.
108 '&group_id='.$art->ArtifactType->Group->getID().
109 '&atid='.$art->ArtifactType->getID().'">' . stripslashes($art->getSummary()) .'</a>';
111 $last_group = $art->ArtifactType->getID();
115 <strong>'.$Language->getText('my', 'no_tracker_items_submitted').'</strong>';
119 Forums that are actively monitored
122 echo $HTML->boxMiddle($Language->getText('my', 'monitoredforum'),false,false);
123 $forumsForUser = new ForumsForUser($G_SESSION);
124 $forums =& $forumsForUser->getMonitoredForums();
125 if (count($forums) < 1) {
126 echo '<strong>'.$Language->getText('my', 'no_monitored_forums').'</strong>'.$Language->getText('my', 'no_monitored_forums_details');
128 foreach ($forums as $f) {
130 $group = $f->getGroup();
131 if ($group->getID() != $last_group) {
133 <tr '. $HTML->boxGetAltRowStyle($i) .'><td colspan="2"><strong><a href="/forum/?group_id='.
134 $group->getID().'">'.
135 $group->getPublicName().'</a></strong></td></tr';
139 <tr '. $HTML->boxGetAltRowStyle($i) .'><td align="center"><a href="/forum/monitor.php?forum_id='.$f->getID().
140 '&stop=1&group_id='.$group->getID().'"><img src="'. $HTML->imgroot . '/ic/trash.png" height="16" width="16" '.
141 'border="0" alt="" /></a></td><td width="99%"><a href="/forum/forum.php?forum_id='.
143 $f->getName().'</a>';
145 $last_group= $group->getID();
150 Filemodules that are actively monitored
154 echo $HTML->boxMiddle($Language->getText('my', 'monitoredfile'),false,false);
156 $sql="SELECT groups.group_name,groups.group_id,frs_package.name,filemodule_monitor.filemodule_id ".
157 "FROM groups,filemodule_monitor,frs_package ".
158 "WHERE groups.group_id=frs_package.group_id AND groups.status = 'A' ".
159 "AND frs_package.package_id=filemodule_monitor.filemodule_id ".
160 "AND filemodule_monitor.user_id='".user_getid()."' ORDER BY group_name DESC";
161 $result=db_query($sql);
162 $rows=db_numrows($result);
163 if (!$result || $rows < 1) {
164 echo '<strong>'.$Language->getText('my', 'no_monitored_filemodules').'</strong>'.$Language->getText('my', 'no_monitored_filemodules_details');
166 for ($i=0; $i<$rows; $i++) {
168 if (db_result($result,$i,'group_id') != $last_group) {
170 <tr '. $HTML->boxGetAltRowStyle($i) .'><td colspan="2"><strong><a href="/project/?group_id='.
171 db_result($result,$i,'group_id').'">'.
172 db_result($result,$i,'group_name').'</a></td></tr>';
175 <tr '. $HTML->boxGetAltRowStyle($i) .'><td align="MIDDLE"><a href="/frs/monitor.php?filemodule_id='.
176 db_result($result,$i,'filemodule_id').
177 '&group_id='.db_result($result,$i,'group_id'). '&stop=1"><img src="'. $HTML->imgroot.'/ic/trash.png" height="16" width="16" '.
178 'BORDER=0"></a></td><td width="99%"><a href="/frs/?group_id='.
179 db_result($result,$i,'group_id').'">'.
180 db_result($result,$i,'name').'</a>';
182 $last_group=db_result($result,$i,'group_id');
186 echo $HTML->boxBottom();
188 //second column of "my" page
191 </td><td valign="top" width="50%">
197 echo $HTML->boxTop($Language->getText('my', 'tasks'));
198 $projectTasksForUser = new ProjectTasksForUser($G_SESSION);
199 $userTasks =& $projectTasksForUser->getTasksByGroupProjectName();
201 if (count($userTasks) > 0) {
202 foreach ($userTasks as $task) {
204 /* Deduce summary style */
207 if ($task->getPercentComplete()==100) {
208 $style_begin='<span style="text-decoration:underline">';
209 $style_end='</span>';
211 //if ($task->getProjectGroup()->getID() != $last_group) {
212 $projectGroup =& $task->getProjectGroup();
213 $group =& $projectGroup->getGroup();
214 if ($projectGroup->getID() != $last_group) {
216 <tr><td colspan="2"><strong><a href="/pm/task.php?group_id='.
218 '&group_project_id='.
219 $projectGroup->getID().'">'.
220 $group->getPublicName().' - '.
221 $projectGroup->getName().'</a></strong></td></tr>';
224 <tr style="background-color:'.html_get_priority_color($task->getPriority()).'">
225 <td><a href="/pm/task.php?func=detailtask&project_task_id='.
227 '&group_id='.$group->getID().
228 '&group_project_id='.$projectGroup->getID().'">'.
229 $task->getID().'</td>
230 <td>'.$style_begin.stripslashes($task->getSummary()).$style_end;
232 $last_group = $projectGroup->getID();
236 <strong>'.$Language->getText('my', 'no_open_tasks').'</strong>';
244 This needs to be updated manually to display any given survey
247 $sql="SELECT * from survey_responses ".
248 "WHERE survey_id='1' AND user_id='".user_getid()."' AND group_id='1'";
250 $result=db_query($sql);
252 echo $HTML->boxMiddle($Language->getText('my', 'survey'),false,false);
254 if (db_numrows($result) < 1) {
258 <strong>'.$Language->getText('my','survey_taken').'</strong>';
262 * Pending projects and news bytes
264 $admingroup = group_get_object (1) ;
265 exit_assert_object($admingroup,'Group');
266 $perm =& $admingroup->getPermission( session_get_user() );
267 if ($perm && is_object($perm) && $perm->isAdmin()) {
268 $sql="SELECT group_name FROM groups where status='P';";
269 $result=db_query($sql);
270 $rows=db_numrows($result);
272 echo $HTML->boxMiddle($Language->getText('my','pending_projects'), false, false);
275 echo $Language->getText('my','pending_projects_1');
277 echo $Language->getText('my','pending_projects_2',$rows);
280 /* echo (($rows!=1)?"are ": "is "). "$rows project";
281 echo (($rows!=1)?"s":"");
283 echo " <a href=\"/admin/approve-pending.php\">";
284 echo $Language->getText('my','pending_projects_3');
288 $newsgroup = group_get_object ($GLOBALS['sys_news_group']) ;
289 exit_assert_object($newsgroup,'Group');
290 $perm =& $newsgroup->getPermission( session_get_user() );
291 if ($perm && is_object($perm) && $perm->isAdmin()) {
292 $sql="SELECT * FROM news_bytes WHERE is_approved=0";
293 $result=db_query($sql);
294 $rows=db_numrows($result);
296 echo $HTML->boxMiddle($Language->getText('my','pending_news_bytes'), false, false);
299 echo $Language->getText('my','pending_news_bytes_1');
301 echo $Language->getText('my','pending_news_bytes_2',$rows);
304 echo " <a href=\"/news/admin/?group_id=".$GLOBALS['sys_news_group']."\">";
306 echo $Language->getText('my','pending_news_bytes_3');
313 echo $HTML->boxMiddle($Language->getText('my', 'bookmarks'),false,false);
315 $result = db_query("SELECT bookmark_url, bookmark_title, bookmark_id from user_bookmarks where ".
316 "user_id='". user_getid() ."' ORDER BY bookmark_title");
317 $rows=db_numrows($result);
318 if (!$result || $rows < 1) {
320 <strong>'.$Language->getText('my', 'no_bookmarks').'</strong>';
323 for ($i=0; $i<$rows; $i++) {
325 <tr '. $HTML->boxGetAltRowStyle($i) .'><td align="center">
326 <a href="/my/bookmark_delete.php?bookmark_id='. db_result($result,$i,'bookmark_id') .'">
327 <img src="'.$HTML->imgroot.'/ic/trash.png" height="16" width="16" border="0" alt="" /></a></td>
328 <td><strong><a href="'. db_result($result,$i,'bookmark_url') .'">'.
329 db_result($result,$i,'bookmark_title') .'</a></strong>
330 <span style="font-size:small"><a href="/my/bookmark_edit.php?bookmark_id='. db_result($result,$i,'bookmark_id') .'">['.$Language->getText('general','edit').']</a></span>';
338 echo $HTML->boxMiddle($Language->getText('my', 'projects'),false,false);
339 // Include both groups and foundries; developers should be similarly
340 // aware of membership in either.
341 $result = db_query("SELECT groups.group_name,"
343 . "groups.unix_group_name,"
346 . "user_group.admin_flags "
347 . "FROM groups,user_group "
348 . "WHERE groups.group_id=user_group.group_id "
349 . "AND user_group.user_id='". user_getid() ."' "
350 . "AND groups.status='A'");
351 $rows=db_numrows($result);
352 if (!$result || $rows < 1) {
353 echo '<strong>'.$Language->getText('my', 'no_projects').'</strong>';
356 for ($i=0; $i<$rows; $i++) {
358 $admin_flags = db_result($result, $i, 'admin_flags');
359 if (stristr($admin_flags, 'A')) {
365 if (db_result($result, $i, 'type_id')==2) {
372 <tr '. $HTML->boxGetAltRowStyle($i) .'><td align="center">
373 <a href="rmproject.php?group_id='. db_result($result,$i,'group_id') .'">
374 <img src="'.$HTML->imgroot.'ic/'.$img.'" alt="Delete" height="16" width="16" border="0" /></a></td>
375 <td><a href="/'.$type.'/'. db_result($result,$i,'unix_group_name') .'/">'. htmlspecialchars(db_result($result,$i,'group_name')) .'</a>';
378 echo $HTML->boxBottom();
386 <tr><td colspan="2">';
388 echo show_priority_colors_key();
395 echo site_user_footer(array());
399 exit_not_logged_in();