protected function nuevoAviso()
 {
     set_time_limit(1);
     $Usuario = $this->checkAccess('aviso');
     $ops = array('tipo' => 'string', 'descripcion' => array('string', 12, null), 'destacado' => 'boolean', 'emergente' => 'boolean', 'visible' => 'boolean', 'estado' => 'boolean', 'nombre' => array('string', 5, 45));
     $type = filter_input(INPUT_POST, 'tipo');
     if ($type === 'link') {
         $ops['nombre'] = 'url';
     } else {
         if ($type !== 'img' && $type !== 'doc') {
             $this->responder(false, 'Tipo de aviso inválido');
         }
     }
     $file;
     $ipts = $this->getFilterInputs('post', $ops);
     if ($type === 'doc') {
         $file = $this->getFileUpload('archivo', array('application/pdf'));
     } else {
         $file = $this->getFileUpload('archivo', array('image/jpeg', 'image/jpg', 'image/png'));
     }
     //Abrir coneccion en modo NO autoconfirmado
     $mysqli = $this->getMysqli();
     $mysqli->autocommit(false);
     //Creando el archivo
     $archivo = new Archivo($mysqli);
     $archivo->nombre = $ipts['nombre'];
     $archivo->type = $type;
     $archivo->rutaArch = '';
     if (!$archivo->set()) {
         //Insertar archivo
         $this->responder(false, 'No se pudo insertar archivo', $archivo->md_detalle, $ipts, $mysqli);
     }
     //Crear el nombre a partir del id del archivo
     $nombre = md5($archivo->id) . '.' . substr(strrchr($file['type'], "/"), 1);
     //Actualizar ruta del archivo
     $archivo->rutaArch = config::$path_avisos . $nombre;
     if (!$archivo->edit()) {
         $this->responder(false, 'No se pudo insertar archivo (ruta)', $archivo->md_detalle, null, $mysqli);
     }
     //Creando el aviso
     $aviso = new Aviso($mysqli);
     $aviso->texto = $ipts['descripcion'];
     $aviso->destacado = $ipts['destacado'];
     $aviso->emergente = $ipts['emergente'];
     $aviso->visible = $ipts['visible'];
     $aviso->estado = $ipts['estado'];
     $aviso->bloqueado = false;
     $aviso->idArchivo = $archivo->id;
     $aviso->idUsuario = $Usuario['id'];
     if (!$aviso->set()) {
         //Insertando el aviso
         $this->responder(false, "No se pudo guardar el aviso", $aviso->md_detalle, null, $mysqli);
     }
     $rutaNueva = $_SERVER['DOCUMENT_ROOT'] . config::getPath(false, config::$path_avisos . $nombre);
     if (!move_uploaded_file($file['tmp'], $rutaNueva)) {
         $this->responder(false, "No se pudo guardar archivo", 'Error al almacear el archivo subido', null, $mysqli);
     }
     if (!$mysqli->commit()) {
         $this->responder(false, "No se pudo confirmar cambios", $mysqli->error, null, $mysqli);
     }
     $this->responder(true, "Aviso creado!", "redirect", '/');
 }