几年前,我开发了一个扩展作为后端模块。它可以在TYPO3 7 LTS上运行。最近,我更新了它,并希望使其在TYPO3 8 LTS上运行。
它不是基于Extbase的,主要的类路径是mod1 / index.php。
在此index.php中,存在主类tx_xxxxx_module1。在类tx_xxxxxx_module1中,有多个函数可以生成所需的内容。在index.php的末尾,调用一个函数来打印内容(到iframe中):$ SOBE-> printContent();
//index.php
<?php
global $MCONF;
require_once \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('xxxxx').'mod1/conf.php';
class tx_xxxxx_module1 extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
......
function main() {
......
}
......
function printContent() {
......
}
}
......
$SOBE = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('tx_xxxxx_module1');
$SOBE->main();
$SOBE->printContent();
?>
这里$ SOBE是类tx_xxxxxx_module1的一个实例(单例);在函数printContent()中,除了echo命令外没有其他内容:
function printContent()
{
echo $this->content;
}
这对于TYPO3 7效果很好。但是在TYPO3 8中,iframe中什么也看不见。因此,我在函数printContent()中添加了退出命令。问题解决了!内容出现在iframe中!
function printContent()
{
echo $this->content;
exit;
}
我的问题:这种解决方法(使用退出)是否有效?还有其他更好或推荐的方法吗?
答案 0 :(得分:1)
这听起来还可以,但是如果您需要的话,我会考虑整体重构代码,并切换到流畅的模板等等。但是,如果不需要,则无需切换到extbase。