query ("SELECT id FROM {prefix}ticket WHERE id=$newId")) { $newId = 0; } Setting::set ("ticket/user/".User::get ('id'), "selected ticket", $newId, false); Base::session_open (); $_SESSION['cms']['ticket']['selected'] = $newId; Base::session_close (); } return $_SESSION['cms']['ticket']['selected']; } /** * Prüft ob Tickets verwendet werden sollen * * \return true wenn Tickets verwendet werden sollen, sonst false */ public static function useTickets () { return Setting::get ("system", "useTickets", 0); // return Setting::get ("system", "useTickets", 0) || (self::getEditRight () & Base::MODE_EDIT); } /** * Prüft welche Rechte der User an dem aktiven Ticket hat. \n * Jeder User darf die von Ihm erstellten Tickets Editieren. \n * Komplette Tickets onlinestellen dürfen nur User die der Gruppe 'ticket+' angehören * * \return Rechte des Users am Ticket */ public static function getEditRight ($id=0) { $id = ($id) ? $id : self::$id; $db = new Database (); $mode = Base::MODE_NONE; $mode = User::getEditRight ("ticket"); if ($id > 0 && Base::is_int ($id) && $db->query ("SELECT user_id FROM {prefix}ticket WHERE id=$id") && $db['user_id'] == User::get ('id')) { $mode |= Base::MODE_EDIT; } return $mode; } /** * Gibt Daten zum angegebenem Ticket zurück * * \param id ID des Tickets * * \return array mit Ticket Daten */ public static function get ($id) { $db = new Database (); if ($id && Base::is_int ($id) && $db->query ("SELECT * FROM {prefix}ticket WHERE id=$id")) { return $db[0]; } return array (); } /** * Gibt den Namen des angegebenem Ticket zurück * * \param id ID des Tickets * * \return Name des Tickets */ public static function getName ($id) { $db = new Database (); if ($id && Base::is_int ($id) && $db->query ("SELECT name FROM {prefix}ticket WHERE id=$id")) { return $db['name']; } return ""; } /** * Gibt die ID des Timers zurück, der auf dieses Ticket gesetzt ist, oder einen Leerstring * * \param id ID des Tickets * * \return ID des gesetzten Timers */ public static function getTimer ($id=0) { $id = ($id) ? $id : self::id (); $db = new Database (); if ($id && Base::is_int ($id) && $db->query ("SELECT timer_id FROM {prefix}ticket WHERE id=$id")) { return $db['timer_id']; } return ""; } /** * Gibt die ID Tickets zurück das den gegebenen Timer gesetzt hat * * \param id ID des Timers * * \return ID des Tickets wenn der Timer gesetzt ist, sonst 0 */ public static function getIdByTimer ($id) { $db = new Database (); if ($id && Base::is_int ($id) && $db->query ("SELECT id FROM {prefix}ticket WHERE timer_id=$id")) { return $db['id']; } return 0; } /** * Gibt eine Liste der verfügbaren Tickets zurück * * \param erased wenn true dann werden auch gelöschte Tickets geliefert * * \return array mit Tickets */ public static function getList ($erased=false) { $db = new Database (); if ($db->query ("SELECT ticket.*, timer.time FROM {prefix}ticket ticket LEFT JOIN {prefix}timer timer ON timer_id=timer.id WHERE '$erased'!='' OR !(ticket.status&".Base::STATUS_ERASED.") ORDER BY id")) { return $db->result; } return array (); } /** * Setzt den Namen eines Tickets oder erstellt es wenn keine ID angegeben wurde * * \param id ID des Tickets das geändert werden soll, oder 0 wenn ein neues erstellt werden soll * \param name zu setztender Name des Tickets * * \return ID des Tickets */ public static function setName ($id, $name) { $name = Database::escape ($name); $db = new Database (); if (Base::is_int ($id) && !$db->query ("SELECT id FROM {prefix}ticket WHERE id=".self::SERVER_ID." AND name='$name'")) { if (!$id || !$db->query ("SELECT id FROM {prefix}ticket WHERE id=$id")) { $db->query ("INSERT INTO {prefix}ticket () VALUES ()"); $id = $db->rowid; } $history = new History ("ticket set"); $history->storeOld ($id, "ticket", false); $db->query ("UPDATE {prefix}ticket SET name='$name' WHERE id=$id"); $history->store ($id, "ticket", false); } return $id; } /** * Setzt einen online Timer auf das Ticket * * \param id ID des Tickets * \param timer_id ID des Timers der gesetzt werden soll */ public static function setTimer ($id, $timer_id) { $timer_id = Database::escape ($timer_id); $db = new Database (); if ($id && Base::is_int ($id) && Base::is_int ($timer_id)) { $history = new History ("ticket set timer"); $history->storeOld ($id, "ticket", false); $db->query ("UPDATE {prefix}ticket SET timer_id=$timer_id WHERE id=$id"); $history->store ($id, "ticket", false); } } /** * Löscht das angegebene Ticket * * \param id ID des Tickets */ public static function del ($id) { $db = new Database (); if ($id && Base::is_int ($id) && $id != self::SERVER_ID) { $history = new History ("ticket delete"); $history->storeOld ($id, "ticket", false); $db->query ("UPDATE {prefix}ticket SET status='".Base::STATUS_ERASED."' WHERE id=$id"); $history->store ($id, "ticket", false); } } } ?>