Merge branch 'master' into feature/stimulus
This commit is contained in:
@@ -51,8 +51,6 @@ class AjaxFormController extends ActionController
|
||||
*/
|
||||
public function __construct(EmailService $emailService, BookingApiService $bookingApiService)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
$this->emailService = $emailService;
|
||||
$this->bookingApiService = $bookingApiService;
|
||||
}
|
||||
|
||||
@@ -64,8 +64,6 @@ class BackendController extends ActionController
|
||||
*/
|
||||
public function __construct(PageRepository $pageRepository)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
$this->pageRepository = $pageRepository;
|
||||
}
|
||||
|
||||
|
||||
@@ -36,38 +36,6 @@ class Page extends AbstractEntity
|
||||
*/
|
||||
protected $description;
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getUid()
|
||||
{
|
||||
return $this->uid;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $uid
|
||||
*/
|
||||
public function setUid($uid)
|
||||
{
|
||||
$this->uid = $uid;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getPid()
|
||||
{
|
||||
return $this->pid;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $pid
|
||||
*/
|
||||
public function setPid($pid)
|
||||
{
|
||||
$this->pid = $pid;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
@@ -131,4 +99,4 @@ class Page extends AbstractEntity
|
||||
{
|
||||
$this->description = $description;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,9 +29,9 @@ class PageRepository extends Repository
|
||||
;
|
||||
$query->matching($query->logicalAnd([
|
||||
$query->equals('pid', $pid),
|
||||
$query->equals('doktype', \TYPO3\CMS\Frontend\Page\PageRepository::DOKTYPE_DEFAULT)
|
||||
$query->equals('doktype', \TYPO3\CMS\Core\Domain\Repository\PageRepository::DOKTYPE_DEFAULT)
|
||||
]));
|
||||
|
||||
return $query->execute();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace EP\EpTheme\Form;
|
||||
|
||||
use TYPO3\CMS\Form\Domain\Finishers\AbstractFinisher;
|
||||
|
||||
class AddReferrerFinisher extends AbstractFinisher
|
||||
{
|
||||
protected function executeInternal()
|
||||
{
|
||||
// Look for key 'referrer' in frontend session
|
||||
$referrer = $GLOBALS['TSFE']->fe_user->getKey('ses', 'referrer');
|
||||
|
||||
if (null === $referrer) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Add textfield to form containing referrer value
|
||||
$field = $this->finisherContext
|
||||
->getFormRuntime()
|
||||
->getFormDefinition()
|
||||
->getPageByIndex(0)
|
||||
->createElement('referrer', 'Text');
|
||||
|
||||
$field->setDefaultValue($referrer);
|
||||
$field->setDataType('string');
|
||||
$field->setLabel('Referrer');
|
||||
|
||||
// Add finisher variable for potential later use
|
||||
$this->finisherContext->getFinisherVariableProvider()->add(
|
||||
$this->shortFinisherIdentifier,
|
||||
'referrer',
|
||||
$referrer
|
||||
);
|
||||
|
||||
// Remove session key
|
||||
$GLOBALS['TSFE']->fe_user->setKey('ses', 'referrer', null);
|
||||
$GLOBALS['TSFE']->fe_user->storeSessionData();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
namespace EP\EpTheme\Middleware;
|
||||
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
use Psr\Http\Message\ServerRequestInterface;
|
||||
use Psr\Http\Server\MiddlewareInterface;
|
||||
use Psr\Http\Server\RequestHandlerInterface;
|
||||
use TYPO3\CMS\Core\Exception\SiteNotFoundException;
|
||||
use TYPO3\CMS\Core\Site\SiteFinder;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
|
||||
class ReferrerMiddleware implements MiddlewareInterface
|
||||
{
|
||||
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
|
||||
{
|
||||
$queryParams = $request->getQueryParams();
|
||||
|
||||
if (!array_key_exists('ref', $queryParams)) {
|
||||
return $handler->handle($request);
|
||||
}
|
||||
|
||||
$ref = $queryParams['ref'];
|
||||
|
||||
if (false === is_numeric($ref)) {
|
||||
return $handler->handle($request);
|
||||
}
|
||||
|
||||
/** @var SiteFinder $siteFinder */
|
||||
$siteFinder = GeneralUtility::makeInstance(SiteFinder::class);
|
||||
|
||||
try {
|
||||
$site = $siteFinder->getSiteByPageId($ref);
|
||||
$url = $site->getRouter()->generateUri($ref);
|
||||
$GLOBALS['TSFE']->fe_user->setKey('ses', 'referrer', $url);
|
||||
$GLOBALS['TSFE']->fe_user->storeSessionData();
|
||||
}
|
||||
catch (SiteNotFoundException $exception) {
|
||||
}
|
||||
|
||||
return $handler->handle($request);
|
||||
}
|
||||
}
|
||||
@@ -86,7 +86,7 @@ class ProductViewHelper extends AbstractViewHelper
|
||||
->getControllerContext()
|
||||
->getUriBuilder()
|
||||
->reset()
|
||||
->setTargetPageUid($targetPageUid)
|
||||
->setTargetPageUid((int)$product['detailPage'])
|
||||
->uriFor('detail', $linkArguments, 'Product', 'epproducts', 'product_detail')
|
||||
;
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user