如何在href中使用typo3常量?

时间:2018-03-11 22:10:47

标签: typo3

为了简化操作,我可以将网页的主网址定义为模板中的常量:tx_dti.settings.url = https:/someserver/

现在我喜欢在我的文本元素中使用此常量来链接内部页面,例如:
<a href="{tx_dti.settings.url}?id=13" class="internal-link">Contact Form</a>

不幸的是,我上面提到的方法不起作用 使用常量替换服务器的正确语法是什么?
我的目标是,当我从开发服务器转移到高效服务器时,我只想更改常量。

2 个答案:

答案 0 :(得分:2)

一般:
你不能在typoscript模板(常量和设置)之外使用typoscript常量。如果要在其他上下文中使用typoscript常量的值,则需要传输该值。

如果要在流体中使用常量,则需要将值传递给流体变量。

temp.content = FLUIDTEMPLATE
temp.content {
    template = ...
    variables {
        domain = TEXT
        domain.value = {$myTSconstant}
        :
    }
}

settings { 
    domain = TEXT
    domain.value = {$myTSconstant}
    :
}

如果要在内容元素的数据字段中使用常量,可以使用标记并将标记替换为typoscript作为渲染的最后一步。

"<p>This is my text and here I use a marker: __MYMARKER__</p>"

相应的typoscript:

page {
    :

    stdWrap.replacement {
         1.search = __MYMARKER__
         1.replace = {$myTSconstant}
    }
}

注意:
始终在花括号内的名称之前使用带有$的TS常量 不要将它与流体中的变量用法混淆(没有$)。

关于您的问题:
正如Riccardo所说:不要在链接中使用常量,即使:不要手工构建链接。如果您确实需要在网址中使用自己的域名,请将其设置为config.absRefPrefix(首选config.baseURL

进行自动设置

答案 1 :(得分:0)

我猜您可以使用config.absRefPrefixconfig.baseURL(请参阅https://docs.typo3.org/typo3cms/TyposcriptReference/Setup/Config/

您可以设置TypoScript常量:

tx_dti.settings.url = http://myserver

然后在TypoScript设置中:

config.baseURL = {$tx_dti.settings.url}

config.absRefPrefix = {$tx_dti.settings.url}

这是否足够或我误解了您的要求?