Actions

API16

JResponse/allowCache

From Joomla! Documentation

< API16:JResponse
Revision as of 17:46, 22 March 2010 by Doxiki (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Replacement filing cabinet.png
This Namespace has been archived - Please Do Not Edit or Create Pages in this namespace. Pages contain information for a Joomla! version which is no longer supported. It exists only as a historical reference, will not be improved and its content may be incomplete.

Contents

Description

Set/get cachable state for the response.

[Edit Descripton]

Description:JResponse/allowCache

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;
}

[Edit See Also] SeeAlso:JResponse/allowCache

Examples

<CodeExamplesForm />

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