Пример #1
0
 public function indexAction(Request $req, Application $app)
 {
     // Check if user is an logged in and an Admin
     if (!$this->userHasAccess($app)) {
         return $app->redirect($app['url'] . '/dashboard');
     }
     $admin_user_id = $app['sentry']->getUser()->getId();
     $mapper = $app['spot']->mapper('OpenCFP\\Entity\\Talk');
     $pager_formatted_talks = $mapper->getAllPagerFormatted($admin_user_id);
     // Set up our page stuff
     $adapter = new \Pagerfanta\Adapter\ArrayAdapter($pager_formatted_talks);
     $pagerfanta = new \Pagerfanta\Pagerfanta($adapter);
     $pagerfanta->setMaxPerPage(20);
     $pagerfanta->getNbResults();
     if ($req->get('page') !== null) {
         $pagerfanta->setCurrentPage($req->get('page'));
     }
     // Create our default view for the navigation options
     $routeGenerator = function ($page) {
         return '/admin/talks?page=' . $page;
     };
     $view = new TwitterBootstrap3View();
     $pagination = $view->render($pagerfanta, $routeGenerator, array('proximity' => 3));
     $template = $app['twig']->loadTemplate('admin/talks/index.twig');
     $templateData = array('pagination' => $pagination, 'talks' => $pagerfanta, 'page' => $pagerfanta->getCurrentPage(), 'current_page' => $req->getRequestUri(), 'totalRecords' => count($pager_formatted_talks));
     return $template->render($templateData);
 }
Пример #2
0
 public function indexAction(Request $req)
 {
     $rawSpeakers = $this->app['spot']->mapper(\OpenCFP\Domain\Entity\User::class)->all()->order(['first_name' => 'ASC'])->toArray();
     $airports = $this->service(AirportInformationDatabase::class);
     $rawSpeakers = array_map(function ($speaker) use($airports) {
         try {
             $airport = $airports->withCode($speaker['airport']);
             $speaker['airport'] = ['code' => $airport->code, 'name' => $airport->name, 'country' => $airport->country];
         } catch (\Exception $e) {
             $speaker['airport'] = ['code' => null, 'name' => null, 'country' => null];
         }
         return $speaker;
     }, $rawSpeakers);
     // Set up our page stuff
     $adapter = new ArrayAdapter($rawSpeakers);
     $pagerfanta = new Pagerfanta($adapter);
     $pagerfanta->setMaxPerPage(20);
     $pagerfanta->getNbResults();
     if ($req->get('page') !== null) {
         $pagerfanta->setCurrentPage($req->get('page'));
     }
     // Create our default view for the navigation options
     $routeGenerator = function ($page) {
         return '/admin/speakers?page=' . $page;
     };
     $view = new TwitterBootstrap3View();
     $pagination = $view->render($pagerfanta, $routeGenerator, ['proximity' => 3]);
     $templateData = ['airport' => $this->app->config('application.airport'), 'arrival' => date('Y-m-d', $this->app->config('application.arrival')), 'departure' => date('Y-m-d', $this->app->config('application.departure')), 'pagination' => $pagination, 'speakers' => $pagerfanta, 'page' => $pagerfanta->getCurrentPage()];
     return $this->render('admin/speaker/index.twig', $templateData);
 }
Пример #3
0
 public function indexAction(Request $req)
 {
     if (!$this->userHasAccess($this->app)) {
         return $this->redirectTo('login');
     }
     $admin_user_id = $this->app['sentry']->getUser()->getId();
     $options = ['order_by' => $req->get('order_by'), 'sort' => $req->get('sort')];
     $pager_formatted_talks = $this->getFilteredTalks($req->get('filter'), $admin_user_id, $options);
     $per_page = (int) $req->get('per_page') ?: 20;
     // Set up our page stuff
     $adapter = new \Pagerfanta\Adapter\ArrayAdapter($pager_formatted_talks);
     $pagerfanta = new \Pagerfanta\Pagerfanta($adapter);
     $pagerfanta->setMaxPerPage($per_page);
     $pagerfanta->getNbResults();
     if ($req->get('page') !== null) {
         $pagerfanta->setCurrentPage($req->get('page'));
     }
     $queryParams = $req->query->all();
     // Create our default view for the navigation options
     $routeGenerator = function ($page) use($queryParams) {
         $queryParams['page'] = $page;
         return '/admin/talks?' . http_build_query($queryParams);
     };
     $view = new TwitterBootstrap3View();
     $pagination = $view->render($pagerfanta, $routeGenerator, array('proximity' => 3));
     $templateData = ['pagination' => $pagination, 'talks' => $pagerfanta, 'page' => $pagerfanta->getCurrentPage(), 'current_page' => $req->getRequestUri(), 'totalRecords' => count($pager_formatted_talks), 'filter' => $req->get('filter'), 'per_page' => $per_page, 'sort' => $req->get('sort'), 'order_by' => $req->get('order_by')];
     return $this->render('admin/talks/index.twig', $templateData);
 }
Пример #4
0
 public function indexAction(Request $req, Application $app)
 {
     // Check if user is an logged in and an Admin
     if (!$this->userHasAccess($app)) {
         return $app->redirect($app['url'] . '/dashboard');
     }
     $adminGroup = $app['sentry']->getGroupProvider()->findByName('admin');
     $adminUsers = $app['sentry']->findAllUsersInGroup($adminGroup);
     // Set up our page stuff
     $adapter = new \Pagerfanta\Adapter\ArrayAdapter($adminUsers->toArray());
     $pagerfanta = new \Pagerfanta\Pagerfanta($adapter);
     $pagerfanta->setMaxPerPage(20);
     $pagerfanta->getNbResults();
     if ($req->get('page') !== null) {
         $pagerfanta->setCurrentPage($req->get('page'));
     }
     // Create our default view for the navigation options
     $routeGenerator = function ($page) {
         return '/admin/admins?page=' . $page;
     };
     $view = new TwitterBootstrap3View();
     $pagination = $view->render($pagerfanta, $routeGenerator, array('proximity' => 3));
     $template = $app['twig']->loadTemplate('admin/admins/index.twig');
     $templateData = array('pagination' => $pagination, 'speakers' => $pagerfanta, 'page' => $pagerfanta->getCurrentPage());
     return $template->render($templateData);
 }
Пример #5
0
 public function indexAction(Request $req)
 {
     if (!$this->userHasAccess()) {
         return $this->redirectTo('dashboard');
     }
     /* @var Sentry $sentry */
     $sentry = $this->service('sentry');
     $user = $sentry->getUser();
     /* @var Locator $spot */
     $spot = $this->service('spot');
     // Get list of talks where majority of admins 'favorited' them
     $mapper = $spot->mapper(\OpenCFP\Domain\Entity\Talk::class);
     $options = ['order_by' => $req->get('order_by'), 'sort' => $req->get('sort')];
     $per_page = (int) $req->get('per_page') ?: 20;
     $talks = $mapper->getTopRatedByUserId($user->getId(), $options);
     // Set up our page stuff
     $adapter = new \Pagerfanta\Adapter\ArrayAdapter($talks);
     $pagerfanta = new \Pagerfanta\Pagerfanta($adapter);
     $pagerfanta->setMaxPerPage($per_page);
     $pagerfanta->getNbResults();
     if ($req->get('page') !== null) {
         $pagerfanta->setCurrentPage($req->get('page'));
     }
     $queryParams = $req->query->all();
     // Create our default view for the navigation options
     $routeGenerator = function ($page) use($queryParams) {
         $queryParams['page'] = $page;
         return '/admin/review?' . http_build_query($queryParams);
     };
     $view = new TwitterBootstrap3View();
     $pagination = $view->render($pagerfanta, $routeGenerator, ['proximity' => 3]);
     $template_data = ['pagination' => $pagination, 'talks' => $pagerfanta, 'page' => $pagerfanta->getCurrentPage(), 'totalRecords' => count($talks), 'per_page' => $per_page, 'filter' => $req->get('filter'), 'sort' => $req->get('sort'), 'order_by' => $req->get('order_by')];
     return $this->render('admin/review/index.twig', $template_data);
 }
Пример #6
0
 public function indexAction(Request $req)
 {
     if (!$this->userHasAccess()) {
         return $this->redirectTo('dashboard');
     }
     /* @var Sentry $sentry */
     $sentry = $this->service('sentry');
     $adminGroup = $sentry->getGroupProvider()->findByName('Admin');
     $adminUsers = $sentry->findAllUsersInGroup($adminGroup);
     // Set up our page stuff
     $adapter = new \Pagerfanta\Adapter\ArrayAdapter($adminUsers->toArray());
     $pagerfanta = new \Pagerfanta\Pagerfanta($adapter);
     $pagerfanta->setMaxPerPage(20);
     $pagerfanta->getNbResults();
     if ($req->get('page') !== null) {
         $pagerfanta->setCurrentPage($req->get('page'));
     }
     // Create our default view for the navigation options
     $routeGenerator = function ($page) {
         return '/admin/admins?page=' . $page;
     };
     $view = new TwitterBootstrap3View();
     $pagination = $view->render($pagerfanta, $routeGenerator, ['proximity' => 3]);
     $templateData = ['pagination' => $pagination, 'speakers' => $pagerfanta, 'page' => $pagerfanta->getCurrentPage()];
     return $this->render('admin/admins/index.twig', $templateData);
 }
Пример #7
0
 public function indexAction(Request $req, Application $app)
 {
     // Check if user is an logged in and an Admin
     if (!$this->userHasAccess($app)) {
         return $app->redirect($app['url'] . '/dashboard');
     }
     $rawSpeakers = $app['spot']->mapper('\\OpenCFP\\Entity\\User')->all()->order(['last_name' => 'ASC'])->toArray();
     // Set up our page stuff
     $adapter = new \Pagerfanta\Adapter\ArrayAdapter($rawSpeakers);
     $pagerfanta = new \Pagerfanta\Pagerfanta($adapter);
     $pagerfanta->setMaxPerPage(20);
     $pagerfanta->getNbResults();
     if ($req->get('page') !== null) {
         $pagerfanta->setCurrentPage($req->get('page'));
     }
     // Create our default view for the navigation options
     $routeGenerator = function ($page) {
         return '/admin/speakers?page=' . $page;
     };
     $view = new TwitterBootstrap3View();
     $pagination = $view->render($pagerfanta, $routeGenerator, array('proximity' => 3));
     $template = $app['twig']->loadTemplate('admin/speaker/index.twig');
     $templateData = array('airport' => $app['confAirport'], 'arrival' => $app['arrival'], 'departure' => $app['departure'], 'pagination' => $pagination, 'speakers' => $pagerfanta, 'page' => $pagerfanta->getCurrentPage());
     return $template->render($templateData);
 }
Пример #8
0
 private function indexAction(Request $req)
 {
     $user = $this->app['sentry']->getUser();
     // How many admins make for a majority?
     $mapper = $this->app['spot']->mapper('OpenCFP\\Domain\\Entity\\User');
     $admin_count = $mapper->all()->where(['permissions' => '{"admin":1}'])->count();
     $admin_majority = (int) ($admin_count * 0.501) + 1;
     // Get list of talks where majority of admins 'favorited' them
     $mapper = $this->app['spot']->mapper('OpenCFP\\Domain\\Entity\\Talk');
     $favorite_talks = $mapper->getAdminFavorites($user->id, $admin_majority);
     // Set up our page stuff
     $adapter = new \Pagerfanta\Adapter\ArrayAdapter($favorite_talks);
     $pagerfanta = new \Pagerfanta\Pagerfanta($adapter);
     $pagerfanta->setMaxPerPage(20);
     $pagerfanta->getNbResults();
     if ($req->get('page') !== null) {
         $pagerfanta->setCurrentPage($req->get('page'));
     }
     // Create our default view for the navigation options
     $routeGenerator = function ($page) {
         return '/admin/review?page=' . $page;
     };
     $view = new TwitterBootstrap3View();
     $pagination = $view->render($pagerfanta, $routeGenerator, array('proximity' => 3));
     $template_data = ['pagination' => $pagination, 'talks' => $pagerfanta, 'page' => $pagerfanta->getCurrentPage(), 'totalRecords' => count($favorite_talks)];
     return $this->render('admin/review/index.twig', $template_data);
 }
Пример #9
0
 /**
  * Render view for page pagination
  *
  * @param PagerfantaInterface $pagerfanta  The Pagerfanta object
  * @param function $routeGenerator  The function
  * @param array $opts  
  * @return string
  */
 public function renderPaginator($pagerfanta, $routeGenerator, $params = array())
 {
     $app = $this->app;
     $params_default = array('proximity' => $app['config']['parameters']['pagerfanta.proximity'], 'prev_message' => "<i class=\"fa fa-chevron-left\" aria-hidden=\"true\"></i> {$app['translator']->trans('previous')}", 'next_message' => "{$app['translator']->trans('next')} <i class=\"fa fa-chevron-right\" aria-hidden=\"true\"></i>");
     $params = array_replace($params_default, $params);
     //-----------------
     $view = new View\TwitterBootstrap3View();
     $html = $view->render($pagerfanta, $routeGenerator, $params);
     return $html;
 }
Пример #10
0
 public function index(Request $request, Application $app, $page)
 {
     $company = $app['orm.em']->getRepository('Orcamentos\\Model\\Company')->find($app['session']->get('companyId'));
     $users = $company->getUserCollection();
     $adapter = new DoctrineCollectionAdapter($users);
     $pagerfanta = new Pagerfanta($adapter);
     $pagerfanta->setMaxPerPage(9);
     $pagerfanta->setCurrentPage($page);
     $view = new TwitterBootstrap3View();
     $routeGenerator = function ($page) use($app) {
         return '/user/' . $page;
     };
     $htmlPagination = $view->render($pagerfanta, $routeGenerator, array());
     return $app['twig']->render('user/index.twig', array('htmlPagination' => $htmlPagination, 'pagerfanta' => $pagerfanta, 'active_page' => 'user'));
 }
Пример #11
0
 public function indexAction(Request $req)
 {
     if (!$this->userHasAccess($this->app)) {
         return $this->redirectTo('login');
     }
     $sort = ["created_at" => "DESC"];
     if ($req->get('sort') !== null) {
         switch ($req->get('sort')) {
             case "title":
                 $sort = ["title" => "ASC"];
                 break;
             case "category":
                 $sort = ["category" => "ASC", "title" => "ASC"];
                 break;
             case "type":
                 $sort = ["type" => "ASC", "category" => "ASC", "title" => "ASC"];
                 break;
         }
     }
     $admin_user_id = $this->app['sentry']->getUser()->getId();
     $mapper = $this->app['spot']->mapper('OpenCFP\\Domain\\Entity\\Talk');
     $pager_formatted_talks = $mapper->getAllPagerFormatted($admin_user_id, $sort);
     // Set up our page stuff
     $adapter = new \Pagerfanta\Adapter\ArrayAdapter($pager_formatted_talks);
     $pagerfanta = new \Pagerfanta\Pagerfanta($adapter);
     $pagerfanta->setMaxPerPage(20);
     $pagerfanta->getNbResults();
     if ($req->get('page') !== null) {
         $pagerfanta->setCurrentPage($req->get('page'));
     }
     // Create our default view for the navigation options
     $routeGenerator = function ($page) use($req) {
         $uri = '/admin/talks?page=' . $page;
         if ($req->get('sort') !== null) {
             $uri .= '&sort=' . $req->get('sort');
         }
         return $uri;
     };
     $view = new TwitterBootstrap3View();
     $pagination = $view->render($pagerfanta, $routeGenerator, array('proximity' => 3));
     $templateData = array('pagination' => $pagination, 'talks' => $pagerfanta, 'page' => $pagerfanta->getCurrentPage(), 'current_page' => $req->getRequestUri(), 'totalRecords' => count($pager_formatted_talks));
     return $this->render('admin/talks/index.twig', $templateData);
 }
Пример #12
0
 private function indexAction(Request $req)
 {
     $rawSpeakers = $this->app['spot']->mapper('OpenCFP\\Domain\\Entity\\User')->all()->order(['first_name' => 'ASC'])->toArray();
     // Set up our page stuff
     $adapter = new ArrayAdapter($rawSpeakers);
     $pagerfanta = new Pagerfanta($adapter);
     $pagerfanta->setMaxPerPage(20);
     $pagerfanta->getNbResults();
     if ($req->get('page') !== null) {
         $pagerfanta->setCurrentPage($req->get('page'));
     }
     // Create our default view for the navigation options
     $routeGenerator = function ($page) {
         return '/admin/speakers?page=' . $page;
     };
     $view = new TwitterBootstrap3View();
     $pagination = $view->render($pagerfanta, $routeGenerator, ['proximity' => 3]);
     $templateData = ['airport' => $this->app->config('application.airport'), 'arrival' => date('Y-m-d', $this->app->config('application.arrival')), 'departure' => date('Y-m-d', $this->app->config('application.departure')), 'pagination' => $pagination, 'speakers' => $pagerfanta, 'page' => $pagerfanta->getCurrentPage()];
     return $this->render('admin/speaker/index.twig', $templateData);
 }
Пример #13
0
 public function search(Request $request, Application $app, $page)
 {
     $data = $request->query->all();
     if ($data['query'] == '') {
         return $app->redirect('/project');
     }
     $data['companyId'] = $app['session']->get('companyId');
     $data = json_encode($data);
     $projectService = new ProjectService();
     $projectService->setEm($app['orm.em']);
     $query = $projectService->search($data);
     $adapter = new DoctrineORMAdapter($query);
     $pagerfanta = new Pagerfanta($adapter);
     $view = new TwitterBootstrap3View();
     $routeGenerator = function ($page) use($app) {
         return '/project/' . $page;
     };
     $pagerfanta->setCurrentPage($page);
     $htmlPagination = $view->render($pagerfanta, $routeGenerator, array());
     return $app['twig']->render('project/index.twig', array('htmlPagination' => $htmlPagination, 'pagerfanta' => $pagerfanta, 'active_page' => 'project'));
 }
Пример #14
0
 private function indexAction(Request $req)
 {
     $adminGroup = $this->app['sentry']->getGroupProvider()->findByName('Admin');
     $adminUsers = $this->app['sentry']->findAllUsersInGroup($adminGroup);
     // Set up our page stuff
     $adapter = new \Pagerfanta\Adapter\ArrayAdapter($adminUsers->toArray());
     $pagerfanta = new \Pagerfanta\Pagerfanta($adapter);
     $pagerfanta->setMaxPerPage(20);
     $pagerfanta->getNbResults();
     if ($req->get('page') !== null) {
         $pagerfanta->setCurrentPage($req->get('page'));
     }
     // Create our default view for the navigation options
     $routeGenerator = function ($page) {
         return '/admin/admins?page=' . $page;
     };
     $view = new TwitterBootstrap3View();
     $pagination = $view->render($pagerfanta, $routeGenerator, array('proximity' => 3));
     $templateData = array('pagination' => $pagination, 'speakers' => $pagerfanta, 'page' => $pagerfanta->getCurrentPage());
     return $this->render('admin/admins/index.twig', $templateData);
 }
 public function register(Container $container)
 {
     $container['pagerfanta.pager_factory'] = function ($container) {
         return new PagerfantaFactory();
     };
     $container['pagerfanta.view.default_options'] = array('routeName' => null, 'routeParams' => array(), 'pageParameter' => '[page]', 'proximity' => 3, 'next_message' => '&raquo;', 'previous_message' => '&laquo;', 'default_view' => 'default');
     $container['pagerfanta.view_factory'] = function ($container) {
         $defaultView = new DefaultView();
         $twitterBoostrapView = new TwitterBootstrapView();
         $twitterBoostrap3View = new TwitterBootstrap3View();
         $factoryView = new ViewFactory();
         $factoryView->add(array($defaultView->getName() => $defaultView, $twitterBoostrapView->getName() => $twitterBoostrapView, $twitterBoostrap3View->getName() => $twitterBoostrap3View));
         return $factoryView;
     };
     if (isset($container['twig'])) {
         $container->extend('twig', function ($twig, $app) {
             $twig->addExtension(new PagerfantaExtension($app));
             return $twig;
         });
     }
 }
Пример #16
0
 /**
  * Perform search action with pagination.
  *
  * @param Layout  $layout
  * @param Content $content
  *
  * @return Response
  */
 public function indexAction(Layout $layout, Content $content)
 {
     $request = $this->get('request_stack')->getMasterRequest();
     $term = $request->get('term');
     $contentRepository = $this->getDoctrine()->getRepository('OpiferCmsBundle:Content');
     $results = $contentRepository->searchNested($term);
     $contentResults = [];
     $valueSetIds = [];
     foreach ($results as $k => $result) {
         if ($result->getNestedIn()) {
             $id = $result->getNestedIn()->getValueset()->getId();
             $valueSetIds[] = $id;
         } else {
             $contentResults[$result->getId()] = $result;
         }
     }
     $content_data = $contentRepository->findBy(['valueSet' => $valueSetIds]);
     foreach ($content_data as $result) {
         if ($result->getSearchable()) {
             $contentResults[$result->getId()] = $result;
         }
     }
     $results = $contentResults;
     $adapter = new ArrayAdapter($results);
     $page = (int) $request->query->get('page', 1);
     $pagerfanta = new Pagerfanta($adapter);
     $pagerfanta->setMaxPerPage(25);
     $pagerfanta->setCurrentPage($page);
     $view = new TwitterBootstrap3View();
     $options = ['prev_message' => $this->get('translator')->trans('pagination.prev'), 'next_message' => $this->get('translator')->trans('pagination.next')];
     $routeGenerator = function ($page) use($term) {
         return '?term=' . $term . '&page=' . $page;
     };
     $pagination = $view->render($pagerfanta, $routeGenerator, $options);
     return $this->render($layout->getFilename(), ['results' => $results, 'term' => $term, 'content' => $content, 'pagination' => $pagination, 'pagerfanta' => $pagerfanta]);
 }
Пример #17
0
 public function getJSONObject()
 {
     $obj = new stdClass();
     $obj->items = array();
     foreach ($this->getItems() as $item) {
         $obj->items[] = $item;
     }
     foreach ($this->getColumns() as $column) {
         $obj->columns[] = $column;
     }
     $html = '';
     if ($this->pagination->haveToPaginate()) {
         $view = new TwitterBootstrap3View();
         $result = $this;
         $html = $view->render($this->pagination, function ($page) use($result) {
             $list = $result->getItemListObject();
             return $result->getBaseURL() . '?' . $list->getQueryPaginationPageParameter() . '=' . $page;
         }, array('prev_message' => tc('Pagination', '&larr; Previous'), 'next_message' => tc('Pagination', 'Next &rarr;'), 'active_suffix' => '<span class="sr-only">' . tc('Pagination', '(current)') . '</span>'));
     }
     $obj->paginationTemplate = $html;
     $obj->fields = $this->fields;
     return $obj;
 }
Пример #18
0
 public function getJSONObject()
 {
     $obj = new stdClass();
     $obj->items = array();
     foreach ($this->getItems() as $item) {
         $obj->items[] = $item;
     }
     foreach ($this->getColumns() as $column) {
         $obj->columns[] = $column;
     }
     $html = '';
     if ($this->pagination->haveToPaginate()) {
         $view = new TwitterBootstrap3View();
         $result = $this;
         $html = $view->render($this->pagination, function ($page) use($result) {
             $list = $result->getItemListObject();
             return $result->getBaseURL() . '?' . $list->getQueryPaginationPageParameter() . '=' . $page;
         });
     }
     $obj->paginationTemplate = $html;
     $obj->fields = $this->fields;
     return $obj;
 }
Пример #19
0
 /**
  * Get results from paginator and get paginator view.
  */
 protected function paginator($queryBuilder)
 {
     // Paginator
     $adapter = new DoctrineORMAdapter($queryBuilder);
     $pagerfanta = new Pagerfanta($adapter);
     $currentPage = $this->getRequest()->get('page', 1);
     $pagerfanta->setCurrentPage($currentPage);
     $entities = $pagerfanta->getCurrentPageResults();
     // Paginator - route generator
     $me = $this;
     $routeGenerator = function ($page) use($me) {
         return $me->generateUrl('admin_user', array('page' => $page));
     };
     // Paginator - view
     $translator = $this->get('translator');
     $view = new TwitterBootstrap3View();
     $pagerHtml = $view->render($pagerfanta, $routeGenerator, array('proximity' => 3, 'prev_message' => $translator->trans('views.index.pagprev'), 'next_message' => $translator->trans('views.index.pagnext')));
     return array($entities, $pagerHtml);
 }
Пример #20
0
 public function getJSONObject()
 {
     $obj = new stdClass();
     $obj->items = array();
     foreach ($this->getItems() as $item) {
         $obj->items[] = $item;
     }
     foreach ($this->getColumns() as $column) {
         $obj->columns[] = $column;
     }
     $html = '';
     if ($this->pagination->haveToPaginate()) {
         $view = new TwitterBootstrap3View();
         $result = $this;
         $html = $view->render($this->pagination, function ($page) use($result) {
             $list = $result->getItemListObject();
             $uh = \Core::make("helper/url");
             $args = array($list->getQueryPaginationPageParameter() => $page, $list->getQuerySortColumnParameter() => $list->getActiveSortColumn(), $list->getQuerySortDirectionParameter() => $list->getActiveSortDirection());
             return $uh->setVariable($args, false, $result->getBaseURL());
         }, array('prev_message' => tc('Pagination', '&larr; Previous'), 'next_message' => tc('Pagination', 'Next &rarr;'), 'active_suffix' => '<span class="sr-only">' . tc('Pagination', '(current)') . '</span>'));
     }
     $obj->paginationTemplate = $html;
     $obj->fields = $this->fields;
     $obj->filters = $this->filters;
     $obj->query = $this->query;
     $obj->bulkMenus = $this->getSearchResultBulkMenus();
     $obj->baseUrl = (string) $this->getBaseURL();
     $obj->breadcrumb = $this->getBreadcrumb();
     return $obj;
 }
Пример #21
0
 public function viewAction(Request $request, $id, $page = 1)
 {
     list($report, $results, $form) = $this->loadReport($request, $id);
     $adapter = new ArrayAdapter($results);
     $pagerfanta = new Pagerfanta($adapter);
     $pagerfanta->setMaxPerPage(25);
     try {
         $pagerfanta->setCurrentPage($page);
     } catch (NotValidCurrentPageException $e) {
         throw new NotFoundHttpException();
     }
     $columnBuilder = new ColumnBuilder($results);
     $columns = $columnBuilder->build();
     $view = new PagerView();
     $router = $this->router;
     $pager = $view->render($pagerfanta, function ($page) use($id, $router) {
         return $router->generate('lemon_report_view_page', array('page' => $page, 'id' => $id));
     }, array('proximity' => 3));
     return new Response($this->twig->render('@LemonReport/Default/view.html.twig', array('debug' => $request->query->get('debug') != null ? $request->query->get('debug') : $this->debug, 'pager' => $pager, 'total' => $pagerfanta->getNbResults(), 'results' => $pagerfanta->getCurrentPageResults(), 'report' => $report, 'form' => $form->createView(), 'query' => \SqlFormatter::format($this->reportEngine->query()), 'columns' => $columns)));
 }
Пример #22
0
function gallery($app, $lang)
{
    if (!file_exists($app->view()->getTemplatesDirectory() . "/" . $lang . "/gallery.html")) {
        $app->notFound();
        return;
    }
    $cs_id = $app->request()->params("cs_id");
    if (!empty($cs_id) && !is_string($cs_id)) {
        $cs_id = null;
    }
    $api_types = $app->request()->params("api_types");
    if (!is_array($api_types)) {
        $api_types = array_keys($GLOBALS["api_type_list"]);
    }
    $tag_names = $app->request()->params("tag_names");
    if (!is_array($tag_names)) {
        $tag_names = array();
    }
    $tag_ids = get_tag_ids($tag_names);
    $themes_count = find_themes($api_types, $cs_id, $tag_ids, null, null, true);
    $array = array();
    for ($i = 0; $i < $themes_count; $i++) {
        $array[$i] = $i;
    }
    $page = $app->request()->params("page");
    if (is_null($page)) {
        $page = 1;
    }
    $adapter = new ArrayAdapter($array);
    $pagerfanta = new Pagerfanta($adapter);
    $pagerfanta->setMaxPerPage(GALLERY_MAX_PER_PAGE);
    try {
        $pagerfanta->setCurrentPage($page);
        $current_page_results = $pagerfanta->getCurrentPageResults();
        if (count($current_page_results) == 0) {
            $themes = array();
        } else {
            $themes = find_themes($api_types, $cs_id, $tag_ids, count($current_page_results), $current_page_results[0]);
        }
    } catch (Exception $e) {
        $themes = array();
    }
    $pagerfanta_view = new TwitterBootstrap3View();
    $pager_html = $pagerfanta_view->render($pagerfanta, function ($page) use($app, $lang, $cs_id, $api_types, $tag_names) {
        $params = array("page" => $page);
        if ($cs_id != "") {
            $params["cs_id"] = $cs_id;
        }
        if (count($api_types) > 0) {
            $params["api_types"] = $api_types;
        }
        if (count($tag_names) > 0) {
            $params["tag_names"] = $tag_names;
        }
        return BASE_URL . get_lang_url_dir($lang) . "gallery?" . http_build_query($params);
    });
    $app->render($lang . "/gallery.html", array("lang" => get_lang_url_dir($lang), "this_url" => "gallery/", "bootstrap_version" => BOOTSTRAP_VERSION, "active_pages" => array($lang, "gallery"), "body_class" => "gallery", "themes" => $themes, "pagerfanta" => $pagerfanta, "pager_html" => $pager_html, "cs_id" => $cs_id, "api_types" => $api_types, "tag_names" => $tag_names));
}