[TASK] Reduce severity for set_no_cache() from core 98/20198/2
authorGeorg Ringer <georg.ringer@gmail.com>
Fri, 26 Apr 2013 17:43:02 +0000 (19:43 +0200)
committerJigal van Hemert <jigal@xs4all.nl>
Thu, 2 May 2013 10:54:05 +0000 (12:54 +0200)
Reduce the severity if an internal flag is set and the a backend user
is logged in.

Resolves: #43735
Related: #43506
Releases: 6.1, 6.0, 4.7, 4.5
Change-Id: Ifd78f67d38b87180ab60df05167974705ee90352
Reviewed-on: https://review.typo3.org/20198
Reviewed-by: Philipp Gampe
Reviewed-by: Jigal van Hemert
Tested-by: Jigal van Hemert
typo3/sysext/feedit/Classes/FrontendEditPanel.php
typo3/sysext/frontend/Classes/Controller/TypoScriptFrontendController.php
typo3/sysext/frontend/Classes/View/AdminPanelView.php

index 531b924..1fdb748 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', TRUE);
                $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', TRUE);
                $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 996551d..dba11af 100644 (file)
@@ -3102,7 +3102,7 @@ class TypoScriptFrontendController {
                                // 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.
                                // 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', TRUE);
                        } else {
                                $this->tempContent = TRUE;
                                // This flag shows that temporary content is put in the cache
@@ -3335,7 +3335,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', TRUE);
                }
                // Tidy up the code, if flag...
                if ($this->TYPO3_CONF_VARS['FE']['tidy_option'] == 'all') {
@@ -4449,10 +4449,17 @@ if (version == "n3") {
         * Sets the cache-flag to 1. Could be called from user-included php-files in order to ensure that a page is not cached.
         *
         * @param string $reason An optional reason to be written to the syslog.
+        * @param boolean $internal Whether the call is done from core itself (should only be used by core).
         * @return void
         * @todo Define visibility
         */
-       public function set_no_cache($reason = '') {
+       public function set_no_cache($reason = '', $internal = FALSE) {
+               if ($internal && isset($GLOBALS['BE_USER]'])) {
+                       $severity = \TYPO3\CMS\Core\Utility\GeneralUtility::SYSLOG_SEVERITY_NOTICE;
+               } else {
+                       $severity = \TYPO3\CMS\Core\Utility\GeneralUtility::SYSLOG_SEVERITY_WARNING;
+               }
+
                if (strlen($reason)) {
                        $warning = '$TSFE->set_no_cache() was triggered. Reason: ' . $reason . '.';
                } else {
@@ -4476,7 +4483,7 @@ if (version == "n3") {
                        $warning .= ' Caching is disabled!';
                        $this->disableCache();
                }
-               \TYPO3\CMS\Core\Utility\GeneralUtility::sysLog($warning, 'cms', \TYPO3\CMS\Core\Utility\GeneralUtility::SYSLOG_SEVERITY_WARNING);
+               \TYPO3\CMS\Core\Utility\GeneralUtility::sysLog($warning, 'cms', $severity);
        }
 
        /**
index 774d86e..94b5d6d 100644 (file)
@@ -92,8 +92,12 @@ 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', TRUE);
+               } elseif ($GLOBALS['TSFE']->displayEditIcons) {
+                       $GLOBALS['TSFE']->set_no_cache('Admin Panel: Display edit icons', TRUE);
+               } elseif ($GLOBALS['TSFE']->displayFieldEditIcons) {
+                       $GLOBALS['TSFE']->set_no_cache('Admin Panel: Display field edit icons', TRUE);
                }
        }
 
@@ -158,7 +162,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', TRUE);
                }
        }