Make custom redirects domain based

This commit is contained in:
Björn Fromme
2019-10-01 12:45:18 +02:00
parent f5aa2afd0c
commit 37cbf12545
4 changed files with 42 additions and 1 deletions
@@ -0,0 +1,26 @@
<?php
namespace EP\EpTrack\Hook;
use TYPO3\CMS\Core\Site\Entity\Site;
use TYPO3\CMS\Core\Site\SiteFinder;
use TYPO3\CMS\Core\Utility\GeneralUtility;
class ItemsProcFunc
{
/**
* @param $config
*/
public function user_domainItems(&$config)
{
$siteFinder = GeneralUtility::makeInstance(SiteFinder::class);
$domains = [
['*', '*'],
];
foreach ($siteFinder->getAllSites() as $site) {
/** @var Site $site */
$domains[] = [$site->getBase()->getHost(), $site->getBase()->getHost()];
}
$config['items'] = $domains;
}
}
@@ -76,6 +76,7 @@ class TrackingMiddleware implements MiddlewareInterface
{
/** @var NormalizedParams $params */
$params = $request->getAttribute('normalizedParams');
$sourceHost = $params->getHttpHost();
$uri = strtok(strtolower($params->getRequestUri()), '?');
if (substr($uri, -1) !== '/') {
@@ -88,6 +89,10 @@ class TrackingMiddleware implements MiddlewareInterface
->select('*')
->from('tx_eptrack_domain_model_redirect')
->where('redirect_from = LOWER(:uri)')
->andWhere($qb->expr()->orX(
$qb->expr()->eq('source_host', $qb->createNamedParameter('*')),
$qb->expr()->eq('source_host', $qb->createNamedParameter($sourceHost))
))
->andWhere('deleted = 0')
->andWhere('hidden = 0')
->setParameter('uri', $uri)