/** * Cambiamos el orden de un rango. * @param int $rango ID del rango al que cambiar su orden. * @param int $posicion Posición que debe adoptar el nuevo rango. Empieza en 1. */ public function action_mover_rango($rango, $posicion) { // Verifico la posición. $posicion = (int) $posicion; if ($posicion <= 0) { $_SESSION['flash_error'] = 'La posición que deseas asignar no es correcta.'; Request::redirect('/admin/usuario/rangos'); } $rango = (int) $rango; // Verifico existencia del rango. $model_rango = new Model_Usuario_Rango($rango); if (!$model_rango->existe()) { $_SESSION['flash_error'] = 'El rango que deseas mover no se encuentra disponible.'; Request::redirect('/admin/usuario/rangos'); } // Verifico la posición. if ($model_rango->orden === $posicion || $posicion > $model_rango->cantidad()) { $_SESSION['flash_error'] = 'La posición que deseas asignar no es correcta.'; Request::redirect('/admin/usuario/rangos'); } // Asignamos la posición. $model_rango->posicionar($posicion); // Informamos. $_SESSION['flash_success'] = 'El rango se ha movido correctamente.'; Request::redirect('/admin/usuario/rangos'); }