如何在常量中使用Sitename作为TYPO3中的默认值?

如何在常量中使用Sitename作为TYPO3中的默认值?,typo3,constants,typoscript,Typo3,Constants,Typoscript,我希望在默认情况下以常量设置Sitename,以便在Fluidtemplate中使用此settings.variable 我在stackoverflow上发现: DB:sys|U模板| 1 |标题 全局:TYPO3_CONF|u VARS | SYS | sitename 但是如果我在常量中使用它,那么如下所示: # cat=plugin.tx_rmnavigation/01_NaviSettings/a; type=string; label=testing sitetitle testsit

我希望在默认情况下以常量设置Sitename,以便在Fluidtemplate中使用此settings.variable

我在stackoverflow上发现:

DB:sys|U模板| 1 |标题 全局:TYPO3_CONF|u VARS | SYS | sitename 但是如果我在常量中使用它,那么如下所示:

# cat=plugin.tx_rmnavigation/01_NaviSettings/a; type=string; label=testing sitetitle
testsitetitle = DB:sys_template|1|title

在my setup.ts中:

testsitetitle = {$plugin.tx_rmnavigation.settings.testsitetitle}
我只得到文本,而不是变量的值。请看这张图片

如何将常数中的Sitename用作默认值

编辑 我忘了说,也许这对这个问题很重要,我在这两个文件中都尝试过:

plugin.tx_rmnavigation {
    settings {
        ..
    }
}

您必须将常量指定给内容对象的数据属性,请参见并解析:

testsitetitle = TEXT
testsitetitle.data = {$plugin.tx_rmnavigation.settings.testsitetitle}
我更喜欢常数定义的第二个变量,因为它使用当前模板记录中的值:

# cat=plugin.tx_rmnavigation/01_NaviSettings/a; type=string; label=testing sitetitle
testsitetitle = GLOBAL:TYPO3_CONF_VARS|SYS|sitename
但是,如果使用冒号而不是管道,第一种方法也应该有效:

testsitetitle = DB:sys_template:1:title

谢谢你的建议。我用你的信息找到了一个解决方案

老实说,我认为这在常量中不起作用,因为这两种方法都是只读的

因此,我找到了一个有效的解决方案:我只需要在模板中读取该变量,因此我创建了一个新的打字脚本文件libs.ts,并将其包含在以下文件中:

# Include Libraries
<INCLUDE_TYPOSCRIPT: source="FILE: EXT:rm_navigation/Resources/Private/TypoScript/libs.ts">

数据库语法 两者都有效。我读到您使用冒号语法来使用DB,使用管道语法来使用全局变量

要获得此流体,请使用此代码:

<f:cObject typoscriptObjectPath="lib.sitename" />

我希望它能帮助其他也有这个问题的人。

如果您有一个多域页面,那么对DB:sys\u template:1:sitetitle的查询可能不起作用,因为1是UID,而不是模板根节点的PID。但是TSFE需要救援

在页面调用的上下文中,TSFE已经从后端模板加载了sitetitle

例如,如果要输出og:site_名称,可以使用以下命令访问该值:

og:site_name = TEXT
og:site_name {
    data = TSFE:tmpl|sitetitle
    attribute = property
}

这样,就不需要额外的数据库查询,它可以在多域、多根节点页面上工作。

据我从文档中看到,gettext DB使用冒号而不是管道-请参阅@RiccardoDeContardi您是对的,它将附加正确的常量这是迄今为止最干净的解决方案。
lib.sitename = TEXT
lib.sitename.data = DB:sys_template:1:sitetitle
<f:cObject typoscriptObjectPath="lib.sitename" />
og:site_name = TEXT
og:site_name {
    data = TSFE:tmpl|sitetitle
    attribute = property
}