A super easy PHP Framework for web development!
				https://github.com/exacti/phacil-framework
			
			
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							71 lines
						
					
					
						
							2.5 KiB
						
					
					
				
			
		
		
	
	
							71 lines
						
					
					
						
							2.5 KiB
						
					
					
				<?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_Template_Cached   $cached
 | 
						|
     * @param \Smarty_Internal_Template $_template
 | 
						|
     * @param  string                   $content
 | 
						|
     *
 | 
						|
     * @throws \Exception
 | 
						|
     * @throws \SmartyException
 | 
						|
     */
 | 
						|
    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;
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
 |