86 lines
2.2 KiB
PHP
86 lines
2.2 KiB
PHP
<?php
|
|
|
|
namespace Trinity\Bundle\SearchBundle\Page;
|
|
|
|
use Pagerfanta\Adapter\ArrayAdapter;
|
|
use Pagerfanta\Exception\NotValidCurrentPageException;
|
|
use Trinity\Bundle\ContentManagerBundle\Model\Page;
|
|
use Trinity\Bundle\ContentManagerBundle\Model\SeoPageInterface;
|
|
use Trinity\Bundle\ContentManagerBundle\Model\PageableInterface;
|
|
use Trinity\Bundle\ContentManagerBundle\Model\Block;
|
|
|
|
use Pagerfanta\Pagerfanta as Pager;
|
|
|
|
class SearchPage extends Page implements SeoPageInterface, PageableInterface
|
|
{
|
|
private $query = null;
|
|
private $pager = null;
|
|
|
|
public function getConfiguration()
|
|
{
|
|
return $this->configuration
|
|
->setBlock('title','Trinity\Bundle\ContentManagerBundle\Form\Type\BlockType')
|
|
->setBlock('editorial_blocks', 'Trinity\Bundle\EditorialBlockBundle\Form\Type\EditorialBlocksContainerBlockType')
|
|
->setDefaultController('TrinitySearchBundle:Search:index')
|
|
->setDefaultControllerClass('Trinity\Bundle\SearchBundle\Controller\SearchController::indexAction');
|
|
}
|
|
|
|
public function __construct($template = null)
|
|
{
|
|
parent::__construct(null !== $template ? $template : 'TrinitySearchBundle:Search:index.html.twig');
|
|
}
|
|
|
|
public function getBlockEditorialBlocks()
|
|
{
|
|
return $this->getBlock('editorial_blocks');
|
|
}
|
|
|
|
public function setBlockEditorialBlocks(Block $block)
|
|
{
|
|
return $this->setBlock($block);
|
|
}
|
|
|
|
// pagination des book
|
|
public function initPager()
|
|
{
|
|
|
|
$this->pager = new Pager(new ArrayAdapter($this->getQuery()));
|
|
$this->pager->setMaxPerPage(4);
|
|
$this->pager->setCurrentPage(1, false, true);
|
|
}
|
|
|
|
public function getPager()
|
|
{
|
|
if (null === $this->pager) {
|
|
$this->initPager();
|
|
}
|
|
|
|
return $this->pager;
|
|
}
|
|
|
|
public function getQuery()
|
|
{
|
|
return $this->query;
|
|
}
|
|
|
|
public function setQuery($query)
|
|
{
|
|
$this->query = $query;
|
|
}
|
|
|
|
public function setPage($page)
|
|
{
|
|
try {
|
|
$this->getPager()->setCurrentPage($page, false, true);
|
|
} catch (NotValidCurrentPageException $e) {
|
|
$this->getPager()->setCurrentPage(1, false, true);
|
|
}
|
|
}
|
|
|
|
public function getQueryCount()
|
|
{
|
|
return count($this->query);
|
|
}
|
|
|
|
}
|