Un système complet de gestion des inscriptions aux événements pour Larapen. Créez et gérez des événements avec des types de billets, des champs d’inscription personnalisés, un suivi des participants, le traitement des paiements et des événements soumis par les utilisateurs.

Gestion des événements

Créez des événements avec tous les détails : lieu, dates, en ligne/présentiel, limites de capacité, images mises en avant et galerie.

Types de billets

Plusieurs niveaux de billets par événement, avec tarification individuelle, quantités, fenêtres de vente et limites par inscription.

Inscription & enregistrement des arrivées

Inscription en ligne avec workflow de confirmation, suivi de l’enregistrement des participants et export CSV des inscriptions.

Champs personnalisés

Collectez des données supplémentaires sur les participants avec 10 types de champs. Créez des champs globaux ou spécifiques à un événement.

Intégration de paiement

Prend en charge Stripe, PayPal, Paddle et MoMo via le PaymentService du cœur de l’application pour les inscriptions payantes.

Événements soumis par les utilisateurs

Permettez aux utilisateurs inscrits de créer et de gérer leurs propres événements, avec approbation de l’administrateur avant publication.

Cas d’utilisation

Conférences & sommets

Organisez des conférences sur plusieurs jours avec plusieurs types de billets (Early Bird, admission générale, VIP). Utilisez les champs personnalisés pour collecter les préférences alimentaires, les tailles de T-shirt ou les informations d’entreprise. Suivez les enregistrements à l’entrée et exportez les listes de participants.

Ateliers & sessions de formation

Gérez des ateliers à capacité limitée avec prise en charge d’une liste d’attente. Définissez des fenêtres d’inscription pour contrôler le calendrier des inscriptions. Collectez les informations préalables via les champs personnalisés.

Webinaires & événements en ligne

Créez des événements en ligne avec des URL de réunion (Zoom, Google Meet, etc.). Suivez les inscriptions aux webinaires gratuits ou payants. Envoyez des e-mails de confirmation automatiques contenant les liens de connexion.

Rencontres communautaires

Activez la fonctionnalité “Événements utilisateurs” pour permettre aux membres de la communauté de créer et de gérer leurs propres événements. Les événements passent par une validation de l’administrateur avant publication.

Prérequis

  • Larapen CMS v1.0.0 ou ultérieur
  • PHP 8.3+
  • MySQL 8.0+
  • Un add-on de passerelle de paiement (ex. Stripe, PayPal) pour les événements payants (optionnel)
Note : l’add-on fonctionne de manière autonome pour les événements gratuits. Les add-ons de passerelle de paiement ne sont nécessaires que si vous souhaitez facturer les inscriptions.

Installation

Étape 1 : Téléverser l’add-on

Dans le panneau d’administration, allez dans Admin → Extensions → Add-ons et cliquez sur le bouton Télécharger un add-on. Sélectionnez le fichier ZIP de l’add-on : le système le décompresse automatiquement et l’add-on apparaît dans la liste des add-ons installés.

Étape 2 : Activer l’add-on

Repérez Gestion des événements et des inscriptions dans la liste et cliquez sur Activer. Ses migrations, ses seeders (le cas échéant) et ses permissions sont mis en place automatiquement.

Étape 3 : Configurer

Naviguez vers Admin → Événements → Paramètres pour configurer les catégories d’événements, les types de billets, les formulaires d’inscription et les notifications. Voir Configuration.

Code d’achat (clé de licence)

Inscriptions aux événements est vendu comme un produit séparé, il possède donc son propre code d’achat (clé de licence), distinct du code d’achat de l’application principale et de celui de chaque autre add-on. Il vous est demandé lorsque vous activez Inscriptions aux événements dans Panneau d’administration → Add-ons.

Nos produits sont vendus sur trois plateformes. La façon dont vous recevez un code d’achat dépend de l’endroit où vous avez acheté le produit.

Plateforme / Marketplace Comment obtenir le code d’achat Où le retrouver
Boutique bedigit.com
Achat sur le site (Shop)
Généré automatiquement lorsque la commande est payée, puis envoyé par e-mail, soit dans un e-mail de licence dédié, soit dans l’e-mail de confirmation de commande. Mon compte → Mes licences sur bedigit.com
Gumroad Créé dès que Gumroad nous notifie la vente, puis envoyé dans un e-mail séparé, en plus du reçu Gumroad. L’e-mail de licence, votre Bibliothèque Gumroad et Mon compte → Mes licences sur bedigit.com
Envato Market
CodeCanyon
Délivré par Envato, pas par nous, et jamais envoyé par e-mail : vous le téléchargez vous-même depuis votre compte Envato. Compte Envato → Downloads → License certificate & purchase code
Vérifiez votre dossier de spam. Pour les achats effectués sur la Boutique bedigit.com et sur Gumroad, le code d’achat est envoyé par e-mail. Les e-mails de licence automatiques sont très souvent filtrés : si le message ne se trouve pas dans votre boîte de réception, regardez dans votre dossier spam / courrier indésirable avant de contacter le support, et ajoutez notre adresse d’expédition à vos contacts ou à votre liste d’autorisation.

1. Boutique bedigit.com (achat sur le site)

  • Dès que le statut de paiement de la commande devient Payée, une clé de licence est générée automatiquement pour chaque article sous licence de la commande (une clé par unité achetée : acheter 3 unités donne 3 clés distinctes).
  • Elle est envoyée par e-mail à l’adresse utilisée pour la commande, soit dans un e-mail de licence dédié, soit dans l’e-mail de confirmation de commande. Vérifiez votre boîte de réception et votre dossier spam / courrier indésirable.
  • La clé reste disponible dans votre compte sous Mon compte → Mes licences. Les clés sont masquées dans la liste ; ouvrez la page de détail de la licence pour afficher et copier la clé complète, voir les domaines sur lesquels elle est activée, et désactiver un domaine pour libérer un emplacement d’activation.
  • La facture correspondante se trouve sous Mon compte → Mes commandes.

2. Gumroad

  • Un achat sur Gumroad produit deux e-mails distincts : le reçu Gumroad (envoyé par Gumroad, donnant accès aux fichiers) et un e-mail de clé de licence (envoyé par bedigit.com) qui contient votre code d’achat.
  • L’e-mail de clé de licence est généré dès que Gumroad nous notifie la vente, il arrive donc normalement quelques secondes après le paiement. Ici aussi, vérifiez votre boîte de réception et votre dossier spam / courrier indésirable.
  • Lorsque le produit Gumroad utilise la fonctionnalité de clés de licence propre à Gumroad, la même clé apparaît aussi dans votre reçu Gumroad et sous Bibliothèque → votre achat sur gumroad.com.
  • Utilisez la même adresse e-mail sur bedigit.com que sur Gumroad : vos clés sont alors liées automatiquement à votre compte et listées sous Mon compte → Mes licences, même si vous vous inscrivez après l’achat. Vous pouvez aussi ajouter une clé Gumroad manuellement depuis Mon compte → Mes licences Gumroad.

3. Envato Market (CodeCanyon)

  • Les codes d’achat Envato sont délivrés et fournis par Envato Market, jamais envoyés par e-mail par nous, il n’y a donc rien à chercher dans votre dossier de spam : vous récupérez le code depuis votre compte Envato.
  • Connectez-vous à votre compte Envato / CodeCanyon, ouvrez la page Downloads, trouvez l’article et choisissez License certificate & purchase code dans le menu déroulant Download. Le code est inscrit dans ce certificat.
  • Un code d’achat Envato ressemble à 12345678-90ab-cdef-1234-567890abcdef (8-4-4-4-12 caractères). Il ne change jamais, et le renouvellement du support de l’article n’en délivre pas de nouveau.
  • Article officiel Envato : Where Is My Purchase Code?
Vous avez perdu votre code d’achat ? Recherchez dans votre messagerie (dossier de spam inclus) “licence” ou “code d’achat”, puis consultez Mon compte → Mes licences sur bedigit.com pour les achats Boutique et Gumroad, ou Downloads → License certificate sur Envato. S’il est toujours introuvable, ouvrez un ticket sur notre Centre d’aide avec votre numéro de commande (Boutique), l’ID de vente Gumroad ou l’e-mail de l’acheteur (Gumroad), ou votre nom d’utilisateur Envato et le nom de l’article (Envato).

Configuration

Tous les paramètres sont gérés via Admin → Événements → Paramètres et stockés dans la table settings avec le préfixe event_. Les valeurs par défaut sont définies dans config/events.php.

Paramètres généraux

Paramètre Description Défaut
per_page Nombre d’événements affichés par page sur la liste côté public. 12
admin_per_page Nombre d’éléments par page dans les tableaux d’administration. 15
max_images Nombre maximum d’images de galerie par événement. 5
max_tickets_per_registration Quantité maximale de billets qu’un inscrit peut sélectionner par inscription. 10

Options de fonctionnalités

Paramètre Description Défaut
registration_confirmation Exiger la confirmation de l’administrateur pour les nouvelles inscriptions (les inscriptions démarrent en “en attente” au lieu de “confirmé”). false
allow_guest_registration Permettre aux visiteurs non authentifiés de s’inscrire aux événements. false
require_phone Rendre le champ numéro de téléphone obligatoire dans le formulaire d’inscription. false
enable_waitlist Activer la liste d’attente lorsque les événements atteignent leur capacité. false
allow_user_events Permettre aux utilisateurs inscrits de créer et de soumettre leurs propres événements. false
confirmation_email Envoyer un e-mail de confirmation aux inscrits après une inscription réussie. true

Options de notifications

Paramètre Description Défaut
notify_admin_on_new_event Notifier les administrateurs lorsqu’un nouvel événement est créé (par les utilisateurs). true
notify_organizer_on_publish Notifier l’organisateur de l’événement lorsque son événement est publié. true
notify_registrants_on_cancellation Notifier tous les inscrits lorsqu’un événement est annulé. true
notify_registrant_on_registration Envoyer une confirmation à un inscrit après une inscription réussie. true
notify_admin_on_new_registration Notifier les administrateurs lorsqu’une nouvelle inscription est soumise. true
notify_registrant_on_confirmation Notifier un inscrit lorsque son inscription est confirmée par l’administrateur. true
notify_registrant_on_cancellation Notifier un inscrit lorsque son inscription est annulée. true
notify_organizer_on_new_registration Notifier l’organisateur de l’événement lorsqu’une nouvelle inscription est reçue. true

Admin : Événements

La page Événements (Événements → Tous les événements) gère tous les événements de la plateforme.

Liste des événements

Un tableau triable et paginé affichant :

  • Titre : nom de l’événement avec lien vers la modification
  • Catégorie : catégorie d’événement attribuée
  • Date de début / de fin
  • Statut : badge coloré (Brouillon, Publié, Annulé, Terminé, Archivé)
  • Nombre d’inscriptions
  • En vedette : indicateur en forme d’étoile
  • Nombre de vues

Filtres : menu déroulant de statut, menu déroulant de catégorie et recherche textuelle. Actions par événement : Modifier, Publier, Annuler, Supprimer.

Création & modification

Le formulaire d’événement est organisé en sections :

Informations générales

  • Titre (traduisible) : obligatoire
  • Identifiant (slug) (traduisible) : généré automatiquement à partir du titre
  • Catégorie : à sélectionner parmi les catégories d’événements
  • Description (traduisible) : courte description / extrait
  • Contenu (traduisible) : contenu complet de l’événement avec éditeur WYSIWYG

Date & heure

  • Date de début (datetime) : obligatoire
  • Date de fin (datetime) : optionnelle
  • Fuseau horaire : fuseau horaire de l’événement
  • Ouverture des inscriptions (datetime) : quand les inscriptions ouvrent
  • Clôture des inscriptions (datetime) : quand les inscriptions ferment

Lieu

  • En ligne : bascule pour les événements virtuels
  • Lien de participation / Plateforme : affichés quand “En ligne” est activé
  • Nom du lieu, Adresse, Ville, Région, Pays
  • Latitude / Longitude : pour l’affichage sur la carte

Capacité & tarification

  • Nombre maximum de participants : null pour illimité
  • Événement gratuit : bascule
  • Types de billets : gestion sur place (ajouter/modifier/supprimer des niveaux de billets)

Organisateur & contact

  • Nom de l’organisateur, Description de l’organisateur
  • Adresse e-mail de contact, Téléphone de contact

SEO & publication

  • Titre SEO (traduisible), Description SEO (traduisible)
  • Statut : Brouillon, Publié, Annulé, Terminé, Archivé
  • Événement en vedette : bascule
  • Publié le : programmer la date de publication
  • Position : ordre de tri

Média

  • Image mise en avant : image principale de l’événement
  • Galerie : jusqu’à 5 images supplémentaires (configurable via max_images)

Publier & annuler

Les boutons d’action rapide de la liste des événements permettent de changer le statut de l’événement sans ouvrir le formulaire de modification :

  • Publier : définit le statut à published, renseigne published_at et envoie une notification à l’organisateur (si activé).
  • Annuler : définit le statut à cancelled et notifie tous les inscrits confirmés (si activé).

Admin : Catégories

Les catégories d’événements utilisent la table unifiée categories avec categorizable_type = 'event'. Elles prennent en charge l’imbrication hiérarchique (parent/enfant) via la colonne parent_id.

Liste des catégories

Une vue arborescente hiérarchique de toutes les catégories d’événements avec réorganisation par glisser-déposer. Affiche : nom (traduisible), identifiant, nombre d’événements, statut actif.

Formulaire de catégorie

  • Nom (traduisible) : obligatoire
  • Identifiant (slug) (traduisible) : généré automatiquement
  • Description (traduisible)
  • Titre SEO / Description SEO (traduisible)
  • Catégorie parente : optionnelle
  • Position : ordre de tri
  • Active : bascule

Admin : Inscriptions

La page Inscriptions (Événements → Inscriptions) fournit une vue centralisée de toutes les inscriptions aux événements.

Liste des inscriptions

Un tableau paginé affichant :

  • Numéro d’inscription : identifiant unique (format : EVT-YYYY-#####)
  • Nom de l’événement
  • Nom du participant & e-mail
  • Type de billet & quantité
  • Statut : badge coloré (En attente, Confirmé, Annulé, Présent, Absent)
  • Statut de paiement (si applicable)
  • Montant payé
  • Date d’inscription

Filtres : menu déroulant d’événement, menu déroulant de statut et recherche textuelle.

Détail & actions

La page de détail d’une inscription (Inscriptions → {inscription}) affiche :

  • Fiche d’inscription : numéro d’inscription, nom de l’événement, coordonnées du participant (nom, e-mail, téléphone, entreprise, fonction), type de billet, quantité, dates
  • Gestion du statut : badge du statut actuel avec boutons d’action :
ActionTransitionEffet
Confirmer En attente → Confirmé Envoie une notification de confirmation à l’inscrit
Annuler Tout statut → Annulé Envoie une notification d’annulation à l’inscrit
Enregistrer l’arrivée Confirmé → Présent Enregistre l’horodatage checked_in_at
Supprimer - Supprime définitivement l’enregistrement d’inscription
  • Informations de paiement : montant, devise, mode de paiement, référence, date de paiement
  • Réponses aux champs personnalisés : toutes les réponses aux champs personnalisés soumises par le participant
  • Adresse IP & compte utilisateur lié (si authentifié)

Export

Cliquez sur Exporter en CSV pour télécharger les inscriptions sous forme de fichier CSV. L’export peut être filtré par événement et par statut avant le téléchargement. Le CSV inclut tous les champs d’inscription, les informations de billet, les données de paiement et les valeurs des champs personnalisés.

Admin : Champs personnalisés

Les champs personnalisés vous permettent de collecter des informations supplémentaires auprès des inscrits, au-delà des champs standard (nom, e-mail, téléphone). Les champs peuvent être globaux (ils apparaissent sur tous les événements) ou spécifiques à un événement (ils n’apparaissent que sur un événement particulier).

Liste des champs personnalisés

Affiche tous les champs personnalisés avec : nom, type, portée (Global ou nom de l’événement concerné), caractère obligatoire, position et bascule d’activation. Filtrable par événement.

Formulaire de champ personnalisé

  • Nom (traduisible) : libellé du champ affiché aux inscrits
  • Identifiant (slug) : identifiant unique généré automatiquement
  • Texte indicatif (traduisible) : texte indicatif optionnel
  • Texte d’aide (traduisible) : texte d’aide optionnel affiché sous le champ
  • Type : voir Types de champs
  • Options : valeurs séparées par des virgules pour les types Liste déroulante, Bouton radio et Case à cocher
  • Événement : sélectionner un événement spécifique ou laisser vide pour un champ global
  • Champ obligatoire : bascule
  • Position : ordre de tri
  • Actif : bascule

Types de champs

Type Champ HTML Prend en charge les options
textSaisie texteNon
textareaZone de texteNon
numberSaisie numériqueNon
selectListe déroulanteOui
checkboxCase(s) à cocherOui
radioBoutons radioOui
dateSélecteur de dateNon
urlSaisie URLNon
emailSaisie e-mailNon
fileTéléversement de fichierNon

Admin : Paramètres

La page des paramètres (Événements → Paramètres) est organisée en trois sections :

Général

  • Événements par page : pagination de la liste côté public
  • Éléments par page en administration : pagination des tableaux d’administration
  • Images max. : limite d’images de galerie par événement
  • Billets max. par inscription : plafond de quantité

Fonctionnalités

  • Confirmation des inscriptions : activer le workflow d’approbation manuelle
  • Autoriser l’inscription sans compte : autoriser les inscriptions non authentifiées
  • Numéro de téléphone obligatoire : rendre le champ téléphone obligatoire
  • Activer la liste d’attente : liste d’attente lorsque la capacité est atteinte
  • Publication d’événements par les utilisateurs : permettre aux utilisateurs de créer des événements
  • Envoyer un e-mail de confirmation : envoyer un e-mail après l’inscription

Notifications

Huit bascules contrôlant l’envoi des notifications par e-mail. Voir Notifications pour la liste complète.

Front-end : Liste des événements

La page publique des événements affiche tous les événements publiés et actifs, avec filtrage et pagination.

Routes

MéthodeURLNom de routeDescription
GET /{locale}/events front.events.index.localized Page de liste des événements
GET /{locale}/events/category/{slug} front.events.category.localized Événements filtrés par catégorie

Les variantes non localisées (sans {locale}) sont également enregistrées.

Fonctionnalités

  • Grille paginée de cartes d’événements (nombre par page configurable)
  • Barre latérale ou filtre de catégories
  • Recherche textuelle sur le titre, la description, le lieu, la ville et l’organisateur
  • Les événements sont triés par date de début et par position
  • Les événements en vedette peuvent être mis en évidence

Front-end : Détail de l’événement

GET /{locale}/events/{slug}
Description

Affiche la page complète de l’événement avec tous les détails, les types de billets et le formulaire d’inscription.

Fonctionnalités
  • Contenu complet de l’événement (description, contenu, galerie)
  • Détails du lieu avec carte (si les coordonnées sont fournies)
  • Affichage de la date et de l’heure avec le fuseau horaire
  • Lien de l’événement en ligne (affiché après l’inscription ou à l’organisateur)
  • Informations de l’organisateur
  • Sélection du type de billet avec les tarifs
  • Formulaire d’inscription avec champs personnalisés (chargés via AJAX)
  • Indicateur de places disponibles et statut de capacité
  • Événements similaires de la même catégorie
  • Compteur de vues (incrémenté à chaque visite)

Front-end : Processus d’inscription

Le processus d’inscription suit ces étapes :

  1. Sélectionner le type de billet & la quantité : sur la page de détail de l’événement.
  2. Remplir le formulaire d’inscription : prénom, nom, e-mail, téléphone (optionnel/obligatoire), entreprise, fonction, plus les éventuels champs personnalisés.
  3. Soumettre l’inscription : POST /{locale}/events/{event}/register
  4. Vérification des doublons : le système vérifie si l’e-mail est déjà inscrit à cet événement.
  5. Inscription créée : un numéro d’inscription unique est généré (EVT-YYYY-#####).
  6. Attribution du statut :
    • Si registration_confirmation est activé : statut = pending
    • Sinon : statut = confirmed
  7. Redirection vers le paiement : si l’événement est payant, redirection vers la page de paiement.
  8. Page de confirmation : s’il est gratuit, redirection vers la page de confirmation affichant les détails de l’inscription.
  9. Notifications envoyées : selon les paramètres de notification (à l’inscrit, à l’administrateur, à l’organisateur).
POST /{locale}/events/{event}/register
Champs obligatoires
first_nameObligatoirePrénom du participant
last_nameObligatoireNom du participant
emailObligatoireAdresse e-mail valide
quantityObligatoireNombre de billets (1 à max_tickets_per_registration)
ticket_type_idConditionnelObligatoire si l’événement a des types de billets
phoneConditionnelObligatoire si require_phone est activé
custom_fields[*]ConditionnelSelon la configuration des champs personnalisés
GET /{locale}/events/registration/{registrationNumber}
Description

Page de confirmation affichant les détails de l’inscription, les informations du billet et le numéro d’inscription. L’inscrit peut enregistrer ou imprimer cette page comme reçu de confirmation.

Endpoint AJAX des champs personnalisés

GET /api/events/custom-fields/{eventId?}
Description

Retourne en JSON les champs personnalisés actifs d’un événement donné (y compris les champs globaux). Utilisé par le formulaire d’inscription pour charger dynamiquement les champs personnalisés.

Réponse (JSON)

Front-end : Paiement & commande

Pour les événements payants, le modèle d’inscription implémente l’interface Payable du cœur de l’application, ce qui permet une intégration transparente avec les passerelles de paiement.

GET /{locale}/events/registration/checkout/{registration}
Description

Affiche la page de paiement d’une inscription. Montre le récapitulatif de la commande (nom de l’événement, type de billet, quantité, montant total) et les modes de paiement disponibles.

POST /{locale}/events/registration/checkout/{registration}
Description

Traite le paiement via la passerelle de paiement sélectionnée. Les passerelles prises en charge incluent Stripe, PayPal, Paddle et MoMo (selon les add-ons de paiement actifs).

En cas de succès

Le payment_status de l’inscription est défini à paid, l’horodatage paid_at est enregistré, et l’utilisateur est redirigé vers la page de confirmation.

En cas d’échec

Le payment_status est défini à failed et l’utilisateur est renvoyé vers la page de paiement avec un message d’erreur.

Méthodes de l’interface Payable

Le modèle Registration implémente ces méthodes pour l’intégration des passerelles de paiement :

MéthodeRetourne
getPayableAmount()Montant de l’inscription (amount_paid)
getPayableCurrency()Code de la devise
getPayableDescription()Chaîne de description pour la passerelle de paiement
getPayableCustomerEmail()E-mail de l’inscrit
getPayableCustomerName()Nom complet de l’inscrit
getPayableIdentifier()Numéro d’inscription
markAsPaid(method, reference)Met à jour les champs de paiement
getPaymentSuccessUrl()URL de la page de confirmation
getPaymentCancelUrl()URL de la page de paiement

Front-end : Événements utilisateurs

Quand allow_user_events est activé, les utilisateurs authentifiés peuvent créer et gérer leurs propres événements.

Note : les événements créés par les utilisateurs démarrent avec le statut draft et nécessitent l’approbation de l’administrateur (publication) avant d’apparaître dans la liste publique.
MéthodeURLNom de routeDescription
GET /{locale}/events/my-events front.events.my-events.localized Lister les événements créés par l’utilisateur
GET /{locale}/events/create/new front.events.create.localized Formulaire de création d’événement
POST /{locale}/events/create/new front.events.store.localized Soumettre un nouvel événement
GET /{locale}/events/{event}/edit front.events.edit.localized Modifier son propre événement
PUT /{locale}/events/{event} front.events.update.localized Mettre à jour son propre événement
DELETE /{locale}/events/{event} front.events.destroy.localized Supprimer son propre événement (brouillon/annulé uniquement)

Toutes les routes d’événements utilisateurs nécessitent une authentification. Les variantes non localisées sont également enregistrées.

Front-end : Mes inscriptions

GET /{locale}/events/attending
Description

Affiche tous les événements auxquels l’utilisateur authentifié s’est inscrit. Fait correspondre les inscriptions par identifiant utilisateur et par adresse e-mail. Affiche le nom de l’événement, la date, le statut de l’inscription, le type de billet et la quantité.

Notifications

Toutes les notifications étendent BaseNotification et sont envoyées via le canal e-mail. Chacune peut être activée ou désactivée individuellement dans les paramètres.

Notification Destinataire Déclencheur
NewEventAdminNotification Administrateurs Un nouvel événement est créé (par un utilisateur)
EventPublishedNotification Organisateur de l’événement Le statut de l’événement passe à publié
EventCancelledNotification Tous les inscrits L’événement est annulé
RegistrationConfirmationNotification Inscrit Soumission d’une inscription réussie
RegistrationConfirmedNotification Inscrit L’administrateur confirme une inscription en attente
RegistrationCancelledNotification Inscrit L’inscription est annulée
NewRegistrationAdminNotification Administrateurs Une nouvelle inscription est reçue
NewRegistrationOrganizerNotification Organisateur de l’événement Une nouvelle inscription est reçue pour son événement

Mise à jour

Il existe deux façons de mettre cet add-on à jour : via le panneau d’administration (recommandé) ou en remplaçant manuellement les fichiers.

Méthode 1 : Téléversement via le panneau d’administration (recommandé)

  1. Téléchargez le dernier fichier .zip de cet add-on.
  2. Allez dans Panneau d’administration → Add-ons et cliquez sur le bouton Téléverser.
  3. Sélectionnez ou faites glisser le fichier .zip dans la zone de téléversement.
  4. Une invite de confirmation affichera les numéros de version actuelle et nouvelle. Cliquez sur Remplacer pour continuer.
  5. Allez dans Panneau d’administration → Mise à jour du système (/admin/update) pour appliquer les migrations de base de données en attente.

Méthode 2 : Remplacement manuel des fichiers

Étape 1 : Remplacer les fichiers

Remplacez le répertoire de l’add-on par la nouvelle version.

Étape 2 : Exécuter les migrations

php artisan migrate

Les migrations en attente ne s’exécutent qu’une seule fois : la commande peut être relancée sans risque.

Étape 3 : Vider les caches

php artisan config:clear
php artisan route:clear
php artisan view:clear

Étape 4 : Recompiler les assets

Si les vues de thème ou les fichiers SCSS ont été mis à jour :

Étape 5 : Vérifier

Visitez Événements → Tous les événements dans le panneau d’administration et confirmez que tout se charge correctement. Testez la liste côté public et le processus d’inscription.

Sauvegardez d’abord : sauvegardez toujours votre base de données avant d’exécuter des migrations sur un système en production.

Désinstallation

Éteindre un add-on sans rien perdre, c’est le désactiver : allez dans Panneau d’administration → Add-ons, trouvez Events Registration Management et cliquez sur Désactiver.

  • Ses routes, ses vues, ses entrées de menu d’administration et ses permissions cessent d’être enregistrées, et ses pages publiques ne répondent plus.
  • Ses tables de base de données et toutes les données qu’elles contiennent sont conservées, et ses fichiers restent dans extensions/addons/events/. Rien n’est supprimé.
  • Le code d’achat enregistré lors de l’activation est conservé lui aussi : réactiver l’add-on ne le redemande pas.
  • La désactivation est refusée tant qu’un autre add-on actif dépend de celui-ci : désactivez d’abord cet add-on.

Cliquez sur Activer sur la même carte pour le rallumer. Les migrations en attente sont rejouées, les assets republiés, et l’add-on reprend exactement là où il s’était arrêté.

Suppression

La suppression est définitive et détruit les données de l’add-on. Le bouton Supprimer n’apparaît que sur un add-on désactivé : la suppression se fait donc toujours en deux temps :

  1. Désactivez Events Registration Management (voir Désinstallation).
  2. Cliquez sur Supprimer sur sa carte et confirmez la demande.

Le panneau d’administration, en une seule passe :

  • exécute le hook de désinstallation de l’add-on, s’il en fournit un, tant que son code est encore sur le disque ;
  • révoque les permissions déclarées dans son addon.json ;
  • annule ses migrations, ce qui supprime ses tables de base de données et toutes les lignes qu’elles contiennent, et purge ses entrées de la table migrations, afin qu’une réinstallation ultérieure reparte de zéro ;
  • supprime ses assets publiés : public/addons/events/, public/vendor/events/ et storage/app/public/addons/events/ ;
  • supprime le dossier de l’add-on extensions/addons/events/ ;
  • supprime sa ligne dans la table addons (le code d’achat enregistré disparaît avec elle) et vide le cache de l’application.
Cette action est irréversible. Sauvegardez votre base de données avant de supprimer un add-on dont les données peuvent encore vous servir : le réinstaller plus tard crée des tables vides, pas votre ancien contenu.

La suppression est refusée, avec un message explicatif et avant toute destruction, lorsque l’add-on est encore actif, lorsqu’un autre add-on actif en dépend, ou lorsque l’utilisateur du serveur web (PHP) ne peut pas supprimer extensions/addons/events/. Dans ce dernier cas, donnez à cet utilisateur le droit d’écriture sur le dossier et sur son parent, puis réessayez.

Supprimer le dossier en FTP ou en SSH n’est pas équivalent : les tables de l’add-on, ses entrées dans la table migrations et sa ligne addons restent en place, et sa carte reste dans la liste. Utilisez plutôt Supprimer dans le panneau d’administration.

Dépannage

Les événements ne s’affichent pas côté public

  • Assurez-vous que les événements ont le statut published et que published_at est dans le passé.
  • Vérifiez que la start_date ou la end_date de l’événement n’est pas passée (seuls les événements actifs sont affichés par défaut).
  • Vérifiez que l’add-on est activé dans Admin → Add-ons.

Le formulaire d’inscription n’affiche pas les champs personnalisés

  • Assurez-vous que les champs personnalisés sont marqués comme Actifs.
  • Pour les champs spécifiques à un événement, vérifiez qu’ils sont attribués au bon événement.
  • Consultez la console du navigateur pour les erreurs AJAX lors du chargement de /api/events/custom-fields/{eventId}.

L’inscription échoue : “Déjà inscrit”

Le système vérifie les inscriptions en double par e-mail et par événement. Si le participant s’est déjà inscrit avec la même adresse e-mail à cet événement, l’inscription est rejetée. C’est intentionnel, afin d’éviter les inscriptions en double.

La page de paiement ne se charge pas

  • Assurez-vous qu’au moins un add-on de passerelle de paiement est installé et actif (ex. Stripe).
  • Vérifiez que l’événement n’est pas marqué comme “gratuit” (is_free = false).
  • Vérifiez que l’inscription a un amount_paid et une currency valides.

L’utilisateur ne peut pas créer d’événements

  • Vérifiez que allow_user_events est activé dans Événements → Paramètres.
  • L’utilisateur doit être authentifié (connecté).
  • Le lien “Mes événements” n’apparaît dans le menu utilisateur que lorsque le paramètre est activé.

Les notifications ne sont pas envoyées

  • Vérifiez la bascule de notification correspondante dans Événements → Paramètres.
  • Vérifiez que votre configuration mail dans Admin → Paramètres → Mail fonctionne correctement.
  • Consultez le log Laravel (storage/logs/laravel.log) pour les erreurs d’envoi de mail.

La capacité de l’événement n’est pas appliquée

  • Assurez-vous que max_attendees est renseigné sur l’événement (null signifie illimité).
  • Le système ne compte que les inscriptions confirmed et attended dans la capacité.
  • Les inscriptions annulées et en attente ne comptent pas dans la limite.

L’export CSV est vide ou incomplet

  • Appliquez les filtres souhaités (événement, statut) avant de cliquer sur Exporter.
  • Assurez-vous qu’il existe des inscriptions correspondant aux critères de filtre actuels.
  • Vérifiez l’encodage du fichier si les caractères spéciaux apparaissent altérés : l’export utilise UTF-8.

Erreur “Unable to locate file in Vite manifest”

Cela signifie que la compilation Vite n’a pas été exécutée après l’ajout de nouveaux fichiers SCSS/JS de thème. Exécutez :

Gestion des événements et des inscriptions v1.0.0 : fait partie de la plateforme CMS Larapen.

© BeDigit. Tous droits réservés.

Cet article vous a-t-il été utile ?

Merci pour votre retour !

Besoin d'aide ? Créez un ticket de support

Créer un Ticket

Guides des Modules

avr. 07, 2026