En poursuivant votre navigation sur ce site, vous acceptez l’utilisation de Cookies pour réaliser des statistiques de visites.

09 54 46 51 10

du lundi au vendredi de 08h à 19h

Controlleur: Booking


Contrôleur permettant d'effectuer des réservations en ligne.


Views

Liste des différentes étapes permettant la réservation en ligne.


calendars (index)

Cette vue permet la sélection du calendrier ou de la prestation, de la date et du nombre de personnes.

Les données doivent être transmises en paramètre GET à la vue authentification.

Variables :

  • breadCrumb
  • breadCrumbIndex

    Note :

    Les variables breadCrumb et breadCrumbIndex ne devraient pas être utilisées directement. La méthode renderBreadCrumb de la class Page utilisent ces variables en interne pour le rendu du fil d'ariane.

    {{ page.renderBreadCrumb() }}

authentification

Cette vue affiche une page permettant à l'internaute de s'authentifier ou d'être redirigé vers la page signup (si autorisé).

Ignoré si le client est déjà authentifié.

Le client est ensuite redirigé vers la vue booking.

Paramètres GET :

  • date : la date et l'heure de la réservation
  • calendar : le calendrier
  • item : l'article
  • personCount : le nombre de personnes
  • event : l'ID d'un événement duquel seront récupérés: date, calendar, item
  • columnIndex : l'index de la colonne

Variables :

  • breadCrumb : voir ci-dessus
  • breadCrumbIndex : voir ci-dessus
  • signupFields array(Field) : Renvoi un tableau contenant les instances des champs (classe Field) à afficher.

    Exemple
    {% for signupField in page.vars.signupFields %}
      {{ signupField.renderFormGroup() }}
    {% endfor %}

signup

Cette étape permet à l'internaute de se créer un compte client.

Variables :

  • breadCrumb : voir ci-dessus
  • breadCrumbIndex : voir ci-dessus
  • signupFields array(Field) : Les champs du formulaire d'inscription

booking

Cette vue permet de confirmer la réservation.

Si des champs doivent être affichés, ils seront définis dans la variable eventFields.

Paramètres GET :

Les mêmes paramètres que pour l'étape authentification sont acceptés.

Variables :

  • breadCrumb : voir ci-dessus
  • breadCrumbIndex : voir ci-dessus
  • calendarName : Le nom du calendrier
  • calendar
  • item
  • personCount
  • inviteCount
  • columnIndex
  • eventStartDate
  • eventEndDate
  • eventTotal
  • eventDeposit
  • eventFields

confirmation

Cette vue affiche la confirmation de la réservation.

Toutes les données en session seront supprimées à la fin de l'étape. Si l'internaute recharge la page, il sera redirigé à l'étape calendars.

Variables :

  • breadCrumb
  • breadCrumbIndex
  • eventFields
  • event

    Exemple
    {{ event.show(site, page.vars.event, page.vars.eventFields) }}

Public API


fetch_item

Retourne les articles ouverts à la réservation en ligne.

Exemple :
$.ajax({
  url: "{{ page.urlForAction('fetch_item') }}",
  success: function(response) {
    var parsedResponse = JSON.parse(response);
    console.log(parsedResponse);
  }
});

fetch_calendar

Retourne les calendriers ouverts à la réservation en ligne.

Exemple :
$.ajax({
  url: "{{ page.urlForAction('fetch_calendar') }}",
  success: function(response) {
    var parsedResponse = JSON.parse(response);
    console.log(parsedResponse);
  }
});

fetch_availability

Retourne les disponibilités pour une période donnée.

Paramètres POST

Hormis la date, tous les paramètres sont optionnels.

  • date : la date à partir de laquelle afficher les disponibilités
  • calendar int | [int] : le ou les calendrier ciblé
  • item int | [int] : le ou les articles ciblé
  • duration : la durée de l'événement
  • personCount : le nombre de personnes
  • dayLength : le nombre de jour à afficher
  • monthLength : le nombre de mois à afficher
  • columnIndex 'all' | int | [int] : une colonne spécifique
Exemple :
$.ajax({
  url: "{{ page.urlForAction('fetch_availability') }}",
  type: 'POST',
  data: { 
    duration: duration, 
    item: [item], 
    model: [model], 
    personCount: 1, 
    date: '2015-01-31', 
  },
  success: function(response) {
    var parsedResponse = JSON.parse(response);
    console.log(parsedResponse);
  }
});

Méthodes


getItem [empêche la mise en cache]

Retourne les articles comme l'aurait fait une requête vers l'URL fetch_item.

Exemple :
{% set calendars = page.getItem() %}

{{ calendars|json_encode }}

getCalendar [empêche la mise en cache]

Retourne les calendriers comme l'aurait fait une requête vers l'URL fetch_calendar.

Exemple :
{% set calendars = page.getCalendar() %}

{{ calendars|json_encode }}