Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/08/2012, 13:37
Avatar de Uncontroled_Duck
Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 13 años, 7 meses
Puntos: 261
[SOLUCIONADO] Controlar error de url en plugin

Buenas,

Llevo toda la tarde liado con esto y no doy con la solución, o igual es que no se puede.

La idea es que un Controller_Plugin se encargue de montar el Acl.

Los Resources, se basan en MODULE_CONTROLLER_ACTION.

Como son bastantes, y van aumentando, intento crear un sistema para añadirlos automáticamente a la DB, pero filtrando las rutas que se inserten mal.

De modo, que la secuencia sería:

1.- Entras en: dominio.com/default/index/index
Esto pide un Resource de tipo DEFAULT_INDEX_INDEX

2.- Primero comprobar si la ruta se puede despachar (Aquí es donde me encuentro atascado)

3.a.- Si la ruta se puede despachar, comprueba si existe el Resource y pasa al punto 4.a o 4.b.

3.b - Si la ruta no se puede despachar, da el error correspondiente y no comprueba el resoource.

4.a- Si existe el resource lo pasa a $acl->isAllowed()

4.b- Si no existe el resource, lo añade a la Db, limpia la cache y recarga la página.

Estoy probando con esto, pero resulta que si el module o el controller esta mal, si me retorna false, pero si es el action el que esta mal me retorna true.

Al retornar true, por ejemplo, puede crearme un Resource de tipo DEFAULT_INDEX_IND, creando entradas inecesarias.
Código PHP:
public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request)
{
    
$front Zend_Controller_Front::getInstance();

    if( 
$front->getDispatcher()->isDispatchable($request) )
    {
        
// dispatchable
    
}
    else
    {
        
// else show the error
    
}

De que forma se puede comprobar que la ruta entera es correcta?

Saludos,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight

Última edición por Uncontroled_Duck; 17/08/2012 a las 07:52 Razón: Añadir solucionado el título