Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typo3 使用tca的链接向导不跟踪链接_Typo3_Typo3 9.x - Fatal编程技术网

Typo3 使用tca的链接向导不跟踪链接

Typo3 使用tca的链接向导不跟踪链接,typo3,typo3-9.x,Typo3,Typo3 9.x,是否可以将rel=“nofollow”添加到后端tca通过链接向导创建的外部链接?(例如,所有内容元素中的标题链接、图像链接、页面树中的外部链接) 我找到的唯一方法是在ck_编辑器中找到链接处理程序 谢谢 无扩展地解决您的问题首先我想到了打字脚本lib.parseFunc 流体模板只是在没有该函数的情况下进行解析,您必须调整模板。 查看ViewHelperTypoLinkViewHelper可以看到允许的参数列表: public function initializeArguments

是否可以将rel=“nofollow”添加到后端tca通过链接向导创建的外部链接?(例如,所有内容元素中的标题链接、图像链接、页面树中的外部链接)

我找到的唯一方法是在ck_编辑器中找到链接处理程序


谢谢

无扩展地解决您的问题首先我想到了打字脚本
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中的向导没有此字段。