Zum Inhalt springen

Reserva

Clave de extensión: reserva

TYPO3 Version:10 LTS9 LTS

La extensión "reservar" ofrece la posibilidad de reservar franjas horarias para visitas a zoológicos, bibliotecas, tiendas y mucho más.

Los visitantes pueden reservar una entrada para sí mismos y posiblemente para otras personas y luego recibir uno o más códigos QR por correo electrónico. Estos códigos pueden ser escaneados por los empleados del evento o establecimiento en el momento de la entrada.

La extensión fue desarrollada originalmente para uno de nuestros clientes durante el primer bloqueo de la pandemia de Corona para regular el control de acceso en un parque de vida silvestre, pero ahora está disponible públicamente en el TYPO3 Extension Repository.

En los siguientes vídeos, mostramos lo que la extensión puede hacer y cómo instalarla y configurarla.

¿Qué puede hacer la ampliación

En este vídeo, mostramos lo que la extensión puede hacer realmente y cómo funciona un proceso de reserva desde la perspectiva de un usuario y un empleado.

Visión general en el backend

La extensión viene con dos plugins:

  1. Para la visualización de franjas horarias y reservas en el frontend
  2. Para escanear los códigos QR

Se recomienda una cierta estructura de carpetas/páginas para que todo funcione correctamente. En este vídeo, echamos un vistazo a la estructura y los datos de la instalación de demostración.

Crear una instalación

El primer paso es crear una instalación. Puede tratarse de una tienda, un zoo, un centro comercial, una biblioteca o mucho más.

A continuación, deben crearse las franjas horarias reservables dentro de esta instalación. Aquí también se puede establecer el número máximo de personas que pueden reservar una franja horaria y si puede reservar más de una persona por reserva. El aspecto del código QR también puede personalizarse hasta cierto punto.

Crear plugin para reservas

El siguiente paso es crear un plugin para la reserva. En esta página, los visitantes pueden seleccionar una franja horaria en el frontend y reservar una o varias entradas.

Crear páginas protegidas para los empleados

El segundo plugin de la extensión se utiliza para gestionar las reservas efectuadas. A continuación, se pueden escanear los códigos QR o realizar registros manuales.

La página en la que se encuentra este plugin puede consultarse directamente en un teléfono inteligente o una tableta, por ejemplo, de modo que la cámara integrada del dispositivo pueda utilizarse para escanear el código QR.

La página debe estar protegida para que sólo los usuarios autorizados puedan acceder a ella. Sólo las personas que se hayan autentificado previamente en el front-end con su nombre de usuario y contraseña pueden acceder a la página y utilizar el escáner.

Configurar el plug-in del escáner

Ahora debe crearse el plugin para el escáner de códigos QR en la página protegida.

Potenciador de rutas en Site Config

Para que funcione el escaneo de códigos QR y el canje manual de reservas, es necesario ampliar la Configuración del sitio. En primer lugar, debe añadirse el área del potenciador de rutas tal y como se describe en la documentación.

En segundo lugar, es necesario añadir otro parámetro. En el área de mapeo debe añadirse un tipo de página específico, que es el que utiliza el escáner. Este punto todavía falta en la documentación, pero seguramente se añadirá en un futuro próximo.

La configuración del sitio se encuentra en un archivo llamado config.yaml. Dependiendo de si usted está trabajando con una instalación de TYPO3 basada en Composer o Symlink, este archivo se puede encontrar en dos lugares diferentes:


  • En instalaciones Composer: En el directorio config/sites/<designator>/config.yaml

  • En instalaciones Symlink: En el directorio typoconf/sites/<designator>/config.yaml

<designator> representa un nombre de directorio de libre elección, que normalmente asigna el administrador del sitio web al establecer la Configuración del sitio. En el proyecto de ejemplo, por ejemplo, este directorio se llama "main".

La configuración completa del sitio de la instalación de demostración del vídeo se puede encontrar debajo del vídeo.

Configuración de la instalación de demostración

base: 'https://reserve.ddev.site/'
errorHandling:
  -
    errorCode: 404
    errorHandler: Página
    errorContentSource: 't3://page?uid=18'
idiomas:
  -
    title: Alemán
    enabled: true
    languageId: 0
    base: /
    typo3Language: de
    locale: de_DE.UTF-8
    iso-639-1: de
    navigationTitle: DE
    hreflang: de-DE
    dirección: ltr
    bandera: de
    websiteTitle: ''
  -
    title: español
    activado: true
    base: /en/
    typo3Language: por defecto
    configuración regional: en_US.UTF-8
    iso-639-1: es
    websiteTitle: 'Plantilla TYPO3 de jweiland.net'
    navigationTitle: ES
    hreflang: en-US
    dirección: ''
    fallbackType: strict
    fallbacks: ''
    bandera: en-us-gb
    languageId: 1
rootPageId: 1
potenciadores de ruta:
  ReservePlugin:
    tipo: Extbase
    extensión: Reserve
    plugin: Reserva
    rutas:
      - routePath: '/checkout/list'
        _controller: 'Pago::lista'
      - routePath: '/compra/formulario/{period_uid}'
        controlador: 'Pago::formulario'
        _argumentos:
          period_uid: period
      - routePath: '/compra/crear'
        controlador: 'Pago::crear'
      - routePath: '/compra/confirmar/{correo_pedido}/{codigo_activación_pedido}'
        _controller: 'Pago::confirmar'
        _argumentos:
          order_email: email
          order_activation_code: activationCode
      - routePath: '/compra/cancelar/{correo_pedido}/{codigo_activación_pedido}'
        _controller: 'Pago::cancelar'
        _argumentos:
          order_email: email
          código_activación_pedido: código_activación
    requisitos:
      period_uid: '^[0-9]+$'
      order_activation_code: '^[a-zA-Z0-9]+$'
    defaultController: 'Pago::lista'
    aspectos:
      period_uid:
        type: PersistedAliasMapper
        tableName: tx_reserve_domain_model_period
        routeFieldName: uid
  NewsPlugin:
    type: Extbase
    extensión: News
    plugin: Pi1
    rutas:
      -
        routePath: '/{news_title}'
        _controller: 'Noticias::detalle'
        _argumentos:
          título_noticias: noticias
    defaultController: 'Noticias::detalle'
    aspectos:
      news_title:
        type: PersistedAliasMapper
        tableName: tx_news_domain_model_news
        routeFieldName: ruta_segmento
  PageTypeSuffix:
    type: PageType
    por defecto: .html
    mapa:
      sitemap.xml: 1533906435
      yoast-snippetpreview.json: 1480321830
      feed.xml: 9818
      reserve-scanner.html: 1589460150
routes:
  -
    ruta: robots.txt
    tipo: staticText
    content: "## Utilice las siguientes líneas durante el desarrollo de un sitio web para no permitir a los robots el acceso al sitio web: /\Use las siguientes líneas para PERMITIR a los robots el acceso a la página web Elimine el # al principio de cada línea User-agent: *\r\n#Disallow: /fileadmin/_temp_/\r\n#Disallow: /t3lib/\r\n#Disallow: /typo3/\r\n#Disallow: /typo3_src/\r\n#Disallow: /clear.gif\r\n#Allow: /typo3/sysext/frontend/Resources/Public/*"
configuración:
  redirects:
    autoUpdateSlugs: true
    autoCreateRedirects: true
    redirectTTL: 0
    httpStatusCode: 301
websiteTitle: 'TYPO3 proyecto de ejemplo de jweiland.net'

Configurar las tareas del programador

Por último, deben configurarse algunas tareas del programador para "limpiar" la base de datos de archivos antiguos que ya no sean necesarios. Por ejemplo, las reservas no confirmadas o las franjas horarias caducadas pueden borrarse al cabo de cierto tiempo.

Aktualisiert: 17.07.2024