Project

General

Profile

Actions

Bug #81620

closed

Linkhandler remove all attributes set in the link wizard and the template

Added by Kevin Appelt over 7 years ago. Updated almost 5 years ago.

Status:
Closed
Priority:
Must have
Assignee:
-
Category:
Site Handling, Site Sets & Routing
Start date:
2017-06-19
Due date:
% Done:

0%

Estimated time:
TYPO3 Version:
8
PHP Version:
7.0
Tags:
linkhandler, typolink
Complexity:
medium
Is Regression:
Sprint Focus:

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&amp;tx_news_pi1%5Baction%5D=detail&amp;tx_news_pi1%5Bcontroller%5D=news&amp;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.


Related issues 6 (0 open6 closed)

Related to TYPO3 Core - Bug #81903: DatabaseRecordLinkBuilder is ignoring other settingsClosed2017-07-18

Actions
Related to TYPO3 Core - Bug #80896: TypolinkViewhelper with linkhandler ignores class attributeClosed2017-04-19

Actions
Related to TYPO3 Core - Bug #84942: target _blank is beeing ignored on CType "images" with recordLinksClosed2018-05-07

Actions
Related to TYPO3 Core - Bug #85868: Tests are not executedClosedBenni Mack2018-08-15

Actions
Related to TYPO3 Core - Bug #81316: linkhandler does not respect custom typolink configurationClosed2017-05-23

Actions
Related to TYPO3 Core - Bug #90404: Linkhandler removes all attributes set in fluid viewhelper if parameter uses stdWrapClosed2017-04-202017-04-20

Actions
Actions #1

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

Actions #2

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

Actions #3

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

Actions #4

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

Actions #5

Updated by Markus Klein over 7 years ago

  • Complexity set to medium
  • Sprint Focus set to On Location Sprint
Actions #6

Updated by Mathias Brodala over 7 years ago

  • Has duplicate Bug #81903: DatabaseRecordLinkBuilder is ignoring other settings added
Actions #7

Updated by Mathias Brodala over 7 years ago

  • Has duplicate deleted (Bug #81903: DatabaseRecordLinkBuilder is ignoring other settings)
Actions #8

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?

Actions #9

Updated by Anja Leichsenring about 7 years ago

  • Sprint Focus deleted (On Location Sprint)
Actions #10

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
        }
    }
}
Actions #11

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.

This is actually quite a touchy issue as several sources of information must be combined:
  1. the additional parameters of the link itself
  2. the ViewHelper or the TS configuration driving the rendering with its own parameters
  3. 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...

Actions #12

Updated by Christian Kuhn almost 7 years ago

  • Related to Bug #81903: DatabaseRecordLinkBuilder is ignoring other settings added
Actions #13

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.

Actions #14

Updated by Rémy DANIEL over 6 years ago

  • Related to Bug #80896: TypolinkViewhelper with linkhandler ignores class attribute added
Actions #15

Updated by Elena Bartolotti over 6 years ago

  • Related to Bug #84942: target _blank is beeing ignored on CType "images" with recordLinks added
Actions #16

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

Actions #17

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

Actions #18

Updated by Susanne Moog over 6 years ago

  • Status changed from Under Review to Resolved
  • % Done changed from 0 to 100
Actions #19

Updated by Benni Mack over 6 years ago

  • Related to Bug #85868: Tests are not executed added
Actions #20

Updated by Benni Mack about 6 years ago

  • Status changed from Resolved to Closed
Actions #21

Updated by Markus Klein about 6 years ago

  • Related to Bug #81316: linkhandler does not respect custom typolink configuration added
Actions #22

Updated by Sergio Catalá over 5 years ago

Is this fixed for TYPO3 9.5?
I can find the same wrong behaviour described.

Actions #23

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

Actions #24

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
Actions

Also available in: Atom PDF