Typo3 使用tca的链接向导不跟踪链接
是否可以将rel=“nofollow”添加到后端tca通过链接向导创建的外部链接?(例如,所有内容元素中的标题链接、图像链接、页面树中的外部链接) 我找到的唯一方法是在ck_编辑器中找到链接处理程序Typo3 使用tca的链接向导不跟踪链接,typo3,typo3-9.x,Typo3,Typo3 9.x,是否可以将rel=“nofollow”添加到后端tca通过链接向导创建的外部链接?(例如,所有内容元素中的标题链接、图像链接、页面树中的外部链接) 我找到的唯一方法是在ck_编辑器中找到链接处理程序 谢谢 无扩展地解决您的问题首先我想到了打字脚本lib.parseFunc 流体模板只是在没有该函数的情况下进行解析,您必须调整模板。 查看ViewHelperTypoLinkViewHelper可以看到允许的参数列表: public function initializeArguments
谢谢 无扩展地解决您的问题首先我想到了打字脚本
lib.parseFunc
流体模板只是在没有该函数的情况下进行解析,您必须调整模板。 查看ViewHelper
TypoLinkViewHelper
可以看到允许的参数列表:
public function initializeArguments()
{
$this->registerArgument('parameter', 'string', 'stdWrap.typolink style parameter string', true);
$this->registerArgument('target', 'string', '', false, '');
$this->registerArgument('class', 'string', '', false, '');
$this->registerArgument('title', 'string', '', false, '');
$this->registerArgument('additionalParams', 'string', '', false, '');
$this->registerArgument('additionalAttributes', 'array', '', false, []);
$this->registerArgument('useCacheHash', 'bool', '', false, false);
$this->registerArgument('addQueryString', 'bool', '', false, false);
$this->registerArgument('addQueryStringMethod', 'string', '', false, 'GET');
$this->registerArgument('addQueryStringExclude', 'string', '', false, '');
$this->registerArgument('absolute', 'bool', 'Ensure the resulting URL is an absolute URL', false, false);
}
VH中不存在单词external
,因此我假设您必须扩展它并使用自己的VH。我从未详细验证过用于这些目的的扩展正在做什么,可能他们使用了一些钩子或服务,因为他们可能从不需要更改模板。我试图更改标题的部分模板,但它仍然有效,只是缺少内部和外部链接之间的分离,没有进一步的更改 模板文件位于
typo3/sysext/fluid\u styled\u content/Resources/Private
中,您可以将它们复制到自己的扩展名中,并相应地更改默认位置
<f:if condition="{header}">
<f:switch expression="{layout}">
<f:case value="1">
<h1 class="{positionClass}">
<f:link.typolink parameter="{link}">{header}</f:link.typolink>
</h1>
</f:case>
<f:case value="2">
<h2 class="{positionClass}">
<f:link.typolink parameter="{link}" additionalAttributes="{rel:'nofollow'}">{header}</f:link.typolink>
</h2>
</f:case>
...
{header}
{header}
...
因此,使用@Julian Hofmann提出的扩展可能是最好、最聪明的解决方案。如果你永远只需要一些常规的更改。我将扩展名
noopener
分叉,并进行了一些调整,以允许打字配置。
到目前为止,还没有包括打字稿,但我在这里发布了选项:
config.tx_noopener {
useDefaultRelAttribute = false
relAttribute = nofollow
}
useDefaultRelAttribute
是布尔值(只有false或0触发某些内容)。relAttribute
可以是任何字符串,也可以带有空格
使用此打字脚本选项,可以为特定页面配置不同的打字脚本
可在此处使用扩展名:。添加打字脚本后,我将向原始扩展发出拉取请求 编辑:
如果您有权配置标题等单个链接,现在可以添加一个或多个前缀为
rel-
的css类。如果通过noopener
启用处理,则这些类将用于创建rel
-属性。此外,您还可以配置是否应从“类”属性中删除类 示例:
我在内容元素中添加了
标题
,并在下面相应的字段中添加了链接。对于链接,我添加了这些类rel nofollow rel something col right kunterbunt
这是输入脚本设置:
config.tx_noopener {
useDefaultRelAttribute = false
# relAttribute = nofollow
useCssClass = 1
keepCssRelClass = 0
}
选项useCssClass
dis-或完全启用css类的处理。keepcsrelclass
确定当该值用于rel属性时,是否应从类属性中删除该值。另外,仅当根据此列表a元素的允许值列表中有以下值时,才接受class属性中的值:
我知道这个过滤器在某些情况下可能是不受欢迎的,比如lightbox,其中使用了一些其他关键字,但在没有过滤器的情况下使用它对我来说有点可怕和不安全,因为它将使编辑能够输入所有内容。但是请记住,扩展名
noopener
仅用于外部链接,使用内部链接通常是可能的,但会改变扩展名的基本概念
上述配置链接的结果如下:
<a rel="nofollow" href="..." class="rel-something col-right kunterbunt">...</a>
如您所见,css类rel nofollow
被移动到rel
-属性,rel something
保持不变,因为它不在允许值列表中,而其他css类无论如何都没有rel
-前缀
编辑可以在此处找到pull请求:也许Georgs扩展名“noopener”可以帮助您:谢谢您的提示,但这并不能解决问题。noopener或noreferrer与nofollow的意思不同。此外,nofollow一般不应用于所有外部链接,而应仅用于独特的链接。例如,谷歌要求rel=“nofollow”用于广告。看来vh并不是真正的问题。additionalAttributes应该处理这个问题(rel=“nofollow”是一个附加属性)。但不可能在后端填写此参数。问题似乎是向导,他缺少字段附加属性。RTE中的向导没有此字段。