<?php
namespace CONECTO\ProviderBundle\Controller;
use Pimcore\Controller\FrontendController;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\HttpFoundation\Request;
use Pimcore\Model\Document;
use Pimcore\Tool;
class DocumentController extends FrontendController
{
/**
* @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 notFoundAction(Request $request)
{
// only when not in editmode, because otherwise the 404 page is not editable in backend
if($this->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);
$errorPageDocument = Document::getByPath($errorPagePath);
return ['document' => $errorPageDocument];
}
}
/**
* @Template
*
* @param Request $request
* @return array
*/
public function footerSnippetAction(Request $request)
{
return [];
}
}