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
Php Typo3-打字脚本将FE用户名设置为常量_Php_Typo3_Typoscript - Fatal编程技术网

Php Typo3-打字脚本将FE用户名设置为常量

Php Typo3-打字脚本将FE用户名设置为常量,php,typo3,typoscript,Php,Typo3,Typoscript,我正在尝试将当前登录的FE用户的用户名作为常量添加。我试过以下方法,但似乎不起作用 Username = TSFE:fe_user|user|username 我用它作为出发点 我想知道如何把FE用户名变成一个常量,这样我就可以在我剩下的打字稿需要的时候调用它 这是我试图输入用户名的一点打字错误,目前它只是添加了公司名称,该名称被定义为常量,但我也想在用户名中添加int。我尝试为用户名添加全局变量,但没有乐趣 [usergroup = *] config.tx_we_google_analyt

我正在尝试将当前登录的FE用户的用户名作为常量添加。我试过以下方法,但似乎不起作用

Username = TSFE:fe_user|user|username
我用它作为出发点

我想知道如何把FE用户名变成一个常量,这样我就可以在我剩下的打字稿需要的时候调用它

这是我试图输入用户名的一点打字错误,目前它只是添加了公司名称,该名称被定义为常量,但我也想在用户名中添加int。我尝试为用户名添加全局变量,但没有乐趣

[usergroup = *]
config.tx_we_google_analytics {
        _setCustomVar = 1, 'Client', '{$companyName} - {TSFE:fe_user|user|username}',2
        }
[end]
非常感谢


Bob

您可以直接在打字脚本设置中使用适当的全局变量,我认为不需要常数。您提供的示例是我正在讨论的全局变量,您可以在typoscript设置中的任何getText上下文中使用它

e、 g

打字脚本常量只允许直接赋值,不可能将任何其他“变量”赋值给常量IMHO

试试这个。如果你幸运的话,它可以工作

[usergroup = *]
config.tx_we_google_analytics {
    _setCustomVar.cObject = TEXT
    _setCustomVar.cObject.value = 1, 'Client', '{$companyName} - {TSFE:fe_user|user|username}',2
    _setCustomVar.cObject.insertData = 1
}
[end]
如果没有,则必须修改插件代码以通过stdWrap处理配置值。Thsi代码在插件控制器内工作

$configValue = $this->cObj->stdWrap('',$GLOBALS['TSFE']->tmpl->setup['config.']['tx_we_google_analytics.']['_setCustomVar.']);
$configValue = $this->cObj->stdWrap('',$this->conf['_setCustomVar.']);
或更简单(仍在控制器内)


我不建议使用扩展来插入像Google Analytics片段这样的基本内容。每个扩展都会降低系统的速度,降低系统的可维护性

我不知道你的customVar是做什么的,但你可以试试类似的东西

temp.analytics = COA
temp.analytics {

  10 = TEXT
  10.value (
    first part of GA snippet
  )

  20 = TEXT
  20.data = TSFE:fe_user|user|username

  30 = TEXT
  30.value (
     rest of GA Snippet
  )

}
然后在需要的地方插入代码片段,例如
headerData.99
,就完成了

甚至可以尝试使用wrap和insertData=1


正如Artur所说,如果数据没有在.wrap中呈现,请始终尝试stdWrap.wrap-它倾向于添加功能(尽管在默认情况下,有人试图通过stdWrap传递每个wrap,但我认为它没有完全实现)。

嗨,Artur,我已经添加了您建议的内容,但它不起作用。我很可能在这里做错了什么,因为我对打字稿的知识有点有限。请查看更新后的问题以查看其他代码。打字稿的问题在于它并不完全一致。我认为可以在对象属性中使用全局变量,因为TYPO3 core会将每个属性传递给所谓的stdWrap函数,该函数会计算这些变量。为了能够对某个插件的简单配置值(在您的例子中是tx_we_google_analytics)执行相同的操作,该插件的作者必须显式调用cObj::stdWrap函数来评估潜在变量。请参阅我的更新答案。因此,在这种情况下,将全局变量赋给常数是很有用的,但这是不可能的。啊,我甚至没有想过只把它加进去。我通过了现场进行维护。但这很有魅力。
temp.analytics = COA
temp.analytics {

  10 = TEXT
  10.value (
    first part of GA snippet
  )

  20 = TEXT
  20.data = TSFE:fe_user|user|username

  30 = TEXT
  30.value (
     rest of GA Snippet
  )

}