function outreachToWriteUp($OID) { // if the outreach is over if (dbIsOutreachOver($OID)) { $outreach = dbGetOutreach($OID); $row = array("status" => "doingWriteUp"); dbUpdateOutreach($OID, $row); } }
function recentTeamOutreach() { global $user; $UID = $user->uid; $params = drupal_get_query_parameters(); if (isset($params['TID'])) { $TID = $params['TID']; $team = dbGetTeam($TID); $teamNumber = $team['number']; } else { $team = getCurrentTeam(); $TID = $team['TID']; $team = dbGetTeam($TID); $teamNumber = $team['number']; } // checks to see if team can access page if (teamIsIneligible($TID)) { drupal_set_message('Your team does not have permission to access this page.', 'error'); drupal_goto($_SERVER['HTTP_REFERER']); } // create header $markup = '<h1>Team Dashboard</h1><br>'; $markup .= '<h2>' . $team['number'] . ' Outreach</h2>'; $searchParams['teams'] = array($TID); $markup .= '<div align="left" style="float: left">Sort By: '; if (isset($params['sortByDate'])) { $outreaches = dbGetOutreachesForTeam($TID, 'upcoming', NUM_RECENT_OUTREACHES_SHOWN); $markup .= '<a href="?q=teamDashboard">Recently Added</a><b> | Upcoming Events</b></div>'; } else { $outreaches = dbGetOutreachesForTeam($TID, 'logDate', NUM_RECENT_OUTREACHES_SHOWN); $markup .= '<b>Recently Added | </b><a href="?q=teamDashboard&sortByDate">Upcoming Events</a></div>'; } $markup .= '<div align="right" style="float:right">'; // moderator page button if (!teamIsIneligible($TID) && hasPermissionForTeam('manageOutreachTags', $TID)) { $markup .= '<a href="?q=teamModeratorPage">'; $markup .= '<div class="help tooltip4">'; $markup .= '<button>Moderators</button>'; $markup .= '<span id="helptext"; class="helptext tooltiptext4">'; $markup .= 'Click here to view ideas, write-ups, and hours awaiting approval.'; $markup .= '</span></div></a>'; } else { $markup .= ''; } // all team outreach button $markup .= '<a href="?q=outreach&allTeamOutreach"><div class="help tooltip3"><button>All Team Outreach</button><span id="helptext"; class="helptext tooltiptext3">Click here to view all of your teams outreach.</span></div></a></div>'; // create table $markup .= '<table class="infoTable"><tr><th>Name</th><th>Event Date</th><th>Owner</th><th></th></tr>'; foreach ($outreaches as $outreach) { $OID = $outreach['OID']; $markup .= '<tr><td><a href="?q=viewOutreach&OID=' . $OID . '"</a>'; $markup .= chopString($outreach["name"], 20) . '</td>'; // displays event date if (dbGetEarliestTimeForOutreach($OID) != false) { $markup .= '<td>' . date(TIME_FORMAT, dbDateSQL2PHP(dbGetEarliestTimeForOutreach($OID))) . '</td>'; } else { $markup .= '<td>[none]</td>'; } $owner = dbGetOutreachOwner($OID); // displays outreach owner if ($owner != false) { $markup .= '<td><a href="?q=viewUser&UID=' . $owner . '">' . dbGetUserName($owner) . '</a></td>'; } else { $markup .= '<td>[none]</td>'; // insert placeholder if no outreach owner } $markup .= '<td>'; // sign up for outreach button $signUp = dbIsUserSignedUp($UID, $OID); if (dbIsUserSignedUp($UID, $OID)) { if (dbIsOutreachOver($OID)) { $markup .= '<a href="?q=signUp&OID=' . $OID . '"><button type="button" disabled>Edit Sign Up</button></a>'; } else { $markup .= '<a href="?q=signUp&OID=' . $OID . '"><button type="button">Edit Sign Up</button></div></a>'; } } else { if (dbIsOutreachOver($OID)) { $markup .= '<a href="?q=signUp&OID=' . $OID . '"><button type="button" disabled>Sign Up</button></div></a>'; } else { $markup .= '<a href="?q=signUp&OID=' . $OID . '"><button type="button">Sign Up</button></div></a>'; } } $markup .= '</td></tr>'; } // if no outreaches for team if (empty($outreaches)) { $markup .= '<tr><td colspan="10">No outreach found! Click <a href="?q=outreachForm">here</a> to create new outreach!</td></tr></table>'; return array('#markup' => $markup); } $markup .= '</table>'; return array('#markup' => $markup); }
function viewOutreachEvent() { global $user; $UID = $user->uid; $params = drupal_get_query_parameters(); if (isset($params['OID']) && $params['OID'] > 0) { $OID = $params['OID']; $outreach = dbGetOutreach($OID); if ($outreach == false) { drupal_set_message('Invalid outreach event. Click <a href="?q=teamDashboard">here</a> to navigate back to events in Team Dashboard.', 'error'); return; } $TID = $outreach['TID']; if (!isMyTeam($TID)) { drupal_set_message('You do not have permission to access this page.', 'error'); return; } // if the outreach status is outreach and the event is over, then turn the status to write up if ($outreach['status'] == "isOutreach") { outreachToWriteUp($OID); } // determine if the user can physically sign up $canSignUp = !dbIsOutreachOver($OID) && ($outreach['status'] == 'isOutreach' || $outreach['status'] == 'doingWriteUp'); $markup = ''; $markup .= '<div style="float:left; width:38%">'; $markup .= '<table style="margin:0px 0px 10px 0px;"><tr>'; $markup .= '<td style="padding:0px 14px 10px 14px;"><div align="left"><h2 style="margin:0px 0px 7px 0px;"><b>'; // display outreach name $markup .= "{$outreach['name']}"; $markup .= '</b></h2></div></td></tr>'; $markup .= '<tr><td>'; $markup .= showOutreachStatusIcon($outreach['status']); // displays the icon for a public outreach $markup .= $outreach['isPublic'] ? '<span title="Public"><img class="eventPrivacyIcon" src="/images/icons/publicBlue.png"></span>' : '<span title="Private"><img class="eventPrivacyIcon" src="/images/icons/privateBlue.png"></span>'; // displays the icon for a cancelled outreach $markup .= $outreach['cancelled'] ? '<span title="Event Cancelled"><img class="eventCancelledIcon" src="/images/icons/cancelledRed.png"' : ''; $markup .= '</td></tr></table>'; $markup .= '<table id="photoAndEdit"><tr><td style="padding:0px;">'; // cannot edit photo if user doesn't have the correct permissions if (!isMyOutreach($OID) && !hasPermissionForTeam('editAnyOutreach', getCurrentTeam()['TID'])) { $markup .= '<div align="right">'; $markup .= '<span title="Edit Photo"><button type="button" disabled><img class="editIcon" src="/images/icons/editThumbnailWhite.png"></button></span>'; $markup .= '</div>'; } else { // edit photo if user has permissions $markup .= '<div align="right">'; $markup .= '<a href= "?q=editThumbnail'; $markup .= '&OID=' . $OID . '&FID=' . $outreach['FID'] . '">'; $markup .= '<span title="Edit Photo"><button type="button"><img class="editIcon" src="/images/icons/editThumbnailWhite.png"></button></a></span>'; $markup .= '</div>'; } $markup .= '</td></tr><tr><td style="padding:0px;">'; // default picture for outreach if (!empty($outreach['FID'])) { $FID = dbGetOutreachThumbnail($OID); $url = generateURL($FID); $markup .= '<div align="center"><img src="' . $url . '" style="max-width:150px; width:auto; height:auto; padding: 5px 0px 5px 0px">'; } else { $markup .= '<div align="center"><img src="/images/defaultPics/team.png" style="max-width:200px; width:auto; height:auto; padding: 15px 0px 15px 0px">'; } $markup .= '</div></td></tr></table></div>'; $markup .= '<div align="right">'; // if the status is write-up, then allow a user to submit a write up if ($outreach['status'] == 'doingWriteUp' && !$outreach['isWriteUpSubmitted']) { $markup .= '<a href="?q=writeupform&OID=' . $outreach['OID'] . '"><button>Write Up</button></a>'; } else { if ($outreach['isWriteUpSubmitted'] && hasPermissionForTeam('approveIdeas', $TID) && $outreach['status'] == 'doingWriteUp') { $markup .= '<a href="?q=writeupform&OID=' . $outreach['OID'] . '&approving"><button>Approve Write Up</button></a>'; } } // if the status is idea, then allow a user with permissions to approve or reject the idea if ($outreach['status'] == 'isIdea' && hasPermissionForTeam('approveIdeas', $TID)) { $markup .= '<a href="?q=approveIdea/' . $outreach['OID'] . '/' . $TID . '"><button>Approve</button></a>'; $markup .= '<a href="?q=rejectIdea/' . $outreach['OID'] . '/' . $TID . '"><button>Reject</button></a>'; } // notifications button if (!isMyOutreach($OID) && !hasPermissionForTeam('editAnyOutreach', getCurrentTeam()['TID'])) { $markup .= '<button type="button" disabled>Notifications</button>'; } else { $markup .= '<a href="?q=manageNotifications&OID=' . $outreach['OID'] . '"><button>Notifications</button></a>'; } // manage sign-ups button if (!dbIsOutreachCancelled($OID)) { if (dbIsUserSignedUp($UID, $OID)) { if (dbIsOutreachOver($OID)) { $markup .= '<a href="?q=signUp&OID=' . $OID . '"><div class="help tooltip4"><button type="button" disabled>Edit Sign Up</button><span id="helptext"; class="helptext tooltiptext4">You cannot edit your sign up for this event because it is already over.</span></div></a>'; } else { $markup .= '<a href="?q=signUp&OID=' . $OID . '"><div class="help tooltip4"><button type="button">Edit Sign Up</button><span id="helptext"; class="helptext tooltiptext4">Click here to edit your sign up for this event.</span></div></a>'; } } else { if (dbIsOutreachOver($OID) || $outreach['status'] == 'isIdea') { $markup .= '<a href="?q=signUp&OID=' . $OID . '"><div class="help tooltip4"><button type="button" disabled>Sign Up</button><span id="helptext"; class="helptext tooltiptext4">You cannot sign up for this event because it is already over.</span></div></a>'; } else { $markup .= '<a href="?q=signUp&OID=' . $OID . '"><div class="help tooltip4"><button type="button">Sign Up</button><span id="helptext"; class="helptext tooltiptext4">Click here to sign up for this event.</span></div></a>'; } } } else { $markup .= '<a href="?q=signUp&OID=' . $OID . '"><div class="help tooltip4"><button type="button" disabled>Sign Up</button><span id="helptext"; class="helptext tooltiptext4">You cannot sign up for this event because it is cancelled.</span></div></a>'; } // hours button if (!dbIsOutreachCancelled($OID)) { $markup .= '<a href= "?q=viewHours'; $markup .= '&OID=' . $OID . '">'; $markup .= '<button type="button" '; $markup .= $outreach['status'] == 'isIdea' ? ' disabled' : ''; $markup .= '>Hours</button></a>'; } else { // if outreach is cancelled $markup .= '<button type="button" disabled'; $markup .= $outreach['status'] == 'isIdea' ? ' disabled' : ''; $markup .= '>Hours</button>'; } // view media button $markup .= '<a href="?q=viewMedia'; $markup .= '&OID=' . $OID . '">'; $markup .= '<button type="button"'; $markup .= $outreach['status'] == 'isIdea' ? ' disabled' : ''; $markup .= '>Media</button></a>'; // edit outreach button if (!isMyOutreach($OID) && !hasPermissionForTeam('editAnyOutreach', getCurrentTeam()['TID'])) { $markup .= '<button type="button" disabled><img class="editIcon" src="/images/icons/editWhite.png"></button>'; } else { $markup .= '<a href= "?q=outreachForm'; $markup .= '&OID=' . $OID . '">'; $markup .= '<button type="button"><img class="editIcon" src="/images/icons/editWhite.png"></button></a>'; } $markup .= '</div>'; $markup .= '<div style="width:60%; float:right; padding-left:10px">'; $hasPointOfContact = false; if (!(empty($outreach['co_organization']) && empty($outreach['co_firstName']) && empty($outreach['co_email']) && empty($outreach['co_phoneNumber']))) { $hasPointOfContact = true; } // account for cases where no info is present if ($outreach['description'] == null) { $outreach['description'] = '[none]'; } if ($outreach['type'] == null || $outreach['type'] == '') { $outreach['type'] = '[none]'; } if ($outreach['status'] == null) { $outreach['status'] = '[none]'; } if ($outreach['co_organization'] == null) { $outreach['co_organization'] = '[none]'; } if ($outreach['co_position'] == null) { $outreach['co_position'] = '[none]'; } if ($outreach['co_firstName'] == null) { $outreach['co_firstName'] = '[none]'; } if ($outreach['co_email'] == null) { $outreach['co_email'] = '[none]'; } if ($outreach['co_phoneNumber'] == null) { $outreach['co_phoneNumber'] = '[none]'; } if ($outreach['city'] == null) { $outreach['city'] = '[none]'; } if ($outreach['state'] == null) { $outreach['state'] = '[none]'; } if ($outreach['address'] == null) { $outreach['address'] = '[none]'; } if ($outreach['country'] == null) { $outreach['country'] = '[none]'; } if ($outreach['totalAttendance'] == null) { $outreach['totalAttendance'] = 0; } if ($outreach['testimonial'] == null) { $outreach['testimonial'] = '[none]'; } $team = dbGetTeam($outreach['TID']); // begin displaying info body $markup .= '<table id="miniViewTeam" style="margin:16px 0px 0px 0px"><tr><td><h3><b><u>General<u></b></h3></td></tr>'; $owner = dbGetOutreachOwner($OID); $markup .= "<tr><td colspan='3'><b>Owner: </b>" . dbGetUserName($owner) . "</a></td>"; $markup .= "<td colspan='3'><b>Team: </b>{$team['number']}</td></tr>"; $markup .= '<tr><td colspan="3"><b>Tags: </b>'; $tags = dbGetTagsForOutreach($OID); if (!empty($tags)) { dpm($tags); $first = true; $length = count($tags); $i = 1; foreach ($tags as $OTID => $tagName) { $markup .= '<a href="?q=outreach&tag=' . $OTID . '">' . $tagName . '</a>'; if ($i < $length) { $markup .= ', '; } $i++; } // if there aren't any tags } else { $markup .= '[none]'; } $markup .= '</td></tr>'; $times = dbGetTimesForOutreach($OID); // display time if the outreach status isn't an idea if ($outreach['status'] != 'isIdea') { if (!empty($times)) { foreach ($times as $time) { $startTime = date(TIME_FORMAT, dbDateSQL2PHP($time['startTime'])); $endTime = date(TIME_FORMAT, dbDateSQL2PHP($time['endTime'])); $markup .= '<tr><td colspan="3"><b>Start Date: </b>' . $startTime . '</td>'; $markup .= '<td colspan="3"><b>End Date: </b>' . $endTime . '</td></tr>'; } } } $markup .= '<tr><td colspan="5" style="word-break:break-word"><b>Description: </b>'; $markup .= wordwrap($outreach['description'], 70, "<br />\n"); $markup .= '</td></tr>'; // if the outreach has contact information if ($hasPointOfContact) { $markup .= '<tr><td><h3><b><u>Contact Info<u></b></h3></td></tr>'; $markup .= '<tr><td colspan="3"><b>Host Organization: </b>'; $markup .= strip_tags($outreach['co_organization'], ALLOWED_TAGS) . '</td>'; $markup .= '<td colspan="3"><b>Contact Name: </b>'; $markup .= strip_tags($outreach['co_firstName'] . ' ' . $outreach['co_lastName'], ALLOWED_TAGS) . '</td></tr>'; $markup .= '<tr><td colspan="3"><b>Contact Email: </b>' . strip_tags($outreach['co_email'], ALLOWED_TAGS) . '</td>'; $phoneNumber = dbFormatPhoneNumber($outreach['co_phoneNumber']); $markup .= '<td colspan="3"><b>Contact Number: </b>' . $phoneNumber . '</td></tr>'; $markup .= '<tr><td colspan="6"><b>Address: </b>' . strip_tags($outreach['address'], ALLOWED_TAGS) . ', ' . strip_tags($outreach['city'], ALLOWED_TAGS) . ', ' . strip_tags($outreach['state'], ALLOWED_TAGS) . '</td></tr>'; $markup .= '</tr>'; } else { $markup .= '<tr><td><h3><b><u>Contact Info<u></b></h3></td></tr>'; $markup .= '<tr><td colspan="6"><b>Address: </b>' . strip_tags($outreach['address'], ALLOWED_TAGS) . ', ' . strip_tags($outreach['city'], ALLOWED_TAGS) . ', ' . strip_tags($outreach['state'], ALLOWED_TAGS) . '</td></tr>'; $markup .= '</tr>'; } $markup .= '<tr><td><h3><b><u>Statistics<u></b></h3></td></tr>'; $markup .= '<tr>'; if ($outreach['status'] != 'isIdea') { $numPpl = dbGetNumPplSignedUpForEvent($OID); $markup .= '<td colspan="3"><b>'; // only show the link if people are signed up if ($numPpl != 0) { $markup .= '<a href="?q=outreachList&OID=' . $OID . '"target="_blank">'; } $markup .= 'People Signed Up: </b>'; // end the link if ($numPpl != 0) { $markup .= '</a>'; } $markup .= $numPpl . '</td>'; // view total hours for the outreach $markup .= '<td colspan="3"><b>Total Hours: </b><a href="?q=viewHours&OID=' . $OID . '">' . dbGetHoursForOutreach($OID) . '</a></td></tr>'; //if the outreach status is idea } else { $markup .= '<td colspan="3">'; $markup .= '<b>People Signed Up: </b>'; $markup .= 'None'; $markup .= '</td></tr>'; } $markup .= '</table></div>'; // if the outreach has an approved write-up if ($outreach['isWriteUpApproved'] && $outreach['status'] == 'locked') { $writeUp = empty($outreach["writeUp"]) ? '[None]' : $outreach["writeUp"]; $totalAttendance = empty($outreach["totalAttendance"]) ? '[Not Filled Out]' : $outreach["totalAttendance"]; $testimonial = empty($outreach["testimonial"]) ? '[None]' : $outreach["testimonial"]; $markup .= '<div style="float:left; width:38%;"><table id="miniViewTeam" style="margin:16px 0px 0px 0px"><tr><td><h3><b><u>Write Up<u></b></h3></td>'; $markup .= '<td><a href="?q=writeupform&OID=' . $outreach['OID'] . '&approved"><button> View</button></a></td></tr>'; $markup .= '<tr><td><b>Write Up:</b></td></tr>'; $markup .= '<tr><td>' . $writeUp . '</td></tr>'; $markup .= '<tr><td><b>Total Attendance:</b></td></tr>'; $markup .= '<tr><td>' . $totalAttendance . '</td></tr>'; $markup .= '<tr><td><b>Testimonials/Comments:</b></td></tr>'; $markup .= '<tr><td>' . $testimonial . '</td></tr>'; $markup .= '</table></div>'; } $retArray = array(); $retArray['#markup'] = $markup; return $retArray; } else { drupal_set_message('Invalid outreach event. Click <a href="?q=teamDashboard">here</a> to navigate back to events in Team Dashboard.', 'error'); } }
function outreachForm_submit($form, $form_state) { global $user; $UID = $user->uid; $TID = $form_state['TID']; $outreachFields = array("name", "peopleImpacted", "address", "city", "state", "country", "status", "co_organization", "co_firstName", "co_lastName", "co_email", "co_phoneNumber", "isPublic"); $outreachData = getFields($outreachFields, $form_state['values']); $outreachData = stripTags($outreachData, ''); // remove all tags $outreachData['description'] = stripTags(array($form_state['values']['description'])); // allow some tags $outreachData["TID"] = $TID; if ($form_state['new']) { $outreachData["UID"] = $UID; } if (isset($form_state['OID'])) { $OID = $form_state['OID']; $oldOutreachData = dbGetOutreach($OID); if ($outreachData["status"] == "doingWriteUp" && $oldOutreachData["isWriteUpApproved"] == true) { $outreachData["writeUpUID"] = null; $outreachData["isWriteUpSubmitted"] = 0; $outreachData["isWriteUpApproved"] = 0; } } if (!$form_state['new']) { // updating existing event $OID = $form_state['OID']; $result = dbUpdateOutreach($OID, $outreachData); if ($result) { // if db call was successful for ($i = 0; $i < $form_state['numRows']; $i++) { // loop through date rows $TOID = isset($form_state['fields']['dates']["TOID-{$i}"]) ? $form_state['fields']['dates']["TOID-{$i}"] : 0; $timeData['startTime'] = dbDatePHP2SQL(strtotime($form_state['values']["startTime-{$i}"])); dpm($timeData['startTime']); $timeData['endTime'] = dbDatePHP2SQL(strtotime($form_state['values']["endTime-{$i}"])); if ($timeData['startTime'] != null && $timeData['endTime'] != null) { // if row isn't empty if ($TOID != 0) { // update existing record dbUpdateTimesForOutreach($TOID, $timeData); } else { // add a new time record if there wasn't one previously $timeData['OID'] = $OID; dbAddTimesToOutreach($timeData); } } else { // remove time record if empty dbRemoveTimeFromOutreach($TOID); } } for ($i = $form_state['numRows']; $i < $form_state['initialNumTimes']; $i++) { // executes if times were deleted dbRemoveTimeFromOutreach($form_state['fields']['dates']["TOID-{$i}"]); } $notification = array(); $userName = dbGetUserName($user->uid); $outName = dbGetOutreachName($OID); $notification['dateCreated'] = dbDatePHP2SQL(time()); $notification['dateTargeted'] = dbDatePHP2SQL(time()); $notification['message'] = "{$userName} has updated outreach {$outName}."; $notification['bttnTitle'] = 'View'; $notification['bttnLink'] = '?q=viewOutreach&OID=' . $OID; $notification['TID'] = $TID; notifyUsersByRole($notification, 'moderator'); // handle tags if (!empty($form_state['values']['tags'])) { $newTags = $form_state['values']['tags']; $previous = dbGetTagsForOutreach($OID, true); // the "true" means this will return only OTID's if ($previous == false) { // if there aren't any tags $previous = array(); } $deleted = array_diff($previous, $newTags); $added = array_diff($newTags, $previous); foreach ($deleted as $delete) { // $delete is the OTID to be removed from the outreach if (!empty($delete)) { dbRemoveTagFromOutreach($delete, $OID); } } foreach ($added as $add) { // $add is the OTID to be added to the outreach if (!empty($add)) { dbAddTagToOutreach($add, $OID); } } } drupal_set_message("Outreach updated!"); } else { drupal_set_message("Outreach not updated."); } } else { // adding new event $outreachData['logDate'] = dbDatePHP2SQL(time()); $OID = dbCreateOutreach($outreachData); if ($OID != false) { dbAddUserAsOwnerOfOutreach($UID, $OID); dbAssignUserToOutreach($UID, $OID, 'owner'); // handle times if ($outreachData['status'] != 'isIdea') { for ($i = 0; $i < $form_state['numRows']; $i++) { $time = array("startTime-{$i}", "endTime-{$i}"); $timeData = getFields($time, $form_state['values']); if ($timeData["startTime-{$i}"] != null && $timeData["endTime-{$i}"] != null) { // rename array keys to match columns $timeData['startTime'] = dbDatePHP2SQL(strtotime($timeData["startTime-{$i}"])); $timeData['endTime'] = dbDatePHP2SQL(strtotime($timeData["endTime-{$i}"])); unset($timeData["endTime-{$i}"], $timeData["startTime-{$i}"]); $timeData['OID'] = $OID; dbAddTimesToOutreach($timeData); } } } // handle tags if (!empty($form_state['values']['tags'])) { foreach ($form_state['values']['tags'] as $OTID) { dbAddTagToOutreach($OTID, $OID); } } // create notification $notification = array(); $userName = dbGetUserName($user->uid); $outName = dbGetOutreachName($OID); $notification['dateCreated'] = dbDatePHP2SQL(time()); $notification['dateTargeted'] = dbDatePHP2SQL(time()); $notification['message'] = "{$userName} has created outreach {$outName}."; $notification['bttnTitle'] = 'View'; $notification['bttnLink'] = '?q=viewOutreach&OID=' . $OID; $notification['TID'] = $TID; notifyUsersByRole($notification, 'moderator'); drupal_set_message("Outreach created!"); } else { // if the $OID IS false form_set_error("Outreach not created successfully"); } } if (dbIsOutreachOver($OID)) { drupal_set_message("It appears you are logging an old event. Don't forget to <a href=\"?q=logHours&OID={$OID}\"><b>log old hours</b></a>!"); } drupal_goto('viewOutreach', array('query' => array('OID' => $OID))); }
function signUp($form, &$form_state) { global $user; $UID = $user->uid; $new = $form_state['new'] = true; $params = drupal_get_query_parameters(); // various checks for permissions if (dbGetTeamsForUser($user->uid) == false) { drupal_set_message("You don't have a team assigned.", 'error'); drupal_goto($_SERVER['HTTP_REFERER']); } // getting the outreach ID from the URL parameters and setting that and the team ID into local variables if (isset($params['OID']) && $params['OID'] > 0) { $OID = $params['OID']; $TID = dbGetTeamForOutreach($OID); if (!dbIsUserApprovedForTeam($UID, $TID)) { drupal_set_message('You do not have the permission to contribute to this event.', 'error'); drupal_goto($_SERVER['HTTP_REFERER']); } if (dbIsOutreachOver($OID)) { drupal_set_message('You can not contribute to this event. It has already ended.', 'error'); drupal_goto($_SERVER['HTTP_REFERER']); } $outreach = dbGetOutreach($OID); if (dbIsUserSignedUp($UID, $OID)) { // if user is already signed up for outreach then sets "new" to false $new = $form_state['new'] = false; $data = dbGetUserSignUpType($UID, $OID); // getting data related to sign up } $types = array('prep' => 'Preparation', 'atEvent' => 'At Event', 'writeUp' => 'Write Up', 'followUp' => 'Follow Up'); $form = array(); $form['fields'] = array('#type' => 'fieldset', '#title' => t('Sign Up For Outreach: ' . dbGetOutreachName($OID))); // displays outreach owner's name and email (unless they are no longer on the team) $ownerUID = dbGetOutreachOwner($OID); $email = dbGetUserPrimaryEmail($ownerUID); if (dbGetUserName($ownerUID) != -1) { $markup = '<b>Owner of Outreach: </b>' . dbGetUserName($ownerUID); if (dbIsUserApprovedForTeam($ownerUID, $TID)) { $markup .= "<br><b>Email of Owner: </b><a href=\"mailto:{$email}\" target=\"_top\">{$email}</a>"; } else { $markup .= ' (no longer on this team)<br>'; } } else { $markup = '<b>Owner of Outreach: </b>[none]<br>'; $markup .= '<b>Email of Owner: </b>[none]'; } $form['tableHeader'] = array('#markup' => $markup); // signing up for time slots listed in the array above (local variable --> "types") $form['fields']['times'] = array('#prefix' => '<table colspan="4"><tr><td colspan="2">', '#type' => 'checkboxes', '#title' => t('<h4>Which time(s) would you like to sign up for?</h4>'), '#options' => $types, '#default_value' => $new ? array() : $data, '#suffix' => '</td>'); // obligatory confirmation for the user to understand their commitment $form['fields']['confirmation'] = array('#prefix' => '<td colspan="2">', '#type' => 'checkbox', '#title' => t('<b>By checking this box, I understand that I am signing up for this event and am committed to the time(s) I agreed to.</b>'), '#suffix' => '</td></tr>'); $form['fields']['html1'] = array('#markup' => '<tr>'); // allows a user to cancel their commitment to their outreach times if (!$new) { $form['fields']['cancel'] = array('#prefix' => '<td colspan="2">', '#type' => 'submit', '#value' => 'Remove Commitment', '#limit_validation_errors' => array(), '#submit' => array('cancelCommit'), '#suffix' => '</td>'); } else { $form['fields']['html'] = array('#markup' => '<td></td>'); } $form['fields']['submit'] = array('#prefix' => '<td colspan="2" style="text-align:right">', '#type' => 'submit', '#value' => t('Submit'), '#suffix' => '</td>'); $form['fields']['footer'] = array('#markup' => '</tr></table>'); return $form; } else { // in case the parameter passed was an invalid OID drupal_set_message('Invalid outreach event. Click <a href="?q=teamDashboard">here</a> to naviagte back to events in Team Dashboard.', 'error'); } }