konto usunięte

Temat: cache'owanie warunkowe

witam :)

a aplikacji mam akcję z is_secure: on.
W settings.yml mam ustawione własne login_module i login_action
oczywiście niezalogowany użytkownik dostaje formularz logowania, zalogowany właściwą stronę

chcę mieć warunkowy cache, tzn dla niezalogowanych dalej formularz, dla zalogowanych ta sama akcja co zwykle ale cache'owana.
Wiec dodałem filtr
<?php
class conditionalCacheFilter extends sfFilter
{
public function execute($filterChain)
{
if($this->getContext()->getUser()->isAuthenticated())
{
foreach($this->getParameter('pages') as $page)
{
$this->getContext()->getViewCacheManager()->addCache($page['module'], $page['action'], array('lifeTime' => 25920000));
}
}
$filterChain->execute();
}
}


i w filters.yml
security:  ~

conditionalCache:
class: conditionalCacheFilter
param:
pages:
- { module: question, action: show }

niestety nie do końca to działa Tzn jeśli użytkownik zalogowany dostaje stronę z cache'u, natomiast niezalogowany zamiast formularza dostaje stronę z komunikatem że tak nie istnieje. Jak mogę to poprawić?

I druga sprawa, jak robić cache całych akcji zależnie od ustawionego języka. Adresy mam s stylu pl.domena.com, en.domena.com no i język jest ustawiany w filtrze.
Proszę o pomoc :)