Skip to content

Commit ef585b6

Browse files
authored
Merge pull request #5 from b13/v13
[TASK] Update extension for v12 or higher
2 parents 2742a4d + c56f919 commit ef585b6

File tree

5 files changed

+32
-22
lines changed

5 files changed

+32
-22
lines changed

Classes/Hooks/TypoLinkHandler.php renamed to Classes/EventListener/TypoLinkEventListener.php

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
<?php
2-
namespace B13\Snipper\Hooks;
32

3+
declare(strict_types=1);
4+
5+
namespace B13\Snipper\EventListener;
46

57
/***************************************************************
68
* Copyright notice - MIT License (MIT)
@@ -28,23 +30,28 @@
2830
* THE SOFTWARE.
2931
***************************************************************/
3032

33+
use TYPO3\CMS\Core\Attribute\AsEventListener;
34+
use TYPO3\CMS\Frontend\Event\AfterLinkIsGeneratedEvent;
3135

32-
33-
use TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer;
34-
35-
/**
36-
* Class TypoLinkHandler
37-
*
38-
*/
39-
class TypoLinkHandler
36+
#[AsEventListener]
37+
final class TypoLinkEventListener
4038
{
41-
public function postProcessTypoLink(&$parameters, ContentObjectRenderer &$parentObject)
39+
public function __invoke(AfterLinkIsGeneratedEvent $event): void
4240
{
43-
if ($parameters['tagAttributes']['target'] === '_blank' && !$parameters['tagAttributes']['rel']) {
44-
$parameters['tagAttributes']['rel'] = 'noopener';
45-
$parameters['finalTagParts']['aTagParams'] .= ' rel="noopener"';
46-
$parameters['conf']['ATagParams'] .= ' rel="noopener"';
47-
$parameters['finalTag'] = str_replace('target="_blank"', 'target="_blank" rel="noopener"', $parameters['finalTag']);
41+
$attributes = $event->getLinkResult()->getAttributes();
42+
if (
43+
isset($attributes['target'])
44+
&& $attributes['target'] === '_blank'
45+
) {
46+
$rel = 'noopener';
47+
if (isset($attributes['rel'])) {
48+
$rel = $attributes['rel'] . ' ' . $rel;
49+
}
50+
$linkResult = $event->getLinkResult()->withAttribute(
51+
'rel',
52+
$rel,
53+
);
54+
$event->setLinkResult($linkResult);
4855
}
4956
}
5057
}

Configuration/Services.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
services:
2+
_defaults:
3+
autowire: true
4+
autoconfigure: true
5+
public: false
6+
7+
B13\Snipper\:
8+
resource: '../Classes/*'

composer.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"description": "Keep external links secure by adding rel=\"noopener\" to all external typolinks.",
55
"license": "GPL-2.0-or-later",
66
"require": {
7+
"typo3/cms-backend": "^12.4 || ^13.4 || ^14.0"
78
},
89
"extra": {
910
"typo3/cms": {

ext_emconf.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
'constraints' => [
1414
'depends' =>
1515
[
16-
'typo3' => '9.5.0-10.99.99',
16+
'typo3' => '12.4.0-14.99.99',
1717
],
1818
],
1919
];

ext_localconf.php

Lines changed: 0 additions & 6 deletions
This file was deleted.

0 commit comments

Comments
 (0)