68 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
| <?php
 | |
| 
 | |
| /**
 | |
|  * Inline Runtime Methods render, setSourceByUid, setupSubTemplate
 | |
|  *
 | |
|  * @package    Smarty
 | |
|  * @subpackage PluginsInternal
 | |
|  * @author     Uwe Tews
 | |
|  *
 | |
|  **/
 | |
| class Smarty_Internal_Runtime_CacheModify
 | |
| {
 | |
|     /**
 | |
|      * check client side cache
 | |
|      *
 | |
|      * @param Smarty_Internal_Template $_template
 | |
|      * @param  string                  $content
 | |
|      */
 | |
|     public function cacheModifiedCheck(Smarty_Template_Cached $cached, Smarty_Internal_Template $_template, $content)
 | |
|     {
 | |
|         $_isCached = $_template->isCached() && !$_template->compiled->has_nocache_code;
 | |
|         $_last_modified_date =
 | |
|             @substr($_SERVER['HTTP_IF_MODIFIED_SINCE'], 0, strpos($_SERVER['HTTP_IF_MODIFIED_SINCE'], 'GMT') + 3);
 | |
|         if ($_isCached && $cached->timestamp <= strtotime($_last_modified_date)) {
 | |
|             switch (PHP_SAPI) {
 | |
|                 case 'cgi': // php-cgi < 5.3
 | |
|                 case 'cgi-fcgi': // php-cgi >= 5.3
 | |
|                 case 'fpm-fcgi': // php-fpm >= 5.3.3
 | |
|                     header('Status: 304 Not Modified');
 | |
|                     break;
 | |
| 
 | |
|                 case 'cli':
 | |
|                     if ( /* ^phpunit */
 | |
|                     !empty($_SERVER['SMARTY_PHPUNIT_DISABLE_HEADERS']) /* phpunit$ */
 | |
|                     ) {
 | |
|                         $_SERVER['SMARTY_PHPUNIT_HEADERS'][] = '304 Not Modified';
 | |
|                     }
 | |
|                     break;
 | |
| 
 | |
|                 default:
 | |
|                     if ( /* ^phpunit */
 | |
|                     !empty($_SERVER['SMARTY_PHPUNIT_DISABLE_HEADERS']) /* phpunit$ */
 | |
|                     ) {
 | |
|                         $_SERVER['SMARTY_PHPUNIT_HEADERS'][] = '304 Not Modified';
 | |
|                     } else {
 | |
|                         header($_SERVER['SERVER_PROTOCOL'] . ' 304 Not Modified');
 | |
|                     }
 | |
|                     break;
 | |
|             }
 | |
|         } else {
 | |
|             switch (PHP_SAPI) {
 | |
|                 case 'cli':
 | |
|                     if ( /* ^phpunit */
 | |
|                     !empty($_SERVER['SMARTY_PHPUNIT_DISABLE_HEADERS']) /* phpunit$ */
 | |
|                     ) {
 | |
|                         $_SERVER['SMARTY_PHPUNIT_HEADERS'][] =
 | |
|                             'Last-Modified: ' . gmdate('D, d M Y H:i:s', $cached->timestamp) . ' GMT';
 | |
|                     }
 | |
|                     break;
 | |
|                 default:
 | |
|                     header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $cached->timestamp) . ' GMT');
 | |
|                     break;
 | |
|             }
 | |
|             echo $content;
 | |
|         }
 | |
|     }
 | |
| }
 |