query ("SELECT * FROM {prefix}timer WHERE id=$id")) { return $db[0]; } return array (); } /** * Liefert alle verfügbaren Timer, oder Timer die im gegebenem Ticket verwendet wurden * * \param ticket ID des Tickets * * \return array mit verfügbaren Timern (id, time) */ public static function getList ($ticket=0) { $ticket = Base::is_int ($ticket) ? $ticket : 0; $db = new Database (); if ($db->query ("SELECT id, time FROM {prefix}timer WHERE !(status&".Base::STATUS_ERASED.") && ($ticket=0 OR ticket_id=$ticket OR ticket_id=".Ticket::SERVER_ID." OR ticket_id=".Ticket::selected ().") ORDER BY time")) { return $db->result; } return array (); } /** * Liefert alle Timer die abgelaufen sind, dessen Aktion also ausgeführt werden muss * * \return array mit abgelaufenen Timern (id) */ public static function getExpiredList () { $db = new Database (); if ($db->query ("SELECT id FROM {prefix}timer WHERE !(status&".Base::STATUS_ERASED.") AND timeresult; } return array (); } /** * Setz einen Timer oder aktualesiert einen wenn eine ID angegeben wurde * * \param id ID des Timers * \param time Zeit die gesetzt werden soll * \param ticket Ticket unter dem der Timer gesett wird * \param with_ticket wenn true, dann ist der Timer nur für das angegebene Ticket verfügbar * * \return ID des Timers */ public static function setTime ($id, $time, $ticket=0, $with_ticket=true) { $id = Database::escape ($id); $time = Database::escape ($time); $ticket = Base::is_int ($ticket) ? $ticket : 0; $db = new Database (); if (preg_match ("/^\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d$/", $time)) { if (!$id || !Base::is_int ($id) || !$db->query ("SELECT id FROM {prefix}timer WHERE id=$id")) { $db->query ("INSERT INTO {prefix}timer (status) VALUES (".Base::STATUS_ERASED.")"); $id = $db->rowid; } $history = new History ("timer set"); $history->storeOld ($id, "timer", $with_ticket); $db->query ("UPDATE {prefix}timer SET time='$time', ticket_id=$ticket, status=".Base::STATUS_ONLINE." WHERE id=$id"); $history->store ($id, "timer", $with_ticket); return $id; } return false; } /** * Löscht einen Timer * * \param id ID des zu löschenden Timers */ public static function del ($id) { $id = Database::escape ($id); $db = new Database (); $history = new History ("timer delete"); $history->storeOld ($id, "timer"); $db->query ("UPDATE {prefix}timer SET status=".Base::STATUS_ERASED." WHERE id=$id"); $history->store ($id, "timer"); } } ?>