"IRC Meeting", "IRC Brainstorm", "Poll Deadline", "Feature Release", "Blog Post", "Announcement", "Featured Album", "Product Release", "Staff Picks", "Forum Brainstorm", "Forum Discussion", "Promotion"); public static $Importances = array(1 => "Critical", "Important", "Average", "Meh"); public static $Colors = array( "Critical" => "red", "Important" => "yellow", "Average" => "green", "Meh" => "blue"); public static $Teams = array( 0 => "Everyone", 1 => "Staff" ); public static function can_view() { return check_perms('users_mod') ; } private static function get_teams_query() { $Teams = array(0); $IsMod = check_perms("users_mod"); if ($IsMod) { $Teams[] = 1; } return "Team IN (" . implode(",", $Teams) . ") "; } public static function get_events($Month, $Year) { if (empty($Month) || empty($Year)) { $Date = getdate(); $Month = $Date['mon']; $Year = $Date['year']; } $Month = (int) $Month; $Year = (int) $Year; $TeamsSQL = self::get_teams_query(); $QueryID = G::$DB->get_query_id(); G::$DB->query(" SELECT ID, Team, Title, Category, Importance, DAY(StartDate) AS StartDay, DAY(EndDate) AS EndDay FROM calendar WHERE MONTH(StartDate) = '$Month' AND YEAR(StartDate) = '$Year' AND $TeamsSQL"); $Events = G::$DB->to_array(); G::$DB->set_query_id($QueryID); return $Events; } public static function get_event($ID) { $ID = (int) $ID; if (empty($ID)) { error("Invalid ID"); } $TeamsSQL = self::get_teams_query(); $QueryID = G::$DB->get_query_id(); G::$DB->query(" SELECT ID, Team, Title, Body, Category, Importance, AddedBy, StartDate, EndDate FROM calendar WHERE ID = '$ID' AND $TeamsSQL"); $Event = G::$DB->next_record(MYSQLI_ASSOC); G::$DB->set_query_id($QueryID); return $Event; } public static function create_event($Title, $Body, $Category, $Importance, $Team, $UserID, $StartDate, $EndDate = null) { if (empty($Title) || empty($Body) || !is_number($Category) || !is_number($Importance) || !is_number($Team) || empty($StartDate)) { error("Error adding event"); } $Title = db_string($Title); $Body = db_string($Body); $Category = (int) $Category; $Importance = (int) $Importance; $UserID = (int) $UserID; $Team = (int) $Team; $StartDate = db_string($StartDate); $EndDate = db_string($EndDate); // $QueryID = G::$DB->get_query_id(); G::$DB->query(" INSERT INTO calendar (Title, Body, Category, Importance, Team, StartDate, EndDate, AddedBy) VALUES ('$Title', '$Body', '$Category', '$Importance', '$Team', '$StartDate', '$EndDate', '$UserID')"); // G::$DB->set_query_id($QueryID); } public static function update_event($ID, $Title, $Body, $Category, $Importance, $Team, $StartDate, $EndDate = null) { if (!is_number($ID) || empty($Title) || empty($Body) || !is_number($Category) || !is_number($Importance) || !is_number($Team) || empty($StartDate)) { error("Error updating event"); } $ID = (int) $ID; $Title = db_string($Title); $Body = db_string($Body); $Category = (int) $Category; $Importance = (int) $Importance; $Team = (int) $Team; $StartDate = db_string($StartDate); $EndDate = db_string($EndDate); $QueryID = G::$DB->get_query_id(); G::$DB->query(" UPDATE calendar SET Title = '$Title', Body = '$Body', Category = '$Category', Importance = '$Importance', Team = '$Team', StartDate = '$StartDate', EndDate = '$EndDate' WHERE ID = '$ID'"); G::$DB->set_query_id($QueryID); } public static function remove_event($ID) { $ID = (int) $ID; if (!empty($ID)) { $QueryID = G::$DB->get_query_id(); G::$DB->query("DELETE FROM calendar WHERE ID = '$ID'"); G::$DB->set_query_id($QueryID); } } }