TYPO3 6.0:删除了PHP_SCRIPT.我怎样才能解决这个问题?

Ing*_*wig 3 php typo3 typoscript

这是几年前我上次使用TYPO3的时候.所以我不记得很多TYPO-Script.当我更新到6.0时,我发现此代码不再有效:

marks.CONTENT.30 = PHP_SCRIPT
marks.CONTENT.30.file = fileadmin/db/db.php
Run Code Online (Sandbox Code Playgroud)

它只是插入了db.php的html输出(它做了一些数据库请求,并形成了一个自定义的html/css表).

我该如何快速解决这个问题?我听说PHP_SCRIPT已被弃用,而且还有另一个关键字(USER),但我不知道如何使用它.记住:我不再是TYPO脚本专家了,所以请随时详细解释.;-)

谢谢!英戈.

Vik*_*kyi 6

看起来你需要一个基本扩展,正如你所提到的,它只是USERUSER_INT内容对象.

第一个缓存在页面内容中,因此,如果脚本输出一些静态或很少更改的信息,则应考虑选择USER类型.

如果您有频繁更改的动态数据(每个新页面加载带来新输出),那么您更愿意使用USER_INT,但请注意:每次页面加载时都会调用USER_INT脚本,因此您必须对其进行优化,如可能.

我建议您阅读有关这两种类型使用的基本信息.

所以,最后你需要一个PHP类,其名称从'user_'或'tx_'开始,带有main()方法,它需要两个参数$ content$ conf.您不会使用这些参数,但是FYI,$ content可能包含预处理内容,$ conf包含脚本所需的任何配置数据.

main()内部,您可以创建HTML输出并返回它(作为字符串).

USER的情况下,TS部分将跟随:

includeLibs.something = fileadmin/db/db.php
marks.CONTENT.30 = USER
marks.CONTENT.30 {
  userFunc = user_db->main
}
Run Code Online (Sandbox Code Playgroud)

对于USER_INT:

marks.CONTENT.30 = USER_INT
marks.CONTENT.30 {
  includeLibs = fileadmin/db/db.php
  userFunc = user_db->main
}
Run Code Online (Sandbox Code Playgroud)

注意:我已经为您的案例描述了肮脏但简单的方法.更好的方法是考虑使用CONTENT cObject,因为它完全符合您的需求:从DB中提取记录并以某种方式将它们输出到页面上,您喜欢的方式.