Advertisement
Guest User

Untitled

a guest
Sep 26th, 2016
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.94 KB | None | 0 0
  1.     /**
  2.      * @Route("/list/{type}/{page}/{sort}/{order}", defaults={"page" = 1, "sort" = "id", "order" = "desc", "type" = "all"}
  3.      *     , name="ticket_list", requirements={ "sort": "id|auteur|date|statut|categorie|assignement",
  4.      *     "order": "asc|desc", "type": "all|closed"})
  5.      * @ParamConverter("adapter", class="TicketBundle:Tickets", options={
  6.      *     "repository_method" = "paginatorAll",
  7.      *     "mapping"={"sort": "sort", "order": "order", "type": "type"},
  8.      *     "map_method_signature" = true
  9.      *     })
  10.      * @Security("has_role('ROLE_MODERATEUR')")
  11.      * @param string $type
  12.      * @param int $page
  13.      * @param string $sort
  14.      * @param string $order
  15.      * @param AdapterInterface $adapter
  16.      * @return Response
  17.      */
  18.     public function allTicketsAction($type, $page, $sort, $order, AdapterInterface $adapter)
  19.     {
  20.         $order = strtolower($order);
  21.         $opposit = ["desc" => "asc", "asc" => "desc"];
  22.         $criteras = ['id', 'auteur', 'date', "statut", "categorie", "assignement"];
  23.  
  24.         try {
  25.             $pagerfanta = new Pagerfanta($adapter);
  26.             $tickets = $pagerfanta->setMaxPerPage(50)->setCurrentPage($page)->getCurrentPageResults();
  27.         } catch (NotValidCurrentPageException $e) {
  28.             return $this->redirectToRoute("ticket_list", ['page' => 1, 'sort' => $sort, 'order' => $order]);
  29.         }
  30.  
  31.         $twigArray = ['tickets' => $tickets, 'pager' => $pagerfanta];
  32.         $twigArray['parameters'] = ['page' => $page, 'sort' => $sort, 'order' => $order];
  33.  
  34.         foreach ($criteras as $critera) {
  35.             $order = $sort == $critera ? $opposit[$order] : "desc";
  36.             $params = ["page" => $page, "sort" => $critera, "order" => $order, "type" => $type];
  37.             $twigArray['routes'][$critera] = $this->generateUrl("ticket_list", $params);
  38.         }
  39.  
  40.         return $this->render("TicketBundle:Default:ticket_list.html.twig", $twigArray);
  41.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement