Wrong parameter passer to linkhandler hook
Typolink refactoring introduced a bug in that one wrong parameter is passed to the hooks registered with
The error can be seen here: https://review.typo3.org/#/c/21785/11/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php
Previous to this change, the call to the registered hook was:
return $linkHandlerObj->main($linktxt, $conf, $linkHandlerKeyword, $linkHandlerValue, $link_param, $this);
The interesting argument here is
$link_param, which is the full link parameter, so for example something like
36 - - "My link to some page".
After the change, the call is as follows:
return $linkHandlerObj->main($linkText, $configuration, $linkHandlerKeyword, $linkHandlerValue, $linkParameterParts, $this);
$linkParameterParts is not at all the same variable as
$link_param. Instead it is the result of:
$linkParameterParts = GeneralUtility::unQuoteFilenames($mixedLinkParameter, TRUE);
$linkParameterParts is what
$link_param used to be.
This breaks extensions that register link handlers, like "linkhandler" (obviously not the public version which is very old, but for example Alex's fork: https://github.com/Intera/typo3-extension-linkhandler).
How to reproduce the problem:
- first you need a 7+ compatible version of "linkhandler", which I just have as a working copy for now, but have uploaded here: https://dl.dropboxusercontent.com/u/12217100/linkhandler.t3x
- next, define a link to some news records and give it a title with some blanks in it (e.g. someting like "Title with blanks in it").
- observed the rendered URL: there should be an extraneous GET var which corresponds to the second word in the title (i..e "with")
[BUGFIX] Pass correct parameter to linkhandler
Since the refactoring of typolink, one wrong parameter is passed
to registered linkhandler hooks. This patch restores the right
Reviewed-by: Markus Klein <firstname.lastname@example.org>
Tested-by: Markus Klein <email@example.com>
Tested-by: Benjamin Mack <firstname.lastname@example.org>
Reviewed-by: Benjamin Mack <email@example.com>
#5 Updated by Francois Suter over 3 years ago
Markus Klein wrote:
I hope you are aware of #46140. ;-)
I discovered it while investigating this bug. Would be great if such feature finally made it into the Core. Trying to get extension "linkhandler" to work with every new version is major PITA, because the underlying Core architecture is so ugly. So I would say it will be really great only if the whole element browser is refactored ;-)