Kam ukladate nastavenie jazyka
- srigi
- Nette Blogger | 558
Prehladal som velku cast fora ale nasiel som iba to, ze niektori pouzivate perzistentne parametre.
K veci, user pride na webovku, predlozi sa mu nejaky default lang, prip. sa detekuje cez HTTP. Teraz treba lang prenasat medzi strankami, napr. aj preto ze v sablonach treba generovat URL parametre pre routing.
<?php
$router[] = new Route('<lang [a-z]{2}>/product/<id>', array(
'module' => 'Front',
'presenter' => 'Product',
'action' => 'default'
));
?>
Perzistentne parametre nepouzivam a nemienim na tom nic menit. Zo Symfony si pamatam skvelu vychytavku
<?php
class fooActions extends sfActions
{
public function executeIndex()
{
$lang = $request->getParameter('lang', $this->getUser()->getCulture()); // druhy parameter getParameter() je failsafe, ked ten z routra je null
...
...
?>
V sablone potom
<?php
<?php echo(link_to('Listuj stranky', 'page/list?lang=' . $sf_user->getCulture())); ?>
?>
Cize Symfony to uklada do objektu sfUser, ktory je dostupny vsade. Je mozne
nejako tento parameter ukladat do nasho objektu Nette\Web\User? Samozrejme tak
aby sa prenasal medzi strankami (session). Je vobec mozne si do Nette\Web\User
ukladat svoje veci spojene s aktualnym userom?
THX.
Editoval srigi (18. 2. 2010 21:06)
- Honza Marek
- Člen | 1664
srigi napsal(a):
Je vobec mozne si do Nette\Web\User ukladat svoje veci spojene s aktualnym userom?
Na ukládání „svojich věcí“ slouží identita usera. Dá se získat
pomocí $user->getIdentity()
a incializuje se při
autentikaci.
- srigi
- Nette Blogger | 558
Honza Marek napsal(a):
srigi napsal(a):
Je vobec mozne si do Nette\Web\User ukladat svoje veci spojene s aktualnym userom?Na ukládání „svojich věcí“ slouží identita usera. Dá se získat pomocí
$user->getIdentity()
a incializuje se při autentikaci.
OK a ked uz mam identitu, ako si tak tu premennu ulozim? Normalne ju tam
naperem ako property ($identity->lang = 'sk'
)? Ostane
perzistentna?
- vlki
- Člen | 218
Magický setter u Identity by měl zajistit, že se uloží.
A vzhledem k tomu, že se Identity ukládá do session, měla by ta informace zůstat pro uživatele persistentní.
Editoval vlki (21. 2. 2010 22:24)