mardi, 23 août 2011 14:06

Les participants CKForms ne s'affichent pas

Écrit par 
Évaluer cet élément
(0 Votes)

Vos participants ne s'affichent pas dans le frontend

Votre formulaire CKForms s'affiche et vous pouvez correctement introduire des données.

En cliquant sur le bouton Soumettre de votre formulaire, vos données sont parfaitement sauvées dans la table de CKForms; vous l'avez vérifié en ayant cliqué sur le bouton "Voir les données"; bouton disponible dans la gestion du formulaire CKForms; dans le backend.

Dans ce cas, pourquoi AllEvents n'affiche-t-il pas les données ?

La réponse à cette question n'est pas simple.   A priori, elle est technique : CKForms utilise un champs nommé "articleid" pour déterminer dans quel article le formulaire a été affiché.  Le but étant de permettre d'utiliser le même formulaire CKForms pour plusieurs articles.   Cela permet de regrouper les données de l'article 1, celles de l'article 2, etc.   Cet usage est parfait pour AllEvents puisque cela permet de différencier les inscriptions d'un évènement de ceux d'un autre.

AllEvents utilise un code Mootools qui permet "d'injecter" le numéro de l'évènement dans le champs, caché, du formulaire.   En effet, lorsque CKForms affiche son formulaire, il génère un champs nommé "articleid"; ce champs est de type hidden et reprend le numéro de l'article.   Le code Mootools de AllEvents va détecter la présence de ce champs et y injecter le numéro de l'évènement.

Lors de l'affichage de la page événementielle, AllEvents va donc uniquement reprendre les enregistrements dont le champs "articleid" est égal au numéro de l'évènement en cours d'affichage.

Dès lors, si le champs de la table "articleid" est vide, il est logique que AllEvents ne retrouve aucun enregistrement.

Si "articleid" est vide, cela veut dire que le code Mootools n'a pas pû être exécuté.   A priori, il y a deux raisons :

  1. le plugin système Mootools upgrade est publié (dans son actuelle version, CKForms ne supporte pas Mootools upgrade).
  2. la seconde raison est plus compliquée : il y a un conflit JS sur votre page.   Une erreur de script JS plante votre site et interdit au script AllEvents de s'exécuter.

La solution au problème 1 est simple : il suffit de désactiver le plugin Mootools upgrade.

La solution au problème 2 est complexe : il faut débusquer le plugin ou le module qui génère le conflit JS.   Cela peut aussi être votre template.   Ici, une seule aide efficace : Firebug.   Vous pouvez aussi, pour vos tests, désactivez vos modules et plugins qui pourraient être la cause du conflit.

Vos participants ne s'affichent pas dans le backend

Si vous regardez dans la liste des participants dans AllEvents; c'est tout à fait normal : les inscriptions faites au travers d'un formulaire tiers comme c'est le cas avec CKForms sont gérés par ce composant tiers.   Ce ne sont aucunement des enregistrements AE.   Pour les gérer, il faut aller dans CKForms, gestion des formulaires, éditer le formulaire puis cliquer sur "Afficher les données".

Attention, en Avril 2012, CKForms est disponible pour Joomla 1.5 uniquement.  Si c'est toujours le cas au moment où vous lisez cet article, pensez à utiliser un autre composant de gestion de formulaires.  BreezingForms, moins intuitif mais plus puissant, est disponible pour Joomla 2.5 et a une version gratuite.

Informations supplémentaires

  • package Premium: L'information décrite dans ce billet concerne une fonctionnalité du package dit "Premium"; voir liste des packages (lien Présentation du menu supérieur)
Lu 1536 fois Dernière modification le mardi, 27 mars 2012 11:46
Christophe

Christophe -Développeur de :

  • aeSecure; logiciel de protection de sites web Apache (Joomla, WP, Drupal, ...) http://aesecure.com
  • AllEvents; gestionnaire d'évènements pour Joomla

 

Site internet : allevents.avonture.be

5 Commentaires

  • Lien vers le commentaire jeudi, 08 septembre 2011 13:35 Posté par DaDou

    Ok, merci, je vais devoir faire avec, ou plutôt sans ;-)

    En tout cas, très beau travail sur allevent, bon courage pour la suite

  • Lien vers le commentaire Christophe Avonture jeudi, 08 septembre 2011 12:25 Posté par Christophe Avonture

    Non; comme je l'ai mentionné : ce sont des records CKForms; pas AE.

    Idem pour les albums photos : si tu utilises le plugin Album Photo, l'album PhocaGallery est un album phoca même si je l'affiche dans le frontend. La gestion de l'album se fait dans Phoca.

    L'intégration se passe dans le frontend; transparent pour l'utilisateur. Dans le backend, le composant d'origine reste maître pour la gestion de "son" record.

  • Lien vers le commentaire jeudi, 08 septembre 2011 12:07 Posté par DaDou

    Ok, merci de ta réponse rapide, il ni à pas la possibilité d'avoir les informations dans les 2 endroits ?

  • Lien vers le commentaire Christophe Avonture jeudi, 08 septembre 2011 12:06 Posté par Christophe Avonture

    C'est ... normal : il ne s'agit pas d'inscrits AllEvents mais bien des enregistrements de CKForms ==> il te faut aller dans la gestion de ton formulaire; dans CKForms et cliquer sur le bouton "voir les données".

  • Lien vers le commentaire jeudi, 08 septembre 2011 11:44 Posté par DaDou

    Bonjour,
    Allevent affiche bien les données du formulaire CKForms en frontend mais je ne les retrouve pas dans les inscrits du backend. Comment faire ?

Connectez-vous pour commenter. Attention, merci de ne pas poster des questions : veuillez utiliser le forum pour cela svp.