Forums / Install & configuration / Cached current_user ??

Cached current_user ??

Author Message

Christian Johansen

Tuesday 17 July 2007 1:13:03 am

I'm having a weird problem. I have a node view template that includes a template from design/myaccess/templates/xxx.tpl like so:

{include uri="design:xxx.tpl" somevar="someval"}

Inside xxx.tpl I do:

{if not(is_set($current_user))}
    {def $current_user=fetch(user, current_user)}
{/if}

When I enable caching this template seems to be caching the current user?? Is it supposed to that? Am I doing something wrong? I don't want to disable caching for this template, because it's a bit heavy to process. What can I do?

André R.

Tuesday 17 July 2007 1:52:16 am

the user is not cached, the html output is with the view cache.
The view cache does not cache pr user, but based on user rights instead.
So you'll need to disable view cache on this single page.

Search for 'cache_ttl' in the forum to find more in depth discussions on this.

eZ Online Editor 5: http://projects.ez.no/ezoe || eZJSCore (Ajax): http://projects.ez.no/ezjscore || eZ Publish EE http://ez.no/eZPublish/eZ-Publish-Enterprise-Subscription
@: http://twitter.com/andrerom

Christian Johansen

Tuesday 17 July 2007 3:40:45 am

Ok. I already have that in there, but it's pretty dissapointing because it means that I can't cache a rather complex template just because I want to display the name of the current user in the comments area of the node view :(

Is there something like cache-block that is valid inside a node view template? The user-dependent information is only a small part of the full page, the rest I would like cached.

If this is not possible, this will be the first time eZ is forcing me to redo my layout (as the performance is too poor without view caching), which is a shame really.

André R.

Tuesday 17 July 2007 4:24:43 am

Thats the point, you disable view_cache for this template but can use cache blocks instead.
Remember to keep the number of cache blocks as low as possible.

ps:

{if is_unset($current_user)}
   {def $current_user=fetch(user, current_user)}
{/if}

eZ Online Editor 5: http://projects.ez.no/ezoe || eZJSCore (Ajax): http://projects.ez.no/ezjscore || eZ Publish EE http://ez.no/eZPublish/eZ-Publish-Enterprise-Subscription
@: http://twitter.com/andrerom

Christian Johansen

Tuesday 17 July 2007 7:13:22 am

Allright. It makes perfect sense to me that you can use cache-block in node templates when view caching is disabled :) Gee, eZ never stops impressing me :) Thanks alot!