API16

API16:JResponse/allowCache

From Joomla! Documentation

Description

Set/get cachable state for the response.



Syntax

static allowCache($allow=null)
Parameter Name Default Value Description
$allow null $allow

Returns

boolean True of browser caching should be allowed

Defined in

libraries/joomla/environment/response.php

Importing

jimport( 'joomla.environment.response' );

Source Body

public static function allowCache($allow = null)
{
        if (!is_null($allow)) {
                $GLOBALS['_JRESPONSE']->cachable = (bool) $allow;
        }
        return $GLOBALS['_JRESPONSE']->cachable;
}



Examples

Code Examples

Override Default Headers

From: http://groups.google.com/group/joomla-dev-general/browse_thread/thread/6ef5fe7eba4efc26

How can I override the default joomla headers from within a custom component? I would like to change

Expires: Mon, 1 Jan 2001 00:00:00 GMT 
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre- 
check=0 
Pragma: no-cache

to

Expires: ~in five hours~ 
Cache-Control: public 
Pragma: public

JResponse::allowCache(true) did the trick. If it helps anyone else, here is the code that worked for me.

JResponse::allowCache(true); 
JResponse::setHeader('Pragma', 'public',true); 
JResponse::setHeader('Cache-Control','public',true); 
JResponse::setHeader('Expires', gmdate('D, d M Y H:i:s', time() 
+(60*60*5)) . ' GMT',true);
Elin 02:02, 6 December 2010 (CST) Edit comment