Gostaria de definir um cookie de "destino" para todos os usuários do meu site, para veicular conteúdo personalizado. O cookie precisa persistir durante o login / logout, de modo que parece que não posso usar o jSession, que é limpo no login / logout.
Eu posso meio que conseguir isso da maneira antiquada
setcookie( "destinationcookie", $_POST['destination'], strtotime( '+90 days' ) );
$destination = isset($_POST['destination']) ? $_POST['destination'] : $_COOKIE["destinationcookie"];
... mas tenho certeza que o joomla tem uma maneira melhor de esconder em algum lugar. PS - a documentação sobre isso é praticamente inexistente, tanto quanto eu posso encontrar.
joomla-3.x
jinput
cookies
user2097091
fonte
fonte
Respostas:
Você pode dar uma olhada no plugin de autenticação de cookies. Ele define e lê um cookie persistente.
Pode ser encontrada aqui: https://github.com/joomla/joomla-cms/tree/staging/plugins/authentication/cookie
Para ler um cookie, você pode usar
Para definir um cookie, você usa
Alguma documentação pode ser encontrada na página da API: http://api.joomla.org/cms-3/classes/JInputCookie.html
fonte
$lifetime
é proveniente de um parâmetro no plug-in de cookie. O argumento é o momento em que o cookie expirará. Você acabou de passar seu próprio valor lá. O argumento SSL diz se o cookie será válido apenas por conexões SSL. Nesse caso, apenas verifica se a página é acessada usando SSL e define o sinalizador seguro no cookie de acordo.A última vez que fiz algumas pesquisas nesta área (março de 2013), encontrei esta solução, que não está usando o JInput:
Inspecionei como o JFactory chama JSession, mas não encontrei uma maneira de definir a expiração ao armazenar dados.
Dentro de um plugin do sistema, usando o método
onAfterRender()
O único retrocesso que encontrei foi que agora existem dois cookies com nome e conteúdo idênticos. Eu não notei nenhum efeito colateral.
Espero que isto ajude.
Fonte: Joomla! Desenvolvimento geral ›Definir a expiração da sessão do usuário front-end
fonte
Tente usar algo como o seguinte:
fonte
$inputCookie
que não definiu - não deveria ser$cookie
?