Index: t3lib/config_default.php =================================================================== --- t3lib/config_default.php (Revision 2587) +++ t3lib/config_default.php (Arbeitskopie) @@ -216,9 +216,10 @@ 'enable_mount_pids' => 1, // If set to "1", the mount_pid feature allowing 'symlinks' in the page tree (for frontend operation) is allowed. 'pageOverlayFields' => 'uid,title,subtitle,nav_title,media,keywords,description,abstract,author,author_email', // List of fields from the table "pages_language_overlay" which should be overlaid on page records. See t3lib_page::getPageOverlay() 'hidePagesIfNotTranslatedByDefault' => FALSE, // If TRUE, pages that has no translation will be hidden by default. Basically this will inverse the effect of the page localization setting "Hide page if no translation for current language exists" to "Show page even if no translation exists" + 'pageCacheToExternalFiles' => FALSE, // If set, page cache entries will be stored in typo3temp/cache_pages/ab/ instead of the database. Still, "cache_pages" will be filled in database but the "HTML" field will be empty. When the cache is flushed the files in cache_pages/ab/ will not be flush - you will have to garbage clean manually once in a while. + 'disableNoCacheParam' => false, // Boolean. If set, the no_cache GET-parameter will become ineffective. This is currently still an experimental feature and will require a website only with plugins that don't use this parameter. However, using "&no_cache=1" should be avoided anyway because there are better ways to disable caching for a certain part of the website (see COA_INT/USER_INT documentation in TSref). 'eID_include' => array(), // Array of key/value pairs where key is "tx_[ext]_[optional suffix]" and value is relative filename of class to include. Key is used as "?eID=" for index_ts.php to include the code file which renders the page from that point. (Useful for functionality that requires a low initialization footprint, eg. frontend ajax applications) 'XCLASS' => Array(), // See 'Inside TYPO3' document for more information. - 'pageCacheToExternalFiles' => FALSE // If set, page cache entries will be stored in typo3temp/cache_pages/ab/ instead of the database. Still, "cache_pages" will be filled in database but the "HTML" field will be empty. When the cache is flushed the files in cache_pages/ab/ will not be flush - you will have to garbage clean manually once in a while. ), 'MODS' => Array( // Backend Module Configuration (obsolete, make extension instead) ), Index: typo3/sysext/cms/tslib/class.tslib_fe.php =================================================================== --- typo3/sysext/cms/tslib/class.tslib_fe.php (Revision 2587) +++ typo3/sysext/cms/tslib/class.tslib_fe.php (Arbeitskopie) @@ -418,7 +418,11 @@ $this->TYPO3_CONF_VARS = $TYPO3_CONF_VARS; $this->id = $id; $this->type = $type; - $this->no_cache = $no_cache ? 1 : 0; + if ($no_cache && $this->TYPO3_CONF_VARS['FE']['disableNoCacheParam']) { + $warning = 'Warning: &no_cache=1 has been ignored because $TYPO3_CONF_VARS[\'FE\'][\'disableNoCacheParam\'] is enabled!'; + $GLOBALS['TT']->setTSlogMessage($warning,2); + t3lib_div::sysLog($warning, 'cms', 2); + } else $this->no_cache = $no_cache ? 1 : 0; $this->cHash = $cHash; $this->jumpurl = $jumpurl; $this->MP = $this->TYPO3_CONF_VARS['FE']['enable_mount_pids'] ? (string)$MP : ''; @@ -3956,7 +3960,28 @@ * @return void */ function set_no_cache() { - $this->no_cache = 1; + if ($this->TYPO3_CONF_VARS['FE']['disableNoCacheParam']) { + if (function_exists('debug_backtrace')) { + $trace = debug_backtrace(); + // This is a hack to work around ___FILE___ resolving symbolic links + $PATH_site_real = str_replace('t3lib','',realpath(PATH_site.'t3lib')); + $file = $trace[0]['file']; + if (substr($file,0,strlen($PATH_site_real))===$PATH_site_real) { + $file = str_replace($PATH_site_real,'',$file); + } else { + $file = str_replace(PATH_site,'',$file); + } + $line = $trace[0]['line']; + $trigger = $file.' on line '.$line; + } else { + $trigger = '[unknown]'; + } + $warning = 'Warning: set_no_cache was triggered by '.$trigger.' but $TYPO3_CONF_VARS[\'FE\'][\'disableNoCacheParam\'] forces it to be ignored!'; + $GLOBALS['TT']->setTSlogMessage($warning,2); + t3lib_div::sysLog($warning, 'cms', 2); + } else { + $this->no_cache = 1; + } } /**