//Write to database try { $data = array('badgesBadgeID' => $badgesBadgeID, 'gibbonSchoolYearID' => $gibbonSchoolYearID, 'date' => dateConvert($guid, $date), 'gibbonPersonID' => $gibbonPersonID, 'comment' => $comment, 'gibbonPersonIDCreator' => $_SESSION[$guid]['gibbonPersonID']); $sql = 'INSERT INTO badgesBadgeStudent SET badgesBadgeID=:badgesBadgeID, gibbonSchoolYearID=:gibbonSchoolYearID, date=:date, gibbonPersonID=:gibbonPersonID, comment=:comment, gibbonPersonIDCreator=:gibbonPersonIDCreator'; $result = $connection2->prepare($sql); $result->execute($data); } catch (PDOException $e) { $partialFail = true; } $badgesBadgeStudentID = $connection2->lastInsertID(); //Attempt to add like $likeComment = ''; if ($comment != '') { $likeComment .= $comment; } $return = setLike($connection2, 'Badges', $_SESSION[$guid]['gibbonSchoolYearID'], 'badgesBadgeStudentID', $badgesBadgeStudentID, $_SESSION[$guid]['gibbonPersonID'], $gibbonPersonID, 'Badges Granted', $likeComment); //Notify User $notificationText = __($guid, 'Someone has granted you a badge.'); setNotification($connection2, $guid, $gibbonPersonID, $notificationText, 'Badges', "/index.php?q=/modules/Badges/badges_view.php&gibbonPersonID={$gibbonPersonID}"); } if ($partialFail == true) { //Fail 5 $URL .= '&return=error5'; header("Location: {$URL}"); } else { //Success 0 $URL .= '&return=success0'; header("Location: {$URL}"); } } }
} } foreach ($gibbonPersonIDMulti as $gibbonPersonID) { //Write to database try { $data = array("gibbonPersonID" => $gibbonPersonID, "date" => dateConvert($guid, $date), "type" => $type, "descriptor" => $descriptor, "level" => $level, "comment" => $comment, "followup" => $followup, "gibbonPersonIDCreator" => $_SESSION[$guid]["gibbonPersonID"], "gibbonSchoolYearID" => $_SESSION[$guid]["gibbonSchoolYearID"]); $sql = "INSERT INTO gibbonBehaviour SET gibbonPersonID=:gibbonPersonID, date=:date, type=:type, descriptor=:descriptor, level=:level, comment=:comment, followup=:followup, gibbonPersonIDCreator=:gibbonPersonIDCreator, gibbonSchoolYearID=:gibbonSchoolYearID"; $result = $connection2->prepare($sql); $result->execute($data); } catch (PDOException $e) { $partialFail = TRUE; } $gibbonBehaviourID = $connection2->lastInsertID(); //Attempt to add like on positive behaviour if ($type == "Positive") { $return = setLike($connection2, "Behaviour", $_SESSION[$guid]["gibbonSchoolYearID"], "gibbonBehaviourID", $gibbonBehaviourID, $_SESSION[$guid]["gibbonPersonID"], $gibbonPersonID, "Positive Behaviour", $likeComment); } if ($type == "Negative") { try { $dataDetail = array("gibbonSchoolYearID" => $_SESSION[$guid]["gibbonSchoolYearID"], "gibbonPersonID" => $gibbonPersonID); $sqlDetail = "SELECT gibbonPersonIDTutor, gibbonPersonIDTutor2, gibbonPersonIDTutor3, surname, preferredName FROM gibbonRollGroup JOIN gibbonStudentEnrolment ON (gibbonStudentEnrolment.gibbonRollGroupID=gibbonRollGroup.gibbonRollGroupID) JOIN gibbonPerson ON (gibbonStudentEnrolment.gibbonPersonID=gibbonPerson.gibbonPersonID) WHERE gibbonStudentEnrolment.gibbonSchoolYearID=:gibbonSchoolYearID AND gibbonStudentEnrolment.gibbonPersonID=:gibbonPersonID"; $resultDetail = $connection2->prepare($sqlDetail); $resultDetail->execute($dataDetail); } catch (PDOException $e) { print "<div class='error'>" . $e->getMessage() . "</div>"; } if ($resultDetail->rowCount() == 1) { $rowDetail = $resultDetail->fetch(); $name = formatName("", $rowDetail["preferredName"], $rowDetail["surname"], "Student", false); $notificationText = sprintf(_('Someone has created a negative behaviour record for your tutee, %1$s.'), $name); if ($rowDetail["gibbonPersonIDTutor"] != NULL and $rowDetail["gibbonPersonIDTutor"] != $_SESSION[$guid]["gibbonPersonID"]) {
//can be "add" or "remove" $comment = ""; if (isset($_POST["comment"])) { $comment = $_POST["comment"]; } if ($gibbonPersonID == "" or $gibbonMessengerID == "" or $mode != "add" and $mode != "remove") { print _("Error"); } else { //Prepare scripts abd buttons to return via AJAX $script = "<script type=\"text/javascript\">\n\t\t\$(document).ready(function(){\n\t\t\t\$(\"#starAdd" . $gibbonMessengerID . "\").click(function(){\n\t\t\t\t\$(\"#star" . $gibbonMessengerID . "\").load(\"" . $_SESSION[$guid]["absoluteURL"] . "/modules/Messenger/messageWall_view_starAjax.php\",{\"gibbonPersonID\": \"" . $gibbonPersonID . "\", \"gibbonMessengerID\": \"" . $gibbonMessengerID . "\", \"mode\": \"add\", \"comment\": \"" . $comment . "\"});\n\t\t\t});\n\t\t\t\$(\"#starRemove" . $gibbonMessengerID . "\").click(function(){\n\t\t\t\t\$(\"#star" . $gibbonMessengerID . "\").load(\"" . $_SESSION[$guid]["absoluteURL"] . "/modules/Messenger/messageWall_view_starAjax.php\",{\"gibbonPersonID\": \"" . $gibbonPersonID . "\", \"gibbonMessengerID\": \"" . $gibbonMessengerID . "\", \"mode\": \"remove\", \"comment\": \"" . $comment . "\"});\n\t\t\t});\n\t\t});\n\t</script>"; $on = $script . "<a id='starRemove" . $gibbonMessengerID . "' onclick='return false;' href='#'><img style='margin-top: -8px; margin-bottom: 5px' src='" . $_SESSION[$guid]["absoluteURL"] . "/themes/" . $_SESSION[$guid]["gibbonThemeName"] . "/img/like_on.png'></a>"; $off = $script . "<a id='starAdd" . $gibbonMessengerID . "' onclick='return false;' href='#'><img style='margin-top: -8px; margin-bottom: 5px' src='" . $_SESSION[$guid]["absoluteURL"] . "/themes/" . $_SESSION[$guid]["gibbonThemeName"] . "/img/like_off.png'></a>"; //Act based on the mode if ($mode == "add") { //ADD $return = setLike($connection2, "Messenger", $_SESSION[$guid]["gibbonSchoolYearID"], "gibbonMessengerID", $gibbonMessengerID, $_SESSION[$guid]["gibbonPersonID"], $gibbonPersonID, "Messenger - Message Like", $comment); if ($return == FALSE) { print $off; } else { print $on; } } else { if ($mode == "remove") { //REMOVE $return = deleteLike($connection2, "Messenger", "gibbonMessengerID", $gibbonMessengerID, $_SESSION[$guid]["gibbonPersonID"], $gibbonPersonID, "Messenger - Message Like"); if ($return == FALSE) { print $on; } else { print $off; } }
//can be "add" or "remove" $comment = ""; if (isset($_POST["comment"])) { $comment = $_POST["comment"]; } if ($gibbonPersonID == "" or $gibbonPlannerEntryID == "" or $mode != "add" and $mode != "remove") { print _("Error"); } else { //Prepare scripts abd buttons to return via AJAX $script = "<script type=\"text/javascript\">\n\t\t\$(document).ready(function(){\n\t\t\t\$(\"#starAdd" . $gibbonPersonID . "\").click(function(){\n\t\t\t\t\$(\"#star" . $gibbonPersonID . "\").load(\"" . $_SESSION[$guid]["absoluteURL"] . "/modules/Planner/planner_view_full_starAjax.php\",{\"gibbonPersonID\": \"" . $gibbonPersonID . "\", \"gibbonPlannerEntryID\": \"" . $gibbonPlannerEntryID . "\", \"mode\": \"add\", \"comment\": \"" . $comment . "\"});\n\t\t\t});\n\t\t\t\$(\"#starRemove" . $gibbonPersonID . "\").click(function(){\n\t\t\t\t\$(\"#star" . $gibbonPersonID . "\").load(\"" . $_SESSION[$guid]["absoluteURL"] . "/modules/Planner/planner_view_full_starAjax.php\",{\"gibbonPersonID\": \"" . $gibbonPersonID . "\", \"gibbonPlannerEntryID\": \"" . $gibbonPlannerEntryID . "\", \"mode\": \"remove\", \"comment\": \"" . $comment . "\"});\n\t\t\t});\n\t\t});\n\t</script>"; $on = $script . "<a id='starRemove" . $gibbonPersonID . "' onclick='return false;' href='#'><img style='margin-top: -30px; margin-left: 60px' src='" . $_SESSION[$guid]["absoluteURL"] . "/themes/" . $_SESSION[$guid]["gibbonThemeName"] . "/img/like_on.png'></a>"; $off = $script . "<a id='starAdd" . $gibbonPersonID . "' onclick='return false;' href='#'><img style='margin-top: -30px; margin-left: 60px' src='" . $_SESSION[$guid]["absoluteURL"] . "/themes/" . $_SESSION[$guid]["gibbonThemeName"] . "/img/like_off.png'></a>"; //Act based on the mode if ($mode == "add") { //ADD $return = setLike($connection2, "Planner", $_SESSION[$guid]["gibbonSchoolYearID"], "gibbonPlannerEntryID", $gibbonPlannerEntryID, $_SESSION[$guid]["gibbonPersonID"], $gibbonPersonID, "Planner - Learning Feedback", $comment); if ($return == FALSE) { print $off; } else { print $on; } } else { if ($mode == "remove") { //REMOVE $return = deleteLike($connection2, "Planner", "gibbonPlannerEntryID", $gibbonPlannerEntryID, $_SESSION[$guid]["gibbonPersonID"], $gibbonPersonID, "Planner - Learning Feedback"); if ($return == FALSE) { print $on; } else { print $off; } }
} catch (PDOException $e) { //Fail2 $URL .= "&updateReturn=fail2"; header("Location: {$URL}"); break; } if ($resultList->rowCount() != 1) { //Fail2 $URL .= "&updateReturn=fail2"; header("Location: {$URL}"); } else { //Check like status $likesGiven = countLikesByContextAndGiver($connection2, "Crowd Assessment", "gibbonPlannerEntryHomeworkID", $gibbonPlannerEntryHomeworkID, $_SESSION[$guid]["gibbonPersonID"]); if ($likesGiven != 1) { //INSERT LIKE $return = setLike($connection2, "Crowd Assessment", $_SESSION[$guid]["gibbonSchoolYearID"], "gibbonPlannerEntryHomeworkID", $gibbonPlannerEntryHomeworkID, $_SESSION[$guid]["gibbonPersonID"], $gibbonPersonID, "Crowd Assessment Feedback", $row["course"] . "." . $row["class"] . ": " . $row["name"]); if ($return == FALSE) { //Fail 2 $URL .= "&updateReturn=fail2"; header("Location: {$URL}"); } else { //Success 0 $URL .= "&updateReturn=success0"; header("Location: {$URL}"); } } else { //DELETE LIKE $return = deleteLike($connection2, "Crowd Assessment", "gibbonPlannerEntryHomeworkID", $gibbonPlannerEntryHomeworkID, $_SESSION[$guid]["gibbonPersonID"], $gibbonPersonID, "Crowd Assessment Feedback"); if ($return == FALSE) { //Fail 2 $URL .= "&updateReturn=fail2";
} else { //Check like statatus $likesGiven = countLikesByContextAndGiver($connection2, "Planner", "gibbonPlannerEntryID", $gibbonPlannerEntryID, $_SESSION[$guid]["gibbonPersonID"]); if ($likesGiven != 1) { //One like for each teacher $insertFail = FALSE; try { $dataTeachers = array("gibbonPlannerEntryID" => $gibbonPlannerEntryID); $sqlTeachers = "SELECT gibbonPlannerEntry.name, gibbonCourseClassPerson.gibbonPersonID, gibbonCourse.nameShort AS course, gibbonCourseClass.nameShort AS class FROM gibbonPlannerEntry JOIN gibbonCourseClass ON (gibbonPlannerEntry.gibbonCourseClassID=gibbonCourseClass.gibbonCourseClassID) JOIN gibbonCourseClassPerson ON (gibbonCourseClassPerson.gibbonCourseClassID=gibbonCourseClass.gibbonCourseClassID) JOIN gibbonCourse ON (gibbonCourseClass.gibbonCourseID=gibbonCourse.gibbonCourseID) JOIN gibbonPerson ON (gibbonCourseClassPerson.gibbonPersonID=gibbonPerson.gibbonPersonID) WHERE gibbonPlannerEntryID=:gibbonPlannerEntryID AND role='Teacher' AND status='Full'"; $resultTeachers = $connection2->prepare($sqlTeachers); $resultTeachers->execute($dataTeachers); } catch (PDOException $e) { $insertFail = TRUE; } while ($rowTeachers = $resultTeachers->fetch()) { $return = setLike($connection2, "Planner", $_SESSION[$guid]["gibbonSchoolYearID"], "gibbonPlannerEntryID", $gibbonPlannerEntryID, $_SESSION[$guid]["gibbonPersonID"], $rowTeachers["gibbonPersonID"], "Planner - Lesson Design", $rowTeachers["course"] . "." . $rowTeachers["class"] . ": " . $rowTeachers["name"]); if ($return == FALSE) { $insertFail = TRUE; } } if ($insertFail == TRUE) { //Fail 2 $URL .= "&updateReturn=fail2{$params}"; header("Location: {$URL}"); } else { //Success 0 $URL .= "&updateReturn=success0{$params}"; header("Location: {$URL}"); } } else { //One like for each teacher