/** * Creamos un nuevo rango. */ public function action_nuevo_rango() { // Cargamos la vista. $vista = View::factory('admin/usuario/nuevo_rango'); // Valores por defecto y errores. $vista->assign('nombre', ''); $vista->assign('error_nombre', FALSE); $vista->assign('color', ''); $vista->assign('error_color', FALSE); $vista->assign('imagen', ''); $vista->assign('error_imagen', FALSE); // Cargamos el listado de imagens para rangos disponibles. $imagenes_rangos = scandir(VIEW_PATH . THEME . DS . 'assets' . DS . 'img' . DS . 'rangos' . DS); unset($imagenes_rangos[1], $imagenes_rangos[0]); // Quitamos . y .. $vista->assign('imagenes_rangos', $imagenes_rangos); if (Request::method() == 'POST') { // Seteamos sin error. $error = FALSE; // Obtenemos los campos. $nombre = isset($_POST['nombre']) ? preg_replace('/\\s+/', ' ', trim($_POST['nombre'])) : NULL; $color = isset($_POST['color']) ? $_POST['color'] : NULL; $imagen = isset($_POST['imagen']) ? $_POST['imagen'] : NULL; // Valores para cambios. $vista->assign('nombre', $nombre); $vista->assign('color', $color); $vista->assign('imagen', $imagen); // Verificamos el nombre. if (!preg_match('/^[a-z0-9\\sáéíóúñ]{5,32}$/iD', $nombre)) { $error = TRUE; $vista->assign('error_nombre', 'El nombre del rango deben ser entre 5 y 32 caractéres alphanuméricos.'); } // Verificamos el color. if (!preg_match('/^[0-9a-f]{6}$/Di', $color)) { $error = TRUE; $vista->assign('error_color', 'El color debe ser HEXADECIMAL de 6 digitos. Por ejemplo: 00FF00.'); } // Verificamos la imagen. if (!in_array($imagen, $imagenes_rangos)) { $error = TRUE; $vista->assign('error_imagen', 'No ha seleccionado una imagen válida.'); } if (!$error) { // Convertimos el color a entero. $color = hexdec($color); // Creamos el rango. $model_rango = new Model_Usuario_Rango(); $model_rango->nuevo_rango($nombre, $color, $imagen); //TODO: agregar suceso de administracion. // Seteo FLASH message. $_SESSION['rango_correcto'] = 'El rango se creó correctamente'; // Redireccionamos. Request::redirect('/admin/usuario/rangos'); } } // Seteamos el menu. $this->template->assign('master_bar', parent::base_menu('admin')); // Cargamos plantilla administracion. $admin_template = View::factory('admin/template'); $admin_template->assign('contenido', $vista->parse()); unset($portada); $admin_template->assign('top_bar', Controller_Admin_Home::submenu('usuario_rangos')); // Asignamos la vista a la plantilla base. $this->template->assign('contenido', $admin_template->parse()); }