Несколько лет назад я разработал расширение в качестве внутреннего модуля. Может работать на 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. Поэтому я добавил команду exit в функцию printContent (). Задача решена! Контент появился в iframe!
function printContent()
{
echo $this->content;
exit;
}
Мой вопрос: хорош ли этот обходной путь (используя выход ) или нет? Есть ли другие лучшие или рекомендуемые подходы к этому?