Réservation d’événements

Ce plugin permet d’offrir aux visiteurs de s’inscrire pour un évènement du plugin Agenda et de gérer les réservations enregistrées.

Installation

Le plugin s’installe comme n’importe quel plugin.

il nécessite:

Introduction

Une réservation comporte deux parties :

  • La partie principale qui contient les données générales, comme les coordonnées, la date et référence de la réservation - la réservation proprement dit.
  • à cette réservation est/sont attaché/s le/s détail/s de la réservation contenant les informations relatives à l’évènement réservé.

Une réservation peut donc contenir plusieurs détails de réservation, mais en nécessite au minimum un.

Configuration

Statut par défaut
Configurez d’abord votre plugin en commençant par le statut par défaut de chaque réservation (si rien n’est choisi, le statut par défaut sera dans liste d’attente)

Le(s) Statut(s) complet(s)
Si vous comptez utiliser la limitation de places pour les réservations, choisissez le/s statut/s qui entre/nt en compte pour déterminer si un événement est complet. Lors d’un changement de statut vers un des “statuts complets”, le plugin déterminera alors si il reste des places disponibles, sinon il mettra le statut à “en liste d’attente”.

Calculer automatiquement le statut accepté de la réservation
Si activé, lors d’un changement de statut vers accepté, le plugin vérifiera si tous les détails de réservation ont le statut accepté, sinon la réservation sera mis en “accepté partiellement”.

Notifications
Vous pouvez ensuite activer l’envoi automatique des notifications de réservations aux vendeurs/administrateurs du site.

Paramètres des notifications
Déclenchement
Définissez alors quel changement de statut déclenchera une notification et les autres paramètres de notifications

Client
Vous pouvez également activer l’envoi d’un mail de notification au client.

Vous avez la possibilité de “Permettre d’envoyer les notifications à plusieurs destinataires”. Si activé, un champ supplémentaire s’ajoutera aux formulaires de réservation permettant d’ajouter des adresses emails (séparés par comma)

Activer le mode Envoi Séparé pour le statut
Par défaut, le changement de statut d’un détail de réservation ne déclenche pas d’envoi de mail. Si vous voulez pouvoir envoyer des notification séparés pour chaque détail de réservation, activez le pour le statut souhaité.

Clôturer automatiquement une réservation
Vous pouvez programmer la clôture automatique d’un évènement.

Si activé, un champ Clôture automatique s’affichera dans vos formulaire d’édition d’articles et d’évènements.
Afin qu’un évènement soit clôturé automatiquement, il faut l’activer au niveau de l’évènement.
Si activé au niveau de l’article, tout nouveau évènement de cet article aura la Clôture automatique activé par défaut.

Chaque évènement pour lequel la Clôture automatique est activé sera déclaré comme clôturé quand la date fin est atteinte et les détail de réservation concernés ayant le statut accepté seront mis en statut clôturé.
Si vous voulez envoyer une notification lors de la clôture de l’évènement, ajoutez le statut clôturé sous Paramètres des notifications/Déclenchement.

Permettre au visiteur de s’enregistrer lors d’une réservation
Si activé, le visiteur peut choisir de s’enregistrer et de créer un compte auteur spip (statut visiteur) avec login et mot passe, ce qui lui permettra d’effectuer de nouvelles réservation dans devoir renseigner à nouveau ses coordonnées.

Cette option peut être rendu obligatoire.

Un visiteur enregistré sera logué automatiquement après la réservation

Créer les évènements ouverts à l’inscription

Saisissez d’abord un évènement.
Nativement le plugin agenda prévoit une case inscription en ligne et Limiter le nombre de places qui seront utilisé par ce plugin.

Pour que l’évènement soit pris en compte par ce plugin, il faut cocher inscription en ligne.

Si vous prévoyez de limiter le nombre d’inscriptions, remplissez le champ Limiter le nombre de places. Laissez vide si vous ne voulez pas imposer de limite.
Si vous avez indiqué un nombre limite, lors de chaque réservation sera alors calculé le nombre de détails de réservation pour cet évènement ayant le statut correspondant au/x Statut(s) complet(s) définit dans la Configuration. Si ce nombre dépasse celui prévu dans Limiter le nombre de places, le détail de réservation obtiendra le statut dans liste d’attente.

Gestion des champs extras

Le plugin intègre automatiquement les champs extras auteurs et réservation ajoutés via le plugin Champs extras

Gestion de prix

  • Créez un champ extra prix pour vos articles ou vos événements. (Il est alors conseillé d’installer le plugin API Prix afin de mieux gérer les formats de prix, surtout pour un site multilingue).
  • Installez le plugin Prix Objets puis activez dans la configuration les objets articles et évènements.

Le plugin vérifie d’abord si il existe un prix fournis par Prix Objets, sinon il cherchera un champs prix (ou prix_ht si API Prix est installé).

Un prix définit au niveau de l’article s’applique à tous ses évènements qui n’ont pas de prix définit.

Vous pouvez également utiliser le plugin Déclinaisons Prix afin de déterminer plusieurs prix par événement.

Formulaire public

Squelettes

<div class="ajax">
        #FORMULAIRE_RESERVATION{#ENV{id_evenement},#ENV{id_article}, #ENV{retour}, #ENV{options}}
</div>

Les variables ne sont pas nécessaire:

  • Les deux premiers servent à limiter l’étendu du formulaire. Il peut s’agir d’un seul id ou d’un tableau de plusieurs id. Si rien n’est mis, tous les événements sont prix en compte.
  • La troisième variable permet de renseigner une url de redirection.
  • La quatrième définit un tableau d’options. Seule l’option “id_evenement_source” est disponible actuellement. Elle permet de définir comment traiter les événements répétés:
    • Par défaut (pas d’option “id_evenement_source”) les événements sont groupés. Une réservation pour l’ensemble des événements répétés est proposé.
    • Pour une réservation pour chaque événement répété il faudrait mettre
      #ARRAY{id_evenement_source,''} 

Modèle

<reservation|>

Si ce modèle est placé dans un article, le formulaire affichera uniquement les évènements futurs de cet article.

Pour afficher seulement le formulaire d’un seul évènement.

<reservation|id_evenement=#ID_EVENEMENT>

Gestion des réservations

Rendez vous sur Activité>Réservations pour trouver une liste des réservations effectuées.

Le menu de la colonne de gauche vous permet de classer les réservations par événement ou par article.

Pour chaque événement ou article il est ainsi possible de visualiser et télécharger les différents réservation effectuées, classées par statut.

Vous retrouverez ces informations également dans la colonne gauche des pages rubriques, articles et événements dans l’espace privé

Extensions

Ce plugin peut être complémenté avec:

updated on 6 April 2020

Discussion

77 discussions

  • 1

    Bonjour Rainier,
    Merci pour ce rappel sur la méthode de débogage avec #ENV.
    Oui, il s’agissait bien de Nom et Email qui étaient en cause. En appliquant vos conseils, c’est OK. Donc votre code modifié :

    [(#REM) 15/06/2020 : include modifié et simplifié pour ne PAS saisir d'autres inscriptions]
    
    #SET{id_auteur,#SESSION{id_auteur}}
    <div class="identifiants">
            [(#GET{id_auteur}|>{0}|non)
                    <div class="login">
                            #SET{url,#URL_PAGE{login}|parametre_url{url,#SELF}}
                            [(#SET{titre_login,<:lien_connecter:>})]
                            <strong class="explication"><:reservation:explication_login{url=#GET{url},titre_login=#GET{titre_login}}:></strong>
                    </div>
            ]
    
            <BOUCLE_connecte(CONDITION){si #GET{id_auteur}|>{0}}>
                    <div class="donnes_personnels">
                            <div class="nom">
                                    <span class="label"><:reservation:label_nom:></span> <span>#NOM</span>
                            </div>
                            <div class="nom">
                                    <span class="label"><:reservation:label_email:></span> <span>#EMAIL</span>
                            </div>
                            <BOUCLE_extras(DATA){source tableau, #ENV{champs_extras_auteurs}}>
                                    #SET{nom,#OPTIONS|table_valeur{nom}}
                                    <div class="#GET{nom}">
                                            <span class="label">[(#OPTIONS|table_valeur{label})]</span> <span>#ENV{#GET{nom}}</span>
                                    </div>
                            </BOUCLE_extras>
                    </div>
            </BOUCLE_connecte>
            [(#SAISIE{hidden,#ENV{name_nom,nom},label=<:reservation:label_nom:>,obligatoire=oui})]
             [(#SAISIE{hidden,#ENV{name_email,email},label=<:reservation:label_email:>,obligatoire=oui})]
    
            <!--extra_connection1-->
    [(#GET{id_auteur}|>{0}|non|et{#ENV{enregistrement_inscrit}|=={on}|oui})
            <div class="editer-groupe">
                    [(#ENV{enregistrement_inscrit_obligatoire}|!={on}|?{
                            [(#SAISIE{checkbox,enregistrer,
                                    class=enregistrer,
                                    label=<:reservation:label_enregistrer:>,
                                    datas=#ARRAY{1,<:reservation:ok:>}
                            })]
                            ,
                            #SET{obligatoire,oui}
                    })]
                    <div class="editer-groupe block_mp">
                            [(#SAISIE{input,#ENV{name_new_login,new_login},
                                    label=<:item_login:>,
                                    obligatoire=#GET{obligatoire}
                            })]
                            [(#SAISIE{input,#ENV{name_new_pass,new_pass},
                                    type="password",
                                    label=<:reservation:label_mot_passe:>,
                                    obligatoire=#GET{obligatoire},
                                    class=password,explication=<:info_plus_cinq_car:>
                            })]
                            [(#SAISIE{input,#ENV{name_new_pass2,new_pass2},
                                    type="password",
                                    label=<:reservation:label_mot_passe2:>,
                                    obligatoire=#GET{obligatoire},
                                    class=password
                            })]
                    </div>
            </div>
    ]
    </div>
    
    <!--extra_connection2-->
    <BOUCLE_condition(CONDITION){si #ENV{enregistrement_inscrit_obligatoire}|!={on}|oui}>
            <script type="text/javascript">
                    /*<![CDATA[*/
                    if (!$('input[name="enregistrer[]"]').is(':checked')) {
                            $('.block_mp').hide();
                    }
    
                    $('input[name="enregistrer[]"]').click(function() {
                            $('.block_mp').slideToggle('slow', function() {
                            });
                    });
                    /*]]>*/
            </script>
    </BOUCLE_condition>
    
    <BOUCLE_condition2(CONDITION){si #GET{id_auteur}|>{0}|oui}>
            <script type="text/javascript">
                    /*<![CDATA[*/
                            if (!$('input[name="modifier_donnees_auteur[]"]').is(':checked')) {
                                    $('.donnees_auteur').hide();
                            }
                            else {
                                    $('.donnes_personnels').hide();
                            }
    
                            $('input[name="modifier_donnees_auteur[]"]').click(function() {
                                    $('.donnees_auteur').slideToggle('slow', function() {});
                                    $('.donnes_personnels').slideToggle('slow', function() {});
                            });
                    /*]]>*/
            </script>
    </BOUCLE_condition2>

    Ensuite, j’ai cherché un moyen de limiter l’affichage des éènements avec une solution type “massacre à la tronçonneuse” : en ajoutant un critère en dur 0,3 dans
    formulaires/inc-reservation_evenements.html

    <BOUCLE_art_or (DATA){source tableau,#ENV{evenements}} {id_evenement_source ?} {par date_debut} {0,3}>

    J’ai essayé sans succès de trouver un critère pour obtenir les événements des prochains 30 jours.
    J’aurai préféré passer ces options via un paramètre du modèle <reservation|>

    Enfin, un truc bizarre : il est possible d’effectuer plusieurs fois la réservation d’un événement (version non modifiée du plugin) pour une même personne ....(à mon avis, c’est une anomalie, cela devrait être la réservation d’un événement par personne et non pas la réservation de n éléments d’un stock effectuée par une personne)

    Cordialement
    Philippe

    • Pour le critères, regarde la doc de agenda

      Critères de date
      Tous les critères habituels age, age_relatif, mois_relatif, jour_relatif sont declinables sur les dates de début et de fin : age_debut, age_relatif_debut, mois_relatif_debut, jour_relatif_debut, et de même age_fin, age_relatif_fin, mois_relatif_fin, jour_relatif_fin
      Dans ce cas, il est à noter que les comparaison sont faites par rapport à des date_debut et des date_fin.
      Ainsi si vous utilisez mois_relatif_debut<0 comme critère de votre boucle EVENEMENTS, seront retenus les évènements dont le mois de la date de début est supérieur ou égal au mois de date_debut du contexte (soit #ENVdate_debut #DATE_DEBUT de la boucle englobante)

      Enfin, un truc bizarre : il est possible d’effectuer plusieurs fois la réservation d’un événement (version non modifiée du plugin) pour une même personne ....(à mon avis, c’est une anomalie, cela devrait être la réservation d’un événement par personne et non pas la réservation de n éléments d’un stock effectuée par une personne)

      Non c’est pas un bug, la mème personne peut réserver pour d’autres. Il y d’ailleurs le plugin Réservations multiples qui permet de le faire d’un coup.

    Reply to this message

  • 3

    Questions au sujet des restrictions sur les réservations.

    Débutant sur SPIP, j’essaie de mettre en place un site associatif
    -  Pour test, j’ai rédigé des articles et créé des rubriques
    -  avec le plugin Accès restreint, l’une des rubriques “Adhérents” n’est accessible qu’avec un login/password. Ce dernier n’est validé que par les administrateurs (inscription à l’association)
    -  Des articles de la rubrique Adhérents décrivent des activités types (sorties, formations etc...) qui peuvent être réservées. Chaque auteur d’un article (en fait responsable de l’activité) va donc créer un ou plusieurs événements éventuellement avec répétitions.
    -  Pour test, j’ai créé un évènement avec répétition associé à un article de description en cochant “inscription en ligne” pour que le formulaire puisse apparaitre sur la page publique.
    -  je place le modèle <reservation|> dans l’article et le formulaire de réservation apparait bien pour chaque événement futur (comme annoncé dans la doc !)
    A ce niveau, 2 questions :
    -  comment ne faire apparaitre que le prochain événement dans l’ensemble des événements créés par l’auteur ? (ou de manière plus générique, les N prochains évènements ?)
    -  puisque les réservations se font sur des articles protégés par le plugin Accès Restreint, du coup, je ne dois par faire apparaitre Modifier les identifiants personnels : après l’affichage de l’identification en bas du formulaire. Comment procéder / que dois-je modifier ?

    Enfin, l’auteur de l’article devra gérer ses réservations dans sa zone privée via l’onglet Activité/Réservations.
    Je n’ai pas bien compris comment l’auteur pouvait simplement valider (ou refuser) un ensemble d’inscriptions à la fois. Plus précisément, comment faire un tri : les réservations d’un événement lié à un article pour voir leurs statuts et faire les validations ....

    Voilà, c’est un peu long, mais j’essaie d’être clair avec les exemples et savoir ce qui ressort du bon paramétrage du plugin Réservation ou de la modification par surcharge. Dans la mise en place, j’aurai plusieurs responsables (auteurs) qui devront créer leurs événements et gérer les réservations.

    Merci d’avance pour vos éclaircissements et votre aide.
    Philippe

    • Bonjour Philippe,

      Filtration des événement.

      Le plus simple c’est de créer un tableau des événements à prendre en compte par le formulaire et de l’injecter dans la balise du formulaire

      #SET{id_evenement,#ARRAY}
       
      <BOUCLE_evenements(EVENEMENTS) {criteresDeFiltrages}>
        #SET{id_evenement,#GET{id_evenement}|push{#ID_EVENEMENT}}
      </BOUCLE_evenements>
       
       #FORMULAIRE_RESERVATION{#ENV{id_evenement}}

      Pour le critères d’affichage d’événements regarde la doc d’agenda

      Modification squelettes formulaire

      L’affichage se fait via squelettes. Tu pourras donc enlever simplement dans le squelettes formulaires/inc-reservation_connection.html

      		<div class="editer-groupe">
      		[(#SAISIE{checkbox,modifier_donnees_auteur,
      			label=<:reservation:label_modifier_identifiants_personnels:>,
      			datas=#ARRAY{1,<:reservation:ok:>}
      			})]
      		</div>

      et à la ligne 34

      	<div class="editer-groupe donnees_auteur">
      		[(#SAISIE{input,#ENV{name_nom,nom},label=<:reservation:label_nom:>,obligatoire=oui})]
       
      		[(#SAISIE{input,#ENV{name_email,email},label=<:reservation:label_email:>,obligatoire=oui})]
       
      		[(#REM)Géneration des champs extras auteurs]
       
      		#GENERER_SAISIES{#ENV{champs_extras_auteurs}}
      	</div>

      Gestion des réservation

      • Il n’y a pas de gestion spécifique par auteur prévue. Ce qui est probablement le plus simple à faire, c’est de créer une page dans l’espace publique mais accessible seulement par l’auteur, ou il trouve tous ces réservation (BOUCLE réservation avec id_auteur) avec les actions de changement de statut. Tu pourras t’inspirer des squelettes du plugin notammentprive/objets/liste/inc-reservations_reservations.html etprive/objets/liste/inc-reservations_row.html.
      • Il n’y a pas non plus de gestion de réesrvation en batch. Il te faudrait développer ça. C’est intéressant, mais je n’auras pas le temps actuellement. Si tu t’y connais en php, le mieux serait de développer une extension au plugin réservation événement et de le mettre à disposition.

      Rainer

    • Bonjour Rainer,
      Je viens d’appliquer les indications sous le titre “Modification squelettes formulaire”.
      L’affichage est OK, bien entendu, l’option d’inscription supplémentaires a disparu.
      Mais en testant une inscription, j’ai un message sibyllin “Votre saisie contient des erreurs !” dont je n’arrive pas à trouver l’origine en cherchant dans “formulaire/reservation.php” ....

      Pour la gestion des réservation, effectivement, l’idée est bonne de faire un affichage des validations dans une page publique (la même ...) quand le webmestre ou l’auteur est connecté ... Je vais voir par la suite.
      Cordialement
      Philippe

    • Salut Philippe,

      C’est de champs manquant, probablement nom et email, pour être sûr met

      #ENV

      dans ton squelette et cherche pour erreur.

      Si c’est effectivement nom et email rajoute ce code :

      		[(#SAISIE{hidden,#ENV{name_nom,nom},label=<:reservation:label_nom:>,obligatoire=oui})]
       
      		[(#SAISIE{hidden,#ENV{name_email,email},label=<:reservation:label_email:>,obligatoire=oui})

    Reply to this message

  • 11

    Bonjour,
    Ce plugin semble correspondre parfaitement à mon besoin, mais est-ce vraiment compatible SPIP 3.x ?
    Après installation et activation, puis configuration, la création d’un événement abouti à un message :
    “Vous n’avez pas le droit d’associer cet événement à cet article”
    Le message ne me permet pas de comprendre la raison de l’erreur....
    Une idée ?
    Bien cordialement
    Philippe

    • Bonjour,

      S’il ne pas compatible spip 3* c’est qu’il n’est pas compatible spip. :)

      La création d’un événement est géré par agenda. Réservation événement n’y intervient pas. Visiblem,ent c’est un problème de droit. Quel statut d’auteur?

      Désactive tous les plug puis active agenda -> teste. Puis active réservation événements -> teste et dis moi ce que tu obtiens.
      Rainer

    • Bonjour,
      Merci pour cette réponse rapide.
      J’ai le statut d’Administrateur
      J’ai désactivé tous les plugins sauf Agenda 4.2.1 et Mini Calendrier 2.4.1.
      J’ai toujours le même message en tentant de créer un événement.

      Je viens d’installer SPIP 3.x pour test, j’ai créé quelques rubriques et articles, mis en place le plugin “Accès Restreint” (Ok après un peu de recherche sur les syntaxes pour Spip 3)

      J’essaie de mettre en place un serveur associatif avec gestion des accès restreints et des réservations, en remplacement d’un serveur existant sous Joomla qui ne me plait pas trop (!)
      Cordialement
      Philippe

    • Bonjour,

      J’ai ce message lorsque je tente d’associer un évènement à un article qui est en dehors d’une zone définie dans la config :
      Sur la page ecrire/?exec=configurer_reservation_evenement
      il y a “Définir une/des zones pour l’application de ce plugin / Permet de restreindre l’application de ce plugin au/x zone/s définie/s”
      Lorsqu’il n’y a aucune zone de définie il est possible de créer un évènement partout.

      Donc c’est peut-être un peu trompeur car la restriction se définit pour le plugin reservation_evenement mais au final il semble qu’elle s’applique aussi aux évènements (même sans réservation)

    • Merci pour cette remarque, mais je n’ai pas défini de zone pour l’instant .... Cela aurait pu être une bonne raison.
      Cordialement
      Philippe

    • tu dis

      J’ai désactivé tous les plugins sauf Agenda 4.2.1 et Mini Calendrier 2.4.1.
      J’ai toujours le même message en tentant de créer un événement.

      Ça veut dire que tu as ce message quand réservation événéments n’est pas activé?

      Est-ce que c’est bien dans l’espàce privé que tu essaie d’ajouter un événement?

    • Quant à

      “J’ai ce message lorsque je tente d’associer un évènement à un article qui est en dehors d’une zone définie dans la config :
      Sur la page ecrire/?exec=configurer_reservation_evenement
      il y a “Définir une/des zones pour l’application de ce plugin / Permet de restreindre l’application de ce plugin au/x zone/s définie/s”
      Lorsqu’il n’y a aucune zone de définie il est possible de créer un évènement partout.”

      je ne reproduis pas @DD peux tu me dire plus sur ta configuration?

    • Bon je crois que j’ai trouvé : il faut cocher la case “Activer le mode agenda” sur la page d’édition d’une rubrique pour pouvoir ajouter des événements aux articles de cette rubrique.
      Dans la base de données on voit que pour le champ “agenda” de la table “rubriques” la valeur peut être 0 ou 1.
      Ce que j’en déduis (toute correction ou autre déduction est la bienvenue) :
      Si une des rubriques du site à la valeur 1 alors l’agenda est désactivé pour toutes les autres
      Si toutes les rubriques ont la valeur “0” alors l’agenda est activé pour toutes
      Mais si il y a déjà des événements attachés à un article d’une rubrique (avant qu’une restriction d’agenda soit ajoutée par après pour cette rubrique), alors on peut continuer d’ajouter des événements à l’article même si la valeur du champ “agenda” est à “0” pour la rubrique.

      En tout cas ce n’est pas lié à ce plugin de réservation.

    • Oui, j’ai bien fait le test avec Agenda et Mini calendrier SANS Réservation évenements
      Cordialement
      Philippe

    • Oui, bien vu : il fallait bien cocher la case « Activer le mode agenda » sur la page d’édition d’une rubrique !
      La confusion vient de 2 points :
      -  Après installation de SPIP, j’ai commencé par rédiger des articles et créer des rubriques pour tester sans avoir aucun plugin installé. Je pense donc que cette case à cocher n’était pas présente à ce moment.
      -  Ensuite, en installant le plugin Réservation évènement, il est fait état de restreindre le plugin à des zones. Bien entendu, pour commencer, je n’ai pas activé cette possibilité, d’où le manque de méfiance sur la case à cocher .... Ce plugin charge Agenda mais la version est indiquée comme “test” (au lieu de “stable”), ce qui est la porte ouverte aux suspicions ...
      -  Enfin, en tant que débutant, je pensais plus à mes nombreuses erreurs possibles ....

      Bref, dans la doc de Réservation événement, un petite ligne supplémentaire au sujet de cette case serait la bienvenue .....

      Je vais continuer à essayer de comprendre les relations entre “article”, “agenda”, “évenement” et “réservations” .....

      Merci pour vos aides !

      Cordialement
      Philippe

    • «Activer le mode agenda» est und foncionnalité du plugin Agenda et n’a rien à voir avec la foncionalite du présent plugin de limiter son champ d’action (“Définir une/des zones pour l’application de ce plugin”).

      Comme les utilisateurs de réservation d’événements n’ont pas vraiment manifesté de problèmes lié à la fonction «Activer le mode agenda» du plugin Agenda, je préfère de ne pas mélanger les docs et de laisser à Agenda d’expliquer cette particularité de son fontionnement.

    • Dans la doc de réservation, la première ligne est :
      Ce plugin permet d’offrir aux visiteurs de s’inscrire pour un évènement du plugin Agenda et de gérer les réservations enregistrées.
      Si la case n’est pas cochée « Activer le mode agenda », ce que l’utilisateur a du mal à deviner (n’apparait pas clairement dans la doc Agenda), on arrive simplement à des messages d’erreurs incompréhensibles de prime abord dans la mise en application du plugin Réservation quand on en suit la documentation
      Donc, une simple ligne de mise en garde m’apparait indispensable, ce n’est pas vraiment un mélange de documentation (quoi que : votre reprenez bien une documentation sur la création d’évènement, ce qui est appréciable). Je ne suis pas le premier à avoir posé la question au sujet du message d’erreur ... J’ai passé 2 semaines à essayer d’entrer dans le code pour remonter à l’erreur, ce qui peut décourager le débutant. Mais j’ai été agréablement surpris par votre aide rapide ! Votre doc est déjà assez détaillée en recouvrant celle d’Agenda, une ligne supplémentaire ne sera pas de trop pour éviter un blocage rien qu’au premier test ....

      Cordialement
      Philippe

    Reply to this message

  • 3

    Bonjour,
    dans la liste des résa par article, peut-on les classer en ordre inverse ?
    Merci

    Reply to this message

  • 1

    Hello :-)
    php 5.6.38
    J’essaie de me servir du plug pour la première fois :-)
    Ce soir, sur un spip 3.2.3 tout neuf j’installe le plug via SVP et donc les necessite dans les version les plus récente.
    Je colle dans le squelette de la distà la ligne https://zone.spip.net/trac/spip-zone/browser/spip-zone/_core_/branches/spip-3.2/plugins/dist/sommaire.html#L32 le code qui est dit dans l’article:

    <div class="ajax">
            #FORMULAIRE_RESERVATION{#ENV{id_evenement},#ENV{id_article}, #ENV{retour}, #ENV{options}}
    </div>

    Après, je vide le cache et je vais dans la partie publique du site !
    Et là, pouf, le site rame et ne fonctionne plus :-(
    Il y a un truc que je n’ai pas du comprendre, mais quoi ???
    Franck

    Reply to this message

  • 19

    Bonjour,
    J’essaie d’utiliser la réservation d’événements et je ne vois pas trop à quoi sert d’afficher le bloc je participerai, peut-être, etc. dans l’événement puisque l’inscription se fait sur l’article de l’agenda (voir captures). D’autre part, aucune information n’est mentionnée dans les zones inscrits, incertains, absents même si des inscriptions (j’y participerai par exemple) ont été faites.
    Ai-je raté quelque chose ?
    Merci de votre aide.
    Yann

    • Salut Yann,

      Ceci à l’air de venir du formulaire

      #FORMULAIRE_PARTICIPER_EVENEMENT

      du plugin agenda. Si tu veux utiliser le système de réservation du présent plugin il te faut utiliser la balise

      #FORMULAIRE_RESERVATION
    • Rainer,
      En fait j’utilise le modèle <reservation|id_evenement=#ID_EVENEMENT> dans mon article et j’active les inscriptions dans l’événement.

      1. Je ne sais pas où placer #FORMULAIRE_RESERVATION.

      2. D’autre part, je souhaiterais avoir la possibilité de plusieurs choix de prix. Exemple :
      Adulte : 10 € Quantité : xxxx
      Enfants - 12 ans 5 ans : 5 € Quantité xxxx
      et bien sûr un total de tout ça

      Je ne vois pas trop comment faire.

      Yann

    • 1. Le modèle utilise déjà #FORMULAIRE_RESERVATION.. Donc c’est bon. Par contre ton squelette article doit contenir #FORMULAIRE_PARTICIPER_EVENEMENT, efface la balise.

      2. Essaie avec le plugin Déclinaisons Prix

    • Rainer,
      J’ai essayé les déclinaisons. Le souci c’est que cela utilise des boutons radio. donc ça ne prend en compte que le dernier. Mon idée était de pouvoir sélectionner par exemple : 1 adulte (10 €) et 2 enfants (2 x 5 €) et donc d’avoir un total à payer de 20 €.
      Yann

    • Dans l’état actuel du plugin ce n’est pas possible

    • Merci Rainer.
      Dans ce cas je vais procéder différemment avec des déclinaisons :
      -  adulte seul
      -  couple sans enfant
      -  adulte + 1 enfant
      -  couple + 1 enfant
      etc.

      ça devrait répondre aux besoins pour le moment sachant que les familles de 15 enfants sont plutôt rares. :-)
      Yann

    • Pour mon souci de bloc de participation dans l’événement, il semble que ce soit le fichier de l’agenda formulaires/participer_evenement.html qui est appelé et affiché dans l’événement pour un auteur loggué.

      Pour un visiteur seuls les mots inscrits incertains absents sont affichés.

      J’ai l’impression que l’événement parle d’une invitation à participer alors que l’article lui invite à réserver. Le problème c’est que dire qu’on va participer ne vaut pas réservation.

      Y a un truc qui se mord la queue.

      Yann

    • Enlève la balise du formulaire dans le squelettes correspondant, probablement evenement.html

    • Je pense avoir trouvé. Sous Escal il semble s’agir du fichier inclusions/inc-events_calendrier.html

      J’ai retiré la balise et déposé le fichier modifié dans squelettes/inclusions à la racine de mon site et le résultat est là ! Je vais néanmoins vérifier auprès de JC Villeneuve (Escal) qu’il s’agit bien de ce fichier.
      Merci encore pour ton aide précieuse.

      Yann

    • Ma solution était pour partie bonne mais nécessitait la modification d’un 2ème fichier. Qui plus est lors de mises à jour ultérieures d’Escal j’aurais perdu les bénéfices de mises à jour pour ces fichiers. JC Villeneuve a donc livré une petite modif. Il suffit pour masquer le bloc de participation dans un événement de rajouter le code suivant dans le fichier perso.css :

      .meta-publi{
          display: none;
          }

      Yann

    • SPIP 38

      Bonjour
      J’ai le même souci que Yann, aussi avec le squelette ESCAL, mais je n’arrive pas au même résultat !!
      Je voudrais faire disparaitre ce formulaire où on coche : j’y serai //ou // j’y serai peut être // ou // j’y serai pas. j’ai retiré la balise et déposé le fichier modifié dans squelettes/inclusions à la racine de mon site, et modifié dans Eval/styles le perso.css, mais le pavé est tjrs là. Le fichier modifié doit il etre enlevé de eval/inclusions ou pas ?
      Merci d’avance

    • Bonjour,
      1. Retirez le fichier que vous avez mis à la racine dans squelettes inclusions. Seule la modification du perso.css suffit
      2. Ne jamais supprimer ou modifier un fichier directement dans les répertoires d’ Escal
      3. Le fichier modifié perso.css doit déposé à la racine dans squelettes/styles
      4. Videz le cache dans l’espace privé

      yann

    • Spip 38

      Merci Yann pour cette réponse rapide, mais cela résoud le pb à moitié. Dans l’article qui a le formulaire et qui s’affiche en page d’accueil (avec le mot clé annonce) le logo avec la date de l’évènement n’est pas au bas de l’article. Mais quand on cherche l’article par le menu, il apparait avec “évènement associé” à la fin (et le logo de la date) et si on clique sur ce logo, on a une autre page avec ce fameux pavé “j’y serai/ peut etre / j’y serai pas” sous le logo avec la date de l’évènement.
      voici l’adresse du site : afpen38.fr

      J’ai aussi un autre pb sur le formulaire cette fois, j’aimerais enlever le pavé "si vous êtes enregistré sur ce site “connectez vous” je trouve que c’est pas clair, car même si on est pas enregistré sur le site, il faut remplir ces deux cases.

    • Spip 38

      En fait, je viens de modifier mon formulaire en enlevant les champs “nom” prénom" et “mail” qui étaient redondants et prêtait à confusion avec le pavé “identifiants personnels”. C’est plus clair pour la personne qui veut s’inscrire et qui comprend alors plus facilement qu’elle doit rentrer “nom” et “mail” dans le pavé identifiants personnels même si elle n’est pas enregistrée dans le site. Mais quand même, l’indication “connectez vous si vous êtes déjà enregistrés sur le site” pourrait être en dehors du pavé “identifiants personnels” (au dessus par exemple) ce serait plus clair.

      Par contre pour le pavé « j’y serai/ peut etre / j’y serai pas » quand on clique sur le logo avec la date de l’évènement, j’ai fait les modifs (fichier perso.css) mais c’est toujours là, quand on appelle l’article depuis le menu.

    • L’indication informe juste les personnes qui se sont déjà enregistrées en tant qu’auteur/visiteur qu’elles doivent juste entrer leurs informations en se connectant. Pour ma part, je ne je ne trouve pas cela trop dérangeant. Peut-être juste modifier le libellé dans les fichiers de langue résoudrait-il ton souci de clarté.

      Pour ce qui est du pavé, je vois que ton site utilise la version 4.0.79 d’Escal or la version actuelle est la 4.0.85. Une mise à jour vers cette dernière version résoudrait je pense ton souci.
      Yann

    • Spip 38

      Tout marche à merveille !! un grand merci Yann pour ton aide.

    • Super ! Et de rien. Il est normal d’aider lorsqu’on peut. :-)

    • Par rapport à

      J’ai essayé les déclinaisons. Le souci c’est que cela utilise des boutons radio. donc ça ne prend en compte que le dernier. Mon idée était de pouvoir sélectionner par exemple : 1 adulte (10 €) et 2 enfants (2 x 5 €) et donc d’avoir un total à payer de 20 €.

      La possibilité de réserver plusieurs déclinaisons par événement a été introduit dans la version 1.29.7 (112516) du plugin. Donc tu devrais pouvoir le faire maintenant.

    • Rainer,
      Un grand merci pour ton écoute et ton suivi. Je vais tester ! :-)

    Reply to this message

  • 3

    Dysfonctionnement ?
    En faisant mes essais, je tombe sur quelque chose que je ne m’explique pas :
    le nombre d’enregistrements n’est pas le même quand on visualise (clic sur la paire de lorgnons) ou lorsqu’on télécharge les réservations.
    (voir copie d’écran)
    Bug ou feature ?

    Reply to this message

  • 3

    Bonjour,
    Je fais mes premiers pas avec ce plugin qui semble pouvoir répondre tout à fait à une demande qui m’est faite.
    Il y a toutefois un truc que je ne comprends pas bien.
    Dans la configuration du plugin, j’ai choisi “Non” pour l’item “Permettre au visiteur de s’enregistrer lors d’une réservation :
    Du coup, je ne pige pas pourquoi le formulaire affiche/demande
    Identifiants personnels (Connectez-vous si vous êtes déjà enregistré sur ce site)
    Nom : (obligatoire)
    Email : (obligatoire)
    Infos générales réservation
    Adresse email

    Il y a quelque chose qui m’échappe... Quelle est l’explication de cette présence ?
    Merci d’avance.

    • S’enregistrer veut dire créer un compte auteur spip lors de la réservation.

      Le mettre à non n’empêche pas de se loguer avec un compote existant, il n’y a juste pas de compte auteur crée.

    • Merci de ta réponse rapide. Je continue ma découverte du plugin
      Quelques petites choses :

      • dans les champs extras, je vois la possibilité de rajouter des CE dans deux objets différents : réservations et détails réservation. Pourquoi y a-t-il deux objets différents et qu’est-ce qui les différencie l’un de l’autre ?
      • Lorsqu’on remplit un formulaire et que celui-ci comporte des erreurs, les valeurs saisies dans les différents champs sont perdues et il faut recommencer la saisie. Est-ce que c’est moi qui ai mal intégré le formulaire ?
      • Dans une page qui liste des articles - par exemple les articles d’une rubrique - via une boucle ARTICLES classique, je ne pige pas comment intégrer dans le squelette l’appel au formulaire pour que, pour chaque article ainsi listé, le formulaire de réservation ne retienne que les évènements de l’article. Mon code ressemble à ça et liste l’ensemble des évènements sujets à réservation:
        <BOUCLE_liste(ARTICLES){id_rubrique}>
        <h3>#TITRE</h3>
        <div class="ajax">  #FORMULAIRE_RESERVATION{#ENV{id_evenement},#ENV{id_article}, #ENV{retour}, #ENV{options}}
        </div>
        </BOUCLE_liste>

        C’est certainement ma façon d’appeler le formulaire qui n’est pas correcte . Comment faudrait-il procéder ?

      1. Regarde dans l’introduction de cet article
      2. Les valeurs de quels champs sont perdus?
      3. Dans ton exemple tu affichera un formulaire par article de la rubrique, chaque formulaire contenant tous les événements de l’article, dans une tel liste ne vaudrait-il pas mieux de mettre un lien vers le formulaire d’inscription?
        [(#URL_PAGE{inscription}|parametre_url{id_article,#ID_ARTICLE})]

    Reply to this message

  • 5

    Merci pour ce plugin très utile. Je l’utilise sur https://lyceeduparc.fr/ldp/spip.php?page=psychologue et j’essaie de créer un formulaire d’annulation d’une réservation. Je croyais pouvoir y arriver avec une commande sql pour mettre à jour le champ “statut” de la table “spip_reservation_details”, mais cela ne semble pas fonctionner. Du coup je ne sais pas comment procéder.

    • Le mieux c’est d’utiliser l’api de spip afin que les actions liés à un changement de statut soient déclenchées.

      include_spip('action/editer_objet');
      objet_instituer('reservation', $id_reservation, array(
        'statut' => 'poubelle'
      ));

      Voic l’example de reservation bank
      https://zone.spip.org/trac/spip-zone/browser/spip-zone/_plugins_/reservations_bank/trunk/reservation_bank_pipelines.php#L489

    • Merci pour ta réactivité. Pour l’instant, je ne vois pas exactement comment intégrer et appeler le code.

    • Je me réponds à moi-même : j’ai créé un fichier page-annulation_fonctions.php avec la fonction sus-mentionnée et un fichier page-annulation.html correspondant.

      <?php
      function filtre_annuler($p, $id_reservation){
              include_spip('action/editer_objet');
          objet_instituer('reservation', $id_reservation, array(
            'statut' => 'poubelle'
          ));
              header("Location: " . $_SERVER["HTTP_REFERER"]);
      }

      pour le html :

      <BOUCLE_reservation_details1(RESERVATIONS_DETAILS){id_reservation}{id_reservations_detail ?}{statut=accepte}>
      [(#RESERVATION|annuler{#ID_RESERVATION})]
      </BOUCLE_reservation_details1>
    • Essaie les actions sécurisées qui sont prévu pour ce que tu veux faire.

      Tu peux appeler une action via les balises #BOUTON_ACTION ou bien #URL_ACTION_AUTEUR

    • Merci infiniment de l’aide.

    Reply to this message

  • 2

    Bonjour Rainer,

    Dans Réservations multiples, j’ai repéré, dans le fichier de lang reservations_multiples_fr.php, une petite erreur d’orthographe : “J’aimerais également inscrire une autre persone :”
    il manque un “n” à personne.

    Ça n’est pas dramatique, je le corrige à chaque MAJ, mais à l’occasion...

    Merci.

    Yann

    Reply to this message

Ajouter un commentaire

Who are you?
[Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom