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); } }