Me gustaría establecer una cookie de "destino" para todos los usuarios en mi sitio, para servir contenido personalizado. La cookie debe persistir durante el inicio de sesión / cierre de sesión, por lo que parece que no puedo usar jSession, que se borra al iniciar sesión / cerrar sesión.
Puedo lograr esto a la antigua usanza
setcookie( "destinationcookie", $_POST['destination'], strtotime( '+90 days' ) );
$destination = isset($_POST['destination']) ? $_POST['destination'] : $_COOKIE["destinationcookie"];
... pero estoy seguro de que Joomla tiene una mejor manera escondida en alguna parte. PD: la documentación sobre esto es prácticamente inexistente hasta donde puedo encontrar.
joomla-3.x
jinput
cookies
usuario2097091
fuente
fuente
Respuestas:
Es posible que desee echar un vistazo al complemento de autenticación de cookies. Establece y lee una cookie persistente.
Se encuentra aquí: https://github.com/joomla/joomla-cms/tree/staging/plugins/authentication/cookie
Para leer una cookie, puede usar
Para configurar una cookie, usa
Puede encontrar documentación en la página de la API: http://api.joomla.org/cms-3/classes/JInputCookie.html
fuente
$lifetime
proviene de un parámetro en el complemento de cookies. El argumento es el momento en que la cookie caducará. Simplemente pasa su propio valor allí. El argumento SSL dice si la cookie solo será válida a través de conexiones SSL. En este caso, solo se ve si se accede a la página utilizando SSL y establece el indicador de seguridad en la cookie en consecuencia.La última vez que investigué un poco sobre esta área (marzo de 2013), encontré esta solución, que no usa JInput:
He inspeccionado cómo JFactory llama a JSession pero no he encontrado una manera de establecer la caducidad al almacenar datos.
Dentro de un complemento del sistema, utilizando el método
onAfterRender()
El único inconveniente que encontré fue que ahora hay dos cookies con el mismo nombre y contenido. No he notado ningún efecto secundario.
Espero que esto ayude.
Fuente: Joomla! Desarrollo general ›Establecer la caducidad de la sesión de usuario front-end
fuente
Intenta usar algo como lo siguiente:
fuente
$inputCookie
que no ha definido, ¿no debería ser así$cookie
?