Esempio n. 1
0
 /**
  * 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());
 }