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 * If user has valid "remember-me" hash, instantiate not-logged in
29 if (!session_loggedin()) {
30 list($user_id,$hash)=explode('_',$sf_user_hash);
33 WHERE user_id='".$user_id."' AND user_pw LIKE '".$hash."%'";
35 $result=db_query($sql);
36 $rows=db_numrows($result);
37 if (!$result || $rows != 1) {
40 $user_id=db_result($result,0,'user_id');
41 $G_SESSION=user_get_object($user_id,$result);
44 echo site_user_header(array('title'=>$Language->getText('my','title',user_getname()),'pagename'=>'my','titlevals'=>array(user_getname())));
48 <?php echo $Language->getText('my', 'about_blurb'); ?>
50 <table width="100%" border="0">
51 <tr><td valign="top" width="50%">
57 echo $HTML->boxTop($Language->getText('my', 'assigneditems'));
58 $artifactsForUser = new ArtifactsForUser($G_SESSION);
59 $assignedArtifacts = $artifactsForUser->getAssignedArtifactsByGroup();
60 if (count($assignedArtifacts) > 0) {
61 foreach($assignedArtifacts as $art) {
63 if ($art->ArtifactType->getID() != $last_group) {
65 <tr><td colspan="2"><strong><a href="/tracker/?group_id='.
66 $art->ArtifactType->Group->getID().'&atid='.
67 $art->ArtifactType->getID().'">'.
68 $art->ArtifactType->Group->getPublicName().' - '.
69 $art->ArtifactType->getName().'</a></strong></td></tr>';
73 <tr style="background-color:'.html_get_priority_color($art->getPriority()).'">
74 <td><a href="/tracker/?func=detail&aid='.
76 '&group_id='.$art->ArtifactType->Group->getID().
77 '&atid='.$art->ArtifactType->getID().'">'.
79 <td>' . stripslashes($art->getSummary());
81 $last_group = $art->ArtifactType->getID();
85 <strong>'.$Language->getText('my', 'no_tracker_items_assigned').'</strong>';
89 echo $HTML->boxMiddle($Language->getText('my', 'submitteditems'),false,false);
90 $submittedArtifacts = $artifactsForUser->getSubmittedArtifactsByGroup();
91 if (count($submittedArtifacts) > 0) {
92 foreach ($submittedArtifacts as $art) {
94 if ($art->ArtifactType->getID() != $last_group) {
96 <tr><td colspan="2"><strong><a href="/tracker/?group_id='.
97 $art->ArtifactType->Group->getID().'&atid='.
98 $art->ArtifactType->getID().'">'.
99 $art->ArtifactType->Group->getPublicName().' - '.
100 $art->ArtifactType->getName().'</a></strong></td></tr>';
103 <tr style="background-color:'.html_get_priority_color($art->getPriority()).'">
104 <td><a href="/tracker/?func=detail&aid='.
106 '&group_id='.$art->ArtifactType->Group->getID().
107 '&atid='.$art->ArtifactType->getID().'">'.
109 <td>' . stripslashes($art->getSummary());
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 $Language->getText('my', 'no_monitored_forums');
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='.
140 db_result($result,$i,'group_forum_id').
141 '&stop=1&group_id='.db_result($result,$i,'group_id').'"><img src="'. $HTML->imgroot . '/ic/trash.png" height="16" width="16" '.
142 'border="0" alt="" /></a></td><td width="99%"><a href="/forum/forum.php?forum_id='.
144 $f->getName().'</a>';
146 $last_group= $group->getID();
152 Filemodules that are actively monitored
156 echo $HTML->boxMiddle($Language->getText('my', 'monitoredfile'),false,false);
158 $sql="SELECT groups.group_name,groups.group_id,frs_package.name,filemodule_monitor.filemodule_id ".
159 "FROM groups,filemodule_monitor,frs_package ".
160 "WHERE groups.group_id=frs_package.group_id AND groups.status = 'A' ".
161 "AND frs_package.package_id=filemodule_monitor.filemodule_id ".
162 "AND filemodule_monitor.user_id='".user_getid()."' ORDER BY group_name DESC";
163 $result=db_query($sql);
164 $rows=db_numrows($result);
165 if (!$result || $rows < 1) {
166 echo $Language->getText('my', 'no_monitored_filemodules');
169 for ($i=0; $i<$rows; $i++) {
171 if (db_result($result,$i,'group_id') != $last_group) {
173 <tr '. $HTML->boxGetAltRowStyle($i) .'><td colspan="2"><strong><a href="/project/?group_id='.
174 db_result($result,$i,'group_id').'">'.
175 db_result($result,$i,'group_name').'</a></td></tr>';
178 <tr '. $HTML->boxGetAltRowStyle($i) .'><td align="MIDDLE"><a href="/project/filemodule_monitor.php?filemodule_id='.
179 db_result($result,$i,'filemodule_id').
180 '&group_id='.db_result($result,$i,'group_id'). '&stop=1"><img src="'. $HTML->imgroot.'/ic/trash.png" height="16" width="16" '.
181 'BORDER=0"></a></td><td width="99%"><a href="/project/showfiles.php?group_id='.
182 db_result($result,$i,'group_id').'">'.
183 db_result($result,$i,'name').'</a>';
185 $last_group=db_result($result,$i,'group_id');
189 echo $HTML->boxBottom();
191 //second column of "my" page
194 </td><td valign="top" width="50%">
200 echo $HTML->boxTop($Language->getText('my', 'tasks'));
201 $projectTasksForUser = new ProjectTasksForUser($G_SESSION);
202 $userTasks =& $projectTasksForUser->getTasksByGroupProjectName();
204 if (count($userTasks) > 0) {
205 foreach ($userTasks as $task) {
207 /* Deduce summary style */
210 if ($task->getPercentComplete()==100) {
211 $style_begin='<span style="text-decoration:underline">';
212 $style_end='</span>';
214 //if ($task->getProjectGroup()->getID() != $last_group) {
215 $projectGroup =& $task->getProjectGroup();
216 $group =& $projectGroup->getGroup();
217 if ($projectGroup->getID() != $last_group) {
219 <tr><td colspan="2"><strong><a href="/pm/task.php?group_id='.
221 '&group_project_id='.
222 $projectGroup->getID().'">'.
223 $group->getPublicName().' - '.
224 $projectGroup->getName().'</a></strong></td></tr>';
227 <tr style="background-color:'.html_get_priority_color($task->getPriority()).'">
228 <td><a href="/pm/task.php?func=detailtask&project_task_id='.
230 '&group_id='.$group->getID().
231 '&group_project_id='.$projectGroup->getID().'">'.
232 $task->getID().'</td>
233 <td>'.$style_begin.stripslashes($task->getSummary()).$style_end;
235 $last_group = $projectGroup->getID();
239 <strong>'.$Language->getText('my', 'no_open_tasks').'</strong>';
247 This needs to be updated manually to display any given survey
250 $sql="SELECT * from survey_responses ".
251 "WHERE survey_id='1' AND user_id='".user_getid()."' AND group_id='1'";
253 $result=db_query($sql);
255 echo $HTML->boxMiddle($Language->getText('my', 'survey'),false,false);
257 if (db_numrows($result) < 1) {
261 <strong>'.$Language->getText('my','survey_taken').'</strong>';
265 * Pending projects and news bytes
267 $admingroup = group_get_object (1) ;
268 exit_assert_object($admingroup,'Group');
269 $perm =& $admingroup->getPermission( session_get_user() );
270 if ($perm && is_object($perm) && $perm->isAdmin()) {
271 $sql="SELECT group_name FROM groups where status='P';";
272 $result=db_query($sql);
273 $rows=db_numrows($result);
275 echo $HTML->boxMiddle($Language->getText('my','pending_projects'), false, false);
278 echo $Language->getText('my','pending_projects_1');
281 echo $Language->getText('my','pending_projects_2',$rows);
284 /* echo (($rows!=1)?"are ": "is "). "$rows project";
285 echo (($rows!=1)?"s":"");
287 echo " <a href=\"/admin/approve-pending.php\">";
288 echo $Language->getText('my','pending_projects_3');
292 $newsgroup = group_get_object ($GLOBALS['sys_news_group']) ;
293 exit_assert_object($newsgroup,'Group');
294 $perm =& $newsgroup->getPermission( session_get_user() );
295 if ($perm && is_object($perm) && $perm->isAdmin()) {
296 $sql="SELECT * FROM news_bytes WHERE is_approved=0";
297 $result=db_query($sql);
298 $rows=db_numrows($result);
300 echo $HTML->boxMiddle($Language->getText('my','pending_news_bytes'), false, false);
304 echo $Language->getText('my','pending_news_bytes_1');
307 echo $Language->getText('my','pending_news_bytes_2',$rows);
311 echo " <a href=\"/news/admin/?group_id=".$GLOBALS['sys_news_group']."\">";
313 echo $Language->getText('my','pending_news_bytes_3');
323 echo $HTML->boxMiddle($Language->getText('my', 'bookmarks'),false,false);
325 $result = db_query("SELECT bookmark_url, bookmark_title, bookmark_id from user_bookmarks where ".
326 "user_id='". user_getid() ."' ORDER BY bookmark_title");
327 $rows=db_numrows($result);
328 if (!$result || $rows < 1) {
330 <strong>'.$Language->getText('my', 'no_bookmarks').'</strong>';
333 for ($i=0; $i<$rows; $i++) {
335 <tr '. $HTML->boxGetAltRowStyle($i) .'><td align="center">
336 <a href="/my/bookmark_delete.php?bookmark_id='. db_result($result,$i,'bookmark_id') .'">
337 <img src="'.$HTML->imgroot.'/ic/trash.png" height="16" width="16" border="0" alt="" /></a></td>
338 <td><strong><a href="'. db_result($result,$i,'bookmark_url') .'">'.
339 db_result($result,$i,'bookmark_title') .'</a></strong>
340 <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>';
348 echo $HTML->boxMiddle($Language->getText('my', 'projects'),false,false);
349 // Include both groups and foundries; developers should be similarly
350 // aware of membership in either.
351 $result = db_query("SELECT groups.group_name,"
353 . "groups.unix_group_name,"
356 . "user_group.admin_flags "
357 . "FROM groups,user_group "
358 . "WHERE groups.group_id=user_group.group_id "
359 . "AND user_group.user_id='". user_getid() ."' "
360 . "AND groups.status='A'");
361 $rows=db_numrows($result);
362 if (!$result || $rows < 1) {
363 echo '<strong>'.$Language->getText('my', 'no_projects').'</strong>';
366 for ($i=0; $i<$rows; $i++) {
368 $admin_flags = db_result($result, $i, 'admin_flags');
369 if (stristr($admin_flags, 'A')) {
375 if (db_result($result, $i, 'type')==2) {
382 <tr '. $HTML->boxGetAltRowStyle($i) .'><td align="center">
383 <a href="rmproject.php?group_id='. db_result($result,$i,'group_id') .'">
384 <img src="'.$HTML->imgroot.'ic/'.$img.'" alt="Delete" height="16" width="16" border="0" /></a></td>
385 <td><a href="/'.$type.'/'. db_result($result,$i,'unix_group_name') .'/">'. htmlspecialchars(db_result($result,$i,'group_name')) .'</a>';
388 echo $HTML->boxBottom();
396 <tr><td colspan="2">';
398 echo show_priority_colors_key();
405 echo site_user_footer(array());
409 exit_not_logged_in();