Example #1
0
 function evt__form_armado__modificacion($datos)
 {
     if (isset($datos['nivel_inicial'])) {
         unset($datos['nivel_inicial']);
     }
     if (!empty($datos)) {
         $this->raiz = toba_proyecto_db::get_item_raiz($this->s__proyecto);
         //Recupero los ids enviados por el arbol (lado server)
         $ids_validos = $this->get_ids_enviados();
         //Armo un arreglo con los ids recuperados en forma de padre/hijo
         $ids_recuperados = array();
         foreach ($datos as $klave => $ids_enviados) {
             $aux = explode('^', $ids_enviados);
             $ids_recuperados = array_merge($ids_recuperados, $aux);
             $datos[$klave] = $aux;
         }
         $diff = array_diff($ids_recuperados, $ids_validos);
         if (!empty($diff)) {
             throw new toba_error_seguridad('Una de las opciones indicadas no es valida');
         }
         //Calculo el complemento para distinguir los elementos eliminados  (tambien estan los no seleccionados, asi que hay un poco mas.. pero bueno)
         if ($this->es_edicion()) {
             $diffr = array_diff($ids_validos, $ids_recuperados);
             $this->quitar_elementos_eliminados($diffr);
         }
         //Se inserta o actualizan los elementos del menu
         $this->actualizar_elementos($ids_recuperados, $datos);
     }
 }