【问题标题】:TYPO3 6.0: PHP_SCRIPT was removed. How can I fix this?TYPO3 6.0:PHP_SCRIPT 已删除。我怎样才能解决这个问题?
【发布时间】:2013-03-10 10:37:26
【问题描述】:

我最后一次密集使用 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 专家,所以请随时详细解释。 ;-)

谢谢! 英戈。

【问题讨论】:

    标签: php typo3 typoscript


    【解决方案1】:

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

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

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

    我建议您阅读this basic info 了解这两种类型的用法。

    所以,最后你需要一个 PHP 类,它的名称从 'user_' 或 'tx_' 开始,带有一个 main() 方法,它需要两个参数 $content em> 和 $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-10-24
      • 1970-01-01
      • 2019-04-10
      • 1970-01-01
      • 2012-03-16
      • 2020-11-28
      • 1970-01-01
      • 1970-01-01
      • 2022-06-10
      相关资源
      最近更新 更多