Esempio n. 1
0
 public function listEntityAction(CMSEntity $cmsEntity, Application $app, Request $request)
 {
     $pageNumber = $request->query->has('page') ? $request->query->get('page') : 1;
     $limit = $request->query->has('limit') ? $request->query->get('limit') : $cmsEntity->getDefaultPageLimit();
     $qb = $app['em']->getRepository($cmsEntity->getClass())->createQueryBuilder('e');
     if ($limit && $limit >= 0) {
         $qb->setMaxResults($limit);
         $qb->setFirstResult(($pageNumber - 1) * $limit);
     } else {
         $limit = null;
         $pageNumber = 1;
     }
     $paginator = new Paginator($qb);
     $entities = [];
     foreach ($paginator as $entity) {
         $entities[] = $entity;
     }
     $resultCount = count($paginator);
     $totalPages = $limit && $limit <= $resultCount ? ceil($resultCount / $limit) : 1;
     return $app->render('admin/list.html.twig', ['columns' => $cmsEntity->getColumns(), 'items' => $entities, 'cmsEntity' => $cmsEntity, 'heading' => ucwords($cmsEntity), 'resultCount' => $resultCount, 'currentPage' => $pageNumber, 'limit' => $limit, 'totalPages' => $totalPages]);
 }