3

上一次密集使用 TYPO3 是几年前的事了。所以我不记得太多TYPO-Script。当我更新到 6.0 时,我发现这段代码不再有效:

marks.CONTENT.30 = PHP_SCRIPT
marks.CONTENT.30.file = fileadmin/db/db.php

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

我怎样才能快速解决这个问题?我听说 PHP_SCRIPT 已被弃用,并且还有另一个关键字(USER),但我不知道如何使用它。请记住:我真的不再是 TYPO-Script 专家,所以请随时详细解释。;-)

谢谢!英戈。

4

1 回答 1

6

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

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

如果您有动态数据,并且经常更改(每次新页面加载都会带来新输出),那么您宁愿使用USER_INT,但请注意:每次页面加载时都会调用 USER_INT 脚本,因此您必须尽可能优化它,因为可能的。

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

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

main()内部,您创建 HTML 输出并将其返回(作为字符串)。

在USER的情况下,TS 部分将如下所示:

includeLibs.something = fileadmin/db/db.php
marks.CONTENT.30 = USER
marks.CONTENT.30 {
  userFunc = user_db->main
}

对于USER_INT

marks.CONTENT.30 = USER_INT
marks.CONTENT.30 {
  includeLibs = fileadmin/db/db.php
  userFunc = user_db->main
}

注意:我已经为您的案例描述了肮脏但简单的方法。最好考虑使用CONTENT cObject,因为它完全符合您的需要:从数据库中获取记录并以您喜欢的方式将它们输出到页面上。

于 2013-03-10T16:42:33.380 回答