Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 12 additions & 2 deletions Classes/Domain/Model/Redirect.php
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,13 @@ class Redirect
*/
protected $forwardUrl;

/**
* Additional params for the URL
*
* @var string
*/
protected $additionalParams;

/**
* The scheme
*
Expand Down Expand Up @@ -110,6 +117,7 @@ class Redirect
* @param int $languageUid The language uid
* @param int $type The type of redirect
* @param string $forwardUrl The URL to be forwarded
* @param string $additionalParams Additional params for the URL
* @param int $internalPage Uid of the internal page
* @param string $externalUrl External URL
* @param string $internalFile Path to the internal file
Expand All @@ -120,6 +128,7 @@ public function __construct(
$languageUid,
$type,
$forwardUrl,
$additionalParams,
$internalPage,
$externalUrl,
$internalFile,
Expand All @@ -129,6 +138,7 @@ public function __construct(
$this->languageUid = (int) $languageUid;
$this->type = (int) $type;
$this->forwardUrl = (string) $forwardUrl;
$this->additionalParams = (string) $additionalParams;
$this->internalPage = (int) $internalPage;
$this->externalUrl = (string) $externalUrl;
$this->internalFile = (string) $internalFile;
Expand Down Expand Up @@ -198,7 +208,7 @@ protected function constructUrlForInternalPage()
[
'parameter' => $this->internalPage,
'forceAbsoluteUrl' => true,
'additionalParams' => '&L=' . $this->languageUid
'additionalParams' => '&L=' . $this->languageUid . $this->additionalParams
]
);
}
Expand Down Expand Up @@ -232,7 +242,7 @@ protected function constructUrlForExternal()
*/
protected function constructUrlForPath($scheme, $host, $oldPath)
{
$needle = '/'.preg_quote($this->path, '/').'/';
$needle = '/'.preg_quote(trim($this->path, '/'), '/').'/';

$newPath = preg_replace($needle, trim($this->forwardUrl, '/'), $oldPath, 1);

Expand Down
2 changes: 2 additions & 0 deletions Classes/Domain/Repository/RedirectRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ public function findByPathAndDomain($host, $path)
tx_urlforwarding_domain_model_redirect.sys_language_uid,
tx_urlforwarding_domain_model_redirect.type,
tx_urlforwarding_domain_model_redirect.forward_url,
tx_urlforwarding_domain_model_redirect.additional_params,
tx_urlforwarding_domain_model_redirect.internal_page,
tx_urlforwarding_domain_model_redirect.external_url,
tx_urlforwarding_domain_model_redirect.internal_file,
Expand Down Expand Up @@ -110,6 +111,7 @@ public function findByPathAndDomain($host, $path)
$result['sys_language_uid'],
$result['type'],
$result['forward_url'],
$result['additional_params'],
$result['internal_page'],
$result['external_url'],
$result['internal_file'],
Expand Down
11 changes: 11 additions & 0 deletions Configuration/TCA/tx_urlforwarding_domain_model_redirect.php
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
hidden,
type,
forward_url,
additional_params,
internal_page,
external_url,
internal_file,
Expand All @@ -57,6 +58,7 @@
--palette--;;general,
forward_url,
internal_page,
additional_params,
http_status,
domain,
--div--;LLL:EXT:cms/locallang_ttc.xlf:tabs.access,
Expand Down Expand Up @@ -305,6 +307,15 @@
]
]
],
'additional_params' => [
'exclude' => false,
'label' => 'LLL:EXT:url_forwarding/Resources/Private/Language/TCA/Redirect.xlf:additional_params',
'config' => [
'type' => 'input',
'size' => 30,
'eval' => 'trim',
]
],
'external_url' => [
'exclude' => false,
'label' => 'LLL:EXT:url_forwarding/Resources/Private/Language/TCA/Redirect.xlf:external_url',
Expand Down
3 changes: 3 additions & 0 deletions Resources/Private/Language/TCA/Redirect.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,9 @@
<trans-unit id="forward_url">
<source>Source</source>
</trans-unit>
<trans-unit id="additional_params">
<source>Additional Params</source>
</trans-unit>
<trans-unit id="forward_url.3">
<source>New path</source>
</trans-unit>
Expand Down
11 changes: 11 additions & 0 deletions Resources/Private/Language/TCA/Redirect_csh.xlf
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<xliff version="1.0">
<file source-language="en" datatype="plaintext" original="messages" date="2016-11-30T17:35:37Z" product-name="url_forwarding">
<header/>
<body>
<trans-unit id="additional_params.description">
<source><![CDATA[For example: &utm_source=old-domain.com&utm_medium=301]]></source>
</trans-unit>
</body>
</file>
</xliff>
7 changes: 7 additions & 0 deletions ext_tables.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<?php
defined('TYPO3_MODE') or die();

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addLLrefForTCAdescr(
'tx_urlforwarding_domain_model_redirect',
'EXT:url_forwarding/Resources/Private/Language/TCA/Redirect_csh.xlf'
);
1 change: 1 addition & 0 deletions ext_tables.sql
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ CREATE TABLE tx_urlforwarding_domain_model_redirect (
type varchar(100) NOT NULL DEFAULT '0',

forward_url text NOT NULL,
additional_params text NOT NULL,
path text NOT NULL,
internal_page varchar(255) DEFAULT '' NOT NULL,
external_url text NOT NULL,
Expand Down