Ejemplo n.º 1
0
 $count = 0;
 $rowNum = "odd";
 while ($row = $resultLike->fetch()) {
     if ($count % 2 == 0) {
         $rowNum = "even";
     } else {
         $rowNum = "odd";
     }
     $count++;
     //COLOR ROW BY STATUS!
     print "<tr class={$rowNum}>";
     print "<td>";
     print getUserPhoto($guid, $row["image_240"], 75);
     print "</td>";
     print "<td>";
     $roleCategory = getRoleCategory($row["gibbonRoleIDPrimary"], $connection2);
     if ($roleCategory == "Student" and isActionAccessible($guid, $connection2, "/modules/Students/student_view_details.php")) {
         print "<a href='" . $_SESSION[$guid]["absoluteURL"] . "/index.php?q=/modules/Students/student_view_details.php&gibbonPersonID=" . $row["gibbonPersonID"] . "'>" . formatName("", $row["preferredName"], $row["surname"], $roleCategory, false) . "</a><br/>";
         print "<span style='font-size: 85%; font-style: italic'>" . _($roleCategory) . "</i>";
     } else {
         print formatName("", $row["preferredName"], $row["surname"], $roleCategory, false) . "<br/>";
         print "<span style='font-size: 85%; font-style: italic'>" . _($roleCategory) . "</i>";
     }
     print "</td>";
     print "<td>";
     print _($row["title"]) . "<br/>";
     print "<span style='font-size: 85%; font-style: italic'>" . $row["comment"] . "</span>";
     print "</td>";
     print "<td>";
     print dateConvertBack($guid, substr($row["timestamp"], 0, 10));
     print "</td>";
Ejemplo n.º 2
0
         } catch (PDOException $e) {
             print "<div class='error'>" . $e->getMessage() . "</div>";
         }
     }
 }
 if ($result->rowCount() != 1) {
     print "<div class='error'>";
     print _("The selected record does not exist, or you do not have access to it.");
     print "</div>";
 } else {
     $row = $result->fetch();
     print "<div class='trail'>";
     print "<div class='trailHead'><a href='" . $_SESSION[$guid]["absoluteURL"] . "'>" . _("Home") . "</a> > <a href='" . $_SESSION[$guid]["absoluteURL"] . "/index.php?q=/modules/" . getModuleName($_GET["q"]) . "/" . getModuleEntry($_GET["q"], $connection2, $guid) . "'>" . _(getModuleName($_GET["q"])) . "</a> > </div><div class='trailEnd'>" . _('Planner') . " " . $row["course"] . "." . $row["class"] . "</div>";
     print "</div>";
     //Get Smart Workflow help message
     $category = getRoleCategory($_SESSION[$guid]["gibbonRoleIDCurrent"], $connection2);
     if ($category == "Staff") {
         $smartWorkflowHelp = getSmartWorkflowHelp($connection2, $guid, 3);
         if ($smartWorkflowHelp != false) {
             print $smartWorkflowHelp;
         }
     }
     if (isset($_GET["updateReturn"])) {
         $updateReturn = $_GET["updateReturn"];
     } else {
         $updateReturn = "";
     }
     $updateReturnMessage = "";
     $class = "error";
     if (!($updateReturn == "")) {
         if ($updateReturn == "fail0") {
Ejemplo n.º 3
0
            ?>
</i></span>
						</td>
						<td class="hiddenReveal right">
							<select name="activities[]" id="activities[]" multiple style="width: 302px; height: 100px">
								<?php 
            try {
                if (isActionAccessible($guid, $connection2, "/modules/Messenger/messenger_post.php", "New Message_activities_any")) {
                    $dataSelect = array("gibbonSchoolYearID" => $_SESSION[$guid]["gibbonSchoolYearID"]);
                    $sqlSelect = "SELECT * FROM gibbonActivity WHERE gibbonSchoolYearID=:gibbonSchoolYearID AND active='Y' ORDER BY name";
                } else {
                    if (getRoleCategory($_SESSION[$guid]["gibbonRoleIDCurrent"], $connection2) == "Staff") {
                        $dataSelect = array("gibbonSchoolYearID" => $_SESSION[$guid]["gibbonSchoolYearID"], "gibbonPersonID" => $_SESSION[$guid]["gibbonPersonID"]);
                        $sqlSelect = "SELECT * FROM gibbonActivity JOIN gibbonActivityStaff ON (gibbonActivityStaff.gibbonActivityID=gibbonActivity.gibbonActivityID) WHERE gibbonPersonID=:gibbonPersonID AND gibbonSchoolYearID=:gibbonSchoolYearID AND active='Y' ORDER BY name";
                    }
                    if (getRoleCategory($_SESSION[$guid]["gibbonRoleIDCurrent"], $connection2) == "Student") {
                        $dataSelect = array("gibbonSchoolYearID" => $_SESSION[$guid]["gibbonSchoolYearID"], "gibbonPersonID" => $_SESSION[$guid]["gibbonPersonID"]);
                        $sqlSelect = "SELECT * FROM gibbonActivity JOIN gibbonActivityStudent ON (gibbonActivityStudent.gibbonActivityID=gibbonActivity.gibbonActivityID) WHERE gibbonPersonID=:gibbonPersonID AND gibbonSchoolYearID=:gibbonSchoolYearID AND status='Accepted' AND active='Y' ORDER BY name";
                    }
                }
                $resultSelect = $connection2->prepare($sqlSelect);
                $resultSelect->execute($dataSelect);
            } catch (PDOException $e) {
            }
            while ($rowSelect = $resultSelect->fetch()) {
                print "<option value='" . $rowSelect["gibbonActivityID"] . "'>" . htmlPrep($rowSelect["name"]) . "</option>";
            }
            ?>
							</select>
						</td>
					</tr>
Ejemplo n.º 4
0
 }
 if ($result->rowCount() != 1) {
     print "<div class='error'>";
     print _("The specified record cannot be found.");
     print "</div>";
 } else {
     //Let's go!
     $row = $result->fetch();
     //Get categories
     $staff = FALSE;
     $student = FALSE;
     $parent = FALSE;
     $other = FALSE;
     $roles = explode(",", $row["gibbonRoleIDAll"]);
     foreach ($roles as $role) {
         $roleCategory = getRoleCategory($role, $connection2);
         if ($roleCategory == "Staff") {
             $staff = TRUE;
         }
         if ($roleCategory == "Student") {
             $student = TRUE;
         }
         if ($roleCategory == "Parent") {
             $parent = TRUE;
         }
         if ($roleCategory == "Other") {
             $other = TRUE;
         }
     }
     $search = "";
     if (isset($_GET["search"])) {
Ejemplo n.º 5
0
function sidebar($connection2, $guid)
{
    $googleOAuth = getSettingByScope($connection2, "System", "googleOAuth");
    if (isset($_GET["loginReturn"])) {
        $loginReturn = $_GET["loginReturn"];
    } else {
        $loginReturn = "";
    }
    $loginReturnMessage = "";
    if (!($loginReturn == "")) {
        if ($loginReturn == "fail0b") {
            $loginReturnMessage = _("Username or password not set.");
        } else {
            if ($loginReturn == "fail1") {
                $loginReturnMessage = _("Incorrect username and password.");
            } else {
                if ($loginReturn == "fail2") {
                    $loginReturnMessage = _("You do not have sufficient privileges to login.");
                } else {
                    if ($loginReturn == "fail5") {
                        $loginReturnMessage = _("Your request failed due to a database error.");
                    } else {
                        if ($loginReturn == "fail6") {
                            $loginReturnMessage = sprintf(_('Too many failed logins: please %1$sreset password%2$s.'), "<a href='" . $_SESSION[$guid]["absoluteURL"] . "/index.php?q=/passwordReset.php'>", "</a>");
                        } else {
                            if ($loginReturn == "fail7") {
                                $loginReturnMessage = sprintf(_('Error with Google Authentication. Please contact %1$s if you have any questions.'), "<a href='mailto:" . $_SESSION[$guid]["organisationDBAEmail"] . "'>" . $_SESSION[$guid]["organisationDBAName"] . "</a>");
                            } else {
                                if ($loginReturn == "fail8") {
                                    $loginReturnMessage = sprintf(_('Gmail account does not match the email stored in %1$s. If you have logged in with your school Gmail account please contact %2$s if you have any questions.'), $_SESSION[$guid]["systemName"], "<a href='mailto:" . $_SESSION[$guid]["organisationDBAEmail"] . "'>" . $_SESSION[$guid]["organisationDBAName"] . "</a>");
                                } else {
                                    if ($loginReturn == "fail9") {
                                        $loginReturnMessage = _('Your primary role does not support the ability to log into the specified year.');
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        print "<div class='error'>";
        print $loginReturnMessage;
        print "</div>";
    }
    if ($_SESSION[$guid]["sidebarExtra"] != "" and $_SESSION[$guid]["sidebarExtraPosition"] != "bottom") {
        print "<div class='sidebarExtra'>";
        print $_SESSION[$guid]["sidebarExtra"];
        print "</div>";
    }
    // Add Google Login Button
    if (isset($_SESSION[$guid]["username"]) == FALSE && isset($_SESSION[$guid]["email"]) == FALSE) {
        if ($googleOAuth == "Y") {
            print "<h2>";
            print _("Login with Google");
            print "</h2>";
            ?>
			<script>
				$(function(){
					$('#siteloader').load('lib/google/index.php');
				});
			</script>
			<div id="siteloader"></div>
			<?php 
        }
        //End Check for Google Auth
        if (isset($_SESSION[$guid]["username"]) == FALSE) {
            // If Google Auth set to No make sure login screen not visible when logged in
            ?>
			<h2>
				<?php 
            print _("Login");
            ?>
			</h2>
			<form name="loginForm" method="post" action="./login.php?<?php 
            if (isset($_GET["q"])) {
                print "q=" . $_GET["q"];
            }
            ?>
">
				<table class='noIntBorder' cellspacing='0' style="width: 100%; margin: 0px 0px">
					<tr>
						<td>
							<b><?php 
            print _("Username");
            ?>
</b>
						</td>
						<td class="right">
							<input name="username" id="username" maxlength=20 type="text" style="width:120px">
							<script type="text/javascript">
								var username=new LiveValidation('username', {onlyOnSubmit: true });
								username.add(Validate.Presence);
							</script>
						</td>
					</tr>
					<tr>
						<td>
							<b><?php 
            print _("Password");
            ?>
</b>
						</td>
						<td class="right">
							<input name="password" id="password" maxlength=30 type="password" style="width:120px">
							<script type="text/javascript">
								var password=new LiveValidation('password', {onlyOnSubmit: true });
								password.add(Validate.Presence);
							</script>
						</td>
					</tr>
					<tr class='schoolYear' id='schoolYear'>
						<td>
							<b><?php 
            print _("School Year");
            ?>
</b>
						</td>
						<td class="right">
							<select name="gibbonSchoolYearID" id="gibbonSchoolYearID" style="width: 120px">
								<?php 
            try {
                $dataSelect = array();
                $sqlSelect = "SELECT * FROM gibbonSchoolYear ORDER BY sequenceNumber";
                $resultSelect = $connection2->prepare($sqlSelect);
                $resultSelect->execute($dataSelect);
            } catch (PDOException $e) {
                print "<div class='error'>" . $e->getMessage() . "</div>";
            }
            while ($rowSelect = $resultSelect->fetch()) {
                $selected = "";
                if ($rowSelect["status"] == "Current") {
                    $selected = "selected";
                }
                print "<option {$selected} value='" . $rowSelect["gibbonSchoolYearID"] . "'>" . htmlPrep($rowSelect["name"]) . "</option>";
            }
            ?>
							</select>
						</td>
					</tr>
					<tr class='language' id='language'>
						<td>
							<b><?php 
            print _("Language");
            ?>
</b>
						</td>
						<td class="right">
							<select name="gibboni18nID" id="gibboni18nID" style="width: 120px">
								<?php 
            try {
                $dataSelect = array();
                $sqlSelect = "SELECT * FROM gibboni18n WHERE active='Y' ORDER BY name";
                $resultSelect = $connection2->prepare($sqlSelect);
                $resultSelect->execute($dataSelect);
            } catch (PDOException $e) {
                print "<div class='error'>" . $e->getMessage() . "</div>";
            }
            while ($rowSelect = $resultSelect->fetch()) {
                $selected = "";
                if ($rowSelect["systemDefault"] == "Y") {
                    $selected = "selected";
                }
                print "<option {$selected} value='" . $rowSelect["gibboni18nID"] . "'>" . htmlPrep($rowSelect["name"]) . "</option>";
            }
            ?>
							</select>
						</td>
					</tr>
					<tr>
						<td>
						</td>
						<td class="right">
							<?php 
            print "<script type='text/javascript'>";
            print "\$(document).ready(function(){";
            print "\$(\".schoolYear\").hide();";
            print "\$(\".language\").hide();";
            print "\$(\".show_hide\").fadeIn(1000);";
            print "\$(\".show_hide\").click(function(){";
            print "\$(\".schoolYear\").fadeToggle(1000);";
            print "\$(\".language\").fadeToggle(1000);";
            print "});";
            print "});";
            print "</script>";
            ?>
							<span style='font-size: 10px'><a class='show_hide' onclick='false' href='#'><?php 
            print _("Options");
            ?>
</a> . <a href="<?php 
            print $_SESSION[$guid]["absoluteURL"];
            ?>
/index.php?q=passwordReset.php"><?php 
            print _("Forgot Password?");
            ?>
</a></span>
						</td>
					</tr>
					<tr>
						<td class="right" colspan=2>
							<input type="hidden" name="address" value="<?php 
            print $_SESSION[$guid]["address"];
            ?>
">
							<input type="submit" value="Login">
						</td>
					</tr>
				</table>
			</form>
			<?php 
        }
    }
    //Show Module Menu
    //Check address to see if we are in the module area
    if (substr($_SESSION[$guid]["address"], 0, 8) == "/modules") {
        //Get and check the module name
        $moduleID = checkModuleReady($_SESSION[$guid]["address"], $connection2);
        if ($moduleID != FALSE) {
            $gibbonRoleIDCurrent = NULL;
            if (isset($_SESSION[$guid]["gibbonRoleIDCurrent"])) {
                $gibbonRoleIDCurrent = $_SESSION[$guid]["gibbonRoleIDCurrent"];
            }
            try {
                $data = array("gibbonModuleID" => $moduleID, "gibbonRoleID" => $gibbonRoleIDCurrent);
                $sql = "SELECT gibbonModule.entryURL AS moduleEntry, gibbonModule.name AS moduleName, gibbonAction.name, gibbonAction.precedence, gibbonAction.category, gibbonAction.entryURL, URLList FROM gibbonModule, gibbonAction, gibbonPermission WHERE (gibbonModule.gibbonModuleID=:gibbonModuleID) AND (gibbonModule.gibbonModuleID=gibbonAction.gibbonModuleID) AND (gibbonAction.gibbonActionID=gibbonPermission.gibbonActionID) AND (gibbonPermission.gibbonRoleID=:gibbonRoleID) AND NOT gibbonAction.entryURL='' ORDER BY gibbonModule.name, category, gibbonAction.name, precedence DESC";
                $result = $connection2->prepare($sql);
                $result->execute($data);
            } catch (PDOException $e) {
            }
            if ($result->rowCount() > 0) {
                $output = "<ul class='moduleMenu'>";
                $currentCategory = "";
                $lastCategory = "";
                $currentName = "";
                $lastName = "";
                $count = 0;
                $links = 0;
                while ($row = $result->fetch()) {
                    $moduleName = $row["moduleName"];
                    $moduleEntry = $row["moduleEntry"];
                    //Set active link class
                    $style = "";
                    if (strpos($row["URLList"], getActionName($_SESSION[$guid]["address"])) === 0) {
                        $style = "class='active'";
                    }
                    $currentCategory = $row["category"];
                    if (strpos($row["name"], "_") > 0) {
                        $currentName = _(substr($row["name"], 0, strpos($row["name"], "_")));
                    } else {
                        $currentName = _($row["name"]);
                    }
                    if ($currentName != $lastName) {
                        if ($currentCategory != $lastCategory) {
                            if ($count > 0) {
                                $output .= "</ul></li>";
                            }
                            $output .= "<li><h4>" . _($currentCategory) . "</h4>";
                            $output .= "<ul>";
                            $output .= "<li><a {$style} href='" . $_SESSION[$guid]["absoluteURL"] . "/index.php?q=/modules/" . $row["moduleName"] . "/" . $row["entryURL"] . "'>" . _($currentName) . "</a></li>";
                        } else {
                            $output .= "<li><a {$style} href='" . $_SESSION[$guid]["absoluteURL"] . "/index.php?q=/modules/" . $row["moduleName"] . "/" . $row["entryURL"] . "'>" . _($currentName) . "</a></li>";
                        }
                        $links++;
                    }
                    $lastCategory = $currentCategory;
                    $lastName = $currentName;
                    $count++;
                }
                if ($count > 0) {
                    $output .= "</ul></li>";
                }
                $output .= "</ul>";
                if ($links > 1 or isActionAccessible($guid, $connection2, "/modules/{$moduleName}/{$moduleEntry}") == FALSE) {
                    print $output;
                }
            }
        }
    }
    //Show custom sidebar content on homepage for logged in users
    if ($_SESSION[$guid]["address"] == "" and isset($_SESSION[$guid]["username"])) {
        if (isset($_SESSION[$guid]["index_customSidebar.php"]) == FALSE) {
            if (is_file("./index_customSidebar.php")) {
                $_SESSION[$guid]["index_customSidebar.php"] = (include "./index_customSidebar.php");
            } else {
                $_SESSION[$guid]["index_customSidebar.php"] = NULL;
            }
        }
        if (isset($_SESSION[$guid]["index_customSidebar.php"])) {
            print $_SESSION[$guid]["index_customSidebar.php"];
        }
    }
    //Show parent photo uploader
    if ($_SESSION[$guid]["address"] == "" and isset($_SESSION[$guid]["username"])) {
        $sidebar = getParentPhotoUploader($connection2, $guid);
        if ($sidebar != FALSE) {
            print $sidebar;
        }
    }
    //Show homescreen widget for message wall
    if ($_SESSION[$guid]["address"] == "") {
        if (isset($_SESSION[$guid]["messageWallOutput"])) {
            if (isActionAccessible($guid, $connection2, "/modules/Messenger/messageWall_view.php")) {
                $attainmentAlternativeName = getSettingByScope($connection2, "Messenger", "enableHomeScreenWidget");
                if ($attainmentAlternativeName == "Y") {
                    print "<h2>";
                    print _("Message Wall");
                    print "</h2>";
                    if (count($_SESSION[$guid]["messageWallOutput"]) < 1) {
                        print "<div class='warning'>";
                        print _("There are no records to display.");
                        print "</div>";
                    } else {
                        if (is_array($_SESSION[$guid]["messageWallOutput"]) == FALSE) {
                            print "<div class='error'>";
                            print _("An error occurred.");
                            print "</div>";
                        } else {
                            $height = 283;
                            if (count($_SESSION[$guid]["messageWallOutput"]) == 1) {
                                $height = 94;
                            } else {
                                if (count($_SESSION[$guid]["messageWallOutput"]) == 2) {
                                    $height = 197;
                                }
                            }
                            print "<table id='messageWallWidget' style='width: 100%; height: " . $height . "px; border: 1px solid grey; padding: 6px; background-color: #eeeeee'>";
                            //Content added by JS
                            $rand = rand(0, count($_SESSION[$guid]["messageWallOutput"]));
                            $total = count($_SESSION[$guid]["messageWallOutput"]);
                            $order = "";
                            for ($i = 0; $i < $total; $i++) {
                                $pos = ($rand + $i) % $total;
                                $order .= "{$pos}, ";
                                $message = $_SESSION[$guid]["messageWallOutput"][$pos];
                                //COLOR ROW BY STATUS!
                                print "<tr id='messageWall" . $pos . "' style='z-index: 1;'>";
                                print "<td style='font-size: 95%; letter-spacing: 85%;'>";
                                //Image
                                $style = "style='width: 45px; height: 60px; float: right; margin-left: 6px; border: 1px solid black'";
                                if ($message["photo"] == "" or file_exists($_SESSION[$guid]["absolutePath"] . "/" . $message["photo"]) == FALSE) {
                                    print "<img {$style}  src='" . $_SESSION[$guid]["absoluteURL"] . "/themes/" . $_SESSION[$guid]["gibbonThemeName"] . "/img/anonymous_75.jpg'/>";
                                } else {
                                    print "<img {$style} src='" . $_SESSION[$guid]["absoluteURL"] . "/" . $message["photo"] . "'/>";
                                }
                                //Message number
                                print "<div style='margin-bottom: 4px; text-transform: uppercase; font-size: 70%; color: #888'>Message " . ($pos + 1) . "</div>";
                                //Title
                                $URL = $_SESSION[$guid]["absoluteURL"] . "/index.php?q=/modules/Messenger/messageWall_view.php#" . $message["gibbonMessengerID"];
                                if (strlen($message["subject"]) <= 16) {
                                    print "<a style='font-weight: bold; font-size: 105%; letter-spacing: 85%; text-transform: uppercase' href='{$URL}'>" . $message["subject"] . "</a><br/>";
                                } else {
                                    print "<a style='font-weight: bold; font-size: 105%; letter-spacing: 85%; text-transform: uppercase' href='{$URL}'>" . substr($message["subject"], 0, 16) . "...</a><br/>";
                                }
                                //Text
                                print "<div style='margin-top: 5px'>";
                                if (strlen(strip_tags($message["details"])) <= 40) {
                                    print strip_tags($message["details"]) . "<br/>";
                                } else {
                                    print substr(strip_tags($message["details"]), 0, 40) . "...<br/>";
                                }
                                print "</div>";
                                print "</td>";
                                print "</tr>";
                                print "\n\t\t\t\t\t\t\t\t\t<script type=\"text/javascript\">\n\t\t\t\t\t\t\t\t\t\t\$(document).ready(function(){\n\t\t\t\t\t\t\t\t\t\t\t\$(\"#messageWall{$pos}\").hide();\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t</script>";
                            }
                            print "</table>";
                            $order = substr($order, 0, strlen($order) - 2);
                            print "\n\t\t\t\t\t\t\t<script type=\"text/javascript\">\n\t\t\t\t\t\t\t\t\$(document).ready(function(){\n\t\t\t\t\t\t\t\t\tvar order=[" . $order . "];\n\t\t\t\t\t\t\t\t\tvar interval = 1;\n\n\t\t\t\t\t\t\t\t\t\tfor(var i=0; i<order.length; i++) {\n\t\t\t\t\t\t\t\t\t\t\tvar tRow = \$(\"#messageWall\".concat(order[i].toString()));\n\t\t\t\t\t\t\t\t\t\t\tif(i<3) {\n\t\t\t\t\t\t\t\t\t\t\t\ttRow.show();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\ttRow.hide();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\$(\"#messageWall\".concat(order[0].toString())).attr('class', 'even');\n\t\t\t\t\t\t\t\t\t\t\$(\"#messageWall\".concat(order[1].toString())).attr('class', 'odd');\n\t\t\t\t\t\t\t\t\t\t\$(\"#messageWall\".concat(order[2].toString())).attr('class', 'even');\n\n\t\t\t\t\t\t\t\t\tsetInterval(function() {\n\t\t\t\t\t\t\t\t\t\tif(order.length > 3) {\n\t\t\t\t\t\t\t\t\t\t\t\$(\"#messageWall\".concat(order[0].toString())).hide();\n\t\t\t\t\t\t\t\t\t\t\tvar fRow = \$(\"#messageWall\".concat(order[0].toString()));\n\t\t\t\t\t\t\t\t\t\t\tvar lRow = \$(\"#messageWall\".concat(order[order.length-1].toString()));\n\t\t\t\t\t\t\t\t\t\t\tfRow.insertAfter(lRow);\n\t\t\t\t\t\t\t\t\t\t\torder.push(order.shift());\n\t\t\t\t\t\t\t\t\t\t\t\$(\"#messageWall\".concat(order[2].toString())).show();\n\n\t\t\t\t\t\t\t\t\t\t\tif(interval%2===0) {\n\t\t\t\t\t\t\t\t\t\t\t\t\$(\"#messageWall\".concat(order[0].toString())).attr('class', 'even');\n\t\t\t\t\t\t\t\t\t\t\t\t\$(\"#messageWall\".concat(order[1].toString())).attr('class', 'odd');\n\t\t\t\t\t\t\t\t\t\t\t\t\$(\"#messageWall\".concat(order[2].toString())).attr('class', 'even');\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\$(\"#messageWall\".concat(order[0].toString())).attr('class', 'odd');\n\t\t\t\t\t\t\t\t\t\t\t\t\$(\"#messageWall\".concat(order[1].toString())).attr('class', 'even');\n\t\t\t\t\t\t\t\t\t\t\t\t\$(\"#messageWall\".concat(order[2].toString())).attr('class', 'odd');\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tinterval++;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}, 8000);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t</script>";
                        }
                    }
                    print "<p style='padding-top: 5px; text-align: right'>";
                    print "<a href='" . $_SESSION[$guid]["absoluteURL"] . "/index.php?q=/modules/Messenger/messageWall_view.php'>" . _('View Message Wall') . "</a>";
                    print "</p>";
                }
            }
        }
    }
    //Show upcoming deadlines
    if ($_SESSION[$guid]["address"] == "" and isActionAccessible($guid, $connection2, "/modules/Planner/planner.php")) {
        $highestAction = getHighestGroupedAction($guid, "/modules/Planner/planner.php", $connection2);
        if ($highestAction == "Lesson Planner_viewMyClasses" or $highestAction == "Lesson Planner_viewAllEditMyClasses" or $highestAction == "Lesson Planner_viewEditAllClasses") {
            print "<h2>";
            print _("Homework & Deadlines");
            print "</h2>";
            try {
                $data = array("gibbonSchoolYearID" => $_SESSION[$guid]["gibbonSchoolYearID"], "gibbonPersonID" => $_SESSION[$guid]["gibbonPersonID"]);
                $sql = "\n\t\t\t\t(SELECT 'teacherRecorded' AS type, gibbonPlannerEntryID, gibbonUnitID, gibbonCourse.nameShort AS course, gibbonCourseClass.nameShort AS class, gibbonPlannerEntry.name, date, timeStart, timeEnd, viewableStudents, viewableParents, homework, homeworkDueDateTime, role FROM gibbonPlannerEntry JOIN gibbonCourseClass ON (gibbonPlannerEntry.gibbonCourseClassID=gibbonCourseClass.gibbonCourseClassID) JOIN gibbonCourseClassPerson ON (gibbonCourseClass.gibbonCourseClassID=gibbonCourseClassPerson.gibbonCourseClassID) JOIN gibbonCourse ON (gibbonCourse.gibbonCourseID=gibbonCourseClass.gibbonCourseID) WHERE gibbonSchoolYearID=:gibbonSchoolYearID AND gibbonCourseClassPerson.gibbonPersonID=:gibbonPersonID AND NOT role='Student - Left' AND NOT role='Teacher - Left' AND homework='Y' AND (role='Teacher' OR (role='Student' AND viewableStudents='Y')) AND homeworkDueDateTime>'" . date("Y-m-d H:i:s") . "' AND ((date<'" . date("Y-m-d") . "') OR (date='" . date("Y-m-d") . "' AND timeEnd<='" . date("H:i:s") . "')))\n\t\t\t\tUNION\n\t\t\t\t(SELECT 'studentRecorded' AS type, gibbonPlannerEntry.gibbonPlannerEntryID, gibbonUnitID, gibbonCourse.nameShort AS course, gibbonCourseClass.nameShort AS class, gibbonPlannerEntry.name, date, timeStart, timeEnd, 'Y' AS viewableStudents, 'Y' AS viewableParents, 'Y' AS homework, gibbonPlannerEntryStudentHomework.homeworkDueDateTime, role FROM gibbonPlannerEntry JOIN gibbonCourseClass ON (gibbonPlannerEntry.gibbonCourseClassID=gibbonCourseClass.gibbonCourseClassID) JOIN gibbonCourseClassPerson ON (gibbonCourseClass.gibbonCourseClassID=gibbonCourseClassPerson.gibbonCourseClassID) JOIN gibbonCourse ON (gibbonCourse.gibbonCourseID=gibbonCourseClass.gibbonCourseID) JOIN gibbonPlannerEntryStudentHomework ON (gibbonPlannerEntryStudentHomework.gibbonPlannerEntryID=gibbonPlannerEntry.gibbonPlannerEntryID AND gibbonPlannerEntryStudentHomework.gibbonPersonID=gibbonCourseClassPerson.gibbonPersonID) WHERE gibbonSchoolYearID=:gibbonSchoolYearID AND gibbonCourseClassPerson.gibbonPersonID=:gibbonPersonID AND NOT role='Student - Left' AND NOT role='Teacher - Left' AND (role='Teacher' OR (role='Student' AND viewableStudents='Y')) AND gibbonPlannerEntryStudentHomework.homeworkDueDateTime>'" . date("Y-m-d H:i:s") . "' AND ((date<'" . date("Y-m-d") . "') OR (date='" . date("Y-m-d") . "' AND timeEnd<='" . date("H:i:s") . "')))\n\t\t\t\t ORDER BY homeworkDueDateTime, type";
                $result = $connection2->prepare($sql);
                $result->execute($data);
            } catch (PDOException $e) {
                print $e->getMessage();
            }
            if ($result->rowCount() < 1) {
                print "<div class='success'>";
                print _("No upcoming deadlines. Yay!");
                print "</div>";
            } else {
                print "<ol>";
                $count = 0;
                while ($row = $result->fetch()) {
                    if ($count < 5) {
                        $diff = (strtotime(substr($row["homeworkDueDateTime"], 0, 10)) - strtotime(date("Y-m-d"))) / 86400;
                        $category = getRoleCategory($_SESSION[$guid]["gibbonRoleIDCurrent"], $connection2);
                        $style = "padding-right: 3px;";
                        if ($category == "Student") {
                            //Calculate style for student-specified completion of teacher-recorded homework
                            try {
                                $dataCompletion = array("gibbonPlannerEntryID" => $row["gibbonPlannerEntryID"], "gibbonPersonID" => $_SESSION[$guid]["gibbonPersonID"]);
                                $sqlCompletion = "SELECT gibbonPlannerEntryID FROM gibbonPlannerEntryStudentTracker WHERE gibbonPlannerEntryID=:gibbonPlannerEntryID AND gibbonPersonID=:gibbonPersonID AND homeworkComplete='Y'";
                                $resultCompletion = $connection2->prepare($sqlCompletion);
                                $resultCompletion->execute($dataCompletion);
                            } catch (PDOException $e) {
                            }
                            if ($resultCompletion->rowCount() == 1) {
                                $style .= "; background-color: #B3EFC2";
                            }
                            //Calculate style for student-specified completion of student-recorded homework
                            try {
                                $dataCompletion = array("gibbonPlannerEntryID" => $row["gibbonPlannerEntryID"], "gibbonPersonID" => $_SESSION[$guid]["gibbonPersonID"]);
                                $sqlCompletion = "SELECT gibbonPlannerEntryID FROM gibbonPlannerEntryStudentHomework WHERE gibbonPlannerEntryID=:gibbonPlannerEntryID AND gibbonPersonID=:gibbonPersonID AND homeworkComplete='Y'";
                                $resultCompletion = $connection2->prepare($sqlCompletion);
                                $resultCompletion->execute($dataCompletion);
                            } catch (PDOException $e) {
                            }
                            if ($resultCompletion->rowCount() == 1) {
                                $style .= "; background-color: #B3EFC2";
                            }
                            //Calculate style for online submission completion
                            try {
                                $dataCompletion = array("gibbonPlannerEntryID" => $row["gibbonPlannerEntryID"], "gibbonPersonID" => $_SESSION[$guid]["gibbonPersonID"]);
                                $sqlCompletion = "SELECT gibbonPlannerEntryID FROM gibbonPlannerEntryHomework WHERE gibbonPlannerEntryID=:gibbonPlannerEntryID AND gibbonPersonID=:gibbonPersonID AND version='Final'";
                                $resultCompletion = $connection2->prepare($sqlCompletion);
                                $resultCompletion->execute($dataCompletion);
                            } catch (PDOException $e) {
                            }
                            if ($resultCompletion->rowCount() == 1) {
                                $style .= "; background-color: #B3EFC2";
                            }
                        }
                        //Calculate style for deadline
                        if ($diff < 2) {
                            $style .= "; border-right: 10px solid #cc0000";
                        } else {
                            if ($diff < 4) {
                                $style .= "; border-right: 10px solid #D87718";
                            }
                        }
                        print "<li style='{$style}'>";
                        print "<a href='" . $_SESSION[$guid]["absoluteURL"] . "/index.php?q=/modules/Planner/planner_view_full.php&gibbonPlannerEntryID=" . $row["gibbonPlannerEntryID"] . "&date=" . $row["date"] . "'>" . $row["course"] . "." . $row["class"] . "</a><br/>";
                        print "<span style='font-style: italic'>Due at " . substr($row["homeworkDueDateTime"], 11, 5) . " on " . dateConvertBack($guid, substr($row["homeworkDueDateTime"], 0, 10));
                        print "</li>";
                    }
                    $count++;
                }
                print "</ol>";
            }
            print "<p style='padding-top: 0px; text-align: right'>";
            print "<a href='" . $_SESSION[$guid]["absoluteURL"] . "/index.php?q=/modules/Planner/planner_deadlines.php'>" . _('View Homework') . "</a>";
            print "</p>";
        }
    }
    //Show recent results
    if ($_SESSION[$guid]["address"] == "" and isActionAccessible($guid, $connection2, "/modules/Markbook/markbook_view.php")) {
        $highestAction = getHighestGroupedAction($guid, "/modules/Markbook/markbook_view.php", $connection2);
        if ($highestAction == "View Markbook_myMarks") {
            try {
                $dataEntry = array("gibbonSchoolYearID" => $_SESSION[$guid]["gibbonSchoolYearID"], "gibbonPersonID" => $_SESSION[$guid]["gibbonPersonID"]);
                $sqlEntry = "SELECT gibbonMarkbookEntryID, gibbonMarkbookColumn.name, gibbonCourse.nameShort AS course, gibbonCourseClass.nameShort AS class FROM gibbonMarkbookEntry JOIN gibbonMarkbookColumn ON (gibbonMarkbookEntry.gibbonMarkbookColumnID=gibbonMarkbookColumn.gibbonMarkbookColumnID) JOIN gibbonCourseClass ON (gibbonMarkbookColumn.gibbonCourseClassID=gibbonCourseClass.gibbonCourseClassID) JOIN gibbonCourse ON (gibbonCourseClass.gibbonCourseID=gibbonCourse.gibbonCourseID) WHERE gibbonSchoolYearID=:gibbonSchoolYearID AND gibbonPersonIDStudent=:gibbonPersonID AND complete='Y' AND completeDate<='" . date("Y-m-d") . "' AND viewableStudents='Y' ORDER BY completeDate DESC, name";
                $resultEntry = $connection2->prepare($sqlEntry);
                $resultEntry->execute($dataEntry);
            } catch (PDOException $e) {
            }
            if ($resultEntry->rowCount() > 0) {
                print "<h2>";
                print _("Recent Marks");
                print "</h2>";
                print "<ol>";
                $count = 0;
                while ($rowEntry = $resultEntry->fetch() and $count < 5) {
                    print "<li><a href='" . $_SESSION[$guid]["absoluteURL"] . "/index.php?q=/modules/Markbook/markbook_view.php#" . $rowEntry["gibbonMarkbookEntryID"] . "'>" . $rowEntry["course"] . "." . $rowEntry["class"] . "<br/><span style='font-size: 85%; font-style: italic'>" . $rowEntry["name"] . "</span></a></li>";
                    $count++;
                }
                print "</ol>";
            }
        }
    }
    //Show My Classes
    if ($_SESSION[$guid]["address"] == "" and isset($_SESSION[$guid]["username"])) {
        try {
            $data = array("gibbonSchoolYearID" => $_SESSION[$guid]["gibbonSchoolYearID"], "gibbonPersonID" => $_SESSION[$guid]["gibbonPersonID"]);
            $sql = "SELECT gibbonCourse.nameShort AS course, gibbonCourseClass.nameShort AS class, gibbonCourseClass.gibbonCourseClassID FROM gibbonCourse, gibbonCourseClass, gibbonCourseClassPerson WHERE gibbonSchoolYearID=:gibbonSchoolYearID AND gibbonCourse.gibbonCourseID=gibbonCourseClass.gibbonCourseID AND gibbonCourseClass.gibbonCourseClassID=gibbonCourseClassPerson.gibbonCourseClassID AND gibbonCourseClassPerson.gibbonPersonID=:gibbonPersonID AND NOT role LIKE '% - Left%' ORDER BY course, class";
            $result = $connection2->prepare($sql);
            $result->execute($data);
        } catch (PDOException $e) {
        }
        if ($result->rowCount() > 0) {
            print "<h2 style='margin-bottom: 10px'  class='sidebar'>";
            print _("My Classes");
            print "</h2>";
            print "<table class='mini' cellspacing='0' style='width: 100%; table-layout: fixed;'>";
            print "<tr class='head'>";
            print "<th style='width: 36%; font-size: 85%; text-transform: uppercase'>";
            print _("Class");
            print "</th>";
            if (isActionAccessible($guid, $connection2, "/modules/Planner/planner.php")) {
                print "<th style='width: 16%; font-size: 60%; text-align: center; text-transform: uppercase'>";
                print _("Plan");
                print "</th>";
            }
            if (getHighestGroupedAction($guid, "/modules/Markbook/markbook_view.php", $connection2) == "View Markbook_allClassesAllData") {
                print "<th style='width: 16%; font-size: 60%; text-align: center; text-transform: uppercase'>";
                print _("Mark");
                print "</th>";
            }
            print "<th style='width: 16%; font-size: 60%; text-align: center; text-transform: uppercase'>";
            print _("People");
            print "</th>";
            if (isActionAccessible($guid, $connection2, "/modules/Planner/planner.php")) {
                print "<th style='width: 16%; font-size: 60%; text-align: center; text-transform: uppercase'>";
                print _("Tasks");
                print "</th>";
            }
            print "</tr>";
            $count = 0;
            $rowNum = "odd";
            while ($row = $result->fetch()) {
                if ($count % 2 == 0) {
                    $rowNum = "even";
                } else {
                    $rowNum = "odd";
                }
                $count++;
                //COLOR ROW BY STATUS!
                print "<tr class={$rowNum}>";
                print "<td style='word-wrap: break-word'>";
                print "<a href='" . $_SESSION[$guid]["absoluteURL"] . "/index.php?q=/modules/Departments/department_course_class.php&gibbonCourseClassID=" . $row["gibbonCourseClassID"] . "'>" . $row["course"] . "." . $row["class"] . "</a>";
                print "</td>";
                if (isActionAccessible($guid, $connection2, "/modules/Planner/planner.php")) {
                    print "<td style='text-align: center'>";
                    print "<a href='" . $_SESSION[$guid]["absoluteURL"] . "/index.php?q=/modules/Planner/planner.php&gibbonCourseClassID=" . $row["gibbonCourseClassID"] . "&viewBy=class'><img style='margin-top: 3px' title='" . _('View Planner') . "' src='./themes/" . $_SESSION[$guid]["gibbonThemeName"] . "/img/planner.png'/></a> ";
                    print "</td>";
                }
                if (getHighestGroupedAction($guid, "/modules/Markbook/markbook_view.php", $connection2) == "View Markbook_allClassesAllData") {
                    print "<td style='text-align: center'>";
                    print "<a href='" . $_SESSION[$guid]["absoluteURL"] . "/index.php?q=/modules/Markbook/markbook_view.php&gibbonCourseClassID=" . $row["gibbonCourseClassID"] . "'><img style='margin-top: 3px' title='" . _('View Markbook') . "' src='./themes/" . $_SESSION[$guid]["gibbonThemeName"] . "/img/markbook.png'/></a> ";
                    print "</td>";
                }
                print "<td style='text-align: center'>";
                print "<a href='index.php?q=/modules/Departments/department_course_class.php&gibbonCourseClassID=" . $row["gibbonCourseClassID"] . "&subpage=Participants'><img title='" . _('Participants') . "' src='./themes/" . $_SESSION[$guid]["gibbonThemeName"] . "/img/attendance.png'/></a>";
                print "</td>";
                if (isActionAccessible($guid, $connection2, "/modules/Planner/planner.php")) {
                    print "<td style='text-align: center'>";
                    print "<a href='" . $_SESSION[$guid]["absoluteURL"] . "/index.php?q=/modules/Planner/planner_deadlines.php&gibbonCourseClassIDFilter=" . $row["gibbonCourseClassID"] . "'><img style='margin-top: 3px' title='" . _('View Homework') . "' src='./themes/" . $_SESSION[$guid]["gibbonThemeName"] . "/img/homework.png'/></a> ";
                    print "</td>";
                }
                print "</tr>";
            }
            print "</table>";
        }
    }
    //Show tag cloud
    if ($_SESSION[$guid]["address"] == "" and isActionAccessible($guid, $connection2, "/modules/Resources/resources_view.php")) {
        include "./modules/Resources/moduleFunctions.php";
        print "<h2 class='sidebar'>";
        print _("Resource Tags");
        print "</h2>";
        print getTagCloud($guid, $connection2, 20);
        print "<p style='margin-bototm: 20px; text-align: right'>";
        print "<a href='" . $_SESSION[$guid]["absoluteURL"] . "/index.php?q=/modules/Resources/resources_view.php'>" . _('View Resources') . "</a>";
        print "</p>";
    }
    //Show role switcher if user has more than one role
    if (isset($_SESSION[$guid]["username"])) {
        if (count($_SESSION[$guid]["gibbonRoleIDAll"]) > 1 and $_SESSION[$guid]["address"] == "") {
            print "<h2 style='margin-bottom: 10px' class='sidebar'>";
            print _("Role Switcher");
            print "</h2>";
            if (isset($_GET["switchReturn"])) {
                $switchReturn = $_GET["switchReturn"];
            } else {
                $switchReturn = "";
            }
            $switchReturnMessage = "";
            $class = "error";
            if (!($switchReturn == "")) {
                if ($switchReturn == "fail0") {
                    $switchReturnMessage = _("Role ID not specified.");
                } else {
                    if ($switchReturn == "fail1") {
                        $switchReturnMessage = _("You do not have access to the specified role.");
                    } else {
                        if ($switchReturn == "success0") {
                            $switchReturnMessage = _("Role switched successfully.");
                            $class = "success";
                        }
                    }
                }
                print "<div class='{$class}'>";
                print $switchReturnMessage;
                print "</div>";
            }
            print "<p>";
            print _("You have multiple roles within the system. Use the list below to switch role:");
            print "</p>";
            print "<ul>";
            for ($i = 0; $i < count($_SESSION[$guid]["gibbonRoleIDAll"]); $i++) {
                if ($_SESSION[$guid]["gibbonRoleIDAll"][$i][0] == $_SESSION[$guid]["gibbonRoleIDCurrent"]) {
                    print "<li><a href='roleSwitcherProcess.php?gibbonRoleID=" . $_SESSION[$guid]["gibbonRoleIDAll"][$i][0] . "'>" . _($_SESSION[$guid]["gibbonRoleIDAll"][$i][1]) . "</a> <i>" . _('(Active)') . "</i></li>";
                } else {
                    print "<li><a href='roleSwitcherProcess.php?gibbonRoleID=" . $_SESSION[$guid]["gibbonRoleIDAll"][$i][0] . "'>" . _($_SESSION[$guid]["gibbonRoleIDAll"][$i][1]) . "</a></li>";
                }
            }
            print "</ul>";
        }
    }
    if ($_SESSION[$guid]["sidebarExtra"] != "" and $_SESSION[$guid]["sidebarExtraPosition"] == "bottom") {
        print "<div class='sidebarExtra'>";
        print $_SESSION[$guid]["sidebarExtra"];
        print "</div>";
    }
}
Ejemplo n.º 6
0
function renderTTDay($guid, $connection2, $gibbonTTID, $schoolOpen, $startDayStamp, $count, $daysInWeek, $gibbonPersonID, $gridTimeStart, $eventsSchool, $eventsPersonal, $eventsSpaceBooking, $diffTime, $maxAllDays, $narrow, $specialDayStart = "", $specialDayEnd = "", $edit = FALSE)
{
    $schoolCalendarAlpha = 0.85;
    $ttAlpha = 1.0;
    if ($_SESSION[$guid]["viewCalendarSchool"] != "N" or $_SESSION[$guid]["viewCalendarPersonal"] != "N" or $_SESSION[$guid]["viewCalendarSpaceBooking"] != "N") {
        $ttAlpha = 0.75;
    }
    $date = date("Y-m-d", $startDayStamp + 86400 * $count);
    $self = FALSE;
    if ($gibbonPersonID == $_SESSION[$guid]["gibbonPersonID"] and $edit == FALSE) {
        $self = TRUE;
        $roleCategory = getRoleCategory($_SESSION[$guid]["gibbonRoleIDCurrent"], $connection2);
    }
    if ($narrow) {
        $width = ceil(515 / $daysInWeek) - 20 . "px";
    } else {
        $width = ceil(690 / $daysInWeek) - 20 . "px";
    }
    $output = "";
    $blank = TRUE;
    $zCount = 0;
    $allDay = 0;
    if ($schoolOpen == FALSE) {
        $output .= "<td style='text-align: center; vertical-align: top; font-size: 11px'>";
        $output .= "<div style='position: relative'>";
        $output .= "<div class='ttClosure' style='z-index: {$zCount}; position: absolute; width: {$width} ; height: " . ceil($diffTime / 60) . "px; margin: 0px; padding: 0px; opacity: {$ttAlpha}'>";
        $output .= "<div style='position: relative; top: 50%'>";
        $output .= "<span style='color: rgba(255,0,0,{$ttAlpha});'>" . _('School Closed') . "</span>";
        $output .= "</div>";
        $output .= "</div>";
        $zCount = 1;
        //Draw periods from school calendar
        if ($eventsSchool != FALSE) {
            $height = 0;
            $top = 0;
            $dayTimeStart = "";
            foreach ($eventsSchool as $event) {
                if (date("Y-m-d", $event[2]) == date("Y-m-d", $startDayStamp + 86400 * $count)) {
                    if ($event[1] == "All Day") {
                        $label = $event[0];
                        $title = "";
                        if (strlen($label) > 20) {
                            $label = substr($label, 0, 20) . "...";
                            $title = "title='" . $event[0] . "'";
                        }
                        $height = "30px";
                        $top = $maxAllDays * -31 - 8 + $allDay * 30 . "px";
                        $output .= "<div class='ttSchoolCalendar' {$title} style='z-index: {$zCount}; position: absolute; top: {$top}; width: {$width} ; border: 1px solid #555; height: {$height}; margin: 0px; padding: 0px; opacity: {$schoolCalendarAlpha}'>";
                        $output .= "<a target=_blank style='color: #fff' href='" . $event[5] . "'>" . $label . "</a>";
                        $output .= "</div>";
                        $allDay++;
                    } else {
                        $label = $event[0];
                        $title = "title='" . date("H:i", $event[2]) . " to " . date("H:i", $event[3]) . "'";
                        if (strlen($label) > 20) {
                            $label = substr($label, 0, 20) . "...";
                            $title = "title='" . $event[0] . " (" . date("H:i", $event[2]) . " to " . date("H:i", $event[3]) . ")'";
                        }
                        $height = ceil(($event[3] - $event[2]) / 60) . "px";
                        $top = ceil(($event[2] - strtotime(date("Y-m-d", $startDayStamp + 86400 * $count) . " " . $gridTimeStart)) / 60 + $startPad / 60) . "px";
                        $output .= "<div class='ttSchoolCalendar' {$title} style='z-index: {$zCount}; position: absolute; top: {$top}; width: {$width} ; border: 1px solid #555; height: {$height}; margin: 0px; padding: 0px; opacity: {$schoolCalendarAlpha}'>";
                        $output .= "<a target=_blank style='color: #fff' href='" . $event[5] . "'>" . $label . "</a>";
                        $output .= "</div>";
                    }
                    $zCount++;
                }
            }
        }
        //Draw periods from personal calendar
        if ($eventsPersonal != FALSE) {
            $height = 0;
            $top = 0;
            $bg = "rgba(103,153,207,{$schoolCalendarAlpha})";
            foreach ($eventsPersonal as $event) {
                if (date("Y-m-d", $event[2]) == date("Y-m-d", $startDayStamp + 86400 * $count)) {
                    if ($event[1] == "All Day") {
                        $label = $event[0];
                        $title = "";
                        if (strlen($label) > 20) {
                            $label = substr($label, 0, 20) . "...";
                            $title = "title='" . $event[0] . "'";
                        }
                        $height = "30px";
                        $top = $maxAllDays * -31 - 8 + $allDay * 30 . "px";
                        $output .= "<div class='ttPersonalCalendar' {$title} style='z-index: {$zCount}; position: absolute; top: {$top}; width: {$width} ; border: 1px solid #555; height: {$height}; margin: 0px; padding: 0px; opacity: {$schoolCalendarAlpha}'>";
                        $output .= "<a target=_blank style='color: #fff' href='" . $event[5] . "'>" . $label . "</a>";
                        $output .= "</div>";
                        $allDay++;
                    } else {
                        $label = $event[0];
                        $title = "title='" . date("H:i", $event[2]) . " to " . date("H:i", $event[3]) . "'";
                        if (strlen($label) > 20) {
                            $label = substr($label, 0, 20) . "...";
                            $title = "title='" . $event[0] . " (" . date("H:i", $event[2]) . " to " . date("H:i", $event[3]) . ")'";
                        }
                        $height = ceil(($event[3] - $event[2]) / 60) . "px";
                        $top = ceil(($event[2] - strtotime(date("Y-m-d", $startDayStamp + 86400 * $count) . " " . $gridTimeStart)) / 60 + $startPad / 60) . "px";
                        $output .= "<div class='ttPersonalCalendar' {$title} style='z-index: {$zCount}; position: absolute; top: {$top}; width: {$width} ; border: 1px solid #555; height: {$height}; margin: 0px; padding: 0px; opacity: {$schoolCalendarAlpha}'>";
                        $output .= "<a target=_blank style='color: #fff' href='" . $event[5] . "'>" . $label . "</a>";
                        $output .= "</div>";
                    }
                    $zCount++;
                }
            }
        }
        $output .= "</div>";
        $output .= "</td>";
    } else {
        //Make array of space changes
        $spaceChanges = array();
        try {
            $dataSpaceChange = array("date" => date("Y-m-d", $startDayStamp + 86400 * $count));
            $sqlSpaceChange = "SELECT gibbonTTSpaceChange.*, gibbonSpace.name AS space, phoneInternal FROM gibbonTTSpaceChange LEFT JOIN gibbonSpace ON (gibbonTTSpaceChange.gibbonSpaceID=gibbonSpace.gibbonSpaceID) WHERE date=:date";
            $resultSpaceChange = $connection2->prepare($sqlSpaceChange);
            $resultSpaceChange->execute($dataSpaceChange);
        } catch (PDOException $e) {
        }
        while ($rowSpaceChange = $resultSpaceChange->fetch()) {
            $spaceChanges[$rowSpaceChange["gibbonTTDayRowClassID"]][0] = $rowSpaceChange["space"];
            $spaceChanges[$rowSpaceChange["gibbonTTDayRowClassID"]][1] = $rowSpaceChange["phoneInternal"];
        }
        //Get day start and end!
        $dayTimeStart = "";
        $dayTimeEnd = "";
        try {
            $dataDiff = array("date" => date("Y-m-d", $startDayStamp + 86400 * $count), "gibbonTTID" => $gibbonTTID);
            $sqlDiff = "SELECT timeStart, timeEnd FROM gibbonTTDay JOIN gibbonTTDayDate ON (gibbonTTDay.gibbonTTDayID=gibbonTTDayDate.gibbonTTDayID) JOIN gibbonTTColumn ON (gibbonTTDay.gibbonTTColumnID=gibbonTTColumn.gibbonTTColumnID) JOIN gibbonTTColumnRow ON (gibbonTTColumn.gibbonTTColumnID=gibbonTTColumnRow.gibbonTTColumnID) WHERE date=:date AND gibbonTTID=:gibbonTTID";
            $resultDiff = $connection2->prepare($sqlDiff);
            $resultDiff->execute($dataDiff);
        } catch (PDOException $e) {
            $output .= "<div class='error'>" . $e->getMessage() . "</div>";
        }
        while ($rowDiff = $resultDiff->fetch()) {
            if ($dayTimeStart == "") {
                $dayTimeStart = $rowDiff["timeStart"];
            }
            if ($rowDiff["timeStart"] < $dayTimeStart) {
                $dayTimeStart = $rowDiff["timeStart"];
            }
            if ($dayTimeEnd == "") {
                $dayTimeEnd = $rowDiff["timeEnd"];
            }
            if ($rowDiff["timeEnd"] > $dayTimeEnd) {
                $dayTimeEnd = $rowDiff["timeEnd"];
            }
        }
        if ($specialDayStart != "") {
            $dayTimeStart = $specialDayStart;
        }
        if ($specialDayEnd != "") {
            $dayTimeEnd = $specialDayEnd;
        }
        $dayDiffTime = strtotime($dayTimeEnd) - strtotime($dayTimeStart);
        $startPad = strtotime($dayTimeStart) - strtotime($gridTimeStart);
        $output .= "<td style='text-align: center; vertical-align: top; font-size: 11px'>";
        try {
            $dataDay = array("gibbonTTID" => $gibbonTTID, "date" => date("Y-m-d", $startDayStamp + 86400 * $count));
            $sqlDay = "SELECT gibbonTTDay.gibbonTTDayID FROM gibbonTTDayDate JOIN gibbonTTDay ON (gibbonTTDayDate.gibbonTTDayID=gibbonTTDay.gibbonTTDayID) WHERE gibbonTTID=:gibbonTTID AND date=:date";
            $resultDay = $connection2->prepare($sqlDay);
            $resultDay->execute($dataDay);
        } catch (PDOException $e) {
            $output .= "<div class='error'>" . $e->getMessage() . "</div>";
        }
        if ($resultDay->rowCount() == 1) {
            $rowDay = $resultDay->fetch();
            $zCount = 0;
            $output .= "<div style='position: relative'>";
            //Draw outline of the day
            try {
                $dataPeriods = array("gibbonTTDayID" => $rowDay["gibbonTTDayID"], "date" => date("Y-m-d", $startDayStamp + 86400 * $count));
                $sqlPeriods = "SELECT gibbonTTColumnRow.name, timeStart, timeEnd, type, date FROM gibbonTTDay JOIN gibbonTTDayDate ON (gibbonTTDay.gibbonTTDayID=gibbonTTDayDate.gibbonTTDayID) JOIN gibbonTTColumn ON (gibbonTTDay.gibbonTTColumnID=gibbonTTColumn.gibbonTTColumnID) JOIN gibbonTTColumnRow ON (gibbonTTColumnRow.gibbonTTColumnID=gibbonTTColumn.gibbonTTColumnID) WHERE gibbonTTDayDate.gibbonTTDayID=:gibbonTTDayID AND date=:date ORDER BY timeStart, timeEnd";
                $resultPeriods = $connection2->prepare($sqlPeriods);
                $resultPeriods->execute($dataPeriods);
            } catch (PDOException $e) {
                $output .= "<div class='error'>" . $e->getMessage() . "</div>";
            }
            while ($rowPeriods = $resultPeriods->fetch()) {
                $isSlotInTime = FALSE;
                if ($rowPeriods["timeStart"] <= $dayTimeStart and $rowPeriods["timeEnd"] > $dayTimeStart) {
                    $isSlotInTime = TRUE;
                } else {
                    if ($rowPeriods["timeStart"] >= $dayTimeStart and $rowPeriods["timeEnd"] <= $dayTimeEnd) {
                        $isSlotInTime = TRUE;
                    } else {
                        if ($rowPeriods["timeStart"] < $dayTimeEnd and $rowPeriods["timeEnd"] >= $dayTimeEnd) {
                            $isSlotInTime = TRUE;
                        }
                    }
                }
                if ($isSlotInTime == TRUE) {
                    $effectiveStart = $rowPeriods["timeStart"];
                    $effectiveEnd = $rowPeriods["timeEnd"];
                    if ($dayTimeStart > $rowPeriods["timeStart"]) {
                        $effectiveStart = $dayTimeStart;
                    }
                    if ($dayTimeEnd < $rowPeriods["timeEnd"]) {
                        $effectiveEnd = $dayTimeEnd;
                    }
                    $height = ceil((strtotime($effectiveEnd) - strtotime($effectiveStart)) / 60) . "px";
                    $top = ceil((strtotime($effectiveStart) - strtotime($dayTimeStart) + $startPad) / 60) . "px";
                    $title = "";
                    if ($rowPeriods["type"] != "Lesson" and $height > 15 and $height < 30) {
                        $title = "title='" . substr($effectiveStart, 0, 5) . " - " . substr($effectiveEnd, 0, 5) . "'";
                    } else {
                        if ($rowPeriods["type"] != "Lesson" and $height <= 15) {
                            $title = "title='" . $rowPeriods["name"] . " (" . substr($effectiveStart, 0, 5) . "-" . substr($effectiveEnd, 0, 5) . ")'";
                        }
                    }
                    $class = "ttGeneric";
                    if (date("H:i:s") > $effectiveStart and date("H:i:s") < $effectiveEnd and $rowPeriods["date"] == date("Y-m-d")) {
                        $class = "ttCurrent";
                    }
                    $style = "";
                    if ($rowPeriods["type"] == "Lesson") {
                        $class = 'ttLesson';
                    }
                    $output .= "<div class='{$class}' {$title} style='z-index: {$zCount}; position: absolute; top: {$top}; width: {$width}; height: {$height}; margin: 0px; padding: 0px; opacity: {$ttAlpha}'>";
                    if ($height > 15 and $height < 30) {
                        $output .= $rowPeriods["name"] . "<br/>";
                    } else {
                        if ($height >= 30) {
                            $output .= $rowPeriods["name"] . "<br/>";
                            $output .= "<i>" . substr($effectiveStart, 0, 5) . "-" . substr($effectiveEnd, 0, 5) . "</i><br/>";
                        }
                    }
                    $output .= "</div>";
                    $zCount++;
                }
            }
            //Draw periods from TT
            try {
                $dataPeriods = array("gibbonTTDayID" => $rowDay["gibbonTTDayID"], "gibbonPersonID" => $gibbonPersonID);
                $sqlPeriods = "SELECT gibbonTTDayID, gibbonTTDayRowClassID, gibbonTTColumnRow.gibbonTTColumnRowID, gibbonCourseClass.gibbonCourseClassID, gibbonTTColumnRow.name, gibbonCourse.gibbonCourseID, gibbonCourse.nameShort AS course, gibbonCourseClass.nameShort AS class, timeStart, timeEnd, phoneInternal, gibbonSpace.name AS roomName FROM gibbonCourse JOIN gibbonCourseClass ON (gibbonCourse.gibbonCourseID=gibbonCourseClass.gibbonCourseID) JOIN gibbonCourseClassPerson ON (gibbonCourseClass.gibbonCourseClassID=gibbonCourseClassPerson.gibbonCourseClassID) JOIN gibbonTTDayRowClass ON (gibbonCourseClass.gibbonCourseClassID=gibbonTTDayRowClass.gibbonCourseClassID) JOIN gibbonTTColumnRow ON (gibbonTTDayRowClass.gibbonTTColumnRowID=gibbonTTColumnRow.gibbonTTColumnRowID) LEFT JOIN gibbonSpace ON (gibbonTTDayRowClass.gibbonSpaceID=gibbonSpace.gibbonSpaceID) WHERE gibbonTTDayID=:gibbonTTDayID AND gibbonCourseClassPerson.gibbonPersonID=:gibbonPersonID AND NOT role LIKE '% - Left' ORDER BY timeStart, timeEnd";
                $resultPeriods = $connection2->prepare($sqlPeriods);
                $resultPeriods->execute($dataPeriods);
            } catch (PDOException $e) {
                $output .= "<div class='error'>" . $e->getMessage() . "</div>";
            }
            while ($rowPeriods = $resultPeriods->fetch()) {
                $isSlotInTime = FALSE;
                if ($rowPeriods["timeStart"] <= $dayTimeStart and $rowPeriods["timeEnd"] > $dayTimeStart) {
                    $isSlotInTime = TRUE;
                } else {
                    if ($rowPeriods["timeStart"] >= $dayTimeStart and $rowPeriods["timeEnd"] <= $dayTimeEnd) {
                        $isSlotInTime = TRUE;
                    } else {
                        if ($rowPeriods["timeStart"] < $dayTimeEnd and $rowPeriods["timeEnd"] >= $dayTimeEnd) {
                            $isSlotInTime = TRUE;
                        }
                    }
                }
                if ($isSlotInTime == TRUE) {
                    //Check for an exception for the current user
                    try {
                        $dataException = array("gibbonPersonID" => $gibbonPersonID);
                        $sqlException = "SELECT * FROM gibbonTTDayRowClassException WHERE gibbonTTDayRowClassID=" . $rowPeriods["gibbonTTDayRowClassID"] . " AND gibbonPersonID=:gibbonPersonID";
                        $resultException = $connection2->prepare($sqlException);
                        $resultException->execute($dataException);
                    } catch (PDOException $e) {
                        $output .= "<div class='error'>" . $e->getMessage() . "</div>";
                    }
                    if ($resultException->rowCount() < 1) {
                        $effectiveStart = $rowPeriods["timeStart"];
                        $effectiveEnd = $rowPeriods["timeEnd"];
                        if ($dayTimeStart > $rowPeriods["timeStart"]) {
                            $effectiveStart = $dayTimeStart;
                        }
                        if ($dayTimeEnd < $rowPeriods["timeEnd"]) {
                            $effectiveEnd = $dayTimeEnd;
                        }
                        $blank = FALSE;
                        if ($narrow) {
                            $width = ceil(515 / $daysInWeek) - 20 . "px";
                        } else {
                            $width = ceil(690 / $daysInWeek) - 20 . "px";
                        }
                        $height = ceil((strtotime($effectiveEnd) - strtotime($effectiveStart)) / 60) . "px";
                        $top = ceil((strtotime($effectiveStart) - strtotime($dayTimeStart)) / 60 + $startPad / 60) . "px";
                        $title = "title='";
                        if ($height < 45) {
                            $title .= _('Time:') . " " . substr($effectiveStart, 0, 5) . " - " . substr($effectiveEnd, 0, 5) . " | ";
                            $title .= _("Timeslot:") . " " . $rowPeriods["name"] . " | ";
                        }
                        if ($rowPeriods["roomName"] != "") {
                            if ($height < 60) {
                                if (isset($spaceChanges[$rowPeriods["gibbonTTDayRowClassID"]][0]) == FALSE) {
                                    $title .= _("Room:") . " " . $rowPeriods["roomName"] . " | ";
                                } else {
                                    $title .= _("Room:") . " " . $spaceChanges[$rowPeriods["gibbonTTDayRowClassID"]][0] . " | ";
                                }
                            }
                            if ($rowPeriods["phoneInternal"] != "") {
                                if (isset($spaceChanges[$rowPeriods["gibbonTTDayRowClassID"]][0]) == FALSE) {
                                    $title .= _("Phone:") . " " . $rowPeriods["phoneInternal"] . " | ";
                                } else {
                                    $title .= _("Phone:") . " " . $spaceChanges[$rowPeriods["gibbonTTDayRowClassID"]][1] . " | ";
                                }
                            }
                        }
                        $title = substr($title, 0, -3);
                        $title .= "'";
                        $class2 = "ttPeriod";
                        if (date("H:i:s") > $effectiveStart and date("H:i:s") < $effectiveEnd and $date == date("Y-m-d")) {
                            $class2 = "ttPeriodCurrent";
                        }
                        //Create div to represent period
                        $output .= "<div class='{$class2}' {$title} style='z-index: {$zCount}; position: absolute; top: {$top}; width: {$width}; height: {$height}; margin: 0px; padding: 0px; opacity: {$ttAlpha}'>";
                        if ($height >= 45) {
                            $output .= $rowPeriods["name"] . "<br/>";
                            $output .= "<i>" . substr($effectiveStart, 0, 5) . " - " . substr($effectiveEnd, 0, 5) . "</i><br/>";
                        }
                        if (isActionAccessible($guid, $connection2, "/modules/Departments/department_course_class.php") and $edit == FALSE) {
                            $output .= "<a style='text-decoration: none; font-weight: bold; font-size: 120%' href='" . $_SESSION[$guid]["absoluteURL"] . "/index.php?q=/modules/Departments/department_course_class.php&gibbonCourseClassID=" . $rowPeriods["gibbonCourseClassID"] . "'>" . $rowPeriods["course"] . "." . $rowPeriods["class"] . "</a><br/>";
                        } else {
                            if (isActionAccessible($guid, $connection2, "/modules/Timetable Admin/courseEnrolment_manage_class_edit.php") and $edit == TRUE) {
                                $output .= "<a style='text-decoration: none; font-weight: bold; font-size: 120%' href='" . $_SESSION[$guid]["absoluteURL"] . "/index.php?q=/modules/Timetable Admin/courseEnrolment_manage_class_edit.php&gibbonCourseClassID=" . $rowPeriods["gibbonCourseClassID"] . "&gibbonSchoolYearID=" . $_SESSION[$guid]["gibbonSchoolYearID"] . "&gibbonCourseID=" . $rowPeriods["gibbonCourseID"] . "'>" . $rowPeriods["course"] . "." . $rowPeriods["class"] . "</a><br/>";
                            } else {
                                $output .= "<span style='font-size: 120%'><b>" . $rowPeriods["course"] . "." . $rowPeriods["class"] . "</b></span><br/>";
                            }
                        }
                        if ($height >= 60) {
                            if ($edit == FALSE) {
                                if (isset($spaceChanges[$rowPeriods["gibbonTTDayRowClassID"]]) == FALSE) {
                                    $output .= $rowPeriods["roomName"];
                                } else {
                                    if ($spaceChanges[$rowPeriods["gibbonTTDayRowClassID"]][0] != "") {
                                        $output .= "<span style='border: 1px solid #c00; padding: 0 2px'>" . $spaceChanges[$rowPeriods["gibbonTTDayRowClassID"]][0] . "</span>";
                                    } else {
                                        $output .= "<span style='border: 1px solid #c00; padding: 0 2px'><i>" . _("No Space Allocated") . "</i></span>";
                                    }
                                }
                            } else {
                                $output .= "<a href='" . $_SESSION[$guid]["absoluteURL"] . "/index.php?q=/modules/Timetable Admin/tt_edit_day_edit_class_edit.php&gibbonTTDayID=" . $rowPeriods["gibbonTTDayID"] . "&gibbonTTID={$gibbonTTID}&gibbonSchoolYearID=" . $_SESSION[$guid]["gibbonSchoolYearID"] . "&gibbonTTColumnRowID=" . $rowPeriods["gibbonTTColumnRowID"] . "&gibbonTTDayRowClass=" . $rowPeriods["gibbonTTDayRowClassID"] . "&gibbonCourseClassID=" . $rowPeriods["gibbonCourseClassID"] . "'>" . $rowPeriods["roomName"] . "</a>";
                            }
                        }
                        $output .= "</div>";
                        $zCount++;
                        if ($narrow == FALSE) {
                            if ($edit == FALSE) {
                                //Add planner link icons for staff looking at own TT.
                                if ($self == TRUE and $roleCategory == "Staff") {
                                    if ($height >= 30) {
                                        $output .= "<div {$title} style='z-index: {$zCount}; position: absolute; top: {$top}; width: {$width} ; border: 1px solid rgba(136,136,136, {$ttAlpha}); height: {$height}; margin: 0px; padding: 0px; background-color: none; pointer-events: none'>";
                                        //Check for lesson plan
                                        $bgImg = "none";
                                        try {
                                            $dataPlan = array("gibbonCourseClassID" => $rowPeriods["gibbonCourseClassID"], "date" => $date, "timeStart" => $rowPeriods["timeStart"], "timeEnd" => $rowPeriods["timeEnd"]);
                                            $sqlPlan = "SELECT * FROM gibbonPlannerEntry WHERE gibbonCourseClassID=:gibbonCourseClassID AND date=:date AND timeStart=:timeStart AND timeEnd=:timeEnd";
                                            $resultPlan = $connection2->prepare($sqlPlan);
                                            $resultPlan->execute($dataPlan);
                                        } catch (PDOException $e) {
                                            $output .= "<div class='error'>" . $e->getMessage() . "</div>";
                                        }
                                        if ($resultPlan->rowCount() == 1) {
                                            $rowPlan = $resultPlan->fetch();
                                            $output .= "<a style='pointer-events: auto' href='" . $_SESSION[$guid]["absoluteURL"] . "/index.php?q=/modules/Planner/planner_view_full.php&viewBy=class&gibbonCourseClassID=" . $rowPeriods["gibbonCourseClassID"] . "&gibbonPlannerEntryID=" . $rowPlan["gibbonPlannerEntryID"] . "'><img style='float: right; margin: " . (substr($height, 0, -2) - 27) . "px 2px 0 0' title='Lesson planned: " . htmlPrep($rowPlan["name"]) . "' src='" . $_SESSION[$guid]["absoluteURL"] . "/themes/" . $_SESSION[$guid]["gibbonThemeName"] . "/img/iconTick.png'/></a>";
                                        } else {
                                            if ($resultPlan->rowCount() == 0) {
                                                $output .= "<a style='pointer-events: auto' href='" . $_SESSION[$guid]["absoluteURL"] . "/index.php?q=/modules/Planner/planner_add.php&viewBy=class&gibbonCourseClassID=" . $rowPeriods["gibbonCourseClassID"] . "&date=" . $date . "&timeStart=" . $effectiveStart . "&timeEnd=" . $effectiveEnd . "'><img style='float: right; margin: " . (substr($height, 0, -2) - 27) . "px 2px 0 0' title='Add lesson plan' src='" . $_SESSION[$guid]["absoluteURL"] . "/themes/" . $_SESSION[$guid]["gibbonThemeName"] . "/img/page_new.png'/></a>";
                                            } else {
                                                $output .= "<a style='pointer-events: auto' href='" . $_SESSION[$guid]["absoluteURL"] . "/index.php?q=/modules/Planner/planner.php&viewBy=class&gibbonCourseClassID=" . $rowPeriods["gibbonCourseClassID"] . "&date=" . $date . "&timeStart=" . $effectiveStart . "&timeEnd=" . $effectiveEnd . "'><div style='float: right; margin: " . (substr($height, 0, -2) - 17) . "px 5px 0 0'>" . _('Error') . "</div></a>";
                                            }
                                        }
                                        $output .= "</div>";
                                        $zCount++;
                                    }
                                } else {
                                    $output .= "<div {$title} style='z-index: {$zCount}; position: absolute; top: {$top}; width: {$width} ; border: 1px solid rgba(136,136,136, {$ttAlpha}); height: {$height}; margin: 0px; padding: 0px; background-color: none; pointer-events: none'>";
                                    //Check for lesson plan
                                    $bgImg = "none";
                                    try {
                                        $dataPlan = array("gibbonCourseClassID" => $rowPeriods["gibbonCourseClassID"], "date" => $date, "timeStart" => $rowPeriods["timeStart"], "timeEnd" => $rowPeriods["timeEnd"]);
                                        $sqlPlan = "SELECT * FROM gibbonPlannerEntry WHERE gibbonCourseClassID=:gibbonCourseClassID AND date=:date AND timeStart=:timeStart AND timeEnd=:timeEnd";
                                        $resultPlan = $connection2->prepare($sqlPlan);
                                        $resultPlan->execute($dataPlan);
                                    } catch (PDOException $e) {
                                        $output .= "<div class='error'>" . $e->getMessage() . "</div>";
                                    }
                                    if ($resultPlan->rowCount() == 1) {
                                        $rowPlan = $resultPlan->fetch();
                                        $output .= "<a style='pointer-events: auto' href='" . $_SESSION[$guid]["absoluteURL"] . "/index.php?q=/modules/Planner/planner_view_full.php&viewBy=class&gibbonCourseClassID=" . $rowPeriods["gibbonCourseClassID"] . "&gibbonPlannerEntryID=" . $rowPlan["gibbonPlannerEntryID"] . "&search={$gibbonPersonID}'><img style='float: right; margin: " . (substr($height, 0, -2) - 27) . "px 2px 0 0' title='" . _('View lesson:') . " " . htmlPrep($rowPlan["name"]) . "' src='" . $_SESSION[$guid]["absoluteURL"] . "/themes/" . $_SESSION[$guid]["gibbonThemeName"] . "/img/plus.png'/></a>";
                                    }
                                    $output .= "</div>";
                                    $zCount++;
                                }
                            } else {
                                if ($edit) {
                                    $output .= "<div {$title} style='z-index: {$zCount}; position: absolute; top: {$top}; width: {$width} ; border: 1px solid rgba(136,136,136, {$ttAlpha}); height: {$height}; margin: 0px; padding: 0px; background-color: none; pointer-events: none'>";
                                    //Check for lesson plan
                                    $bgImg = "none";
                                    $output .= "<a style='pointer-events: auto' href='" . $_SESSION[$guid]["absoluteURL"] . "/index.php?q=/modules/Timetable Admin/tt_edit_day_edit_class_exception.php&gibbonTTDayID=" . $rowPeriods["gibbonTTDayID"] . "&gibbonTTID={$gibbonTTID}&gibbonSchoolYearID=" . $_SESSION[$guid]["gibbonSchoolYearID"] . "&gibbonTTColumnRowID=" . $rowPeriods["gibbonTTColumnRowID"] . "&gibbonTTDayRowClass=" . $rowPeriods["gibbonTTDayRowClassID"] . "&gibbonCourseClassID=" . $rowPeriods["gibbonCourseClassID"] . "'><img style='float: right; margin: " . (substr($height, 0, -2) - 27) . "px 2px 0 0' title='" . _('Manage Exceptions') . "' src='" . $_SESSION[$guid]["absoluteURL"] . "/themes/" . $_SESSION[$guid]["gibbonThemeName"] . "/img/attendance.png'/></a>";
                                    $output .= "</div>";
                                    $zCount++;
                                }
                            }
                        }
                    }
                }
            }
            //Draw periods from school calendar
            if ($eventsSchool != FALSE) {
                $height = 0;
                $top = 0;
                foreach ($eventsSchool as $event) {
                    if (date("Y-m-d", $event[2]) == date("Y-m-d", $startDayStamp + 86400 * $count)) {
                        if ($event[1] == "All Day") {
                            $label = $event[0];
                            $title = "";
                            if (strlen($label) > 20) {
                                $label = substr($label, 0, 20) . "...";
                                $title = "title='" . $event[0] . "'";
                            }
                            $height = "30px";
                            $top = $maxAllDays * -31 - 8 + $allDay * 30 . "px";
                            $output .= "<div class='ttSchoolCalendar' {$title} style='z-index: {$zCount}; position: absolute; top: {$top}; width: {$width} ; border: 1px solid #555; height: {$height}; margin: 0px; padding: 0px; opacity: {$schoolCalendarAlpha}'>";
                            $output .= "<a target=_blank style='color: #fff' href='" . $event[5] . "'>" . $label . "</a>";
                            $output .= "</div>";
                            $allDay++;
                        } else {
                            $label = $event[0];
                            $title = "title='" . date("H:i", $event[2]) . " to " . date("H:i", $event[3]) . "'";
                            if (strlen($label) > 20) {
                                $label = substr($label, 0, 20) . "...";
                                $title = "title='" . $event[0] . " (" . date("H:i", $event[2]) . " to " . date("H:i", $event[3]) . ")'";
                            }
                            $height = ceil(($event[3] - $event[2]) / 60) . "px";
                            $top = ceil(($event[2] - strtotime(date("Y-m-d", $startDayStamp + 86400 * $count) . " " . $dayTimeStart)) / 60 + $startPad / 60) . "px";
                            $output .= "<div class='ttSchoolCalendar' {$title} style='z-index: {$zCount}; position: absolute; top: {$top}; width: {$width} ; border: 1px solid #555; height: {$height}; margin: 0px; padding: 0px; opacity: {$schoolCalendarAlpha}'>";
                            $output .= "<a target=_blank style='color: #fff' href='" . $event[5] . "'>" . $label . "</a>";
                            $output .= "</div>";
                        }
                        $zCount++;
                    }
                }
            }
            //Draw periods from personal calendar
            if ($eventsPersonal != FALSE) {
                $height = 0;
                $top = 0;
                $bg = "rgba(103,153,207,{$schoolCalendarAlpha})";
                foreach ($eventsPersonal as $event) {
                    if (date("Y-m-d", $event[2]) == date("Y-m-d", $startDayStamp + 86400 * $count)) {
                        if ($event[1] == "All Day") {
                            $label = $event[0];
                            $title = "";
                            if (strlen($label) > 20) {
                                $label = substr($label, 0, 20) . "...";
                                $title = "title='" . $event[0] . "'";
                            }
                            $height = "30px";
                            $top = $maxAllDays * -31 - 8 + $allDay * 30 . "px";
                            $output .= "<div class='ttPersonalCalendar' {$title} style='z-index: {$zCount}; position: absolute; top: {$top}; width: {$width} ; border: 1px solid #555; height: {$height}; margin: 0px; padding: 0px; opacity: {$schoolCalendarAlpha}'>";
                            $output .= "<a target=_blank style='color: #fff' href='" . $event[5] . "'>" . $label . "</a>";
                            $output .= "</div>";
                            $allDay++;
                        } else {
                            $label = $event[0];
                            $title = "title='" . date("H:i", $event[2]) . " to " . date("H:i", $event[3]) . "'";
                            if (strlen($label) > 20) {
                                $label = substr($label, 0, 20) . "...";
                                $title = "title='" . $event[0] . " (" . date("H:i", $event[2]) . " to " . date("H:i", $event[3]) . ")'";
                            }
                            $height = ceil(($event[3] - $event[2]) / 60) . "px";
                            $top = ceil(($event[2] - strtotime(date("Y-m-d", $startDayStamp + 86400 * $count) . " " . $dayTimeStart)) / 60 + $startPad / 60) . "px";
                            $output .= "<div class='ttPersonalCalendar' {$title} style='z-index: {$zCount}; position: absolute; top: {$top}; width: {$width} ; border: 1px solid #555; height: {$height}; margin: 0px; padding: 0px; opacity: {$schoolCalendarAlpha}'>";
                            $output .= "<a target=_blank style='color: #fff' href='" . $event[5] . "'>" . $label . "</a>";
                            $output .= "</div>";
                        }
                        $zCount++;
                    }
                }
            }
            //Draw space bookings
            if ($eventsSpaceBooking != FALSE) {
                $height = 0;
                $top = 0;
                foreach ($eventsSpaceBooking as $event) {
                    if ($event[3] == date("Y-m-d", $startDayStamp + 86400 * $count)) {
                        $height = ceil((strtotime(date("Y-m-d", $startDayStamp + 86400 * $count) . " " . $event[5]) - strtotime(date("Y-m-d", $startDayStamp + 86400 * $count) . " " . $event[4])) / 60) . "px";
                        $top = ceil((strtotime($event[3] . " " . $event[4]) - strtotime(date("Y-m-d", $startDayStamp + 86400 * $count) . " " . $dayTimeStart)) / 60 + $startPad / 60) . "px";
                        if ($height < 45) {
                            $label = $event[1];
                            $title = "title='" . substr($event[4], 0, 5) . "-" . substr($event[5], 0, 5) . "'";
                        } else {
                            $label = $event[1] . "<br/><span style='font-weight: normal'>(" . substr($event[4], 0, 5) . "-" . substr($event[5], 0, 5) . ")<br/></span>";
                            $title = "";
                        }
                        $output .= "<div class='ttSpaceBookingCalendar' {$title} style='z-index: {$zCount}; position: absolute; top: {$top}; width: {$width} ; border: 1px solid #555; height: {$height}; margin: 0px; padding: 0px; opacity: {$schoolCalendarAlpha}'>";
                        $output .= $label;
                        $output .= "</div>";
                        $zCount++;
                    }
                }
            }
            $output .= "</div>";
        }
    }
    $output .= "</td>";
    return $output;
}
Ejemplo n.º 7
0
                                            } else {
                                                print "<a href='" . $_SESSION[$guid]["absoluteURL"] . "/modules/Planner/plannerProcess.php?gibbonPlannerEntryID=" . $row["gibbonPlannerEntryID"] . "&address=/modules/Planner/planner.php&viewBy=Class&gibbonCourseClassID=" . $row["gibbonCourseClassID"] . "&date=&returnToIndex=Y'><img src='" . $_SESSION[$guid]["absoluteURL"] . "/themes/" . $_SESSION[$guid]["gibbonThemeName"] . "/img/like_on.png'></a>";
                                            }
                                        }
                                        print "</td>";
                                        print "<td>";
                                        print "<a href='" . $_SESSION[$guid]["absoluteURL"] . "/index.php?q=/modules/Planner/planner_view_full.php&viewBy=class&gibbonCourseClassID=" . $row["gibbonCourseClassID"] . "&gibbonPlannerEntryID=" . $row["gibbonPlannerEntryID"] . "'><img title='" . _('View') . "' src='./themes/" . $_SESSION[$guid]["gibbonThemeName"] . "/img/plus.png'/></a>";
                                        print "</td>";
                                        print "</tr>";
                                    }
                                }
                                print "</table>";
                            }
                        }
                        //Display TT
                        if (isActionAccessible($guid, $connection2, "/modules/Timetable/tt.php") and $_SESSION[$guid]["username"] != "" and (getRoleCategory($_SESSION[$guid]["gibbonRoleIDCurrent"], $connection2) == "Staff" or getRoleCategory($_SESSION[$guid]["gibbonRoleIDCurrent"], $connection2) == "Student")) {
                            ?>
											<script type="text/javascript">
												$(document).ready(function(){
													$("#tt").load("<?php 
                            print $_SESSION[$guid]["absoluteURL"];
                            ?>
/index_tt_ajax.php",{"gibbonTTID": "<?php 
                            print @$_GET["gibbonTTID"];
                            ?>
", "ttDate": "<?php 
                            print @$_POST["ttDate"];
                            ?>
", "fromTT": "<?php 
                            print @$_POST["fromTT"];
                            ?>
Ejemplo n.º 8
0
 $_SESSION[$guid]["passwordStrong"] = $row["passwordStrong"];
 $_SESSION[$guid]["passwordStrongSalt"] = $row["passwordStrongSalt"];
 $_SESSION[$guid]["passwordForceReset"] = $row["passwordForceReset"];
 $_SESSION[$guid]["gibbonPersonID"] = $row["gibbonPersonID"];
 $_SESSION[$guid]["surname"] = $row["surname"];
 $_SESSION[$guid]["firstName"] = $row["firstName"];
 $_SESSION[$guid]["preferredName"] = $row["preferredName"];
 $_SESSION[$guid]["officialName"] = $row["officialName"];
 $_SESSION[$guid]["email"] = $row["email"];
 $_SESSION[$guid]["emailAlternate"] = $row["emailAlternate"];
 $_SESSION[$guid]["website"] = $row["website"];
 $_SESSION[$guid]["gender"] = $row["gender"];
 $_SESSION[$guid]["status"] = $row["status"];
 $_SESSION[$guid]["gibbonRoleIDPrimary"] = $row["gibbonRoleIDPrimary"];
 $_SESSION[$guid]["gibbonRoleIDCurrent"] = $row["gibbonRoleIDPrimary"];
 $_SESSION[$guid]["gibbonRoleIDCurrentCategory"] = getRoleCategory($row["gibbonRoleIDPrimary"], $connection2);
 $_SESSION[$guid]["gibbonRoleIDAll"] = getRoleList($row["gibbonRoleIDAll"], $connection2);
 $_SESSION[$guid]["image_240"] = $row["image_240"];
 $_SESSION[$guid]["lastTimestamp"] = $row["lastTimestamp"];
 $_SESSION[$guid]["calendarFeedPersonal"] = $row["calendarFeedPersonal"];
 $_SESSION[$guid]["viewCalendarSchool"] = $row["viewCalendarSchool"];
 $_SESSION[$guid]["viewCalendarPersonal"] = $row["viewCalendarPersonal"];
 $_SESSION[$guid]["viewCalendarSpaceBooking"] = $row["viewCalendarSpaceBooking"];
 $_SESSION[$guid]["dateStart"] = $row["dateStart"];
 $_SESSION[$guid]["personalBackground"] = $row["personalBackground"];
 $_SESSION[$guid]["messengerLastBubble"] = $row["messengerLastBubble"];
 $_SESSION[$guid]["gibbonThemeIDPersonal"] = $row["gibbonThemeIDPersonal"];
 $_SESSION[$guid]["gibboni18nIDPersonal"] = $row["gibboni18nIDPersonal"];
 $_SESSION[$guid]["googleAPIRefreshToken"] = $row["googleAPIRefreshToken"];
 $_SESSION[$guid]['receiveNotificationEmails'] = $row["receiveNotificationEmails"];
 $_SESSION[$guid]['gibbonHouseID'] = $row["gibbonHouseID"];
Ejemplo n.º 9
0
 print "</tr>";
 //Check if any roles are "Student"
 $privacySet = false;
 try {
     $dataRoles = array("gibbonPersonID" => $row["gibbonPersonID"]);
     $sqlRoles = "SELECT gibbonRoleIDAll FROM gibbonPerson WHERE gibbonPersonID=:gibbonPersonID";
     $resultRoles = $connection2->prepare($sqlRoles);
     $resultRoles->execute($dataRoles);
 } catch (PDOException $e) {
 }
 if ($resultRoles->rowCount() == 1) {
     $rowRoles = $resultRoles->fetch();
     $isStudent = false;
     $roles = explode(",", $rowRoles["gibbonRoleIDAll"]);
     foreach ($roles as $role) {
         if (getRoleCategory($role, $connection2) == "Student") {
             $isStudent = true;
         }
     }
     if ($isStudent) {
         $privacySetting = getSettingByScope($connection2, "User Admin", "privacy");
         $privacyBlurb = getSettingByScope($connection2, "User Admin", "privacyBlurb");
         if ($privacySetting == "Y" and $privacyBlurb != "") {
             print "<tr class='even'>";
             print "<td>";
             print _("Image Privacy");
             print "</td>";
             print "<td>";
             print $row["privacy"];
             print "</td>";
             print "<td>";
Ejemplo n.º 10
0
function getMessages($guid, $connection2, $mode = "", $date = "")
{
    $return = "";
    $dataPosts = array();
    if ($date == "") {
        $date = date("Y-m-d");
    }
    if ($mode != "print" and $mode != "count" and $mode != "result") {
        $mode = "print";
    }
    //Work out all role categories this user has, ignoring "Other"
    $roles = $_SESSION[$guid]["gibbonRoleIDAll"];
    $roleCategory = "";
    $staff = FALSE;
    $student = FALSE;
    $parent = FALSE;
    for ($i = 0; $i < count($roles); $i++) {
        $roleCategory = getRoleCategory($roles[$i][0], $connection2);
        if ($roleCategory == "Staff") {
            $staff = TRUE;
        } else {
            if ($roleCategory == "Student") {
                $student = TRUE;
            } else {
                if ($roleCategory == "Parent") {
                    $parent = TRUE;
                }
            }
        }
    }
    //If parent get a list of student IDs
    if ($parent) {
        $children = "(";
        try {
            $data = array("gibbonPersonID" => $_SESSION[$guid]["gibbonPersonID"]);
            $sql = "SELECT * FROM gibbonFamilyAdult WHERE gibbonPersonID=:gibbonPersonID AND childDataAccess='Y'";
            $result = $connection2->prepare($sql);
            $result->execute($data);
        } catch (PDOException $e) {
        }
        while ($row = $result->fetch()) {
            try {
                $dataChild = array("gibbonFamilyID" => $row["gibbonFamilyID"], "gibbonSchoolYearID" => $_SESSION[$guid]["gibbonSchoolYearID"]);
                $sqlChild = "SELECT * FROM gibbonFamilyChild JOIN gibbonPerson ON (gibbonFamilyChild.gibbonPersonID=gibbonPerson.gibbonPersonID) JOIN gibbonStudentEnrolment ON (gibbonPerson.gibbonPersonID=gibbonStudentEnrolment.gibbonPersonID) WHERE gibbonFamilyID=:gibbonFamilyID AND gibbonPerson.status='Full' AND (dateStart IS NULL OR dateStart<='" . date("Y-m-d") . "') AND (dateEnd IS NULL  OR dateEnd>='" . date("Y-m-d") . "') AND gibbonStudentEnrolment.gibbonSchoolYearID=:gibbonSchoolYearID ORDER BY surname, preferredName ";
                $resultChild = $connection2->prepare($sqlChild);
                $resultChild->execute($dataChild);
            } catch (PDOException $e) {
            }
            while ($rowChild = $resultChild->fetch()) {
                $children .= "gibbonPersonID=" . $rowChild["gibbonPersonID"] . " OR ";
            }
        }
        if ($children != "(") {
            $children = substr($children, 0, -4) . ")";
        } else {
            $children = FALSE;
        }
    }
    //My roles
    $roles = $_SESSION[$guid]["gibbonRoleIDAll"];
    $sqlWhere = "(";
    if (count($roles) > 0) {
        for ($i = 0; $i < count($roles); $i++) {
            $dataPosts["role" . $roles[$i][0]] = $roles[$i][0];
            $sqlWhere .= "id=:role" . $roles[$i][0] . " OR ";
        }
        $sqlWhere = substr($sqlWhere, 0, -3) . ")";
    }
    if ($sqlWhere != "(") {
        $dataPosts["date1"] = $date;
        $dataPosts["date2"] = $date;
        $dataPosts["date3"] = $date;
        $sqlPosts = "(SELECT gibbonMessenger.*, title, surname, preferredName, authorRole.category AS category, image_240, concat('Role: ', gibbonRole.name) AS source FROM gibbonMessenger JOIN gibbonMessengerTarget ON (gibbonMessengerTarget.gibbonMessengerID=gibbonMessenger.gibbonMessengerID) JOIN gibbonPerson ON (gibbonMessenger.gibbonPersonID=gibbonPerson.gibbonPersonID) JOIN gibbonRole AS authorRole ON (gibbonPerson.gibbonRoleIDPrimary=authorRole.gibbonRoleID) JOIN gibbonRole ON (gibbonMessengerTarget.id=gibbonRole.gibbonRoleID) WHERE gibbonMessengerTarget.type='Role' AND (messageWall_date1=:date1 OR messageWall_date2=:date2 OR messageWall_date3=:date3) AND {$sqlWhere})";
    }
    //My role categories
    try {
        $dataRoleCategory = array("gibbonPersonID" => $_SESSION[$guid]["gibbonPersonID"]);
        $sqlRoleCategory = "SELECT DISTINCT category FROM gibbonRole JOIN gibbonPerson ON (gibbonPerson.gibbonRoleIDAll LIKE CONCAT('%', gibbonRole.gibbonRoleID, '%')) WHERE gibbonPersonID=:gibbonPersonID";
        $resultRoleCategory = $connection2->prepare($sqlRoleCategory);
        $resultRoleCategory->execute($dataRoleCategory);
    } catch (PDOException $e) {
        print $e->getMessage();
    }
    $sqlWhere = "(";
    if ($resultRoleCategory->rowCount() > 0) {
        $i = 0;
        while ($rowRoleCategory = $resultRoleCategory->fetch()) {
            $dataPosts["role" . $rowRoleCategory["category"]] = $rowRoleCategory["category"];
            $sqlWhere .= "id=:role" . $rowRoleCategory["category"] . " OR ";
            $i++;
        }
        $sqlWhere = substr($sqlWhere, 0, -3) . ")";
    }
    if ($sqlWhere != "(") {
        $dataPosts["date1"] = $date;
        $dataPosts["date2"] = $date;
        $dataPosts["date3"] = $date;
        $sqlPosts = $sqlPosts . " UNION (SELECT DISTINCT gibbonMessenger.*, title, surname, preferredName, authorRole.category AS category, image_240, concat('Role Category: ', gibbonRole.category) AS source FROM gibbonMessenger JOIN gibbonMessengerTarget ON (gibbonMessengerTarget.gibbonMessengerID=gibbonMessenger.gibbonMessengerID) JOIN gibbonPerson ON (gibbonMessenger.gibbonPersonID=gibbonPerson.gibbonPersonID) JOIN gibbonRole AS authorRole ON (gibbonPerson.gibbonRoleIDPrimary=authorRole.gibbonRoleID) JOIN gibbonRole ON (gibbonMessengerTarget.id=gibbonRole.category) WHERE gibbonMessengerTarget.type='Role Category' AND (messageWall_date1=:date1 OR messageWall_date2=:date2 OR messageWall_date3=:date3) AND {$sqlWhere})";
    }
    //My year groups
    if ($staff) {
        $dataPosts["date4"] = $date;
        $dataPosts["date5"] = $date;
        $dataPosts["date6"] = $date;
        $sqlPosts = $sqlPosts . " UNION (SELECT gibbonMessenger.*, title, surname, preferredName, category, image_240, 'Year Groups' AS source FROM gibbonMessenger JOIN gibbonMessengerTarget ON (gibbonMessengerTarget.gibbonMessengerID=gibbonMessenger.gibbonMessengerID) JOIN gibbonPerson ON (gibbonMessenger.gibbonPersonID=gibbonPerson.gibbonPersonID) JOIN gibbonRole ON (gibbonPerson.gibbonRoleIDPrimary=gibbonRole.gibbonRoleID) WHERE gibbonMessengerTarget.type='Year Group' AND (messageWall_date1=:date4 OR messageWall_date2=:date5 OR messageWall_date3=:date6) AND staff='Y')";
    }
    if ($student) {
        $dataPosts["date7"] = $date;
        $dataPosts["date8"] = $date;
        $dataPosts["date9"] = $date;
        $dataPosts["gibbonSchoolYearID1"] = $_SESSION[$guid]["gibbonSchoolYearID"];
        $dataPosts["gibbonPersonID1"] = $_SESSION[$guid]["gibbonPersonID"];
        $sqlPosts = $sqlPosts . " UNION (SELECT gibbonMessenger.*, title, surname, preferredName, category, image_240, concat('Year Group ', gibbonYearGroup.nameShort) AS source FROM gibbonMessenger JOIN gibbonMessengerTarget ON (gibbonMessengerTarget.gibbonMessengerID=gibbonMessenger.gibbonMessengerID) JOIN gibbonPerson ON (gibbonMessenger.gibbonPersonID=gibbonPerson.gibbonPersonID) JOIN gibbonRole ON (gibbonPerson.gibbonRoleIDPrimary=gibbonRole.gibbonRoleID) JOIN gibbonStudentEnrolment ON (gibbonMessengerTarget.id=gibbonStudentEnrolment.gibbonYearGroupID) JOIN gibbonYearGroup ON (gibbonStudentEnrolment.gibbonYearGroupID=gibbonYearGroup.gibbonYearGroupID) WHERE gibbonStudentEnrolment.gibbonPersonID=:gibbonPersonID1 AND gibbonMessengerTarget.type='Year Group' AND (messageWall_date1=:date7 OR messageWall_date2=:date8 OR messageWall_date3=:date9) AND gibbonStudentEnrolment.gibbonSchoolYearID=:gibbonSchoolYearID1 AND students='Y')";
    }
    if ($parent and $children != FALSE) {
        $dataPosts["date10"] = $date;
        $dataPosts["date11"] = $date;
        $dataPosts["date12"] = $date;
        $dataPosts["gibbonSchoolYearID2"] = $_SESSION[$guid]["gibbonSchoolYearID"];
        $sqlPosts = $sqlPosts . " UNION (SELECT gibbonMessenger.*, title, surname, preferredName, category, image_240, concat('Year Group: ', gibbonYearGroup.nameShort) AS source FROM gibbonMessenger JOIN gibbonMessengerTarget ON (gibbonMessengerTarget.gibbonMessengerID=gibbonMessenger.gibbonMessengerID) JOIN gibbonPerson ON (gibbonMessenger.gibbonPersonID=gibbonPerson.gibbonPersonID) JOIN gibbonRole ON (gibbonPerson.gibbonRoleIDPrimary=gibbonRole.gibbonRoleID) JOIN gibbonStudentEnrolment ON (gibbonMessengerTarget.id=gibbonStudentEnrolment.gibbonYearGroupID) JOIN gibbonYearGroup ON (gibbonStudentEnrolment.gibbonYearGroupID=gibbonYearGroup.gibbonYearGroupID) WHERE " . preg_replace("/gibbonPersonID/", "gibbonStudentEnrolment.gibbonPersonID", $children) . " AND gibbonMessengerTarget.type='Year Group' AND (messageWall_date1=:date10 OR messageWall_date2=:date11 OR messageWall_date3=:date12) AND gibbonStudentEnrolment.gibbonSchoolYearID=:gibbonSchoolYearID2 AND parents='Y')";
    }
    //My roll groups
    if ($staff) {
        $sqlWhere = "(";
        try {
            $dataRollGroup = array("gibbonSchoolYearID" => $_SESSION[$guid]["gibbonSchoolYearID"], "gibbonPersonIDTutor" => $_SESSION[$guid]["gibbonPersonID"], "gibbonPersonIDTutor2" => $_SESSION[$guid]["gibbonPersonID"], "gibbonPersonIDTutor3" => $_SESSION[$guid]["gibbonPersonID"]);
            $sqlRollGroup = "SELECT * FROM gibbonRollGroup WHERE gibbonSchoolYearID=:gibbonSchoolYearID AND (gibbonPersonIDTutor=:gibbonPersonIDTutor OR gibbonPersonIDTutor2=:gibbonPersonIDTutor2 OR gibbonPersonIDTutor3=:gibbonPersonIDTutor3)";
            $resultRollGroup = $connection2->prepare($sqlRollGroup);
            $resultRollGroup->execute($dataRollGroup);
        } catch (PDOException $e) {
        }
        if ($resultRollGroup->rowCount() > 0) {
            while ($rowRollGroup = $resultRollGroup->fetch()) {
                $dataPosts["roll" . $rowRollGroup["gibbonRollGroupID"]] = $rowRollGroup["gibbonRollGroupID"];
                $sqlWhere .= "id=:roll" . $rowRollGroup["gibbonRollGroupID"] . " OR ";
            }
            $sqlWhere = substr($sqlWhere, 0, -3) . ")";
            if ($sqlWhere != "(") {
                $dataPosts["date13"] = $date;
                $dataPosts["date14"] = $date;
                $dataPosts["date15"] = $date;
                $sqlPosts = $sqlPosts . " UNION (SELECT gibbonMessenger.*, title, surname, preferredName, category, image_240, concat('Roll Group: ', gibbonRollGroup.nameShort) AS source FROM gibbonMessenger JOIN gibbonMessengerTarget ON (gibbonMessengerTarget.gibbonMessengerID=gibbonMessenger.gibbonMessengerID) JOIN gibbonPerson ON (gibbonMessenger.gibbonPersonID=gibbonPerson.gibbonPersonID) JOIN gibbonRole ON (gibbonPerson.gibbonRoleIDPrimary=gibbonRole.gibbonRoleID) JOIN gibbonRollGroup ON (gibbonMessengerTarget.id=gibbonRollGroup.gibbonRollGroupID) WHERE gibbonMessengerTarget.type='Roll Group' AND (messageWall_date1=:date13 OR messageWall_date2=:date14 OR messageWall_date3=:date15) AND {$sqlWhere} AND staff='Y')";
            }
        }
    }
    if ($student) {
        $dataPosts["date16"] = $date;
        $dataPosts["date17"] = $date;
        $dataPosts["date18"] = $date;
        $dataPosts["gibbonSchoolYearID3"] = $_SESSION[$guid]["gibbonSchoolYearID"];
        $dataPosts["gibbonPersonID2"] = $_SESSION[$guid]["gibbonPersonID"];
        $sqlPosts = $sqlPosts . " UNION (SELECT gibbonMessenger.*, title, surname, preferredName, category, image_240, concat('Roll Group: ', gibbonRollGroup.nameShort) AS source FROM gibbonMessenger JOIN gibbonMessengerTarget ON (gibbonMessengerTarget.gibbonMessengerID=gibbonMessenger.gibbonMessengerID) JOIN gibbonPerson ON (gibbonMessenger.gibbonPersonID=gibbonPerson.gibbonPersonID) JOIN gibbonRole ON (gibbonPerson.gibbonRoleIDPrimary=gibbonRole.gibbonRoleID) JOIN gibbonStudentEnrolment ON (gibbonMessengerTarget.id=gibbonStudentEnrolment.gibbonRollGroupID) JOIN gibbonRollGroup ON (gibbonStudentEnrolment.gibbonRollGroupID=gibbonRollGroup.gibbonRollGroupID) WHERE gibbonStudentEnrolment.gibbonPersonID=:gibbonPersonID2 AND gibbonStudentEnrolment.gibbonSchoolYearID=:gibbonSchoolYearID3 AND gibbonMessengerTarget.type='Roll Group' AND (messageWall_date1=:date16 OR messageWall_date2=:date17 OR messageWall_date3=:date18) AND students='Y')";
    }
    if ($parent and $children != FALSE) {
        $dataPosts["date19"] = $date;
        $dataPosts["date20"] = $date;
        $dataPosts["date21"] = $date;
        $dataPosts["gibbonSchoolYearID4"] = $_SESSION[$guid]["gibbonSchoolYearID"];
        $sqlPosts = $sqlPosts . " UNION (SELECT gibbonMessenger.*, title, surname, preferredName, category, image_240, concat('Roll Group: ', gibbonRollGroup.nameShort) AS source FROM gibbonMessenger JOIN gibbonMessengerTarget ON (gibbonMessengerTarget.gibbonMessengerID=gibbonMessenger.gibbonMessengerID) JOIN gibbonPerson ON (gibbonMessenger.gibbonPersonID=gibbonPerson.gibbonPersonID) JOIN gibbonRole ON (gibbonPerson.gibbonRoleIDPrimary=gibbonRole.gibbonRoleID) JOIN gibbonStudentEnrolment ON (gibbonMessengerTarget.id=gibbonStudentEnrolment.gibbonRollGroupID) JOIN gibbonRollGroup ON (gibbonStudentEnrolment.gibbonRollGroupID=gibbonRollGroup.gibbonRollGroupID) WHERE " . preg_replace("/gibbonPersonID/", "gibbonStudentEnrolment.gibbonPersonID", $children) . " AND gibbonStudentEnrolment.gibbonSchoolYearID=:gibbonSchoolYearID4 AND gibbonMessengerTarget.type='Roll Group' AND (messageWall_date1=:date19 OR messageWall_date2=:date20 OR messageWall_date3=:date21) AND parents='Y')";
    }
    //My courses
    //First check for any course, then do specific parent check
    try {
        $dataClasses = array("gibbonSchoolYearID" => $_SESSION[$guid]["gibbonSchoolYearID"], "gibbonPersonID" => $_SESSION[$guid]["gibbonPersonID"]);
        $sqlClasses = "SELECT DISTINCT gibbonCourseClass.gibbonCourseID FROM gibbonCourse JOIN gibbonCourseClass ON (gibbonCourse.gibbonCourseID=gibbonCourseClass.gibbonCourseID) JOIN gibbonCourseClassPerson ON (gibbonCourseClassPerson.gibbonCourseClassID=gibbonCourseClass.gibbonCourseClassID) WHERE gibbonSchoolYearID=:gibbonSchoolYearID AND gibbonPersonID=:gibbonPersonID AND NOT role LIKE '%- Left'";
        $resultClasses = $connection2->prepare($sqlClasses);
        $resultClasses->execute($dataClasses);
    } catch (PDOException $e) {
    }
    $sqlWhere = "(";
    if ($resultClasses->rowCount() > 0) {
        while ($rowClasses = $resultClasses->fetch()) {
            $dataPosts["course" . $rowClasses["gibbonCourseID"]] = $rowClasses["gibbonCourseID"];
            $sqlWhere .= "id=:course" . $rowClasses["gibbonCourseID"] . " OR ";
        }
        $sqlWhere = substr($sqlWhere, 0, -3) . ")";
        if ($sqlWhere != "(") {
            if ($staff) {
                $dataPosts["date22"] = $date;
                $dataPosts["date23"] = $date;
                $dataPosts["date24"] = $date;
                $sqlPosts = $sqlPosts . " UNION (SELECT gibbonMessenger.*, title, surname, preferredName, category, image_240, concat('Course: ', gibbonCourse.nameShort) AS source FROM gibbonMessenger JOIN gibbonMessengerTarget ON (gibbonMessengerTarget.gibbonMessengerID=gibbonMessenger.gibbonMessengerID) JOIN gibbonPerson ON (gibbonMessenger.gibbonPersonID=gibbonPerson.gibbonPersonID) JOIN gibbonRole ON (gibbonPerson.gibbonRoleIDPrimary=gibbonRole.gibbonRoleID) JOIN gibbonCourse ON (gibbonMessengerTarget.id=gibbonCourse.gibbonCourseID) WHERE gibbonMessengerTarget.type='Course' AND (messageWall_date1=:date22 OR messageWall_date2=:date23 OR messageWall_date3=:date24) AND {$sqlWhere} AND staff='Y')";
            }
            if ($student) {
                $dataPosts["date25"] = $date;
                $dataPosts["date26"] = $date;
                $dataPosts["date27"] = $date;
                $sqlPosts = $sqlPosts . " UNION (SELECT gibbonMessenger.*, title, surname, preferredName, category, image_240, concat('Course: ', gibbonCourse.nameShort) AS source FROM gibbonMessenger JOIN gibbonMessengerTarget ON (gibbonMessengerTarget.gibbonMessengerID=gibbonMessenger.gibbonMessengerID) JOIN gibbonPerson ON (gibbonMessenger.gibbonPersonID=gibbonPerson.gibbonPersonID) JOIN gibbonRole ON (gibbonPerson.gibbonRoleIDPrimary=gibbonRole.gibbonRoleID) JOIN gibbonCourse ON (gibbonMessengerTarget.id=gibbonCourse.gibbonCourseID) WHERE gibbonMessengerTarget.type='Course' AND (messageWall_date1=:date25 OR messageWall_date2=:date26 OR messageWall_date3=:date27) AND {$sqlWhere} AND students='Y')";
            }
        }
    }
    if ($parent and $children != FALSE) {
        try {
            $dataClasses = array("gibbonSchoolYearID" => $_SESSION[$guid]["gibbonSchoolYearID"]);
            $sqlClasses = "SELECT DISTINCT gibbonCourseClass.gibbonCourseID FROM gibbonCourse JOIN gibbonCourseClass ON (gibbonCourse.gibbonCourseID=gibbonCourseClass.gibbonCourseID) JOIN gibbonCourseClassPerson ON (gibbonCourseClassPerson.gibbonCourseClassID=gibbonCourseClass.gibbonCourseClassID) WHERE gibbonSchoolYearID=:gibbonSchoolYearID AND " . preg_replace("/gibbonPersonID/", "gibbonCourseClassPerson.gibbonPersonID", $children) . " AND NOT role LIKE '%- Left'";
            $resultClasses = $connection2->prepare($sqlClasses);
            $resultClasses->execute($dataClasses);
        } catch (PDOException $e) {
        }
        $sqlWhere = "(";
        if ($resultClasses->rowCount() > 0) {
            while ($rowClasses = $resultClasses->fetch()) {
                $dataPosts["course" . $rowClasses["gibbonCourseID"]] = $rowClasses["gibbonCourseID"];
                $sqlWhere .= "id=:course" . $rowClasses["gibbonCourseID"] . " OR ";
            }
            $sqlWhere = substr($sqlWhere, 0, -3) . ")";
            if ($sqlWhere != "(") {
                $dataPosts["date28"] = $date;
                $dataPosts["date29"] = $date;
                $dataPosts["date30"] = $date;
                $sqlPosts = $sqlPosts . " UNION (SELECT gibbonMessenger.*, title, surname, preferredName, category, image_240, concat('Course: ', gibbonCourse.nameShort) AS source FROM gibbonMessenger JOIN gibbonMessengerTarget ON (gibbonMessengerTarget.gibbonMessengerID=gibbonMessenger.gibbonMessengerID) JOIN gibbonPerson ON (gibbonMessenger.gibbonPersonID=gibbonPerson.gibbonPersonID) JOIN gibbonRole ON (gibbonPerson.gibbonRoleIDPrimary=gibbonRole.gibbonRoleID) JOIN gibbonCourse ON (gibbonMessengerTarget.id=gibbonCourse.gibbonCourseID) WHERE gibbonMessengerTarget.type='Course' AND (messageWall_date1=:date28 OR messageWall_date2=:date29 OR messageWall_date3=:date30) AND {$sqlWhere} AND parents='Y')";
            }
        }
    }
    //My classes
    //First check for any role, then do specific parent check
    try {
        $dataClasses = array("gibbonSchoolYearID" => $_SESSION[$guid]["gibbonSchoolYearID"], "gibbonPersonID" => $_SESSION[$guid]["gibbonPersonID"]);
        $sqlClasses = "SELECT gibbonCourseClass.gibbonCourseClassID FROM gibbonCourse JOIN gibbonCourseClass ON (gibbonCourse.gibbonCourseID=gibbonCourseClass.gibbonCourseID) JOIN gibbonCourseClassPerson ON (gibbonCourseClassPerson.gibbonCourseClassID=gibbonCourseClass.gibbonCourseClassID) WHERE gibbonSchoolYearID=:gibbonSchoolYearID AND gibbonPersonID=:gibbonPersonID AND NOT role LIKE '%- Left'";
        $resultClasses = $connection2->prepare($sqlClasses);
        $resultClasses->execute($dataClasses);
    } catch (PDOException $e) {
    }
    $sqlWhere = "(";
    if ($resultClasses->rowCount() > 0) {
        while ($rowClasses = $resultClasses->fetch()) {
            $dataPosts["class" . $rowClasses["gibbonCourseClassID"]] = $rowClasses["gibbonCourseClassID"];
            $sqlWhere .= "id=:class" . $rowClasses["gibbonCourseClassID"] . " OR ";
        }
        $sqlWhere = substr($sqlWhere, 0, -3) . ")";
        if ($sqlWhere != "(") {
            if ($staff) {
                $dataPosts["date31"] = $date;
                $dataPosts["date32"] = $date;
                $dataPosts["date33"] = $date;
                $sqlPosts = $sqlPosts . " UNION (SELECT gibbonMessenger.*, title, surname, preferredName, category, image_240, concat('Class: ', gibbonCourse.nameShort, '.', gibbonCourseClass.nameShort) AS source FROM gibbonMessenger JOIN gibbonMessengerTarget ON (gibbonMessengerTarget.gibbonMessengerID=gibbonMessenger.gibbonMessengerID) JOIN gibbonPerson ON (gibbonMessenger.gibbonPersonID=gibbonPerson.gibbonPersonID) JOIN gibbonRole ON (gibbonPerson.gibbonRoleIDPrimary=gibbonRole.gibbonRoleID) JOIN gibbonCourseClass ON (gibbonMessengerTarget.id=gibbonCourseClass.gibbonCourseClassID) JOIN gibbonCourse ON (gibbonCourseClass.gibbonCourseID=gibbonCourse.gibbonCourseID) WHERE gibbonMessengerTarget.type='Class' AND (messageWall_date1=:date31 OR messageWall_date2=:date32 OR messageWall_date3=:date33) AND {$sqlWhere} AND staff='Y')";
            }
            if ($student) {
                $dataPosts["date34"] = $date;
                $dataPosts["date35"] = $date;
                $dataPosts["date36"] = $date;
                $sqlPosts = $sqlPosts . " UNION (SELECT gibbonMessenger.*, title, surname, preferredName, category, image_240, concat('Class: ', gibbonCourse.nameShort, '.', gibbonCourseClass.nameShort) AS source FROM gibbonMessenger JOIN gibbonMessengerTarget ON (gibbonMessengerTarget.gibbonMessengerID=gibbonMessenger.gibbonMessengerID) JOIN gibbonPerson ON (gibbonMessenger.gibbonPersonID=gibbonPerson.gibbonPersonID) JOIN gibbonRole ON (gibbonPerson.gibbonRoleIDPrimary=gibbonRole.gibbonRoleID) JOIN gibbonCourseClass ON (gibbonMessengerTarget.id=gibbonCourseClass.gibbonCourseClassID) JOIN gibbonCourse ON (gibbonCourseClass.gibbonCourseID=gibbonCourse.gibbonCourseID) WHERE gibbonMessengerTarget.type='Class' AND (messageWall_date1=:date34 OR messageWall_date2=:date35 OR messageWall_date3=:date36) AND {$sqlWhere} AND students='Y')";
            }
        }
    }
    if ($parent and $children != FALSE) {
        try {
            $dataClasses = array("gibbonSchoolYearID" => $_SESSION[$guid]["gibbonSchoolYearID"]);
            $sqlClasses = "SELECT gibbonCourseClass.gibbonCourseClassID FROM gibbonCourse JOIN gibbonCourseClass ON (gibbonCourse.gibbonCourseID=gibbonCourseClass.gibbonCourseID) JOIN gibbonCourseClassPerson ON (gibbonCourseClassPerson.gibbonCourseClassID=gibbonCourseClass.gibbonCourseClassID) WHERE gibbonSchoolYearID=:gibbonSchoolYearID AND " . preg_replace("/gibbonPersonID/", "gibbonCourseClassPerson.gibbonPersonID", $children) . " AND NOT role LIKE '%- Left'";
            $resultClasses = $connection2->prepare($sqlClasses);
            $resultClasses->execute($dataClasses);
        } catch (PDOException $e) {
        }
        $sqlWhere = "(";
        if ($resultClasses->rowCount() > 0) {
            while ($rowClasses = $resultClasses->fetch()) {
                $dataPosts["class" . $rowClasses["gibbonCourseClassID"]] = $rowClasses["gibbonCourseClassID"];
                $sqlWhere .= "id=:class" . $rowClasses["gibbonCourseClassID"] . " OR ";
            }
            $sqlWhere = substr($sqlWhere, 0, -3) . ")";
            if ($sqlWhere != "(") {
                $dataPosts["date37"] = $date;
                $dataPosts["date38"] = $date;
                $dataPosts["date39"] = $date;
                $sqlPosts = $sqlPosts . " UNION (SELECT gibbonMessenger.*, title, surname, preferredName, category, image_240, concat('Class: ', gibbonCourse.nameShort, '.', gibbonCourseClass.nameShort) AS source FROM gibbonMessenger JOIN gibbonMessengerTarget ON (gibbonMessengerTarget.gibbonMessengerID=gibbonMessenger.gibbonMessengerID) JOIN gibbonPerson ON (gibbonMessenger.gibbonPersonID=gibbonPerson.gibbonPersonID) JOIN gibbonRole ON (gibbonPerson.gibbonRoleIDPrimary=gibbonRole.gibbonRoleID) JOIN gibbonCourseClass ON (gibbonMessengerTarget.id=gibbonCourseClass.gibbonCourseClassID) JOIN gibbonCourse ON (gibbonCourseClass.gibbonCourseID=gibbonCourse.gibbonCourseID) WHERE gibbonMessengerTarget.type='Class' AND (messageWall_date1=:date37 OR messageWall_date2=:date38 OR messageWall_date3=:date39) AND {$sqlWhere} AND parents='Y')";
            }
        }
    }
    //My activities
    if ($staff) {
        try {
            $dataActivities = array("gibbonSchoolYearID" => $_SESSION[$guid]["gibbonSchoolYearID"], "gibbonPersonID" => $_SESSION[$guid]["gibbonPersonID"]);
            $sqlActivities = "SELECT gibbonActivity.gibbonActivityID FROM gibbonActivity JOIN gibbonActivityStaff ON (gibbonActivityStaff.gibbonActivityID=gibbonActivity.gibbonActivityID) WHERE gibbonSchoolYearID=:gibbonSchoolYearID AND gibbonActivityStaff.gibbonPersonID=:gibbonPersonID";
            $resultActivities = $connection2->prepare($sqlActivities);
            $resultActivities->execute($dataActivities);
        } catch (PDOException $e) {
        }
        $sqlWhere = "(";
        if ($resultActivities->rowCount() > 0) {
            while ($rowActivities = $resultActivities->fetch()) {
                $dataPosts["activity" . $rowActivities["gibbonActivityID"]] = $rowActivities["gibbonActivityID"];
                $sqlWhere .= "id=:activity" . $rowActivities["gibbonActivityID"] . " OR ";
            }
            $sqlWhere = substr($sqlWhere, 0, -3) . ")";
            if ($sqlWhere != "(") {
                $dataPosts["date40"] = $date;
                $dataPosts["date41"] = $date;
                $dataPosts["date42"] = $date;
                $sqlPosts = $sqlPosts . " UNION (SELECT gibbonMessenger.*, title, surname, preferredName, category, image_240, concat('Activity: ', gibbonActivity.name) AS source FROM gibbonMessenger JOIN gibbonMessengerTarget ON (gibbonMessengerTarget.gibbonMessengerID=gibbonMessenger.gibbonMessengerID) JOIN gibbonPerson ON (gibbonMessenger.gibbonPersonID=gibbonPerson.gibbonPersonID) JOIN gibbonRole ON (gibbonPerson.gibbonRoleIDPrimary=gibbonRole.gibbonRoleID) JOIN gibbonActivity ON (gibbonMessengerTarget.id=gibbonActivity.gibbonActivityID) WHERE gibbonMessengerTarget.type='Activity' AND (messageWall_date1=:date40 OR messageWall_date2=:date41 OR messageWall_date3=:date42) AND {$sqlWhere} AND staff='Y')";
            }
        }
    }
    if ($student) {
        try {
            $dataActivities = array("gibbonSchoolYearID" => $_SESSION[$guid]["gibbonSchoolYearID"], "gibbonPersonID" => $_SESSION[$guid]["gibbonPersonID"]);
            $sqlActivities = "SELECT gibbonActivity.gibbonActivityID FROM gibbonActivity JOIN gibbonActivityStudent ON (gibbonActivityStudent.gibbonActivityID=gibbonActivity.gibbonActivityID) WHERE gibbonSchoolYearID=:gibbonSchoolYearID AND gibbonActivityStudent.gibbonPersonID=:gibbonPersonID AND status='Accepted'";
            $resultActivities = $connection2->prepare($sqlActivities);
            $resultActivities->execute($dataActivities);
        } catch (PDOException $e) {
        }
        $sqlWhere = "(";
        if ($resultActivities->rowCount() > 0) {
            while ($rowActivities = $resultActivities->fetch()) {
                $dataPosts["activity" . $rowActivities["gibbonActivityID"]] = $rowActivities["gibbonActivityID"];
                $sqlWhere .= "id=:activity" . $rowActivities["gibbonActivityID"] . " OR ";
            }
            $sqlWhere = substr($sqlWhere, 0, -3) . ")";
            if ($sqlWhere != "(") {
                $dataPosts["date43"] = $date;
                $dataPosts["date44"] = $date;
                $dataPosts["date45"] = $date;
                $sqlPosts = $sqlPosts . " UNION (SELECT gibbonMessenger.*, title, surname, preferredName, category, image_240, concat('Activity: ', gibbonActivity.name) AS source FROM gibbonMessenger JOIN gibbonMessengerTarget ON (gibbonMessengerTarget.gibbonMessengerID=gibbonMessenger.gibbonMessengerID) JOIN gibbonPerson ON (gibbonMessenger.gibbonPersonID=gibbonPerson.gibbonPersonID) JOIN gibbonActivity ON (gibbonMessengerTarget.id=gibbonActivity.gibbonActivityID) JOIN gibbonRole ON (gibbonPerson.gibbonRoleIDPrimary=gibbonRole.gibbonRoleID) WHERE gibbonMessengerTarget.type='Activity' AND (messageWall_date1=:date43 OR messageWall_date2=:date44 OR messageWall_date3=:date45) AND {$sqlWhere} AND students='Y')";
            }
        }
    }
    if ($parent and $children != FALSE) {
        try {
            $dataActivities = array("gibbonSchoolYearID" => $_SESSION[$guid]["gibbonSchoolYearID"]);
            $sqlActivities = "SELECT gibbonActivity.gibbonActivityID FROM gibbonActivity JOIN gibbonActivityStudent ON (gibbonActivityStudent.gibbonActivityID=gibbonActivity.gibbonActivityID) WHERE gibbonSchoolYearID=:gibbonSchoolYearID AND " . preg_replace("/gibbonPersonID/", "gibbonActivityStudent.gibbonPersonID", $children) . " AND status='Accepted'";
            $resultActivities = $connection2->prepare($sqlActivities);
            $resultActivities->execute($dataActivities);
        } catch (PDOException $e) {
        }
        $sqlWhere = "(";
        if ($resultActivities->rowCount() > 0) {
            while ($rowActivities = $resultActivities->fetch()) {
                $dataPosts["activity" . $rowActivities["gibbonActivityID"]] = $rowActivities["gibbonActivityID"];
                $sqlWhere .= "id=:activity" . $rowActivities["gibbonActivityID"] . " OR ";
            }
            $sqlWhere = substr($sqlWhere, 0, -3) . ")";
            if ($sqlWhere != "(") {
                $dataPosts["date46"] = $date;
                $dataPosts["date47"] = $date;
                $dataPosts["date48"] = $date;
                $sqlPosts = $sqlPosts . " UNION (SELECT gibbonMessenger.*, title, surname, preferredName, category, image_240, concat('Activity: ', gibbonActivity.name) AS source FROM gibbonMessenger JOIN gibbonMessengerTarget ON (gibbonMessengerTarget.gibbonMessengerID=gibbonMessenger.gibbonMessengerID) JOIN gibbonPerson ON (gibbonMessenger.gibbonPersonID=gibbonPerson.gibbonPersonID) JOIN gibbonRole ON (gibbonPerson.gibbonRoleIDPrimary=gibbonRole.gibbonRoleID) JOIN gibbonActivity ON (gibbonMessengerTarget.id=gibbonActivity.gibbonActivityID) WHERE gibbonMessengerTarget.type='Activity' AND (messageWall_date1=:date46 OR messageWall_date2=:date47 OR messageWall_date3=:date48) AND {$sqlWhere} AND parents='Y')";
            }
        }
    }
    //Houses
    $dataPosts["date49"] = $date;
    $dataPosts["date50"] = $date;
    $dataPosts["date51"] = $date;
    $dataPosts["gibbonPersonID3"] = $_SESSION[$guid]["gibbonPersonID"];
    $sqlPosts = $sqlPosts . " UNION (SELECT gibbonMessenger.*, gibbonPerson.title, gibbonPerson.surname, gibbonPerson.preferredName, category, gibbonPerson.image_240, concat('Houses: ', gibbonHouse.name) AS source FROM gibbonMessenger JOIN gibbonMessengerTarget ON (gibbonMessengerTarget.gibbonMessengerID=gibbonMessenger.gibbonMessengerID) JOIN gibbonPerson ON (gibbonMessenger.gibbonPersonID=gibbonPerson.gibbonPersonID) JOIN gibbonRole ON (gibbonPerson.gibbonRoleIDPrimary=gibbonRole.gibbonRoleID) JOIN gibbonPerson AS inHouse ON (gibbonMessengerTarget.id=inHouse.gibbonHouseID) JOIN gibbonHouse ON (gibbonPerson.gibbonHouseID=gibbonHouse.gibbonHouseID)WHERE gibbonMessengerTarget.type='Houses' AND (messageWall_date1=:date49 OR messageWall_date2=:date50 OR messageWall_date3=:date51) AND inHouse.gibbonPersonID=:gibbonPersonID3)";
    //Individuals
    $dataPosts["date52"] = $date;
    $dataPosts["date53"] = $date;
    $dataPosts["date54"] = $date;
    $dataPosts["gibbonPersonID4"] = $_SESSION[$guid]["gibbonPersonID"];
    $sqlPosts = $sqlPosts . " UNION (SELECT gibbonMessenger.*, gibbonPerson.title, gibbonPerson.surname, gibbonPerson.preferredName, category, gibbonPerson.image_240, 'Individual: You' AS source FROM gibbonMessenger JOIN gibbonMessengerTarget ON (gibbonMessengerTarget.gibbonMessengerID=gibbonMessenger.gibbonMessengerID) JOIN gibbonPerson ON (gibbonMessenger.gibbonPersonID=gibbonPerson.gibbonPersonID) JOIN gibbonRole ON (gibbonPerson.gibbonRoleIDPrimary=gibbonRole.gibbonRoleID) JOIN gibbonPerson AS individual ON (gibbonMessengerTarget.id=individual.gibbonPersonID) WHERE gibbonMessengerTarget.type='Individuals' AND (messageWall_date1=:date52 OR messageWall_date2=:date53 OR messageWall_date3=:date54) AND individual.gibbonPersonID=:gibbonPersonID4)";
    //SPIT OUT RESULTS
    if ($mode == "result") {
        $resultReturn = array();
        $resultReturn[0] = $dataPosts;
        $resultReturn[1] = $sqlPosts . " ORDER BY subject, gibbonMessengerID, source";
        return serialize($resultReturn);
    } else {
        $count = 0;
        try {
            $sqlPosts = $sqlPosts . " ORDER BY subject, gibbonMessengerID, source";
            $resultPosts = $connection2->prepare($sqlPosts);
            $resultPosts->execute($dataPosts);
        } catch (PDOException $e) {
            print $e->getMessage();
        }
        if ($resultPosts->rowCount() < 1) {
            $return .= "<div class='warning'>";
            $return .= _("There are no records to display.");
            $return .= "</div>";
        } else {
            $output = array();
            $last = "";
            while ($rowPosts = $resultPosts->fetch()) {
                if ($last == $rowPosts["gibbonMessengerID"]) {
                    $output[$count - 1]["source"] = $output[$count - 1]["source"] . "<br/>" . $rowPosts["source"];
                } else {
                    $output[$count]["photo"] = $rowPosts["image_240"];
                    $output[$count]["subject"] = $rowPosts["subject"];
                    $output[$count]["details"] = $rowPosts["body"];
                    $output[$count]["author"] = formatName($rowPosts["title"], $rowPosts["preferredName"], $rowPosts["surname"], $rowPosts["category"]);
                    $output[$count]["source"] = $rowPosts["source"];
                    $output[$count]["gibbonMessengerID"] = $rowPosts["gibbonMessengerID"];
                    $output[$count]["gibbonPersonID"] = $rowPosts["gibbonPersonID"];
                    $count++;
                    $last = $rowPosts["gibbonMessengerID"];
                }
            }
            $return .= "<table cellspacing='0' style='margin-top: 10px'>";
            $return .= "<tr>";
            $return .= "<th style='text-align: center'>";
            $return .= _("Sharing");
            $return .= "</th>";
            $return .= "<th>";
            $return .= _("Message");
            $return .= "</th>";
            $return .= "</tr>";
            $rowCount = 0;
            $rowNum = "odd";
            for ($i = 0; $i < count($output); $i++) {
                if ($rowCount % 2 == 0) {
                    $rowNum = "even";
                } else {
                    $rowNum = "odd";
                }
                $rowCount++;
                $return .= "<tr class={$rowNum}>";
                $return .= "<td style='text-align: center; vertical-align: top; padding-bottom: 10px; padding-top: 10px; border-top: 1px solid #666; width: 100px'>";
                $return .= "<a name='" . $output[$i]["gibbonMessengerID"] . "'></a>";
                $return .= getUserPhoto($guid, $output[$i]["photo"], 75) . "<br/>";
                //DEAL WITH LIKES
                $likesGiven = countLikesByContextAndGiver($connection2, "Messenger", "gibbonMessengerID", $output[$i]["gibbonMessengerID"], $_SESSION[$guid]["gibbonPersonID"], $output[$i]["gibbonPersonID"]);
                if ($output[$i]["gibbonPersonID"] == $_SESSION[$guid]["gibbonPersonID"]) {
                    if ($likesGiven == 1) {
                        $return .= $likesGiven . "x " . _('Like') . "<br/><br/>";
                    } else {
                        $return .= $likesGiven . "x " . _('Likes') . "<br/><br/>";
                    }
                } else {
                    $comment = addSlashes($output[$i]["subject"]);
                    $return .= "<div id='star" . $output[$i]["gibbonMessengerID"] . "'>";
                    $return .= "<script type=\"text/javascript\">";
                    $return .= "\$(document).ready(function(){";
                    $return .= "\$(\"#starAdd" . $output[$i]["gibbonMessengerID"] . "\").click(function(){";
                    $return .= "\$(\"#star" . $output[$i]["gibbonMessengerID"] . "\").load(\"" . $_SESSION[$guid]["absoluteURL"] . "/modules/Messenger/messageWall_view_starAjax.php\",{\"gibbonPersonID\": \"" . $output[$i]["gibbonPersonID"] . "\", \"gibbonMessengerID\": \"" . $output[$i]["gibbonMessengerID"] . "\", \"mode\": \"add\", \"comment\": \"" . $comment . "\"});";
                    $return .= "});";
                    $return .= "\$(\"#starRemove" . $output[$i]["gibbonMessengerID"] . "\").click(function(){";
                    $return .= "\$(\"#star" . $output[$i]["gibbonMessengerID"] . "\").load(\"" . $_SESSION[$guid]["absoluteURL"] . "/modules/Messenger/messageWall_view_starAjax.php\",{\"gibbonPersonID\": \"" . $output[$i]["gibbonPersonID"] . "\", \"gibbonMessengerID\": \"" . $output[$i]["gibbonMessengerID"] . "\", \"mode\": \"remove\", \"comment\": \"" . $comment . "\"});";
                    $return .= "});";
                    $return .= "});";
                    $return .= "</script>";
                    if ($likesGiven != 1) {
                        $return .= "<a id='starAdd" . $output[$i]["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>";
                    } else {
                        $return .= "<a id='starRemove" . $output[$i]["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>";
                    }
                    $return .= "</div>";
                }
                $return .= "<b><u>Posted By</b></u><br/>";
                $return .= $output[$i]["author"] . "<br/><br/>";
                $return .= "<b><u>Shared Via</b></u><br/>";
                $return .= $output[$i]["source"] . "<br/><br/>";
                $return .= "</td>";
                $return .= "<td style='border-left: none; vertical-align: top; padding-bottom: 10px; padding-top: 10px; border-top: 1px solid #666; width: 640px'>";
                $return .= "<h3 style='margin-top: 3px'>";
                $return .= $output[$i]["subject"];
                $return .= "</h3>";
                $return .= "</p>";
                $return .= $output[$i]["details"];
                $return .= "</p>";
                $return .= "</td>";
                $return .= "</tr>";
            }
            $return .= "</table>";
        }
        if ($mode == "print") {
            return $return;
        } else {
            return $count;
        }
    }
}
 }
 if ($resultCheck1->rowCount() == 0) {
     //There are no active siblings, so let's check parents to see if we can set anyone to left
     try {
         $dataCheck2 = array("gibbonFamilyID" => $row["gibbonFamilyID"]);
         $sqlCheck2 = "SELECT gibbonPerson.gibbonPersonID, status, gibbonRoleIDAll FROM gibbonPerson JOIN gibbonFamilyAdult ON (gibbonFamilyAdult.gibbonPersonID=gibbonPerson.gibbonPersonID) WHERE gibbonFamilyID=:gibbonFamilyID AND NOT status='Left' ORDER BY gibbonPersonID";
         $resultCheck2 = $connection2->prepare($sqlCheck2);
         $resultCheck2->execute($dataCheck2);
     } catch (PDOException $e) {
     }
     while ($rowCheck2 = $resultCheck2->fetch()) {
         //Check to see if parent has any non-staff roles. If not, mark as 'Left'
         $nonParentRole = FALSE;
         $roles = explode(",", $rowCheck2["gibbonRoleIDAll"]);
         foreach ($roles as $role) {
             if (getRoleCategory($role, $connection2) != "Parent") {
                 $nonParentRole = TRUE;
             }
         }
         if ($nonParentRole == FALSE) {
             //Update status to 'Left'
             try {
                 $dataUpdate = array("gibbonPersonID" => $rowCheck2["gibbonPersonID"]);
                 $sqlUpdate = "UPDATE gibbonPerson SET status='Left' WHERE gibbonPersonID=:gibbonPersonID";
                 $resultUpdate = $connection2->prepare($sqlUpdate);
                 $resultUpdate->execute($dataUpdate);
             } catch (PDOException $e) {
             }
             $count++;
         }
     }
Ejemplo n.º 12
0
 //Roles
 if (isActionAccessible($guid, $connection2, "/modules/Messenger/messenger_post.php", "New Message_role")) {
     if ($_POST["role"] == "Y") {
         $choices = $_POST["roles"];
         if ($choices != "") {
             foreach ($choices as $t) {
                 try {
                     $data = array("AI" => $AI, "t" => $t);
                     $sql = "INSERT INTO gibbonMessengerTarget SET gibbonMessengerID=:AI, type='Role', id=:t";
                     $result = $connection2->prepare($sql);
                     $result->execute($data);
                 } catch (PDOException $e) {
                     $partialFail = TRUE;
                 }
                 //Get email addresses
                 $category = getRoleCategory($t, $connection2);
                 if ($email == "Y") {
                     if ($category == "Parent") {
                         try {
                             $dataEmail = array("gibbonRoleIDAll" => "%{$t}%");
                             $sqlEmail = "SELECT DISTINCT email, title, surname, preferredName FROM gibbonPerson JOIN gibbonFamilyAdult ON (gibbonFamilyAdult.gibbonPersonID=gibbonPerson.gibbonPersonID) WHERE NOT email='' AND gibbonRoleIDAll LIKE :gibbonRoleIDAll AND status='Full' AND contactEmail='Y'";
                             $resultEmail = $connection2->prepare($sqlEmail);
                             $resultEmail->execute($dataEmail);
                         } catch (PDOException $e) {
                         }
                         while ($rowEmail = $resultEmail->fetch()) {
                             $emails .= $rowEmail["email"] . ",";
                             $emailsReport .= formatName('', $rowEmail["preferredName"], $rowEmail["surname"], "Student", false) . " (" . $rowEmail["email"] . "),";
                         }
                     } else {
                         try {
Ejemplo n.º 13
0
    print "<div class='error'>";
    print _("Your request failed because you do not have access to this action.");
    print "</div>";
} else {
    //Proceed!
    //Check if school year specified
    $gibbonCourseClassID = $_GET["gibbonCourseClassID"];
    $gibbonMarkbookColumnID = $_GET["gibbonMarkbookColumnID"];
    $gibbonPersonID = $_GET["gibbonPersonID"];
    $gibbonRubricID = $_GET["gibbonRubricID"];
    if ($gibbonCourseClassID == "" or $gibbonMarkbookColumnID == "" or $gibbonPersonID == "" or $gibbonRubricID == "") {
        print "<div class='error'>";
        print _("You have not specified one or more required parameters.");
        print "</div>";
    } else {
        $roleCategory = getRoleCategory($_SESSION[$guid]["gibbonRoleIDPrimary"], $connection2);
        $contextDBTableGibbonRubricIDField = "gibbonRubricID";
        if ($_GET["type"] == "attainment") {
            $contextDBTableGibbonRubricIDField = "gibbonRubricIDAttainment";
        } else {
            if ($_GET["type"] == "effort") {
                $contextDBTableGibbonRubricIDField = "gibbonRubricIDEffort";
            }
        }
        try {
            if ($roleCategory == "Staff") {
                $data = array("gibbonCourseClassID" => $gibbonCourseClassID);
                $sql = "SELECT gibbonCourse.nameShort AS course, gibbonCourseClass.nameShort AS class, gibbonCourseClass.gibbonCourseClassID FROM gibbonCourse, gibbonCourseClass WHERE gibbonCourse.gibbonCourseID=gibbonCourseClass.gibbonCourseID AND gibbonCourseClass.gibbonCourseClassID=:gibbonCourseClassID ORDER BY course, class";
            } else {
                if ($roleCategory == "Student") {
                    $data = array("gibbonPersonID" => $gibbonPersonID, "gibbonCourseClassID" => $gibbonCourseClassID);