Ajax y redirect

34 views
Skip to first unread message

Luchin

unread,
Jul 4, 2008, 3:02:59 PM7/4/08
to symfony-es
Hola amigos symfonianos. Vengo con un nuevo proble entre las manos.

Resulta que estoy haciendo una pagina que maneja logins de usuarios.
Una vez que el usuario se loguea correctamente, se le carga en la
pantalla un menú de navegación.
Este menú está armado para que funcione con AJAX. Es decir, cada vez
que elijo navegar a uno de los lugares disponibles, no se recarga toda
la página, sino que se recarga el div, que le especifico en el ajax.
Funciona todo bien. Pero necesito lograr que funcione de otra manera
cuando la sesión del usuario ha caducado.
En ese momento necesito que cuando se le de a algún elemento del menú
y la sesión haya expirado, se recargue toda la página, y no solo el
div. El problema es que lo he intentado resolver con el mismo ajax.
Pero si bien, me manda al login, como uso el redirect, me carga
nuevamente toda la página dentro del div. De tal forma que me queda
una página adentro de otra. las dos idénticas.

En fin, mi punto es: cómo puedo hacer para obligar a symfony a que me
recargue todo el documento a una acción y módulo específico. Cortando
incluso las ejecuciones con ajax?

Desde ya muchas gracias.

Damian Suarez

unread,
Jul 4, 2008, 3:12:27 PM7/4/08
to symfo...@googlegroups.com
Yo estoy haciendo algo parecido, pero estoy metiendo mano en el framework de JS ya que estoy usando mootools.
Lo que hice fue definir dos layout para la aplicación, que en mi caso se llama backend. El punto es que para el modulo de autenticación uso un layout denominado loyoutLogin y para el sitio adminitrativo utilizo el layout tan querido por todos.
En el layoutAdmin sólo cargo el módulo de logueo. Estoy usando sfGuardPlugin y no he realizado templates, prácticamente todo lo he hecho con el generator.yml.
Te servirá ?. Avisame asi te explico un poco mas el tema de los configs.
Saludos.-

2008/7/4 Luchin <lucho...@gmail.com>:



--
www.XiFOX.net

Damian Suarez

unread,
Jul 4, 2008, 3:12:56 PM7/4/08
to symfo...@googlegroups.com

Luchin

unread,
Jul 4, 2008, 9:52:58 PM7/4/08
to symfony-es
Muchas gracias, no había pensado en esa idea de ir mutando de layout
de acuerdo a la instancia en que me encuentre. Creo que será una buena
solución.
Poner algo así como setLayout('LayoutLogin');


Gracias de antemano y ni bien la pruebe te comento.




On 4 jul, 16:12, "Damian Suarez" <rdsua...@gmail.com> wrote:
> Yo estoy haciendo algo parecido, pero estoy metiendo mano en el framework de
> JS ya que estoy usando mootools.
> Lo que hice fue definir dos layout para la aplicación, que en mi caso se
> llama backend. El punto es que para el modulo de autenticación uso un layout
> denominado *loyoutLogin* y para el sitio adminitrativo utilizo el
> *layout*tan querido por todos.
> En el layoutAdmin sólo cargo el módulo de logueo. Estoy usando sfGuardPlugin
> y no he realizado templates, prácticamente todo lo he hecho con el
> generator.yml.
> Te servirá ?. Avisame asi te explico un poco mas el tema de los configs.
> Saludos.-
>
> 2008/7/4 Luchin <luchomar...@gmail.com>:

Damian Suarez

unread,
Jul 5, 2008, 7:05:27 AM7/5/08
to symfo...@googlegroups.com
Claro, o si no puedes configurarlo desde los view.yml en el modulo adecuado. Por ejemplo, mi view.yml correspondiente al modulo sfGuardAuth es algo así:

default:
  metas:
    title:        Pudu
    description:  Pudu
    language:     es

  stylesheets:    [back, login]

  javascripts:    [mootools-1.2-core.js, mootools-1.2-more.js, login.js]

  layout:         layoutLogin

Con esto te aseguras un layout sencillo y que desvincule los otros módulos, ya que no los incluyes en tu layoutLogin; en fin, puedes hacer lo que quieras.
Saludos.

2008/7/4 Luchin <lucho...@gmail.com>:



--
www.XiFOX.net

noelmf

unread,
Jul 5, 2008, 7:51:40 AM7/5/08
to symfony-es
Aquí téneis un posible solución:

http://www.symfony-project.org/forum/index.php/m/3076/

A mi me ha funcionado.

Un saludo!

sgwd

unread,
Jul 5, 2008, 8:58:20 AM7/5/08
to symfony-es
Hola, yo lo he resuelto con esta linea de codigo:

echo "<script type='text/javascript'>top.location.href='". $this-
>getRequest()->getReferer() ."'</script>";

dentro de la accion del login para ambos casos:en el login y logout

Slds.

Damian Suarez

unread,
Jul 5, 2008, 7:57:08 PM7/5/08
to symfo...@googlegroups.com
No creo que sea la mejor manera de hacerlo ... que pasa si el usuario tiene deshabilitado el JS del navegador ?

2008/7/5 sgwd <in...@sgwd.com.ar>:



--
www.XiFOX.net

KNO

unread,
Jul 6, 2008, 2:36:28 AM7/6/08
to symfo...@googlegroups.com
Siento ser portador de malas noticias: pruebalo con internet explorer
y verás que no funciona: no pasa el referer en las peticiones (al
menos a mi, no se si es por alguna configuración de seguridad) :(

sgwd

unread,
Jul 7, 2008, 5:46:52 AM7/7/08
to symfony-es
en IE 7.0 funciona utilizando en el action la sentencia:

echo "<script type='text/javascript'>top.location.href='". $this-
>getRequest()->getReferer() ."'</script>";
return sfView::SUCCESS;

luego de la llamada a javascript se muestra la vista.

Damian Suarez

unread,
Jul 7, 2008, 11:45:49 AM7/7/08
to symfo...@googlegroups.com
Yo no quiero ser mala onda ... pero haciendo eso le estas dando control de redirect a un template de una vista ... eso lo tiene que hacer el control. Estas eludiendo el patrón MVC. Es asi ?

2008/7/7 sgwd <in...@sgwd.com.ar>:



--
www.XiFOX.net
Reply all
Reply to author
Forward
0 new messages