4 * Inline Runtime Methods render, setSourceByUid, setupSubTemplate
7 * @subpackage PluginsInternal
11 class Smarty_Internal_Runtime_CacheModify
14 * check client side cache
16 * @param \Smarty_Template_Cached $cached
17 * @param \Smarty_Internal_Template $_template
18 * @param string $content
20 public function cacheModifiedCheck(Smarty_Template_Cached $cached, Smarty_Internal_Template $_template, $content)
22 $_isCached = $_template->isCached() && !$_template->compiled->has_nocache_code;
23 $_last_modified_date =
24 @substr($_SERVER[ 'HTTP_IF_MODIFIED_SINCE' ], 0, strpos($_SERVER[ 'HTTP_IF_MODIFIED_SINCE' ], 'GMT') + 3);
25 if ($_isCached && $cached->timestamp <= strtotime($_last_modified_date)) {
27 case 'cgi': // php-cgi < 5.3
28 case 'cgi-fcgi': // php-cgi >= 5.3
29 case 'fpm-fcgi': // php-fpm >= 5.3.3
30 header('Status: 304 Not Modified');
35 !empty($_SERVER[ 'SMARTY_PHPUNIT_DISABLE_HEADERS' ]) /* phpunit$ */
37 $_SERVER[ 'SMARTY_PHPUNIT_HEADERS' ][] = '304 Not Modified';
43 !empty($_SERVER[ 'SMARTY_PHPUNIT_DISABLE_HEADERS' ]) /* phpunit$ */
45 $_SERVER[ 'SMARTY_PHPUNIT_HEADERS' ][] = '304 Not Modified';
47 header($_SERVER[ 'SERVER_PROTOCOL' ] . ' 304 Not Modified');
55 !empty($_SERVER[ 'SMARTY_PHPUNIT_DISABLE_HEADERS' ]) /* phpunit$ */
57 $_SERVER[ 'SMARTY_PHPUNIT_HEADERS' ][] =
58 'Last-Modified: ' . gmdate('D, d M Y H:i:s', $cached->timestamp) . ' GMT';
62 header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $cached->timestamp) . ' GMT');