30 define(
'TYPO3_MODE',
'FE');
33 ->startOutputBuffering()
34 ->loadConfigurationAndInitialize()
35 ->loadTypo3LoadedExtAndExtLocalconf(TRUE)
36 ->applyAdditionalConfigurationSettings();
44 $TT = new \TYPO3\CMS\Core\TimeTracker\TimeTracker();
46 $TT = new \TYPO3\CMS\Core\TimeTracker\NullTimeTracker();
53 if (is_array(
$TYPO3_CONF_VARS[
'SC_OPTIONS'][
'tslib/index_ts.php'][
'preprocessRequest'])) {
54 foreach (
$TYPO3_CONF_VARS[
'SC_OPTIONS'][
'tslib/index_ts.php'][
'preprocessRequest'] as $hookFunction) {
55 $hookParameters = array();
59 unset($hookParameters);
62 if ($temp_extId = \
TYPO3\CMS\Core\Utility\GeneralUtility::_GP(
'eID')) {
63 if ($classPath = \
TYPO3\CMS\Core\Utility\GeneralUtility::getFileAbsFileName(
$TYPO3_CONF_VARS[
'FE'][
'eID_include'][$temp_extId])) {
73 'TYPO3\\CMS\\Frontend\\Controller\\TypoScriptFrontendController',
75 \
TYPO3\CMS\Core\Utility\GeneralUtility::_GP(
'id'),
76 \
TYPO3\CMS\Core\Utility\GeneralUtility::_GP(
'type'),
77 \
TYPO3\CMS\Core\Utility\GeneralUtility::_GP(
'no_cache'),
78 \
TYPO3\CMS\Core\Utility\GeneralUtility::_GP(
'cHash'),
79 \
TYPO3\CMS\Core\Utility\GeneralUtility::_GP(
'jumpurl'),
80 \
TYPO3\CMS\Core\Utility\GeneralUtility::_GP(
'MP'),
81 \
TYPO3\CMS\Core\Utility\GeneralUtility::_GP(
'RDCT')
85 && !\
TYPO3\CMS\Core\Utility\GeneralUtility::cmpIP(
86 \
TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv(
'REMOTE_ADDR'),
89 $TSFE->pageUnavailableAndExit(
'This page is temporarily unavailable.');
93 $TSFE->sendRedirect();
98 if (
$TYPO3_CONF_VARS[
'FE'][
'compressionLevel'] && extension_loaded(
'zlib')) {
99 if (\
TYPO3\CMS\Core\Utility\MathUtility::canBeInterpretedAsInteger(
$TYPO3_CONF_VARS[
'FE'][
'compressionLevel'])) {
101 @ini_set(
'zlib.output_compression_level',
$TYPO3_CONF_VARS[
'FE'][
'compressionLevel']);
103 ob_start(array(\
TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(
'TYPO3\\CMS\\Frontend\\Utility\\CompressionUtility'),
'compressionOutputHandler'));
107 $TT->push(
'Front End user initialized',
'');
119 $TT->push(
'Process ID',
'');
121 if (
$TSFE->isBackendUserLoggedIn()) {
127 $TSFE->checkAlternativeIdMethods();
128 $TSFE->clear_preview();
129 $TSFE->determineId();
135 $TSFE->isBackendUserLoggedIn()
140 $TSFE->beUserLogin = FALSE;
142 $TSFE->checkAlternativeIdMethods();
143 $TSFE->clear_preview();
144 $TSFE->determineId();
147 $TSFE->makeCacheHash();
151 if (
$TSFE->isBackendUserLoggedIn()) {
153 if (
$BE_USER->adminPanel instanceof \
TYPO3\CMS\Frontend\View\AdminPanelView) {
155 ->initializeLanguageObject()
156 ->initializeSpriteManager();
158 if (
$BE_USER->frontendEdit instanceof \
TYPO3\CMS\Core\FrontendEditing\FrontendEditingController) {
159 $BE_USER->frontendEdit->initConfigOptions();
164 $TT->push(
'Start Template',
'');
165 $TSFE->initTemplate();
168 $TT->push(
'Get Page from cache',
'');
169 $TSFE->getFromCache();
173 $TSFE->getConfigArray();
175 $TT->push(
'Setting language and locale',
'');
176 $TSFE->settingLanguage();
177 $TSFE->settingLocale();
181 $TSFE->convPOSTCharset();
184 $TSFE->setExternalJumpUrl();
185 $TSFE->checkJumpUrlReferer();
187 $TSFE->handleDataSubmission();
190 $TSFE->checkPageForShortcutRedirect();
191 $TSFE->checkPageForMountpointRedirect();
194 $TSFE->setUrlIdToken();
195 $TT->push(
'Page generation',
'');
196 if (
$TSFE->isGeneratePage()) {
197 $TSFE->generatePage_preProcessing();
198 $temp_theScript =
$TSFE->generatePage_whichScript();
199 if ($temp_theScript) {
200 include $temp_theScript;
207 foreach ($temp_incFiles as $temp_file) {
208 include_once
'./' . $temp_file;
211 if (!
$TSFE->isINTincScript()) {
213 $TSFE->setAbsRefPrefix();
216 $TSFE->generatePage_postProcessing();
217 } elseif (
$TSFE->isINTincScript()) {
223 foreach ($temp_incFiles as $temp_file) {
224 include_once
'./' . $temp_file;
230 if (
$TSFE->isINTincScript()) {
231 $TT->push(
'Non-cached objects',
'');
232 $TSFE->INTincScript();
237 if (
$TSFE->isOutputting()) {
238 $TT->push(
'Print Content',
'');
239 $TSFE->processOutput();
244 $TSFE->storeSessionData();
247 $TSFE->setParseTime();
248 if (isset(
$TSFE->config[
'config'][
'debug'])) {
249 $debugParseTime = (bool)
$TSFE->config[
'config'][
'debug'];
251 $debugParseTime = !empty(
$TSFE->TYPO3_CONF_VARS[
'FE'][
'debug']);
253 if (
$TSFE->isOutputting() && $debugParseTime) {
254 $TSFE->content .= LF .
'<!-- Parsetime: ' .
$TSFE->scriptParseTime .
'ms -->';
259 $TSFE->previewInfo();
265 \TYPO3\CMS\Core\Utility\MonitorUtility::peakMemoryUsage();
267 echo
$TSFE->beLoginLinkIPList();
271 $TSFE->isBackendUserLoggedIn()
272 &&
$BE_USER instanceof \TYPO3\CMS\Backend\FrontendBackendUserAuthentication
275 $TSFE->content = str_ireplace(
'</head>',
$BE_USER->adminPanel->getAdminPanelHeaderData() .
'</head>',
$TSFE->content);
276 $TSFE->content = str_ireplace(
'</body>',
$BE_USER->displayAdminPanel() .
'</body>',
$TSFE->content);
283 if (isset($error) && is_object($error) && @is_callable(array($error,
'debugOutput'))) {
284 $error->debugOutput();
$TYPO3_CONF_VARS['SYS']['contentTable']
static devLog($msg, $extKey, $severity=0, $dataVar=FALSE)
static makeInstance($className)
static callUserFunction($funcName, &$params, &$ref, $checkPrefix='', $errorMode=0)
if($TSFE->isINTincScript()) $sendTSFEContent
if(!defined('TYPO3_MODE')) $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_userauth.php']['logoff_pre_processing'][]
$TYPO3_MISC['microtime_end']