Example #1
0
function sidebarExtra($guid, $connection2)
{
    $output = "";
    $output .= "<h2>";
    $output .= _("Resource Tags");
    $output .= "</h2>";
    $output .= getTagCloud($guid, $connection2);
    return $output;
}
Example #2
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>";
    }
}