<?php
namespace Mod\SightseeingBundle\Controller\Display;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
use Symfony\Component\Routing\Annotation\Route;
use CustomBundle\Controller\CustomFacilityDisplayBaseController as FacilityDisplayBaseController;
use Mod\SightseeingBundle\Entity\Item;
use Mod\SightseeingBundle\Entity\Category;
class ActionController extends FacilityDisplayBaseController
{
protected $itemClass = Item::class;
protected $categoryClass = Category::class;
public $default_setting = null;
public $views = [
"top" => "index.php",
"index" => "sightseeing/index.php",
];
public $settings = [
"pageLimit" => 9,
"pagerNum" => 5,
"theme" => "sightseeing"
];
public function before(FilterControllerEvent $event)
{
parent::before($event); // TODO: Change the autogenerated stub
$this->default_setting = $this->getDefaultParameter('mod_sightseeing.default_settings');
}
/**
* @Route("/sightseeing/", name="mod_sightseeing_group_list")
*/
public function groupListAction(Request $request)
{
/** @var BundleUtility $util */
$util = $this->get('mod_sightseeing.bundle_utility');
$repo = $this->getDoctrine()->getRepository($this->itemClass);
$order = ['sort_num' => 'ASC', 'id' => 'DESC'];
$page = $request->query->getInt('page', 1);
if($page < 1){
$page = 1;
}
$limit = $this->settings['pageLimit'];
$paginator = $util->searchItems($request->query->all(), $order, $limit, $page);
if(isset($this->default_setting['pagination']['page_range'])){
$paginator->setPageRange($this->default_setting['pagination']['page_range']);
}
$pagination = $this->getPaginationParams($paginator);
$items = $paginator->getItems();
return $this->renderFront($this->views['index'], [
'cms__items' => $items,
'cms__pagination' => $pagination
]);
}
public function getCategories($facility_id = null)
{
$categories = [];
if (!isset($this->categoryClass) || is_null($this->categoryClass)) {
return $categories;
}
$repository = $this->getDoctrine()->getRepository($this->categoryClass);
$posts = $repository->getCategoryEntityList();
foreach ($posts as $post) {
$items = $post->getItems();
if ($items && !empty($post->getItems()->ToArray())) {
$categories[] = $post;
}
}
return $categories;
}
}