Support for Drupal 7 is ending on 5 January 2025—it’s time to migrate to Drupal 10! Learn about the many benefits of Drupal 10 and find migration tools in our resource center.
Can you please explain How to modify the theme to get authcache to work?
I'm sorry if this is an obvious question for everyone else.. but I can't figure out how to do this. I am very new with Drupal and need cache set desperately, since my pages for loged in users are loading very slow. Any help with instructions would be great. :)
Comments
Comment #1
Ela CreditAttribution: Ela commentedAnyone? :)
Comment #2
Jonah Ellison CreditAttribution: Jonah Ellison commentedThe first step is to look at all your user-customized content on your website. You'll either need to make exclude these pages from the cache or setup up special caching for them. The number one rule is: the final HTML must be exactly the same for every user for cached pages.
For example, displaying "You are logged in as [username]" is a user-specific piece of content. You'll need to modified in your theme for this. Open up page.tpl.php (or wherever the phrase is stored/generated, maybe template.php) and either remove it or change it. Authcache has two theme variables for you to use for this instance: $user_name to display the logged-in user name and $user_link to display the name linked to their profile (both work for cached and non-cached pages). So you could change it to: You are logged in as <?php print $user_name ; ?>
Caching is a rather advance concept, so don't feel bad if this doesn't all come to you at once. You'll probably have to experiment. Let me know if there is something more specific I can explain. You may also want to move to a more powerful host first since a lot of time will probably be involved to make Authcache work the way you want it to.
Comment #3
Ela CreditAttribution: Ela commentedThank you for your reply :)
I will follow your advice.
Is there anything that I MUST add to page.tpl.php for it to get cached?
Meaning.. will adding the code you provided above get pages cached?
When I first installed this module following the instructions provided, the pages were not getting cached and the information shown on pages was " "Page not cached."
Thank you again for your help.
Comment #4
Jonah Ellison CreditAttribution: Jonah Ellison commentedComment #5
paulinewu CreditAttribution: paulinewu commentedHi, I have a question specified for using the "$is_page_authcache" variable.
The instructions say: $is_page_authcache is set to TRUE in all template hooks if the page is to be cached.
Suppose I want the entire site to be cached, does this mean ALL template hooks must have this variable set to true? If so, how is this variable used? Is there an example of how this variable is used?
Thanks in advance.
Comment #6
simg CreditAttribution: simg commented>Suppose I want the entire site to be cached, does this mean ALL template hooks must have this variable set to true?
No, aside from pages that are specifically excluded from caching in the authcache admin settings (admin/*, user/* etc) the entire site is cached. you don't need to do anything else unless you want "per user" personalised content.
some of the per user customisation can be handled by straightforwardly by authcache ajax block loading, some may have to be handled by creating your own authcache - ajax modules.
Comment #7
blueblade CreditAttribution: blueblade commentedhmmm...sorry Im a little confused. So what exactly should we do to the tpl.php pages? how exactly do we set $is_page_authcache to true?
Comment #8
simg CreditAttribution: simg commented>So what exactly should we do to the tpl.php pages?
That depends on what you're trying to achieve. Quite possibly nothing ...
What you *can't* have in your templates is any kind of "per user" customisation. So if you have any, it needs to be removed.
You don't set $is_page_authcache, Authcache does. You can use it in your templates as a read-only value to know whether or not Authcache is going to cache that particular page or not. (I think this would imply somewhat advanced use of Authcache though).
If you want per user customisation (ie different output for different users) this must be included in blocks which then get loaded via a second ajax call after the main page has loaded (Personally, I'm not thrilled about this functionality, but that's how it currently works).
Authcache adds a "load block via javascript" checkbox in the block admin page to make this easy OR if that doesn't do what you need, there is the possibility of writing your own modules that attach themselves to the javascript call back.
Worth noting, I'm not the original author of this module, I just made the D7 port for my own purposes. I haven't actually needed to build any Authcache sub-modules (ie found someone to sponsor the development) so I may be a little hazy on the exact process
Comment #9
blueblade CreditAttribution: blueblade commentedThanks for your prompt reply...I have a very simple question here tho: what should I change in
$conf['memcache_servers'] = array('localhost:11211' => 'default');
$conf['cache_backends'][] = 'sites/all/modules/memcache/memcache.inc';
$conf['cache_backends'][] = 'sites/all/modules/authcache/authcache.inc';
$conf['cache_class_cache_page'] = 'MemCacheDrupal';
so that authcache can work on my site?
I copied that into my setting.php file and all I get is a blank page with an error message:
Comment #10
simg CreditAttribution: simg commentedIt would be very helpful if you have a new question if you were to create a new issue for it in the queue.
Comment #11
blueblade CreditAttribution: blueblade commentednever mind. I switched to filecache and everything is working fine now =) thanks for your help.