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)
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 |
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?
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, renseignepublished_atet envoie une notification à l’organisateur (si activé). - Annuler : définit le statut à
cancelledet 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 :
| Action | Transition | Effet |
|---|---|---|
| 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 |
|---|---|---|
text | Saisie texte | Non |
textarea | Zone de texte | Non |
number | Saisie numérique | Non |
select | Liste déroulante | Oui |
checkbox | Case(s) à cocher | Oui |
radio | Boutons radio | Oui |
date | Sélecteur de date | Non |
url | Saisie URL | Non |
email | Saisie e-mail | Non |
file | Téléversement de fichier | Non |
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éthode | URL | Nom de route | Description |
|---|---|---|---|
| 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
/{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 :
- Sélectionner le type de billet & la quantité : sur la page de détail de l’événement.
- Remplir le formulaire d’inscription : prénom, nom, e-mail, téléphone (optionnel/obligatoire), entreprise, fonction, plus les éventuels champs personnalisés.
- Soumettre l’inscription :
POST /{locale}/events/{event}/register - Vérification des doublons : le système vérifie si l’e-mail est déjà inscrit à cet événement.
- Inscription créée : un numéro d’inscription unique est généré (
EVT-YYYY-#####). - Attribution du statut :
- Si
registration_confirmationest activé : statut =pending - Sinon : statut =
confirmed
- Si
- Redirection vers le paiement : si l’événement est payant, redirection vers la page de paiement.
- Page de confirmation : s’il est gratuit, redirection vers la page de confirmation affichant les détails de l’inscription.
- Notifications envoyées : selon les paramètres de notification (à l’inscrit, à l’administrateur, à l’organisateur).
/{locale}/events/{event}/register
Champs obligatoires
first_name | Obligatoire | Prénom du participant |
last_name | Obligatoire | Nom du participant |
email | Obligatoire | Adresse e-mail valide |
quantity | Obligatoire | Nombre de billets (1 à max_tickets_per_registration) |
ticket_type_id | Conditionnel | Obligatoire si l’événement a des types de billets |
phone | Conditionnel | Obligatoire si require_phone est activé |
custom_fields[*] | Conditionnel | Selon la configuration des champs personnalisés |
/{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
/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.
/{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.
/{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éthode | Retourne |
|---|---|
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.
draft et nécessitent l’approbation de l’administrateur
(publication) avant d’apparaître dans la liste publique.
| Méthode | URL | Nom de route | Description |
|---|---|---|---|
| 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
/{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é)
- Téléchargez le dernier fichier
.zipde cet add-on. - Allez dans Panneau d’administration → Add-ons et cliquez sur le bouton Téléverser.
- Sélectionnez ou faites glisser le fichier
.zipdans la zone de téléversement. - Une invite de confirmation affichera les numéros de version actuelle et nouvelle. Cliquez sur Remplacer pour continuer.
- 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.
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 :
- Désactivez Events Registration Management (voir Désinstallation).
- 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/etstorage/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.
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
publishedet quepublished_atest dans le passé. - Vérifiez que la
start_dateou laend_datede 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_paidet unecurrencyvalides.
L’utilisateur ne peut pas créer d’événements
- Vérifiez que
allow_user_eventsest 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_attendeesest renseigné sur l’événement (null signifie illimité). - Le système ne compte que les inscriptions
confirmedetattendeddans 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.