是否可以通过TypoScript自动生成混合的数字和字母串,例如12A54
或类似的东西?
答案 0 :(得分:5)
正如已经提到的,Typoscript中没有这样的功能,因此首选方法是使用其他答案中建议的一些simle PHP函数。
然而,有一个作弊,那就是使用MySQL。记住,这只是一个解决方案,只有你绝对不能(因为我真的想不到的原因)编写一个自定义PHP。把它当作一个学术答案而不是一个实际的答案。
temp.random = CONTENT
temp.random {
table = tt_content
select {
pidInList = 1
recursive = 99
max = 1
selectFields = SUBSTRING(MD5(RAND()) FROM 1 FOR 6) AS random_string
}
renderObj = TEXT
renderObj {
field = random_string
case = upper
}
}
备注:强>
pidInList
必须指向现有页面。答案 1 :(得分:4)
我更喜欢userFunc到php include脚本。例如,您可以将参数传递给用户函数。
<强>的TypoScript:强>
includeLibs.generateInvoiceNo= fileadmin/scripts/generateInvoiceNo.php
temp.invoiceNo = USER
temp.invoiceNo {
userFunc =user_generateInvoiceNo->main
}
<强> PHP:强>
fileadmin /脚本/ generateInvoiceNo.php
<?
class user_generateInvoiceNo {
var $cObj;// The backReference to the mother cObj object set at call time
/**
* Call it from a USER cObject with 'userFunc = user_generateInvoiceNo->main'
*/
function main($content,$conf){
$length = 6;
$chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$number=substr(str_shuffle($chars),0,$length);
return $number;
}
}
?>
致谢:
答案 2 :(得分:3)
为这样简单的任务修补TYPO3来源是错误的想法。在下一次源升级后,您将丢失更改。
相反,最好包含一个简单的PHP脚本,您可以在其中呈现所需内容check TSREF