Make custom redirects domain based
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user