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:

Discussion

82 discussions

  • 2

    Re bjr
    C’est encore moi.
    Mes réservations ne contiennent qu’un seul détail de réservation (systématiquement) et les rédacteurs qui valident les réservations se mélangent un peu et valident dans les détails de réservation (ce qui, en fait, est plus simple, mais ne valide pas la réservation proncipale. Est-ce que j’ai manqué une configuration qui ferait cela.

    Pour résumer : le changement de statut d’un détail de R en accepté (par exemple) peut-il automatiquement faire passer le statut de la réservation en accepté ?
    Merci
    Jean-Luc

    • La validation de la réservation entraîne l’adaptation des détails de réservation, mais pas le contraire.

      Donc la réponse est non :) ?

    • Oui c’est bien ce que je pensais.
      Je vais faire un petit tuto pour ceux qui valident.
      Cordialement
      Jean-Luc

    Reply to this message

  • 7

    Bonjour Rainer,

    Tout d’abord merci pour la mise à disposition de ce plugin.

    De mon côté, c’est la première fois que je creuse du côté des plugins SPIP, du coup, j’ai 34 points sur lesquels je bloque, mais peut-être suis-je passé à coté de quelque chose...

    1. Est-il possible que lorsque le nombre de places pour un événement est limité, le nombre de places restantes ne soit pas affiché pour les visiteurs ?

    2. Est-il possible de limiter le nombre de places réservées par utilisateur ?

    3. Simplement de la configuration je pense, mais je n’arrive pas à faire en sorte que lorsque toutes les places sont vendues, il n’y ai pas de liste d’attente (simplement un message “complet” par exemple).

    Bonne soirée

    Francis

    • Bonjour Francis

      1. Est-il possible que lorsque le nombre de places pour un événement est limité, le nombre de places restantes ne soit pas affiché pour les visiteurs ?

      il suffit de surcharger formulaires/inc-reservation_evenements.html en enlevant à la ligne 37.

      [(#PLACES|>{0}|oui)
      		<INCLURE{fond=inclure/places_disponibles,
      		id_evenement,
      		places,
      		statut=#VAL|statuts_complet} />]

      2. Est-il possible de limiter le nombre de places réservées par utilisateur ?

      Non, ce n’est pas prévu pour le moment.

      3. Simplement de la configuration je pense, mais je n’arrive pas à faire en sorte que lorsque toutes les places sont vendues, il n’y ai pas de liste d’attente (simplement un message « complet » par exemple).

      Suivant ce que tu veux faire, tu peux surcharger formulaires/inc-reservation_evenements_champ.html

      y inclure au début, en s’inspirant de inclure/places_disponibles.html

      [(#REM)Toutes les résérvations]
      #SET{total,#INCLURE{fond=inclure/compteur_reservations,env}}
      [(#REM)Les disponibilités]
      #SET{disponibles,#PLACES|moins{#GET{total}}}

      puis tu peux adapter le comportement ou l’affichage du champ respectif suivant si

      #GET{disponibles} 

      est supérieure ou non à 0

      Par example, desactiver le champ si complet:

      <input type="checkbox" name="id_evenement[#ID_EVENEMENT]" class="checkbox evenement" id="id_evenement_#ID_EVENEMENT" value="#ID_EVENEMENT"
      		[(#ID_EVENEMENT|in_array{#GET{id_evenement}}|oui) checked="checked"][(#GET{disponibles}|>{0}|non) disabled="disabled"]/>
    • Merci beaucoup, grâce à ces compléments, j’arrive à faire ce que je veux pour mon système de réservations.

      L’ultime interrogation que je rencontre est d’ordre cosmétique : je cherche l’endroit où je peux modifier l’affichage de texte comme “inscription” (sous la case à coher) ou “Si vide, la quantité sera 1”

      J’ai bien trouvé le fichier reservations_multiples/lang/reservations_multiples_fr.php avec la valeur explication_quantite mais ça n’a pas l’air de changer grand chose !

    • Si tu veux modifier les traductions, le mieux c’est que tu crée un fichier squelettes/lang/local_fr.php dans lequel tu modifie les chaînes de langues à adapter.

    • Je sais pas si j’ai bien formuler ma demande : je ne cherche pas à retraduire, mais bien modifier le texte existant en français. C’est bien ça ?

    • Traductions est mal choisis comme termes, s’agissant de la langue d’origine.

      Mais comme ce genre de textes sont gérés via les fichiers langues, c’est bien la manière décrite ci-haut qui est recommandée

    • Bonjour Rainer,
      Après quelque semaines de pause, je me replonge dans le système des réservations.
      Je viens d’avoir la demande de pouvoir préciser le nombre d’adultes et le nombre d’enfants lors de la réservation.
      Est-ce quelque chose de possible ? Qui aurait déjà été fait ?
      Bonne journée

    • Salut Francis,

      ce n’est pas possible pour le moment, il faudrait adapter Réservations multiples

      Rainer

    Reply to this message

  • 2
    Julie B.

    Bonjour Rainer,

    Juste une petite question sur le fonctionnement du plugin reservations:
    -  actuellement, on doit choisir de traiter pour les reservations:
    - soit des evenements de type sceances de cinema (la repetition du meme film) : - on ne reserve que pour cette sceance
    - soit la repetition de sceances de formation (chaque sceance a un contenu different) et on reserve donc pour l’ensemble des sceances en une fois.

    -  on peut travailler avec les deux types d’evenements si on renonce aux repetitions pour les evenements de type sceances de cinema. Or cette fonction de repetition est vraiment tres pratique pour les administrateurs.

    -  Peut-on envisager un moyen de pouvoir beneficier des repetitions
    en meme temps pour ces deux types d’evenements ?

    Merci

    Julie

    • Salut Julie,

      si j’ai bien compris, tu aimerais dans un même formulaire afficher les deux types?

      Cela ne fonctionne pas pour le moment, tu devrais mettre un formulaire pour chaque type

    • Salut Rainer,

      Je pensais que le choix etait exclusif.
      Par contre, utiliser deux formulaires me convient.

      Merci !

      Julie

    Reply to this message

  • 3
    Pierrot

    Bonjour,

    Je viens d’identifier 2 soucis dans le plugin suite à la dernière mise à jour en 1.26.5. Je n’avais pas fait de mises à jour depuis quelques temps et celle-ci a tout cassé chez moi, je pense que c’est révélé chez moi car mes évènements sont dans un système de grid (isotope) et donc la moindre erreur de div explose tout. Au début j’ai cru que c’était le fait d’être passé en div à la place des li et que donc c’est moi qui avait une erreur mais non ...

    -  dans formulaires/inc-reservation_connection .html, le </div> de la ligne 77 devrait être remonté à la ligne 74 par ex à l’intérieur du test sur le #GET{id_auteur} de la ligne 46 ... si le test est oui, on a 2 ouvertures de div et une seule fermeture ...

    -  dans formulaires/inc-reservation_evenements.html on a un </li> qui traine ligne 46, à remplacer par un </div> .

    Voilà :-) Bon été .
    Pierre

    Reply to this message

  • 2

    Bonjour Rainer,

    Je viens de réaliser une màj de mes plugins et après quelques manip j’obtiens cette erreur :

    Parse error: syntax error, unexpected ’[’ in /users/user1308921/sites/ffessm-codep21.fr/plugins/auto/reservation_evenement/v1.25.4/reservation_evenement_pipelines.php on line 50

    Tu pourrais m’aider ou bien j’ai un autre problème ?
    Merci d’avance.
    Amitiés Jean.

    • Salut Jean,

      Ton site tourne avec une vieille version de php (<5.4)?> https://github.com/abelass/reservation_evenement.

      Bonne journée
      Rainer

    • Merci beaucoup Rainer,
      Effectivement mon site chez Oxyd était resté en PHP Version 5.3.3-7+squeeze29.
      C’est une option d’hébergement chez Oxyd que je n’avais pas correctement renseignée.
      Après être passé en 5.6 pour le moment ( on verra 7.0 plus tard ;-) ), la màj se déroule correctement.

      Encore merci de cette piste.
      Amitiés Jean.

    Reply to this message

  • 6

    Bonsoir,

    J’obtiens cette erreur : Votre saisie contient des erreurs !
    quelque soit la façon de m’inscrire, avec ou sans compte existant.
    Le plugin a été mis à jour à l’instant sur un spip 3.1.4
    http://www.art-logic.info/soiree-multimedia-decouvrez-avec-le-collectif

    Merci de vos retours

    • Julie B.

      Bonjour,
      Il faut peut-etre vider a nouveau le cache?
      Julie

    • Le formulaire ne contient pas de champ pour sélectionner l’événement

      <fieldset>
      <legend> Votre participation </legend>
      <ul class="evenements"> </ul>
      </fieldset>
    • Comment as-tu inclus le formulaire?

    • Bonjour,

      De la sorte: #FORMULAIRE_RESERVATION#ENVid_evenement,#ENVid_article, #ENVretour, #ARRAYid_evenement_source,’’

    • Bonjour,

       #FORMULAIRE_RESERVATION{#ENV{id_evenement},#ENV{id_article}, #ENV{retour}, #ARRAY{id_evenement_source,''}}

    • Est-ce que tu as surchargé des squelettes de ce pluie ? Si oui compare les avec les originaux.

    Reply to this message

  • 7

    Bonjour, j’ai avancé donc avec les 2 plugins reservation_evenement et inscription3 natifs, et Zcore installé
    1- utilisateur inscrit ou non inscrit => le formulaire d’inscription s’ouvre toujours vierge. En effet

    --> plugins/auto/reservation_evenement/v1.24.1/inscription.html {{appelle}} plugins/auto/inscription3/v3.6.7/content/inscription.html {{au lieu de}} plugins/auto/reservation_evenement/v1.24.1/formulaires/reservation.html

    et dans ce cas le visiteur inscrit n’est pas pris en compte.

    donc j’ai remplacé auto/reservation_evenement/v1.24.1/inscription.html

    <BOUCLE_cond(CONDITION){si #PLUGIN{Zcore}}><INCLURE{fond=structure,env,type=inscription,type-page=inscription}/></BOUCLE_cond><INCLURE{fond=page_inscription,env}/><//B_cond>

    par squelettes/inscription.html

    [(#REM)
      Copie du 2017-04-12 20:01:01 par Anne Chopin
      Fichier original plugins/auto/reservation_evenement/v1.24.1/inscription.html
    ]
    <INCLURE{fond=structure,env,type=inscription,type-page=inscriptionresa,env}/>

    avec auto/reservation_evenement/v1.24.1/content/inscriptionresa.html

    <article class="inscription">
    	<header class="cartouche">
    		<h1>
    			<:reservation:inscription:>
    		</h1>
    	</header>
    	<div class="main">
    		<div class="ajax">
    			#FORMULAIRE_RESERVATION{
    				#ENV{id_evenement},
    				#ENV{id_article},
    				#ENV{retour},
    				#ENV{options}}
    		</div>
    	</div>
    </article>

    identique à l’original auto/reservation_evenement/v1.24.1/content/inscription.html afin de retrouver le formulaire d’inscription du plugin.
    ainsi je retrouve le fonctionnement normal pour l’inscription de réservation ,
    -  si l’utilisateur est connecté le formulaire prérempli l’identifiant et le mail et ajoute la saisie pour les champs extra prévus dans la configuration du plugin inscription3,
    -  si l’utilisateur n’est pas connecté, le formulaire permet donc de saisir les champs identifiant, mail ainsi que les champs extra du plugin inscription3.

    2- cependant dans le cas d’un nouvel utilisateur, la réservation d’événement crée bien
    l’entrée de réservation et indique bien le nouveau client, via le formulaire auto/reservation_evenement/v1.24.1/formulaire/reservation.html
    mais cette inscription ne créé pas le client comme nouvel auteur ( à modérer par l’admin puisque je ne propose pas ni infos de login, ni mot de passe) comme l’aurait fait inscription3.

    comment puis-je retrouver le comportement d’inscription3 , cad ajout d’un auteur (à modérer par l’admin) ?

    • bonjour,
      je précise cependant que, en l’état, la fonction “enregistrer sur le site” fonctionne.
      il faut préciser un identifiant de login et le mot de passe (et sa vérification),
      à la fin de la réservation le client se retrouve connecté.

      Ce n’est pas le fonctionnement que j’ai configuré dans inscription3, j’attends, tout au plus après que le client ayant précisé un identifiant de login, mais sans mot de passe, que l’inscription soit transmise à l’admin pour modération, le client recevra par mail un client de validation, et surtout le client de réservation reste non connecté après sa réservation.

      je “bricole” autour de inc-reservation_connection mais sans succès

      merci de conseils

    • Bonjour,
      dans l’état actuel il est normal que réservations événements ne prenne pas en compte toutes les configurations de inscription 3.

      Si le présent plugins se base comme inscription 3 sur le plugin champs extras pour l’ajout de champs extras, je crains de que la plupart des autres configurations de inscription 3 ne trouvent pas applications.

      Le mieux serait probablement de faire un mini plugin qui fasse le lien entre inscription 3 et reservation_evenements en intervenant via l’api de spip - les pipelines (notamment pre_edition [http://programmer.spip.net/pre_edition-756] ou post_edition [http://programmer.spip.net/post_edition-757] pour le changement de statut lors d’un enregistrement d’un auteur - formulaire_charger, formulaire_traiter et formulaire_verifier pour que le formulaire reservation prennne en compte d’éventuels configurations de inscription 3).

      Comme j’ai dis auparavant je ne connais pas bien le fonctionnement de inscription trois, je ne peux donc pas garantir que le pipelines susmentionnés soient utiles/suffisants pour intégrer pleinement les fonctionnalités de inscription 3.

      Je ne peux actuellement pas me lancer pleinement dans ce chantier, mais je veux bien t’épauler si tu veux te lancer dans l’aventure.

      Rainer

    • Julie B.

      Bonjour lebardix

      >1 utilisateur inscrit ou non inscrit => le formulaire d’inscription s’ouvre toujours vierge.

      Oui, ceci me semble normal, mais je comprends peut-etre mal ton pb.

      Le formulaire d’inscription n’est-il pas seulement pour l’ inscription ?
      Une fois inscrit, il n’est plus utile. Il faut utiliser #FORMULAIRE_EDITER_AUTEUR
      pour modifier eventuellement les donnees.
      Le message de DD ci-dessous en donne un bon exemple

      Mais attention, la derniere version d’inscription 3 a un bug (me semble t-il).
      J’ai ecrit un message en ce sens sur le forum du plugin, mais sans retour.

      J’ai simplement remplace la fonction pipeline inscription3_editer_contenu_objet($flux)
      par celle de la version 3.5.12 du plugin.
      (sinon preg_replace plante mon formulaire edit auteur )

      Bonne journee

      Julie

    • bonsoir Julie,
      Le fait de valider le plugin inscriptions3, la réservation d’événements au lieu d’utiliser son formulaire appelle le formulaire d’inscription.

      Alors que le formulaire natif de réservation événements tient compte de l’état connecter ou non, si le plugin inscription3 est installé, le comportement devient anormal.

      J’ai besoin que l’inscription événement se comporte comme prévu, cad créé (ou non suivant la config) un auteur (au statut visiteur) en présence du plugin inscription3,
      l’avantage d’inscription3 étant de gérer des champs extras, de pouvoir modérer la création d’un auteur, et de contrôler le contenu de s champs extras.

      Les visiteurs de mon site, en s’inscrivant à un événement (un stage pour être plus précis), s’enregistre comme auteur(visiteur à confirmer) et obtiendraient après modération de l’admin un compte auquel ils pourront se connecter ultérieurement.

      A charge de l’admin de vérifier si un visiteur s’est enregistré sous plusieurs noms et de corriger les réservations d’événements.

      J’ai donc un peu avancé en modifiant le traitement du formulaire RESERVATION (plugins/auto/reservation_evenement/v1.24.1/formulaires/reservation.php) en supprimant la saisie de mot de passe, email et autre (suivant patch ci-dessous).

      --- reservation (copie).php	2017-04-14 22:45:14.000000000 +0200
      +++ reservation.php	2017-04-17 22:44:29.000000000 +0200
      @@ -213,9 +213,9 @@
       		include_spip('inc/auth');
       		$obligatoires = array(
       			'nom',
      -			'email',
      +			'email'/*,
       			'new_pass',
      -			'new_login'
      +			'new_login'*/
       		);
       		foreach ($obligatoires as $champ) {
       			if (!_request($champ))
      @@ -227,25 +227,26 @@
       			$erreurs['message_erreur'] .= $err;
       		}
       
      -		// Vérifier les mp
      -		if ($p = _request('new_pass')) {
      -			if ($p != _request('new_pass2')) {
      -				$erreurs['new_pass'] = _T('info_passes_identiques');
      -				$erreurs['message_erreur'] .= _T('info_passes_identiques');
      -			}
      -			elseif ($err = auth_verifier_pass($auth_methode, _request('new_login'), $p, $id_auteur)) {
      -				$erreurs['new_pass'] = $err;
      -			}
      -		}
      -	}
      -	elseif (!$id_auteur) {
      -		include_spip('inc/config');
      -		$email_reutilisable = lire_config('reservation_evenement/email_reutilisable', '');
      -		$obligatoires = array(
      -			'nom',
      -			'email'
      -		);
      +//		// Vérifier les mp
      +//		if ($p = _request('new_pass')) {
      +//			if ($p != _request('new_pass2')) {
      +//				$erreurs['new_pass'] = _T('info_passes_identiques');
      +//				$erreurs['message_erreur'] .= _T('info_passes_identiques');
      +//			}
      +//			elseif ($err = auth_verifier_pass($auth_methode, _request('new_login'), $p, $id_auteur)) {
      +//				$erreurs['new_pass'] = $err;
      +//			}
      +//		}
       	}
      +	
      +//	elseif (!$id_auteur) {
      +//		include_spip('inc/config');
      +//		$email_reutilisable = lire_config('reservation_evenement/email_reutilisable', '');
      +//		$obligatoires = array(
      +//			'nom',
      +//			'email'
      +//		);
      +//	}
       
       	if (test_plugin_actif('declinaisons'))
       		array_push($obligatoires, 'id_objet_prix');
      @@ -257,17 +258,17 @@
       			$erreurs[$champ] = _T("info_obligatoire");
       	}
       
      -	if ($email) {
      -		include_spip('inc/filtres');
      -		// un redacteur qui modifie son email n'a pas le droit de le vider si il y en avait un
      -		if (!email_valide($email)) {
      -			$erreurs['email'] = $id_auteur ? _T('form_email_non_valide') : _T('form_prop_indiquer_email');
      -		}
      -		elseif (!$id_auteur and !$email_reutilisable) {
      -			if ($email_utilise = sql_getfetsel('email', 'spip_auteurs', 'email=' . sql_quote($email)))
      -				$erreurs['email'] = _T('reservation:erreur_email_utilise');
      -		}
      -	}
      +//	if ($email) {
      +//		include_spip('inc/filtres');
      +//		// un redacteur qui modifie son email n'a pas le droit de le vider si il y en avait un
      +//		if (!email_valide($email)) {
      +//			$erreurs['email'] = $id_auteur ? _T('form_email_non_valide') : _T('form_prop_indiquer_email');
      +//		}
      +//		elseif (!$id_auteur and !$email_reutilisable) {
      +//			if ($email_utilise = sql_getfetsel('email', 'spip_auteurs', 'email=' . sql_quote($email)))
      +//				$erreurs['email'] = _T('reservation:erreur_email_utilise');
      +//		}
      +//	}
       
       	// les champs extras auteur
       	include_spip('cextras_pipelines');

      Ainsi les champs extras sont gérés (hormis encore quelques problemes) et un compte auteur est créé, mais le visiteur se retrouve automatiquement connecter ( et son compte validé ... sans mot de passe ) alors que je souhaiterais qu’il soit seulement “à confirmer”

      Marc

    • bonsoir Rainer,
      Merci pour ta proposition, sans avoir suivi tes conseils, j’ai continué une voie pour parvenir à mon fonctionnement attendu.
      Comme indiqué à Julie, j’ai modifié la fonction de formulaires_reservation_verifier_dist de façon à enregistrer l’auteur (sans mot de passe puisque je souhaite qu’il soit modéré), de plus j’ai modifié dans inc/reservation_enregistrer.php pour lui attribuer le statut aconfirmer et ne pas exécuter la connexion.

      --- reservation_enregistrer (copie).php	2017-04-17 23:34:28.000000000 +0200
      +++ reservation_enregistrer.php	2017-04-17 23:35:58.000000000 +0200
      @@ -34,11 +34,11 @@
       			$res = formulaires_editer_objet_traiter('auteur', 'new', '', '', $retour, $config_fonc, $row, $hidden);
       			$id_auteur = $res['id_auteur'];
       			sql_updateq('spip_auteurs', array(
      -				'statut' => '6forum'
      +				'statut' => '8aconfirmer'
       			), 'id_auteur=' . $id_auteur);
       			$auteur = sql_fetsel('*', 'spip_auteurs', 'id_auteur=' . $id_auteur);
      -			auth_loger($auteur);
      -			set_request('id_auteur', $id_auteur);
      +//			auth_loger($auteur);
      +//			set_request('id_auteur', $id_auteur);
       		}
       	}
       	elseif (intval($id_auteur) and _request('modifier_donnees_auteur')) {

      et donc j’obtiens un fonctionnement presque correct pour mes événements, il me reste à gérer les champs d’extras non obligatoires ou spéciaux...

      donc à suivre ...

    • Bonjour Rainer
      Pour terminer ce fil, j’ai réglé les problèmes de date du plug inscription3.
      tout simplement j’ai retiré de la config i3 le champ date de naissance (et date d’enregistrement), ensuite j’ai installé les plugs “Champs Extras” et “Champs Extras Interface” [3.5.2] avec lequel j’ai configuré un champ date pour la table AUTEURS, ainsi que le plug “Date d’inscription” [0.2.1].
      Ainsi la saisie et vérification des champs extras, depuis le module “réservation événements”, fonctionnent normalement.
      Pour terminer, je complète les mails de notification à l’aide de contenu d’articles spéciaux. dans contenu_reservation_mail.html

      ....
      </B_contact>
       
      <BOUCLE_test_statut(CONDITION) {si #ENV{statut}|!={cloture}|oui}>
      	<BOUCLE_politesse(ARTICLES){tout_voir}{type_mot='notifications'}{titre_mot=#GET{statut}}>
      	[(#ENV{qui}|=={client}|oui)
      	<p>Madame, Monsieur</p>
      	<p>votre référence client : #GET{nom_client}</p>
      	<p>#TEXTE</p>]
      	</BOUCLE_politesse>
       
      [(#ENV{qui}|=={client}|non)
      ....

      Je peux te faire parvenir mes squelettes modifiés à l’occasion.
      Merci

    • Salut lebardix,

      tant mieux que tu as trouvé une solution. Oui, envoie moi tes squelettes

      Bonne journée
      Rainer

    Reply to this message

  • 5

    bonjour,
    j’utilise le plugin Inscription3 pour la gestion des visiteurs

    De plus, j’ai installé le plugin réservation d’événements

    Si inscription3 est actif
    Dans le cas de la réservation à un événement soit
    ============ le visiteur est inconnu et non inscrit ===============
    * le formulaire d’inscription s’ouvre VIERGE ....
    l’utilisateur rempli les champs correctement et valide
    le formulaire signale
    “Votre compte a été correctement créé, Il est en attente de
    validation d’un administrateur”
    +++++ TOUT VA PRESQUE BIEN +++++
    il reçoit un message de validation et un mot de passe (alors qu’il
    en avait peut être donné un... mais passons)
    donc depuis le message il se connecte et paf il est affiché qu’il ne
    peut pas accèder à je ne sais quoi sur le site, mais cependant il
    est connecté..... la réservation existe

    ============= le visiteur est inscrit et connecté ==================
    * le formulaire d’inscription s’ouvre VIERGE ....aucun champ de son
    identification (login ou autre) ne sont mis à jour et donc il peut
    vouloir :

    ** soit remplir le formulaire avec son identifiant (avec les bonnes
    informations mot de passe et tout et tout) à la validation il lui
    est opposé ce message au dessus du champ pseudo “Cette valeur est
    déjà utilisé par un autre utilisateur”
    +++++ ET DONC IMPOSSIBLE DE S’INSCRIRE ++++++

    ** soit remplir le formulaire avec un identifiant qui n’est pas le
    sien (adresse, nom, etc qui sont définis dans le formulaire) et alors
    à la validation le message d’erreur “Impossible de prendre en compte
    votre message. Merci de le soumettre à nouveau !”
    +++++ ET DONC IMPOSSIBLE DE S’INSCRIRE ++++++


    Si le plugin inscription3 est désactivé, la réservation d’événements
    fonctionne
    la réservation se fait au nom de l’utilisateur connecté,
    le message de validation est bien envoyé, sinon l’inscription se fait
    au nom de l’identifiant et mail indiqués dans le formulaire de base.


    y a-t-il une solution pour faire fonctionner la réservation avec
    inscription3, ou serait-il possible d’utiliser un formulaire basé sur
    formidable ?

    Merci

    • Bonjour,

      malheureusement je ne l’ai jamais testé avec inscription3. Je ne l’ai plus utilisé depuis longtemps et je méconnais son fonctionnement actuel. Je ne sais pas quand j’aurai le temps d’analyser ça.

      Rainer

    • Bonjour,

      J’utilise inscription 3 et ce plugin sur un site en SPIP 3 et cela fonctionne.
      Je teste d’abord si l’utilisateur est inscrit avant le remplissage du formulaire d’inscription.
      Mon code (sûrement pas parfait mais ça fonctionne) :

      <div class="fiche">
      [(#SESSION{id_auteur}|non) [(#LOGIN_PUBLIC)]
      <div class="spip_accordeon">
      <h3>Vous inscrire sur ce site</h3>
      <div class="ajax">#FORMULAIRE_INSCRIPTION</div>
      </div> ] [(#SESSION{id_auteur}|oui) [Bonjour <span class="#EDIT{inscrit_prenom}">(#SESSION{inscrit_prenom})</span>] [
      <span class="#EDIT{inscrit_nom}">&nbsp;(#SESSION{inscrit_nom})</span>] [ ((#SESSION{login}))] [
      <div class="#EDIT{inscrit_club}">Club : (#SESSION{inscrit_club})</div>] [
      <div>Email : (#SESSION{email})</div>] [
      <div class="#EDIT{inscrit_tel}">Tel : (#SESSION{inscrit_tel})</div>] [(#SESSION{id_auteur}|=={#ID_AUTEUR}|oui)#FORMULAIRE_EDITER_AUTEUR{#ENV{id_auteur}}]
      <a href="#URL_LOGOUT" rel="nofollow" class="hyperlien">
      <:icone_deconnecter:>
      </a>
      ]
      </div>

      Et lorsque le visiteur est identifié alors il peut remplir sa réservation :

      <BOUCLE_auteur(AUTEURS){id_auteur=#SESSION{id_auteur}}{tout}>
      [(#PLACES|>{0}|oui)
      <div class="evenbox">
      <div class="ajax">
      #FORMULAIRE_RESERVATION{#LISTE{#ID_EVENEMENT}} </div>
      </div>]
      </BOUCLE_auteur>

      Tu peux le voir en action ici : https://huit.re/resa

      dd

    • Bjr, merci pour la piste, j’utilise zcore,
      ton site correspond à mon objectif mais déjà :
      Je n’ai pas accès à la page auteur /spip.php?page=auteur&var_mode=inclure j’ai les erreurs suivantes qui apparaissent

      1 - plugins/auto/zcore/v2.6.1/structure.html aucun squelette head/auteur n’est disponible
      2 - plugins/auto/zcore/v2.6.1/structure.html aucun squelette head_js/auteur n’est disponible

      pour le test j’ai totalement vidé mon dossier squelettes, où sont ces fichiers sur tout site ?
      Merci

    • rebonjour,

      Si le fichier par défaut de zcore plugins/auto/zcore/v2.6.0/head/dist.html n’est pas présent tu as un problème avec tes fichiers ou bien alors il n’y a pas d’auteur qui a au moins 1 article publié sur ton site.

    • re
      j’ai bien un fichier plugins/auto/zcore/v2.6.1/head/dist.html, et des articles par 2 auteurs,
      lorsque je demande la page monsite/spip.php?page=auteur
      il m’indique manquer les fichiers
      head/auteur et head_js/auteur
      Peux-tu me lister tes plugins ?

    Reply to this message

  • Pierrot

    Bonjour,

    Un bug potentiel.

    Je regardai mes logs spip sur un site avec les plugins agenda et réservation et je vois une erreur très fréquente:

    2017-03-16 17:20:45 46.255.162.88 (pid 3169) :Pub:ERREUR: Erreur 1054 de mysql: Unknown column 'spip_reservations_details.statut' in 'where clause'
    in /home/XXXXXXXX/public_html/plugins/auto/reservation_evenement/v1.23.13/genie/reservation_evenement_cloture.php L28 [sql_select(),genie_reservation_evenement_cloture_dist(),queue_start_job(),queue_schedule(),inc_genie_dist(),cron(),action_cron(),traiter_appels_actions(),include()]
    SELECT id_reservations_detail,`YYYYYYYY`.sada_reservations_details.id_evenement,date_fin
    FROM `YYYYYYYY`.sada_reservations_details,`YYYYYYYY`.sada_evenements
    WHERE spip_reservations_details.statut="accepte" AND 
    			spip_reservations_details.id_evenement=spip_evenements.id_evenement AND
    			spip_evenements.date_fin &lt;="2017-03-16 17:20:45" AND
    			spip_evenements.action_cloture =1
    2017-03-16 17:20:45 46.255.162.88 (pid 3169) :Pub:ERREUR: Erreur mysql 1054

    J’ai occulté les noms de dossiers et de base.

    Ce qu’on voit c’est que le SELECT récupère la bonne base et les bonnes tables avec le bon préfixe “sada_” mais qu’ensuite la clause WHERE oublie ce préfixe pour utiliser “spip_” ... donc avec pour résultat un Unknown column 'spip_reservations_details.statut' in 'where clause'

    Bug, pas bug ?

    Pierre.

    Reply to this message

  • 4
    Julie B.

    Bonjour Rainer,

    Quelques petits problemes sur les prix:

    Evenements avec prix (prix uniquement mis sur l’article, taxe definie par defaut dans prix_objets).
    Un exemple:
    prix HT: 18 avec 10% de taxe
    La page inscription affiche bien un prix de 19,8

    Mais,apres paiement, la transaction affiche 18HT 18TTC 18,1 REGLE
    et donc ici, seul le prix HT est correct.

    Merci d’y jeter un coup d’oeil.

    Julie

    • Salut Julie,

      Merci pour le signalement, c’est corrigé sur github et bientôt sur la zone

      Rainer

    • Julie B.

      Merci Rainer!
      Julie

    • Julie B.

      Bonjour Rainer,

      Il y a une coquille je pense dans le donnees_reservations_details.php ligne 137 : 1 virgule en trop ?
      Correction faite, mes premiers tests montrent bien un prix ht, ttc et regle desormais coherent.

      Bonne journee

      Julie

    • Salut Julie,

      c’est corrigé

      Rainer

    Reply to this message

Add a comment

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite / PostgreSQL
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparait.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

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