我知道我可以将 tt_news 配置为自动将作者和电子邮件设置为给定值,如下所示:
TCAdefaults.tt_news.author = full name
TCAdefaults.tt_news.author_email = name@domain.tld
但是我可以从当前登录的 BE 用户的信息中检索电子邮件的名称吗?
为了使每次更改都可以填充值(如果为空),您需要在某处注册一个钩子,即在您自己的扩展中
typo3conf/ext/yourext/hooks/class.tx_ttnews_hooks.php
class tx_ttnews_hooks {
// hook for prefilling TCA values
function getSingleField_preProcess($table, $field, &$row, $altName, $palette, $extra, $pal, $pObj) {
switch($field) {
case 'author_email':
if($row[$field] == '') {
$row[$field] = $GLOBALS['BE_USER']->user['email'];
}
break;
case 'author':
if($row[$field] == '') {
$row[$field] = $GLOBALS['BE_USER']->user['realName'];
}
break;
}
}
}
然后将其添加到typo3conf/ext/yourext/ext_localconf.php
:
$TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_tceforms.php']['getSingleFieldClass'][]
= 'EXT:yourext/hooks/class.tx_ttnews_hooks.php:tx_ttnews_hooks';
有一个扩展程序可以满足您的需求。我自己没有使用过它,但描述听起来很有希望。
作为另一种解决方案,您可以编写一些添加动态用户 ts 的 php 代码。我只在 German 中找到了一个示例,但无论如何这可能会有帮助。