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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
/** * 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; }
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')); }
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); }
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); }
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')); }
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' => '»', 'previous_message' => '«', '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; }); } }
/** * 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]); }
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', '← Previous'), 'next_message' => tc('Pagination', 'Next →'), 'active_suffix' => '<span class="sr-only">' . tc('Pagination', '(current)') . '</span>')); } $obj->paginationTemplate = $html; $obj->fields = $this->fields; return $obj; }
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; }
/** * 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); }
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', '← Previous'), 'next_message' => tc('Pagination', 'Next →'), '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; }
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))); }
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)); }