Advertisement
Guest User

SupportController.php

a guest
Jul 22nd, 2015
274
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 12.71 KB | None | 0 0
  1. <?php
  2.  
  3. /**
  4.  * Description of SupportController
  5.  *
  6.  * @author Adrian
  7.  */
  8. class SupportController {
  9.     private $user, $app, $request, $sampserver;
  10.    
  11.     public function __construct() {
  12.         $this->user = App::getUser();
  13.         $this->app = App::getApp();
  14.         $this->request = App::getRequest();
  15.         $this->sampserver = App::getSAMP();
  16.        
  17.         if($this->user->isLoggedIn() != true) {
  18.             return redirect(App::SECURE_PATH . $_SERVER["SERVER_NAME"] . App::BASE_PATH . '/auth/login');
  19.         }
  20.        
  21.         $this->app->assign('user', $this->user->data());
  22.         $this->app->assign('samp', $this->sampserver);
  23.         $this->app->assign('request', $this->request);
  24.         if($this->sampserver->connect() != false) {
  25.             $this->app->assign('samp_info', $this->sampserver->getInfo());
  26.         }
  27.        
  28.         $query = App::getQBuilder()->flush()->select()->from("YRP_Fraktionen");
  29.         $factions = App::getDatabase()->query($query)->result();
  30.        
  31.         $this->app->assign('_factions', $factions);
  32.     }
  33.    
  34.     public function index() {
  35.         $query = App::getQBuilder()->flush()->select()->from("UCP_Support_Tickets")->where("ownerID = :id");
  36.         $tickets = App::getDatabase()->query($query, array(":id" => $this->user->data()->id))->result();
  37.        
  38.         return view('support.index', compact('tickets'));
  39.     }
  40.    
  41.     public function showTicket($id) {
  42.         $query = App::getQBuilder()->flush()->select()->from("UCP_Support_Tickets")->where("id = :id")->limit(1);
  43.         $ticket = App::getDatabase()->query($query, array(":id" => $id))->result(0);
  44.        
  45.         if($ticket->ownerID != $this->user->data()->id) {
  46.             return redirect(App::SECURE_PATH . $_SERVER["SERVER_NAME"] . App::BASE_PATH . '/auth/login');
  47.         }
  48.        
  49.         $query = App::getQBuilder()->flush()->select()->from("UCP_Support_Tickets_Message")->where("ticketID = :id")->orderBy("time", "ASC");
  50.         $messages = App::getDatabase()->query($query, array(":id" => $id))->result();
  51.        
  52.         return view('support.ticket', compact('ticket', 'messages'));
  53.     }
  54.    
  55.     public function createTicket() {
  56.         return view('support.create');
  57.     }
  58.    
  59.     public function postCreateTicket() {
  60.         if($this->request->exists() == false || empty($_POST["titel"]) || empty($_POST["message"])) {
  61.             Session::flash('_errors', array("Es wurden keine Daten empfangen"));
  62.             return redirect(App::SECURE_PATH . $_SERVER["SERVER_NAME"] . App::BASE_PATH . '/account/support/ticket/create');
  63.         }
  64.        
  65.         $query = App::getQBuilder()->flush()->insertInto("UCP_Support_Tickets", array("titel" => ":titel", "ownerID" => ":id"));
  66.         $insertid = App::getDatabase()->query($query, array(":titel" => $_POST["titel"], ":id" => $this->user->data()->id))->insertID();
  67.        
  68.         $query = App::getQBuilder()->flush()->insertInto("UCP_Support_Tickets_Message", array("ticketID" => ":tid", "userID" => ":uid", "userName" => ":uname", "message" => ":msg", "time" => ":time"));
  69.         App::getDatabase()->query($query, array(":tid" => $insertid, ":uid" => $this->user->data()->id, ":uname" => $this->user->data()->Vorname . "_" . $this->user->data()->Nachname, ":msg" => $_POST["message"], ":time" => time()));
  70.        
  71.         Session::flash('_success', array("<strong>Erfolg!</strong> Dein Ticket wurde erfolgreich erstellt!"));
  72.         return redirect(App::SECURE_PATH . $_SERVER["SERVER_NAME"] . App::BASE_PATH . '/account/support');
  73.     }
  74.    
  75.     public function deleteTicket() {
  76.         if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest' && $this->request->exists() == true) {
  77.             $id = $this->request->input('id');
  78.             $query = App::getQBuilder()->flush()->select()->from("UCP_Support_Tickets")->where("id = :id")->limit(1);
  79.             $ticket = App::getDatabase()->query($query, array(":id" => $id))->result(0);
  80.            
  81.             if($ticket->ownerID != $this->user->data()->id && empty($_POST["admin"])) {
  82.                 $array["success"] = false;
  83.                 $array["message"] = "<strong>Fehler!</strong> Es fehlen benötigte Rechte.";
  84.                 echo json_encode($array);
  85.                 return false;
  86.             } else if(!empty($_POST["admin"]) && $this->user->data()->Adminlevel == 0) {
  87.                 $array["success"] = false;
  88.                 $array["message"] = "<strong>Fehler!</strong> Es fehlen benötigte Rechte.";
  89.                 echo json_encode($array);
  90.                 return false;
  91.             }
  92.            
  93.             $query = App::getQBuilder()->flush()->deleteFrom("UCP_Support_Tickets")->where("id = :id")->limit(1);
  94.             App::getDatabase()->query($query, array(":id" => $id))->result(0);
  95.            
  96.             $array["success"] = true;
  97.             $array["message"] = "<strong>Erfolg!</strong> Du hast das Ticket erfolgreich gelöscht.";
  98.             echo json_encode($array);
  99.             return true;
  100.         }
  101.        
  102.         $array["success"] = false;
  103.         $array["message"] = "<strong>Fehler!</strong> Ein Fehler ist aufgetreten.";
  104.         echo json_encode($array);
  105.         return false;
  106.     }
  107.    
  108.     public function createMessage() {
  109.         if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest' && $this->request->exists() == true) {
  110.             $id = $this->request->input('id');
  111.             $query = App::getQBuilder()->flush()->select()->from("UCP_Support_Tickets")->where("id = :id")->limit(1);
  112.             $ticket = App::getDatabase()->query($query, array(":id" => $id))->result(0);
  113.            
  114.             if($ticket->ownerID != $this->user->data()->id) {
  115.                 $array["success"] = false;
  116.                 $array["message"] = "<strong>Fehler!</strong> Es fehlen benötigte Rechte.";
  117.                 echo json_encode($array);
  118.                 return false;
  119.             }
  120.            
  121.             if($this->request->input('message') == "") {
  122.                 $array["success"] = false;
  123.                 $array["message"] = "<strong>Fehler!</strong> Es wurde keine Nachricht angegeben.";
  124.                 echo json_encode($array);
  125.                 return false;
  126.             }
  127.            
  128.             $query = App::getQBuilder()->flush()->insertInto(
  129.                     "UCP_Support_Tickets_Message",
  130.                     array("ticketID" => ":tid", "userID" => ":uid", "userName" => ":uname", "message" => ":txt", "time" => ":time")
  131.             );
  132.             App::getDatabase()->query($query, array(
  133.                 ":tid" => $id,
  134.                 ":uid" => $this->user->data()->id,
  135.                 ":uname" => $this->user->data()->Vorname . "_" . $this->user->data()->Nachname,
  136.                 ":txt" => $this->request->input('message'),
  137.                 ":time" => time()
  138.             ));
  139.            
  140.             $array["success"] = true;
  141.             $array["message"] = "<strong>Erfolg!</strong> Die Nachricht wurde erfolgreich hinzugefügt.";
  142.             echo json_encode($array);
  143.             return false;
  144.         }
  145.        
  146.         $array["success"] = false;
  147.         $array["message"] = "<strong>Fehler!</strong> Ein Fehler ist aufgetreten.";
  148.         echo json_encode($array);
  149.         return false;
  150.     }
  151.    
  152.     public function adminSupport() {
  153.         if(isset($_GET["page"])) {
  154.             $page = $_GET["page"];
  155.         } else {
  156.             $page = 1;
  157.         }
  158.        
  159.         $status = -1;
  160.         if(isset($_GET["state"]))
  161.             $status = $_GET["state"];
  162.        
  163.         if($status == -1) {
  164.             $query = App::getQBuilder()->flush()->select()->from("UCP_Support_Tickets");
  165.         } else {
  166.             $query = App::getQBuilder()->flush()->select()->from("UCP_Support_Tickets")->where("status = " . $status);
  167.         }
  168.         $result = App::getDatabase()->query($query);
  169.        
  170.         $ticket_data = new stdClass();
  171.         $ticket_data->count = $result->count();
  172.         $ticket_data->last = ceil($ticket_data->count / 15);
  173.        
  174.         if($status == -1) {
  175.             $query = App::getQBuilder()->flush()->select()->from("UCP_Support_Tickets")->limit(($page - 1)*15, 15);
  176.         } else {
  177.             $query = App::getQBuilder()->flush()->select()->from("UCP_Support_Tickets")->where("status = " . $status)->limit(($page - 1)*15, 15);
  178.         }
  179.         $tickets = App::getDatabase()->query($query)->result();
  180.        
  181.         return view('admin.support.index', compact('tickets', 'ticket_data', 'page'));
  182.     }
  183.    
  184.     public function adminTicket($id) {
  185.         $query = App::getQBuilder()->flush()->select()->from("UCP_Support_Tickets")->where("id = :id")->limit(1);
  186.         $ticket = App::getDatabase()->query($query, array(":id" => $id))->result(0);
  187.        
  188.         $query = App::getQBuilder()->flush()->select()->from("UCP_Support_Tickets_Message")->where("ticketID = :id");
  189.         $messages = App::getDatabase()->query($query, array(":id" => $id))->result();
  190.        
  191.         return view('admin.support.ticket', compact('ticket', 'messages'));
  192.     }
  193.    
  194.     public function adminTicketMessage() {
  195.         if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest' && $this->request->exists() == true) {
  196.             $id = $this->request->input('id');
  197.            
  198.             if($this->user->data()->Adminlevel == 0) {
  199.                 $array["success"] = false;
  200.                 $array["message"] = "<strong>Fehler!</strong> Es fehlen benötigte Rechte.";
  201.                 echo json_encode($array);
  202.                 return false;
  203.             }
  204.            
  205.             if($this->request->input('message') == "") {
  206.                 $array["success"] = false;
  207.                 $array["message"] = "<strong>Fehler!</strong> Es wurde keine Nachricht angegeben.";
  208.                 echo json_encode($array);
  209.                 return false;
  210.             }
  211.            
  212.             $query = App::getQBuilder()->flush()->insertInto("UCP_Support_Tickets_Message", array("ticketID" => ":tid", "adminID" => ":uid", "userName" => ":uname", "message" => ":txt", "time" => ":time"));
  213.             App::getDatabase()->query($query, array(
  214.                 ":tid" => $id,
  215.                 ":uid" => $this->user->data()->id,
  216.                 ":uname" => $this->user->data()->Vorname . "_" . $this->user->data()->Nachname,
  217.                 ":txt" => $this->request->input('message'),
  218.                 ":time" => time()
  219.             ));
  220.            
  221.             $array["success"] = true;
  222.             $array["message"] = "<strong>Erfolg!</strong> Die Nachricht wurde erfolgreich hinzugefügt.";
  223.             echo json_encode($array);
  224.             return false;
  225.         }
  226.        
  227.         $array["success"] = false;
  228.         $array["message"] = "<strong>Fehler!</strong> Ein Fehler ist aufgetreten.";
  229.         echo json_encode($array);
  230.         return false;
  231.     }
  232.    
  233.     public function adminEditTicketStatus() {
  234.         if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest' && $this->request->exists() == true) {
  235.             $id = $this->request->input('id');
  236.             $status = $this->request->input('status');
  237.            
  238.             if($this->user->data()->Adminlevel == 0) {
  239.                 $array["success"] = false;
  240.                 $array["message"] = "<strong>Fehler!</strong> Es fehlen benötigte Rechte.";
  241.                 echo json_encode($array);
  242.                 return false;
  243.             }
  244.            
  245.             $query = App::getQBuilder()->flush()->update("UCP_Support_Tickets", array("status" => $status))->where("id = :id");
  246.             App::getDatabase()->query($query, array(":id" => $id));
  247.            
  248.             switch($status) {
  249.                 case 0:
  250.                     $array["message"] = "<strong>Erfolg!</strong> Das Ticket wurde geöffnet.";
  251.                     break;
  252.                 case 1:
  253.                     $array["message"] = "<strong>Erfolg!</strong> Das Ticket wurde 'In Bearbeitung' gesetzt.";
  254.                     break;
  255.                 case 2:
  256.                     $array["message"] = "<strong>Erfolg!</strong> Das Ticket wurde auf 'Wartend' gesetzt.";
  257.                     break;
  258.                 case 3:
  259.                     $array["message"] = "<strong>Erfolg!</strong> Das Ticket wurde geschlossen.";
  260.                     break;
  261.             }
  262.            
  263.             $array["success"] = true;
  264.             echo json_encode($array);
  265.             return false;
  266.         }
  267.        
  268.         $array["success"] = false;
  269.         $array["message"] = "<strong>Fehler!</strong> Ein Fehler ist aufgetreten.";
  270.         echo json_encode($array);
  271.         return false;
  272.     }
  273. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement