[TASK] Provide a reason if set_no_cache() is called
authorPhilipp Gampe <philipp.gampe@typo3.org>
Sat, 1 Dec 2012 19:03:48 +0000 (20:03 +0100)
committerDmitry Dulepov <dmitry@typo3.org>
Fri, 7 Dec 2012 08:34:58 +0000 (09:34 +0100)
Since #20849, we can specify a reason why we call
GLOBALS['TSFE']->set_no_cache().

Provide a reason for all calls done in core.

Resolves: #43506
Related: #20849
Releases: 6.1

Change-Id: Id786a041ef5d9f1db49d644459a593aaf54b5018
Reviewed-on: http://review.typo3.org/16925
Reviewed-by: Stefan Neufeind
Reviewed-by: Dmitry Dulepov
Tested-by: Dmitry Dulepov
typo3/sysext/core/Classes/Imaging/GraphicalFunctions.php
typo3/sysext/feedit/Classes/FrontendEditPanel.php
typo3/sysext/frontend/Classes/ContentObject/SearchResultContentObject.php
typo3/sysext/frontend/Classes/Controller/TypoScriptFrontendController.php
typo3/sysext/frontend/Classes/View/AdminPanelView.php

index f828fd4..2013a1c 100644 (file)
@@ -2527,11 +2527,11 @@ class GraphicalFunctions {
                                // If not, we look up in the cache_typo3temp_log table to see if there is a image being rendered right now.
                                $md5Hash = md5($output);
                                $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('md5hash', 'cache_typo3temp_log', 'md5hash=' . $GLOBALS['TYPO3_DB']->fullQuoteStr($md5Hash, 'cache_typo3temp_log') . ' AND tstamp>' . ($GLOBALS['EXEC_TIME'] - 30));
-                               // If there was a record, the image is being generated by another proces (we assume)
+                               // If there was a record, the image is being generated by another process (we assume)
                                if ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
                                        $GLOBALS['TYPO3_DB']->sql_free_result($res);
                                        if (is_object($GLOBALS['TSFE'])) {
-                                               $GLOBALS['TSFE']->set_no_cache();
+                                               $GLOBALS['TSFE']->set_no_cache('Another process renders this file now: ' . $output);
                                        }
                                        // ...so we set no_cache, because we dont want this page (which will NOT display an image...!) to be cached! (Only a page with the correct image on...)
                                        if (is_object($GLOBALS['TT'])) {
@@ -3004,4 +3004,4 @@ class GraphicalFunctions {
 }
 
 
-?>
\ No newline at end of file
+?>
index 531b924..d6a7035 100644 (file)
@@ -69,7 +69,7 @@ class FrontendEditPanel {
         */
        public function editPanel($content, array $conf, $currentRecord = '', array $dataArr = array(), $table = '', $allow = '', $newUID = 0, array $hiddenFields = array()) {
                // Special content is about to be shown, so the cache must be disabled.
-               $GLOBALS['TSFE']->set_no_cache();
+               $GLOBALS['TSFE']->set_no_cache('Frontend edit panel is shown');
                $formName = 'TSFE_EDIT_FORM_' . substr($GLOBALS['TSFE']->uniqueHash(), 0, 4);
                $formTag = '<form name="' . $formName . '" id ="' . $formName . '" action="' . htmlspecialchars(\TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('REQUEST_URI')) . '" method="post" enctype="' . $GLOBALS['TYPO3_CONF_VARS']['SYS']['form_enctype'] . '" onsubmit="return TBE_EDITOR.checkSubmit(1);" style="margin: 0 0 0 0;">';
                $sortField = $GLOBALS['TCA'][$table]['ctrl']['sortby'];
@@ -185,7 +185,7 @@ class FrontendEditPanel {
         */
        public function editIcons($content, $params, array $conf = array(), $currentRecord = '', array $dataArr = array(), $addUrlParamStr = '', $table, $editUid, $fieldList) {
                        // Special content is about to be shown, so the cache must be disabled.
-               $GLOBALS['TSFE']->set_no_cache();
+               $GLOBALS['TSFE']->set_no_cache('Display frontend edit icons');
                $style = $conf['styleAttribute'] ? ' style="' . htmlspecialchars($conf['styleAttribute']) . '"' : '';
                $iconTitle = $this->cObj->stdWrap($conf['iconTitle'], $conf['iconTitle.']);
                $iconImg = $conf['iconImg'] ? $conf['iconImg'] : '<img  ' . \TYPO3\CMS\Backend\Utility\IconUtility::skinImg(TYPO3_mainDir, 'gfx/edit_fe.gif', 'width="11" height="12" border="0" align="top" ') . ' title="' . \TYPO3\CMS\Core\Utility\GeneralUtility::deHSCentities(htmlspecialchars($iconTitle)) . '"' . $style . ' class="frontEndEditIcons" alt="" />';
index 819ba4a..e88afcf 100644 (file)
@@ -283,8 +283,8 @@ class SearchResultContentObject extends \TYPO3\CMS\Frontend\ContentObject\Abstra
                        if (isset($conf['stdWrap.'])) {
                                $content = $this->cObj->stdWrap($content, $conf['stdWrap.']);
                        }
-                       // returning
-                       $GLOBALS['TSFE']->set_no_cache();
+                       // Returning, do not cache the result of the search
+                       $GLOBALS['TSFE']->set_no_cache('Search result page');
                        return $content;
                }
                return '';
index 6dd0450..08226ba 100644 (file)
@@ -312,7 +312,7 @@ class TypoScriptFrontendController {
        /**
         * @todo Define visibility
         */
-       public $no_CacheBeforePageGen = '';
+       public $no_cacheBeforePageGen = '';
 
        // This flag indicates if temporary content went into the cache during page-generation.
        /**
@@ -1375,7 +1375,7 @@ class TypoScriptFrontendController {
                }
                // Set no_cache if set
                if ($this->page['no_cache']) {
-                       $this->set_no_cache();
+                       $this->set_no_cache('no_cache is set in page properties');
                }
                // Init SYS_LASTCHANGED
                $this->register['SYS_LASTCHANGED'] = intval($this->page['tstamp']);
@@ -2056,7 +2056,7 @@ class TypoScriptFrontendController {
                                $this->MP = $this->TYPO3_CONF_VARS['FE']['enable_mount_pids'] ? $GET_VARS['MP'] : '';
                        }
                        if (isset($GET_VARS['no_cache']) && $GET_VARS['no_cache']) {
-                               $this->set_no_cache();
+                               $this->set_no_cache('no_cache is requested via GET parameter');
                        }
                }
        }
@@ -2426,7 +2426,7 @@ class TypoScriptFrontendController {
                // No cache
                // Set $this->no_cache TRUE if the config.no_cache value is set!
                if ($this->config['config']['no_cache']) {
-                       $this->set_no_cache();
+                       $this->set_no_cache('config.no_cache is set');
                }
                // Merge GET with defaultGetVars
                if (!empty($this->config['config']['defaultGetVars.'])) {
@@ -3058,9 +3058,9 @@ class TypoScriptFrontendController {
                        if (!$this->headerNoCache() && ($cachedRow = $this->getFromCache_queryRow())) {
                                // We are here because between checking for cached content earlier and now some other HTTP-process managed to store something in cache AND it was not due to a shift-reload by-pass.
                                // This is either the "Page is being generated" screen or it can be the final result.
-                               // In any case we should not begin another rendering process also, so we silently disable caching and render the page ourselves and thats it.
+                               // In any case we should not begin another rendering process also, so we silently disable caching and render the page ourselves and that's it.
                                // Actually $cachedRow contains content that we could show instead of rendering. Maybe we should do that to gain more performance but then we should set all the stuff done in $this->getFromCache()... For now we stick to this...
-                               $this->set_no_cache();
+                               $this->set_no_cache('Another process wrote into the cache since the beginning of the render process');
                        } else {
                                $this->tempContent = TRUE;
                                // This flag shows that temporary content is put in the cache
@@ -3293,7 +3293,7 @@ class TypoScriptFrontendController {
        public function generatePage_postProcessing() {
                // This is to ensure, that the page is NOT cached if the no_cache parameter was set before the page was generated. This is a safety precaution, as it could have been unset by some script.
                if ($this->no_cacheBeforePageGen) {
-                       $this->set_no_cache();
+                       $this->set_no_cache('no_cache has been set before the page was generated - safety check');
                }
                // Tidy up the code, if flag...
                if ($this->TYPO3_CONF_VARS['FE']['tidy_option'] == 'all') {
index 774d86e..997e441 100644 (file)
@@ -92,8 +92,14 @@ class AdminPanelView {
                        $GLOBALS['BE_USER']->uc['TSFE_adminConfig']['preview_simulateDate'] = intval(\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('ADMCMD_simTime'));
                        $this->ext_forcePreview = TRUE;
                }
-               if ($GLOBALS['TSFE']->forceTemplateParsing || $GLOBALS['TSFE']->displayEditIcons || $GLOBALS['TSFE']->displayFieldEditIcons) {
-                       $GLOBALS['TSFE']->set_no_cache();
+               if ($GLOBALS['TSFE']->forceTemplateParsing) {
+                       $GLOBALS['TSFE']->set_no_cache('Admin Panel: Force template parsing');
+               }
+               if ($GLOBALS['TSFE']->displayEditIcons) {
+                       $GLOBALS['TSFE']->set_no_cache('Admin Panel: Display edit icons');
+               }
+               if ($GLOBALS['TSFE']->displayFieldEditIcons) {
+                       $GLOBALS['TSFE']->set_no_cache('Admin Panel: Display field edit icons');
                }
        }
 
@@ -158,7 +164,7 @@ class AdminPanelView {
                }
                $GLOBALS['TT']->LR = $this->extGetFeAdminValue('tsdebug', 'LR');
                if ($this->extGetFeAdminValue('cache', 'noCache')) {
-                       $GLOBALS['TSFE']->set_no_cache();
+                       $GLOBALS['TSFE']->set_no_cache('Admin Panel: No Caching');
                }
        }
 
@@ -658,4 +664,4 @@ class AdminPanelView {
 }
 
 
-?>
\ No newline at end of file
+?>