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.

Recherche de repreneur

Je ne suis plus suffisamment impliqué dans spip pour assurer un maintien correcte de ce plugins, Donc si quelqu’un veuille reprendre la main, c’est avec plaisir.

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

87 discussions

  • 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.

    Répondre à ce 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

    Répondre à ce 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 ?

    Répondre à ce 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,<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+WVlZWVlZWVk8L2NvZGU+"></span>.sada_reservations_details.id_evenement,date_fin
    FROM <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+WVlZWVlZWVk8L2NvZGU+"></span>.sada_reservations_details,<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+WVlZWVlZWVk8L2NvZGU+"></span>.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.

    Répondre à ce 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

    Répondre à ce message

  • 3
    Pierrot

    Bonjour,

    J’ai envoyé un msg hier mais comme il n’est toujours pas apparu, je recommence.

    Je pense avoir détecté un souci. Mes logs sont pleins de message du type :

    2017-03-17 14:08:03 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,<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+WVlZWVlZWVk8L2NvZGU+"></span>.sada_reservations_details.id_evenement,date_fin
    FROM <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+WVlZWVlZWVk8L2NvZGU+"></span>.sada_reservations_details,<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+cG91c2FzcGlwPC9jb2RlPg=="></span>.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-17 14:08:03" AND
    			spip_evenements.action_cloture =1
    2017-03-17 14:08:03 46.255.162.88 (pid 3169) :Pub:ERREUR: Erreur mysql 1054

    La requete commence bien avec un SELECT et un FROM qui tiennent compte du fait que mon installation spip comporte un prefixe « sada_ » pour les tables ... Par contre la clause WHERE revient à un préfixe « spip_ » ce qui génère toutes les erreurs dans le log. Bug ?

    Pierre.

    • Pardon, ce message m’avait échappé. Je regarderai ça demain.

    • Salut Pierre,

      Merci pour le signalement. Cette requête ne posait pas de problème sous spip 3 mais spip 3.1 s’embrouille. Ça devrait être bon maintenant.

      Rainer

    • Pierrot

      Bonjour,
      Je viens de tester, ça a l’air bon, plus d’erreurs dans le log. Merci !!
      Pierre

    Répondre à ce message

  • 3

    Bonjour Rainer, enfin, re-bonjour,

    Mon plugin de groupement de réservation est en service sur mon site (www.ffessm-agn2017.fr).
    J’ai encore quelques correctifs et améliorations à apporter mais çà fonctionne.
    Je reviens vers toi pour un autre point : maintenant que les réservations sont lancées, il va falloir les stopper un jour.
    L’option de clôture automatique est très bien, mais elle agit seulement à date d’événement.
    Pour mon cas, je dois stopper 3 semaines avant la date d’événement pour contacter les fournisseurs.
    Comment pourrai-je automatiser cette règle, qui est propre à chaque événement ?

    Merci de tes pistes de recherche.
    Amitiés jean.

    • Salut Jean,

      à mon avis tu devrais créer un champ extras date_fin_inscription dans la table spip_evenements puis dans formulaires/inc-reservation_evenements.html à la ligne 4 mettre

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

      pour empêcher l’inscription , puis évidemment adapter les autres squelettes en questions.

      Rainer

    • Bonjour Rainer,

      Merci beaucoup pour cette piste.
      Je vais regarder pour l’intégrer.
      Amitiés Jean.

    • Bonjour Rainer,

      J’ai appliqué ton idée (c’est vrai tardivement) et c’est Ok.
      Pour plus de clarté, j’ai ajouté dans la partie alternative de la boucle un message pour bien signaler qu’aucune inscription n’est ouverte.

      Bon, reste le formulaire de connexion mais pour l’oblitérer, il faut aller beaucoup plus loin (peut-être initialiser une variable d’environnement au niveau supérieur, la positionner si aucune inscription et verrouiller la connexion avec).

      Encore merci pour tes travaux et tes conseils.
      Amicalement Jean.

    Répondre à ce message

  • 6
    Pierrot

    Bonjour,

    Je pense avoir détecté un petit bug.

    Dans inc-reservation_evenements.html ligne 33 on a :

    <strong>([(#DATE_DEBUT|affdate_debut_fin{#GET{date_fin},#HORAIRE})])</strong>

    Cette ligne donne les dates-heures d’un événement que l’on souhaite réserver. Le souci est que dans le cas d’événements répétitifs, sur le premier événement (et uniquement sur le premier) cela donne l’amplitude de la première date à la dernière date (toutes les répétitions). Sur les événements suivants, curieusement c’est bon, ça ne donne la date-heure que de l’événement à réserver.

    J’ai remplacé par :

    <strong>([(#DATE_DEBUT|Agenda_affdate_debut_fin{#DATE_FIN,#HORAIRE})])</strong>

    Ceci en m’inspirant d’un autre affichage que je faisais en dehors du formulaire de résa et c’est bon ! Après plusieurs test je constate que c’est #GET{date_fin} qui fait souci, si je remplace en haut par #DATE_FIN, c’est bon aussi.

    Voilà !

    Pierre.

    • Salut Pierre,

      Ce n’est pas vraiment un bug, mais peut être pas assez clair en cas d’événements répétés, car on ne voit pas les détails des répétitions, seulement le début et la fin de l’événement.

      Il faudrait peut être ajouter le nombre de répétitions et dans faire apparaitre en mouseover ou click (modal) le détails des répétitions.

      Qu’est-ce que tu en penses ?

      Rainer

    • Pierrot

      Bonjour,

      En fait j’ai hésité sur le mot bug mais finalement je pense que c’est un bug ou alors effectivement une fonctionnalité que je ne comprends pas du tout (et c’est possible).

      Ce qui me fait penser que c’est un bug :

      -  la plupart du temps les événements répétés sont juste (exemple) la même formation que l’on dispense 5 fois, donc clairement quelqu’un qui veut s’inscrire souhaite aller une fois à une des 5 séances. Si dans le formulaire on lui dit qu’il s’inscrit du 8 mars 8h00 au 25 avril 16h00 il ne comprend pas, donc il faut que le formulaire affiche clairement la date pour laquelle il s’inscrit, à savoir, le 8, le 15, le 22 ou ... de 8h00 à 16h00 le jour choisi.

      -  ensuite dans mon cas j’avais disons 3 ou 4 événements répétition d’un premier, le premier chronologiquement affichait du 8 mars au 25 avril de 8h00 à 16h00 (donc je pense pas compréhensible pour l’internaute qui voulait venir juste le 8 mars de 8h00 à 16h00) et ensuite tous les formulaires de réservation des événements suivants affichaient ensuite bien la date du jour de l’événement seulement (et donc pas du tout la plage de date du premier événement à la dernière répétition comme dans le cas du tout premier) ce qui était bien pour moi le bon comportement.

      On a eu du mal à trouver car souvent les événements racines (ceux qui ont été répétés) étaient souvent déjà passés et ne s’affichaient plus, il a fallu que l’on crée un nouvel événement racine dans le futur avec X répétitions pour s’apercevoir des différences d’affichage entre l’événement racine et les répétés.

      C’est dur d’expliquer ce genre de souci, si tu le souhaites je peux remettre le code originel, te passer en MP l’url pour que tu vois, une fois que tu as vu je te remets ma modif ...

    • Ce que je ne comprends pas

      et ensuite tous les formulaires de réservation des événements suivants affichaient ensuite bien la date du jour de l’événement seulement (et donc pas du tout la plage de date du premier événement à la dernière répétition comme dans le cas du tout premier)

      il s’agit également d’événement répétés ?

      Pour l’affichage des événement répétés, tu as raison, c’est peu claire. Qu’est-ce que tu penses de ma suggestion.

      Il faudrait peut être ajouter le nombre de répétitions et faire apparaitre en mouseover ou click (modal) le détails des répétitions.

      Ou veux-tu proposer l’inscription pour chaque événement répété ?

      Alors il faudra mettre faudrait ou passer la variable

      options['id_evenement_source'] = ''

      dans le contexte our remplacer la 4e variable du formulaire par

      #ARRAY{id_evenement_source,''} 

      ce qui donnerait

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

      Oui bien sûr il s’agissait bien des répétitions du premier et oui bien sur j’affiche les événements répétés un par un avec chacun un formulaire de réservation propre à chaque répétition.

      Donc non la boite modale brouillerait les cartes, je ne veux pas qu’un événement répété affiche toutes ses occurences, j’ai autant de « boites » que j’ai d’événements ce qui permet d’avoir tous les événements en ordre chrono, quelle que soit le cycle de répétitions auquel il pourrait appartenir (ou pas).

      Pierre.

    • Pierrot

      En fait je constate que j’ai réussi à corriger le comportement de l’affichage mais j’ai encore le soucis dans les emails envoyés au gestionnaire ou là aussi on informe le gestionnaire qu’untel s’est inscrit à un évènement et on lui donne toute l’amplitude des répétitions ... donc on ne sait pas à quel date exactement (parmi les répétitions) la personne s’est inscrite.

      Je pense qu’il y a 2 conceptions sur ces répétitions :

      -  le plugin considère qu’un évènement avec des répétitions est un seul évènement et que l’on s’inscrit à l’ensemble des séances
      -  pour moi ces répétitions sont par exemple la répétition d’un même cours 8 fois dans l’année et je veux que l’on s’inscrive à un seul des 8 cours pas au 8 ... donc dans ce cadre l’affichage et le mail sont incompréhensibles car ils signalent l’amplitude complète des répétitions.

      Je vois qu’en fait je devrais faire la correction dans l’enregistrement des détails car le mail ne fait qu’envoyer les détails, je ne vois pas comment corriger dans la notification ... Je devrais regarder ou pour arriver à faire une correction équivalente au moment ou on crée le détail ?

    • Tu peux utiliser la pipeline reservation_evenement_donnees_details qui permet de modifier les détails de l’enregistrement (action/editer_reservations_detail.php ligne 70) générés par la fonction

      $donnees_reservations_details = charger_fonction('donnees_reservations_details', 'inc');

      elle même surchargeable dans ton fichier mes_fonctions.php

    Répondre à ce message

  • 25

    Bonjour,
    Après avoir activé le plugin Réservation d’évènements et configuré celui-ci, lorsque je clique sur un événement de ma page agenda dans l’espace public, j’ai un message d’erreur m’indiquant : Erreur 404, l’url n’existe pas. Voici le lien qui pourtant fonctionne très bien si le plugin réservation est désactivé : http://monsite/spip.php?page=evenement&id_article=40

    Je suis sous SPIP 3.1.4, Sarka-SPIP 3.4.6, PHP 5.4.45.

    Quel peut être le problème ? Si quelqu’un peut m’aider.
    Merci et cordialement,
    Yann

    • Bonjour,

      Le plugin propose des squelette sevenement à la source et dans le dossier content.

      Regarde le quel des deux cause problème et surcharge le/les dans ton squelettes avec ton original

      Rainer

    • Bonjour Rainer,
      Merci beaucoup pour réactivité. En effet, j’ai surchargé les squelettes et cela fonctionne. Super !
      J’ai effectué 2 réservations en test.
      Les réservations fonctionnent et sont visibles dans l’espace privé Activité / Réservations.

      Par contre, lorsque je vais dans l’événement dans l’espace privé mes détails de réservation s’affichent bien en bas (cf. xx détails de réservation)

      mais j’ai une ligne :
      Inscription en ligne : 50 places (Réponses : 0 oui | 0 non | 0 ?)
      Liste des inscriptions

      et quand je clique sur « Liste des inscriptions », c’est vide et sur mon site en ligne en dessous du calendrier et de l’événement j’ai : | 0/50

      Le formulaire lui, affiche bien le nombre de places restantes.

      Il doit s’agir d’un détail...mais où ?

      Yann

    • Ce dont tu parles est une fonctionnalité native du plugin agenda et pas lié à ce plugin.

      Comme plusieurs utilisateurs se sont déjà étonné de ça je vais peut-être le cacher dans le futur en laissant la possibilité de le faire réapparaître via la config.

      Le résumé des réservations se trouvent toujours dans la colonne gauche au niveau de l’événement, article, rubrique

    • Rainer,
      Si je comprends bien, on ne peut donc pas récupérer les infos bien que cela fasse partie du plugin Agenda.
      Dans ce cas oui, il serait peut être intéressant de le masquer avec la possibilité éventuelle de l’utiliser via la config.
      Merci.
      Yann

    • Pas tout à fait.

      Le plugin agenda dispose d’un propre formulaire d’inscription avec une table propre pour l’enregistrement. Le réservations faits via ce formulaire seraient disponibles à cet endroit.

      Réservation utilise d’autres tables et un autre formulaire et ses résultats son visible dans la colonne gauche.

      Le seul lien entre les deux systèmes est le champ « inscription » dans le formulaire d’édition de l’événement.

    • Ah d’accord. Compris ! :-)
      Pour faire propre sur le site en ligne, est-il possible dans ce cas de masquer l’info | 0/50 présente en dessous du calendrier ?

    • Pour le moment tu peux le faire en css.

      Je vais le prévoir dans une future version du plugin

    • Merci Rainer.
      Je n’ai pas trop été encore dans les css :-) peur de mettre le cirque...mais je vais regarder.
      Yann

    • Rainer,

      Je ne m’y connais pas trop en CSS et j’ai peur de faire des bêtises...

    • Je vais voir si j’ai un moment ce week-end pour le faire

    • Merci Rainer ! :-)

    • je viens de modifier le plugin dans ce sens. Par défaut c’est caché, possibilité de le rendre visible via config.

    • Rainer,
      Merci infiniment. Magnifique. Bon weekend.
      Yann

    • Rainer,
      Quand je veux modifier une réservation dans l’espace privé, par exemple pour indiquer la date de paiement, j’obtiens un message qui me dit qu’ il y a une erreur dans ma saisie.
      Pourtant j’indique juste la date sans rien modifier d’autre.
      Yann

    • peux-tu m’envoyer un screenshot ?

    • Bonjour Rainer,

      Voici le screenshot.

    • Je ne reproduis pas.

      Version spip, version reservations_evenements ?

      Peux-tu faire un essais avec seul les plugins nécessaire pour reservations_evenement installés ?

    • Même résultat en ne conservant que les plugins nécessaires à la réservation.
      SPIP 3.1.4, reservations_evenement 1.23.12
      Yann

    • pourrais-tu mettre la balise #ENV dans formulaires/editer_reservation.html, ressayer de soumettre le formulaire et me poster le résultat

    • Voici le résultat.

    • mais tu n’as pas d’erreur cette fois-ci, non ? Tu as soumis le formulaire ? Peux tu également mettre #ENV{erreurs}  ?

    • Si j’ai une erreur. Voici ce que j’obtiens après avoir rajouté #ENVerreurs

    • je vois.

      Tu as du désactivé « Permettre de réutiliser une adresse email ».

      Et une adresse email présente dans le champ « email » (caché) qui est déjà utilisé par un auteur.

      Enlève la sélection sous « client », ce qui fait réapparaître le champ email -> enlève l’adresse email et tout devrait entrer en ordre.

      Cependant cela ne devrait pas arriver et je vais corriger le plugin

    • Rainer,
      Super. Tout fonctionne. Merci encore pour ton aide.
      Bonne soirée.
      Yann

    • Tant mieux, le plugin est d’ailleurs actualisé

    Répondre à ce message

  • 23

    Bonjour Rainer,

    J’ai essaye avec spip 3.1 l’utilisation de reservation_bank, et ai fait des essais en echec avec Paypal.

    Est-ce que reservation_bank est totalement incompatible avec spip 3.1 ?

    Merci.

    Julie

    • Je ne l’ai pas testé en 3.1, mais ça devrait l’être.

      Que sont tes erreurs, tu as des logs ?

    • Rebonjour Rainer,

      Je n’ai pas d’erreur dans les logs mais plus des problemes d’url de retour de la banque.
      Les reservations se font, les boutons permettent de commencer le paiement mais on revient systematiquement sur la page d’accueil et pas sur des squelettes de retour comme bank_retour_ok ou bank_retour_echec . Mes essais de rentrer url_retour_ok et url_retour_echec dans inclure/paiement_reservation.html n’ont pas eu d’effet probant.

      -  Dans le cas paypal simple : le paiement se fait mais la transaction dans spip est anonyme (fait en etant connectee) et non payee.
      J’ai configure le compte sandbox Paypal avec une adresse retour a la page inscription mais ce n’est pas pris en compte.

      -  Dans le cas paypal express : comme il faut une validation et que l’on ne revient pas sur la page inscription pour confirmer le paiement , le paiement n’est pas fait et la transaction est logiquement non payee, mais elle reste aussi anonyme (fait en etant connectee)

      Merci

      Juile

    • Il me semble que les problèmes sont plutôt au niveau de bank, car reservation_bank n’intervient pas sur cela.

      Dans la config de bank/paypal, qu’est-ce que tu as comme comme url de renvoi ? Il faudrait qc comme « https://domaine.ext/bank.api/paypal-57B8/autoresponse/ »

      Est-ce que tu utilises spipr ?

    • Bonjour Rainer,

      Oui, en effet, bien vu !, l’adresse de renvoi restait a http://domaine.ext. Je pense que Paypal a du invalider
      le compte sandbox.
      J’ai donc modifie pour un compte sandbox deja actif sur un autre site et
      l’adresse de renvoi est desormais correcte et le paiement est fait et les statuts et attributions sont
      mises a jour pour les transactions et les reservations.

      Tout est ok pour Paypal simple.


      Un probleme subsiste avec Paypal Express, qui requiert une validation de paiement sur le site vendeur.
      Le retour a lieu sur la page inscription, mais cette page reste blanche et ne propose pas de bouton de validation de commande.

      Pour valider Paypal dans ce mode Express, j’ai installe le plugin tutocommerce sur le meme site, et dans ce cas au retour
      il y a affichage des coordonnees de l’acheteur et aussi du bouton qui termine l’achat.

      L’url de retour semble etre basee sur #SELF lors du premier click sur le bouton Paypal

      voici la comparaison des urls reservation/tuto lors de ce retour :

      tutocommerce : apres retour de Paypal Express :
      http://domain.ext/spip.php?page=demo/tutocommerce&etape=paiement&confirm=oui&checkout=http://domain.ext/spip.php?action=paypalexpress_checkoutpayment&arg=W6GH6U3AKQ5FC-paypalexpress-0BB6&hash=f90b7dca51dc91299c390f34ab30f5c46cc918e1
      Vous allez payer avec :

      Paiement par compte Paypal :
      test buyer,julie_xxx_@xxxx.com
      Validez pour effectuer maintenant le paiement avec ce compte

      http://domain.ext/spip.php?page=demo/tutocommerce&etape=retour&paiement=succes&type=acte&id_transaction=32&transaction_hash=3811278238

      Commande n° 19 / Transaction n° 32
      Votre règlement a bien été pris en compte, et nous vous en remercions.
      Nous avons bien enregistré votre commande 1488005415, et nous la traitons dans les meilleurs délais.


      reservation : tutocommerce : apres retour de Paypal Express :

      http://domain.ext/?page=inscription&id_auteur=1&id_evenement[]=3&confirm=oui&checkout=http://domain.ext/spip.php?action=paypalexpress_checkoutpayment&arg=W6GH6U3AKQ5FC-paypalexpress-0BB6&hash=f90b7dca51dc91299c390f34ab30f5c46cc918e1

      Inscription (titre sur page blanche)

      -----
      Meme en changeant id_evenement[]=3 en id_evenement=3 dans l’url ca ne donne rien de plus


      Y a t’il donc un autre parametre de configuration que j’ignore ?
      — -
      Ceci se passe sous Spip 3.1 avec Spipr

      Bon weekend,

      Julie

    • Apparemment reservation_bank ne peut pas encore fonctionner avec express. Je vais regarder ça.

    • Salut Julie,
      je viens de faire une petite modif (grâce à tes testes, simple à trouver). Mais je n’arrive pas à utiliser mon compte sandbox. peux tu refaire un teste ?

    • Ok Rainer,

      C’est un protocole un peu different.
      Merci pour ta reactivite.

      Julie

    • Salut Rainer,

      J’ai desinstalle reservation bank et installe la version nouvelle.
      J’ai ensuite, apres vidage du cache, refait deux fois le meme test que precedemment, mais le resultat n’a pas change
      http: //domain.ext/ ?page=inscription&id_auteur=1&id_evenement[]=3&confirm=oui&checkout=http%3A%2F%2Fdomain.ext%2Fspip.php%3Faction%3Dpaypalexpress_checkoutpayment%26amp%3Barg%3D6K9J4QFA56JHU-paypalexpress-0BB6%26amp%3Bhash%3D1f14c3188b35c6c10656967a8698856c009ebd66

      Inscription (titre sur page blanche)

      Julie

    • Salut Julie,

      il faut que je me prends le temps pour analyser ça plus en profondeur. J’ai fait une petite modif dans le code qui pourrait résoudre le problème, sinon il faudrait que tu te patiente un peu.

      Rainer

    • Bonjour Rainer,

      Pas de probleme. Je comprends bien.

      J’ai fait hier quelques tests en paypal simple.

      Pour memoire, voici quelques points importants en backoffice :
      -  les transactions n’ont pas le numero de reservation qui les concerne d’affiché
      -  les reservations n’ont pas le listing de la transaction faite pour les payer
      -  le statut des reservations payees ne passe pas a « payé »

      Je testerai paypal express des que possible

      Bonne journee

      Julie

    • Salut Julie,

      les transactions n’ont pas le numero de reservation qui les concerne d’affiché

      Oui j’ai remarque ça, mais pas encore trouvé une manière élégante pour y remédier.

      les reservations n’ont pas le listing de la transaction faite pour les payer

      Dans la liste des réservations tu as as déjà le lien « payer » (voir print screen). Je trouve que ça n’apportearait pas beaucoup et encombrerai trop l’interface.

      le statut des reservations payees ne passe pas a « payé »

      En faisant quoi, le retour de paypal ? Paypal express ? Quel statut ils ont ?

      Rainer

    • Rebonjour Rainer,

      Ta petite modification a etre tres efficace pour Paypal Express. Merci !
      On retombe bien desormais sur la page inscription avec un bouton de validation
      Et le paiement est bien effectue :
      Règlement réussi
      Votre règlement a bien été pris en compte, et nous vous en remercions.

      -  Outre les points deja evoques dans le post precedent, il y a une anomalie recurrente,
      que j’ai vu aussi en utilisant Paypal simple.
      En plus de la creation de la transaction ok, il y a generation d’une dizaine de transactions fantomes a payer
      en quelques secondes. Ca semble se passer au retour, apres paiement complet, car il y a 2 ou 3 minutes
      entre le timing de la vraie transaction ok , et la serie des autres .

      voici un listing de ces transactions pour exemple :

      N°  Auteur ModeAutorisationHT TTC Réglé Date Statut C
      86 @ 18 18 2017-02-28 04:18:11 commande Payer
      85 @ 18 18 2017-02-28 04:17:58 commande Payer
      84 @ 18 18 2017-02-28 04:17:58 commande Payer
      83 @ 18 18 2017-02-28 04:17:58 commande Payer
      82 @ 18 18 2017-02-28 04:17:58 commande Payer
      81 @ 18 18 2017-02-28 04:17:58 commande Payer
      80 @ 18 18 2017-02-28 04:17:58 commande Payer
      79 @ 18 18 2017-02-28 04:17:58 commande Payer
      78 @ 18 18 2017-02-28 04:17:36 commande Payer
      77 @ 18 18 2017-02-28 04:17:36 commande Payer
      76 @ 18 18 2017-02-28 04:17:36 commande Payer
      75 @ 18 18 2017-02-28 04:17:36 commande Payer
      74 @ 18 18 2017-02-28 04:17:36 commande Payer
      73 @ 18 18 2017-02-28 04:17:36 commande Payer
      72 @ 18 18 2017-02-28 04:17:36 commande Payer
      71 @paypal_test B1E0 08149449YR70896 18 18 18.00 2017-02-28 04:14:54 ok

      Voila,

      En esperant que ca puisse t’aider un peu.

      Julie

      PS : j’ai ecrit ce message avant de lire ta derniere reponse.
      Je vais faire quelques verifications avant de te donner ces precisions

    • Je ne reproduis pas, peux tu vérifier sur la page transaction (/ ?exec=transactions#pagination_transactions) pour quelle réservation ces transactions se sont faits

    • Ok Rainer,

      exec=transactions :
      pour les commandes de produits j’ai un numero de commande, c’est simple.
      mais pour les transactions de resa : il n ’y a pas d’ info la reliant a une reservation

      -  En fait, c’est l’acces a cette page : ?exec=reservations qui me cree a chaque fois 8 fausses transactions avec le prix de la derniere effectuee

      -  le click sur payer : ?exec=reservation&id_reservation=22

      cree une fausse transaction a chaque fois
      et donne une page vide avec le message : erreur aucune commande

      Collision avec le plugin commandes ?

    •  ?exec=reservations crée des transaction pour toute réservation en statut « an attente du paiement » et qui n’as pas encore de transaction ouverte.

      le lien de paiement devrait resembler au suivant
       ?exec=payer_reservation&id_transaction=716&transaction_hash=1217625082&id_reservation=690

      peux tu recharge ta page avec ctrl F5 et retester le lien ?

    • Julie B.

      Oui Rainer,

      J’aurais pense que la creation d’une transaction passait par une action bank.
      Tu as surement des raisons de proceder comme cela.
      Pourquoi les transactions doivent-elles etre crees pour les statuts en attente de paiement ?
      Un paiement ulterieur ne pourrait-il pas simplement creer cette transaction au moment du paiement effectif ?

      La creation de transactions vides est genante, car je n’ai pas trouve comment les supprimer, et il y en a beaucoup :-) .

      J’ai donc verifie l’url :
      ecrire/ ?exec=payer_reservation&id_transaction=219&id_reservation=24

      Il n’ y a pas de hash

      Julie

    • C’est une action bank, mais légèrement adapté (possibilité de déterminer le montant payé pour chaque détail de réservation). Je vais regarder ce qui se passe avec les transaction. Tu peux regarder dans la bd , table spip_transactions quel id_reservation ont ces tranwactions fantômes (regarde également si un id_commande est enregistré).

    • Julie B.

      Ok Rainer,
      les id_commandes sont tous a 0 , comme j’ai desinstalle le plugin commandes.
      Voici un tableau avec la transaction ok faite sous paypal express ,
      et la serie de fantomes suite a visite de ?exec=reservations

      id_tx /id_reservation/heure/statut
      231/ 28 / 06:44:22 OK
      232/ 27/ 06:45:46
      233/ 26/ 06:45:46
      234/ 25/ 06:45:46
      235/ 22/ 06:45:46
      236/ 23/ 06:45:46
      237/ 22/ 06:45:46
      238/ 21/ 06:45:46
      239/ 20/ 06:45:46
      240/ 19/ 06:45:46

      (la numerotation des reservations est inversee)
      les resas referencees existent : la 28 est la bonne qui est acceptee
      les 19-27 sont des resas faites dans le passe du 26 fevrier au premier mars de statut en liste d attente.

      Si je mets en mode non-groupe, il n’y a plus (mes premiers essais) de generation de transactions fantomes.
      c.a.d :
      incription.html avec :

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

      Julie

    • Julie B.

      OOps Rainer,

      Meme avec degroupage , j ai eu 5 transactions fantomes inexpliquees.
      Mais, c est unique, et contrairement aux cas precedents, ce n’est pas
      systematique. Je n’arrive pas a le reproduire.

      Peut-etre que le click sur « payer » devrait seul pouvoir creer une transaction pour la
      resa si elle n’existe pas ( et ceci donc juste avant de montrer les boutons paypal).
      Tout echec ou abandon de paiement devrait la supprimer.
      En back office, c’est plus simple peut-etre car il y a deja ce lien « payer ».
      Mais, en front office, il faudrait alors un bouton « payer » pour creer la
      transaction seulement si on le clique,( ce qui apres seulement declencherait la
      presentation des boutons de paiement).
      Ceci pourrait-il permettre d’eviter d’avoir a creer des transactions en serie pour les resas en
      attente de paiement ?

      My 10 cents,

      Julie

    • Salut Julie,

      merci pour tes tests, je vais regarder ça

      Rainer

    • Salut Julie,

      je reprends les point ouverts :

      Pourquoi les transactions doivent-elles être crées pour les statuts en attente de paiement ?
      Un paiement ultérieur ne pourrait-il pas simplement créer cette transaction au moment du paiement effectif ?

      En fait, je répondais un peu vite, un paiement est proposé quand il y un montant à payer > 0.

      J’ai donc verifie l’url :
      ecrire/ ?exec=payer_reservation&id_transaction=219&id_reservation=24
      Il n’ y a pas de hash

      C’est corrigé, il devrait toujours y avoir une url correcte avec hash.

      Concernant les transactions « fantômes ». Moi je ne découvre rien d’anormal dans mes testes.

      sur la page ?exec=reservations, pour chaque réservation il est testé s’il y une commande ouverte (statut commande,attente). Sinon, s’il reste un monstan à payer, une transaction est crée.

      Quand le plugin reservation_bank est activé et le formulaire public proposé, après un enregistrement d’une réservation une transaction est crée.

      Donc si reservation_bank est ajouté après coup (quand il y a déjà des réservation enregistrés) et qu’on se rend sur la page ?exec=reservations ; une transaction sera crée pour chaque ancienne réservation affiché (qui ne dispose pas encore de transaction).

      Tes transactions « fantômes » correspondent au réservations faites avant l’installation du plugin bank_reservation ?

    • Julie B.

      Merci Rainer pour ces explications,

      Je vais verifier de plus pres, des que possible, pour pouvoir te repondre.

      Julie

    • Julie B.

      Bonjour Rainer,

      J’ai donc verifie les dates des dernieres transactions « fantomes » et elles sont en effet pour des reservations plus anciennes de quelques jours aux essais qui ont cree les transactions. Elles sont associees a des reservations non-payees et de montant > 0 .
      Si je supprime une de ces transactions dans la base, le fait de visiter la reservation associee recree la transaction, ce qui correspond a un comportement normal, et qui correspond bien a tes explications.

      Certaines de ces transactions fantomes plus anciennes ont des id_reservations vides, et correspondent a mes premiers posts sur le sujet. Est-ce un effet de bord d’une mauvaise installation ?
      Elles etaient recurrentes a chaque visite de la page reservations, apres un paiement reussi.
      Mais, apres reinstallation du plugin reservations_bank pour les dernieres mises a jour, il n’y a plus ce phenomene.
      Je pensais que c’etait le degroupage qui avait calme le jeu, mais en enlevant inscription.html de mon dossier squelettes, ca reste stable pour le moment.

      Ca semble plutot bien parti.
      Bonne semaine

      Julie

    Répondre à ce message

Ajouter un commentaire

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
  • 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 apparaît.

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.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom