<?php
namespace App\Controller;
use Pimcore\Controller\FrontendController;
use Symfony\Component\HttpFoundation\Request;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\Routing\Annotation\Route;
use Pimcore\Model\Document;
use Pimcore\Tool;
//use App\Conecto\SearchBundle\SearchServiceInterface;
class DefaultController extends BaseController
{
/**
* @Template
* @param Request $request
* @return array
*/
public function defaultAction(Request $request)
{
return [];
}
/**
* @Template
* @param Request $request
* @return array
*/
public function frontpageAction(Request $request)
{
return ['isFrontpage' => true];
}
/**
* @Template
* @param Request $request
* @return array
*/
public function landingpageAction(Request $request)
{
return ['isLandingpage' => true];
}
/**
* @Template
*
* @param Request $request
* @return array
*/
public function notFoundAction(Request $request)
{
// only when not in editmode, because otherwise the 404 page is not editable in backend
if($this->view->editmode !== true) {
$requestUriSegments = explode('/', mb_substr($_SERVER['REQUEST_URI'], 1));
$requestUriLocale = array_shift($requestUriSegments);
$validLanguages = Tool::getValidLanguages();
if (in_array($requestUriLocale, $validLanguages)) {
$locale = $requestUriLocale;
} else {
$preferredUserLanguage = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
if (in_array($preferredUserLanguage, $validLanguages)) {
$locale = $preferredUserLanguage;
} else {
$locale = Tool::getDefaultLanguage();
}
}
$errorPagePath = $this->getParameter('pimcore.config')['documents']['error_pages']['default'] ?? '404';
$errorPagePathSegments = explode('/', mb_substr($errorPagePath, 1));
$errorPagePathSegments[0] = $locale;
$errorPagePath = '/' . join('/', $errorPagePathSegments);
// check if is AMP
if(isset($_GET['amp']) && $_GET['amp'] == 1) {
$this->view->isAmp = true;
$this->view->layout = "Layouts/amp.html.twig";
}
$errorPageDocument = Document::getByPath($errorPagePath);
return ['document' => $errorPageDocument];
}
}
/**
* @Template
*
* @param Request $request
* @return array
*/
public function footerSnippetAction(Request $request)
{
if($request->get('isAmp')) {
return ['isAmp' => true];
} else {
return [];
}
}
/**
* @Template
*
* @param Request $request
* @return array
*/
public function darkpageSnippetAction(Request $request)
{
return [];
}
/**
* @Template
*
* @param Request $request
* @return array
public function searchAction(Request $request, SearchServiceInterface $search)
{
$results = false;
$paginator = false;
$searchstringText = null;
if($request->query->has('q')) {
$searchstring = trim($request->get('q', ''));
if($searchstring && strlen($searchstring) > 2) {
$searchstringText = $searchstring;
$results = $search->getResults($searchstring);
} else {
$this->view->searchstringTooShort = true;
}
}
if(is_array($results)) {
$paginator = new \Zend\Paginator\Paginator(new \Zend\Paginator\Adapter\ArrayAdapter($results));
$paginator->setCurrentPageNumber($request->get('page'));
$paginator->setItemCountPerPage(10);
$paginator->setPageRange(10);
}
return [
'searchstring' => $searchstringText,
'results' => $results,
'paginator' => $paginator
];
}
* */
}