Hola Lautaro,
OPERACION A
toba::memoria()->set_dato("datos", $datos);
echo toba_js::abrir();
echo "document.location.href='".
toba::vinculador()->get_url(toba_proyecto::get_id(), $operacion_B, array(), array('menu', false))."'\n";
echo toba_js::cerrar();
te dejo un detalle que puede ser la causa de lo que estas viendo, el arreglo de
opciones que recibe el metodo... es asociativo, no posicional.
Aca hay un metodo que replicaria (menos flexible obviamente) lo que intentas hacer fijate que el ultimo parametro es un arreglo asociativo.
Otra opcion que podes usar para intentar garantizar aun mas el aislamiento entre ambas operaciones es fijarle una celda de memoria distinta, eso lo haces mediante la opcion "celda_memoria".. la cual tiene un string como valor.
El resto de lo que hacias en B.. esta correcto.
Y cuando quiero volver a la operacion A entiendo que el get_url del vinculador tiene que tener seteado menu => false
Tengo un evento para cerrar la operacion que te devuelve a la operacion A
OPERACION B
function evt__cerrar()
{
$datos = toba::memoria()->get_dato('datos');
$operacion_retorno = $datos['operacion_retorno'];
echo toba_js::abrir();
echo "document.location.href='".
toba::vinculador()->get_url(toba_proyecto::get_id(), $operacion_retorno, array(), array('menu', false))."'\n";
echo toba_js::cerrar();
}
En este caso, desactivaria el menu pero no modificaria la celda de memoria.
Esto es medio un hackeo, ya que el mecanismo fue concebido primeramente para brindar la posibilidad de tener una navegacion alternativa para los popups.. por lo que al cerrarse, la posicion de memoria de la operacion inicial aun es recordada en la URL.. mientras que en tu caso eso no sucederia, aun asi es posible que funcione.. si no lo hace, te diria que es mas sencillo usar algun metodo de toba_memoria que no dependa de la operacion y simplemente lo limpias manualmente.
Saludos