Bug #81620
closedLinkhandler remove all attributes set in the link wizard and the template
0%
Description
My configuration
I am using version TYPO3 CMS 8.7.1 and the linkhandler from core.
I have a template like this:
<f:link.typolink parameter="{link}" class="btn more">Mehr erfahren</f:link.typolink>
I have the following pageTsConfig:
TCEMAIN { linkHandler { tx_news { handler = TYPO3\CMS\Recordlist\LinkHandler\RecordLinkHandler label = News configuration { table = tx_news_domain_model_news hidePageTree = 0 } scanAfter = page } } }
And this typoscript:
config { recordLinks { tx_news { typolink { parameter = {$id.newsDetailPid} additionalParams.data = field:uid additionalParams.wrap = &tx_news_pi1[news]=|&tx_news_pi1[action]=detail&tx_news_pi1[controller]=news useCacheHash = 1 } } } }
{$id.newsDetailPid} is set as 22.
The scenario
Now i create a link with the link wizard to a page (uid: 30) with some extra attributes set
t3://page?uid=30 _blank "btn special" Testtitle google=bad
and get this:
<a href="/index.php?id=1&google=bad" title="Testtitle" target="_blank" class="btn special more">Mehr erfahren</a>
Now i create a link with the link wizard to a news record (uid:1) with the same extra attributes set
t3://record?identifier=tx_news&uid=1 _blank "btn special" Testtitle google=bad
and get this:
<a href="/index.php?id=22&tx_news_pi1%5Bnews%5D=1&tx_news_pi1%5Baction%5D=detail&tx_news_pi1%5Bcontroller%5D=news&cHash=e68aca14db3f2e4bc194845e951acc11">Mehr erfahren</a>
The problem
If i use a link created with linkhandler all attributes get completly removed.
I think the problem is somewhere in the method typoLink in /typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php but i am not sure.
One way it works to add the classes - but it is not useful
To add the classes i have to set them in the `parameter` in the typoscript of the linkhandler.
But this is not what is needed, because there is no class for “link to news” but the tags may have classes like in the example.
Updated by Gerrit Code Review over 7 years ago
- Status changed from New to Under Review
Patch set 1 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/53275
Updated by Gerrit Code Review over 7 years ago
Patch set 2 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/53275
Updated by Gerrit Code Review over 7 years ago
Patch set 3 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/53275
Updated by Gerrit Code Review over 7 years ago
Patch set 4 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/53275
Updated by Markus Klein over 7 years ago
- Complexity set to medium
- Sprint Focus set to On Location Sprint
Updated by Mathias Brodala over 7 years ago
- Has duplicate Bug #81903: DatabaseRecordLinkBuilder is ignoring other settings added
Updated by Mathias Brodala over 7 years ago
- Has duplicate deleted (Bug #81903: DatabaseRecordLinkBuilder is ignoring other settings)
Updated by Dennis Römmich over 7 years ago
What should be the expected behavior if i have the following link within the RTE:
<a class="btn special" title="Testtitle" href="t3://record?identifier=tx_news&uid=1">convallis</a>
I think this behavior is not covered by the given patch in gerrit, isn't it?
Updated by Anja Leichsenring about 7 years ago
- Sprint Focus deleted (
On Location Sprint)
Updated by Stefan Galinski almost 7 years ago
This is not a bug. Just a configuration issue.
Working example configuration:
config.recordLinks {
pressRelease {
forceLink = 0
typolink {
parameter = {$themes.pages.news.pressReleaseSingle}
additionalParams = &tx_news_pi1[news]={field:uid}
additionalParams.insertData = 1
useCacheHash = 1
ATagParams.data = parameters:allParams
target.data = parameters:target
title.data = parameters:title
extTarget = _blank
extTarget.override.data = parameters:target
}
}
}
Updated by Francois Suter almost 7 years ago
The above is true for a link inside the RTE, but when coming from a TS configuration or a Fluid view helper, the ContentObjectRenderer
class does not load the link parameters into the parameters
member variable.
- the additional parameters of the link itself
- the ViewHelper or the TS configuration driving the rendering with its own parameters
- the "base" linkhandler TS configuration
The difficulty lies in defining how each "level" overrides the other. The "parameter" and "additionalParams" properties should be carefully preserved because they are calculated in \TYPO3\CMS\Frontend\Typolink\DatabaseRecordLinkBuilder::build()
.
I do not have a good answer for now...
Updated by Christian Kuhn almost 7 years ago
- Related to Bug #81903: DatabaseRecordLinkBuilder is ignoring other settings added
Updated by Marc Hirdes over 6 years ago
The Fluid Typolinkviewhelper adds a parameter string like
parameter = t3://record?identifier=tx_news&uid=1 _blank "btn special" Testtitle google=bad
The sysext/frontend/Classes/Typolink/DatabaseRecordLinkBuilder.php creates a parameter string like the following, if 15 is the page uid of the detail page
parameter = 15
So all other settings will be ignored. Usefull would be a merge of the settings in the DatabaseRecordLinkBuilder
$typoScriptConfiguration = $configuration[$configurationKey]['typolink.']; /** @var TypoLinkCodecService $typoLinkCodecService */ $typoLinkCodecService = GeneralUtility::makeInstance(TypoLinkCodecService::class); $typoScriptConfiguration['parameter'] = $typoLinkCodecService->encode( array_merge( array_filter($typoLinkCodecService->decode($conf['parameter']), 'strlen'), array_filter($typoLinkCodecService->decode($typoScriptConfiguration['parameter']), 'strlen') ) );
A fix in the core would be great.
Updated by Rémy DANIEL over 6 years ago
- Related to Bug #80896: TypolinkViewhelper with linkhandler ignores class attribute added
Updated by Elena Bartolotti over 6 years ago
- Related to Bug #84942: target _blank is beeing ignored on CType "images" with recordLinks added
Updated by Gerrit Code Review over 6 years ago
Patch set 4 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/57370
Updated by Gerrit Code Review over 6 years ago
Patch set 1 for branch TYPO3_8-7 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/57883
Updated by Susanne Moog over 6 years ago
- Status changed from Under Review to Resolved
- % Done changed from 0 to 100
Applied in changeset f52e3a367c3f3f71bfaef9d1e602498e84aca646.
Updated by Benni Mack over 6 years ago
- Related to Bug #85868: Tests are not executed added
Updated by Markus Klein about 6 years ago
- Related to Bug #81316: linkhandler does not respect custom typolink configuration added
Updated by Sergio Catalá over 5 years ago
Is this fixed for TYPO3 9.5?
I can find the same wrong behaviour described.
Updated by Christoph Dörfel almost 5 years ago
- % Done changed from 100 to 0
I can also reproduce this bug in TYPO3 8.7.29
Updated by Markus Klein almost 5 years ago
- Related to Bug #90404: Linkhandler removes all attributes set in fluid viewhelper if parameter uses stdWrap added