mirror of
https://github.com/WhatCD/Gazelle.git
synced 2024-12-15 11:56:25 +00:00
141 lines
4.0 KiB
PHP
141 lines
4.0 KiB
PHP
<?
|
|
class Calendar {
|
|
public static $Categories = array(1 => "IRC Meeting", "IRC Brainstorm", "Poll Deadline", "Feature Release", "Blog Post", "Announcement", "Featured Album", "Product Release", "Staff Picks", "Forum Brainstorm", "Forum Discussion", "Promotion", "Absence", "Task");
|
|
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);
|
|
send_irc("PRIVMSG " . ADMIN_CHAN . " :!mod New calendar event created! Event: $Title; Starts: $StartDate; Ends: $EndDate.");
|
|
}
|
|
|
|
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);
|
|
}
|
|
}
|
|
|
|
}
|