Community builder - créer une liste des communes de france... je vois pas comment

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Community builder - créer une liste des communes de france... je vois pas comment

    Bonjour,

    Ce qui m'intéresserait c'est d'avoir la liste des communes de france lors de l'inscription d'une personne;

    Seulement dans community builder, on rentre ligne par ligne les différents champs de la liste déroulante.

    Il y a 36 000 communes... cela risque de me prendre du temps.

    Si vous avez une idée ?

    Merci à vous, encore !

  • #2
    Re : Community builder - créer une liste des communes de france... je vois pas commen

    Salut
    Si tu as la liste de tes communes pour 36 000 il peut être intéressant de passer par le bdd directement
    Auto-entrepreneur spécialiste Joomla https://www.stylitek.com

    Joomladay 2023 https://www.joomladay.fr/ 2 jours à ne pas manquer

    Commentaire


    • #3
      Re : Community builder - créer une liste des communes de france... je vois pas commen

      Bonjour toffffe,

      Oui, j'ai bien pensé à la base de données... je n'ai pas la liste et si je l'avais je ne sais pas sous quel forme je pourrai facilement en faire une table de donneés... un fichier texte je ne vois pas comment m'épargner les copier coller par exemple.

      Après, pour la base de données de community builder, là où serait stockée les données, je ne sais pas quelle table alimenter :-(

      Commentaire


      • #4
        Re : Community builder - créer une liste des communes de france... je vois pas commen

        Tu peux trouver ça sur le site geonames.org, à cette adresse.
        Il s'agit du fichier fr.zip (4,7 Mo) qui une fois dézippé te donne un fichier (environ 20 Mo) avec une commune par ligne, les champs séparés par des tabulations, donc intégrable dans une table MySql ou utilisable dans LibreOffice ou Excel. Ce fichier comporte de très nombreux champs, tu auras sans doute à procéder à une cure d'amaigrissement.
        Lorsque l'on se cogne la tête contre un pot et que cela sonne creux, ça n'est pas forcément le pot qui est vide.
        Confucius

        Commentaire


        • #5
          Re : Community builder - créer une liste des communes de france... je vois pas commen

          Outch ! Merci beaucoup !

          Effectivement, il y a plein de villes et communes.

          Mais je ne sais pas quoi faire de ce fichier texte, comment l'intégrer dans phpmyadmin ? Importer un fichier texte ? Comment lui faire comprendre que chaque tabulation est une nouvelle entrée ? Je n'arrive pas non plus à discerner le nombre de champ qu'il me faut...

          A priori c'est possible, je viens de faire quelques recherches mais il me faut créer une table avec autant de champs que ceux présents dans le fichier texte. Seulement, je n'arrive pas à comprendre ce fichier texte et à voir le nombre de champs nécessaire....

          :-(

          Voici un extrait du fichier texte: FR.txt
          Dernière édition par gnosis à 23/10/2014, 09h15

          Commentaire


          • #6
            Re : Community builder - créer une liste des communes de france... je vois pas commen

            Autant pour moi : ce fichier contient trop de détails. Par contre celui-ci pourrait t'intéresser : http://www.webtrees.net/index.php/en...wdownload/4/33. C'est un zip contenant par région toutes les communes avec assez peu de détails, juste le code INSEE de la commune (malheureusement dans le même champ que le nom),le département et les coordonnées géographiques. Ça demande un peu de travail : fusion des différentes régions, split de la colonne 'Place', mais ça devrait être nettement plus simple que de saisir les 36000 communes à la main .
            Lorsque l'on se cogne la tête contre un pot et que cela sonne creux, ça n'est pas forcément le pot qui est vide.
            Confucius

            Commentaire


            • #7
              Re : Community builder - créer une liste des communes de france... je vois pas commen

              Bonjour,

              Une solution en vaut une autre, voici le principe (testé sur CB 2.0 ) :

              - création du champ ville dans community builder
              choisir type un champ liste (drop down single select)
              et saisir deux valeurs ( vous pouvez saisir le même nom de commune dans value et label )

              - Dans phpmyadmin, cliquer sur la table xxxx_comprofiler_field_values
              trouver la valeur de fieldid pour les villes ainsi que fieldvalueid.
              Notez bien ces 2 valeurs et supprimez uniquement ces lignes que vous aviez saisies
              ( cocher et effacer : http://prntscr.com/4ywbnq )

              - editer le fichier en pièce jointe qui contient la liste des communes pour CB avec un tableur comme Calc de libreoffice
              Important : remplacez la valeur de la colonne B par celle de fieldid trouvé dans phpmyadmin
              Commencer la colonne A par la prochaine valeur fieldvalueid, cette dernière étant unique, elle suit la numérotation définie dans la table. Les autres colonnes sont valeur, label, ordre d'affichage et système (comme dans phpmyadmin).
              - exportez le fichier au format csv (format UTF-8)

              - sous phpmyadmin editez la table comprofiler_field_values et importer le fichier csv.
              Si phpmyadmin bloque pour l'importation (normalement la taille est généralement acceptée mais le serveur a parfois du mal à suivre...), installer une version 30j de "navicat pour mysql" pour une version de votre site en local, l'importation fonctionnera à merveille ! (je cherche une solution alternative libre)

              résultat :
              dans l'édition utilisateur en backend : http://prntscr.com/4yw1sk
              Dans l'enregistrement en front : http://prntscr.com/4yw2nh

              Je vous invite bien évidemment à faire quelques tests et de pas travailler sur un site en production.

              A noter :

              Théoriquement, vous ne pourrez plus éditer ce champ en backend après l'importation des 36000 communes à moins d'augmenter la mémoire allouée dans php.ini.

              A titre professionnel, je fais ma propre requête mysql au lieu d'un champ liste dans l'édition du champ cb et je vais plus loin en associant le code postal aux communes (avec un peu de code javascript) mais c'est une toute autre histoire...
              Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

              Commentaire


              • #8
                Re : Community builder - créer une liste des communes de france... je vois pas commen

                OUah ! Déjà merci beaucoup ! Votre implication me... ouah ! Merci !

                Je réponds à chaud, Daneel je vais faire ce que tu me conseilles de faire... je n'ai pas encore testé.

                Je vois également que tu utilises community builder 2.0, j'ose te poser une question... je n'ai pas réussi - meme avec un joomla tout vierge - à présélectionner par défault une valeur d'une liste déroulante... je ne comprends pas pourquoi. Dans l'administration, il y a un champ réservé pour cela mais ça ne marche pas... Il s'agit d'une liste déroulante que j'ajoute à "contact_info", je ne sais pas si c'est important de le préciser.

                Merci encore à vous deux !

                Hum. Je lis rapidement, je vais prendre les choses doucement et vous faire part de l'évolution des choses... j'ai ouvert le fichier "comprofiler_field_value" avec Excel ... je n'ai qu'une colonne A de type Ex :

                "36669,54,Papaichton,Papaichton,36654,0"

                J'ignore la signification des chiffres. A priori, le code postal n'y figure pas mais cela n'est pas bien grave.

                Hum. Je vais m'y atteler ce soir ou demain.
                Dernière édition par gnosis à 23/10/2014, 17h30

                Commentaire


                • #9
                  Re : Community builder - créer une liste des communes de france... je vois pas commen

                  Ok Excel n'est pas LibreOffice et avec LibreOffice j'ai bien plusieurs colonnes... c'était pourtant bien précisé. Je continue demain.
                  Dernière édition par gnosis à 23/10/2014, 17h22

                  Commentaire


                  • #10
                    Re : Community builder - créer une liste des communes de france... je vois pas commen

                    Une liste avec 36000 choix ca fait pas un peu beaucoup?
                    Je n'ose pas imaginer l'inscription avec un smartphone...
                    Je dis ça, je dis rien.��
                    I love overrides
                    -------
                    UX/UI Designer - Grenoble - greendog.fr

                    Commentaire


                    • #11
                      Re : Community builder - créer une liste des communes de france... je vois pas commen

                      euh... les sites proposent souvent un choix de villes, non ?

                      Commentaire


                      • #12
                        Re : Community builder - créer une liste des communes de france... je vois pas commen

                        Envoyé par gnosis Voir le message
                        euh... les sites proposent souvent un choix de villes, non ?
                        oui, toutefois la liste ne doit pas en être mémoire au chargement de la page sinon le temps serait beaucoup trop long pour certaines connexions (le fichier ville fait plus d'1 Mo), le champ "ville" doit interroger la liste au fur et à mesure de la saisie en auto-complément ou lors de la saisie d'un autre champ comme le code postal.

                        Exemple de solution alternative :

                        Lors d'une inscription sous Joomla avec Community builder,
                        Au moment de la saisie du code postal, la ville apparait ainsi que la région.
                        Si le code postal est attribué à plusieurs villes, alors le champ ville se transforme en liste pour préciser la sélection.

                        Cela se gère uniquement en javascript avec un appel au format json.
                        Aucun téléchargement inutile, le temps de chargement de page est de 0,6 secondes en moyenne.

                        Capture d'écran de l'inscription (cb + joomla installé par défaut) :



                        Dernière édition par daneel à 24/10/2014, 09h35
                        Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

                        Commentaire


                        • #13
                          Re : Community builder - créer une liste des communes de france... je vois pas commen

                          Hum... effectivement c'est pas mal ça. Mais ça me semble plus compliqué. Vous me disiez qu'il s'agissait d'une "toute autre histoire" ... :-/

                          Je vais tenter avec les 36000 villes et voir le temps de chargement que cela peut mettre...
                          Dernière édition par gnosis à 24/10/2014, 12h01

                          Commentaire


                          • #14
                            Re : Community builder - créer une liste des communes de france... je vois pas commen

                            J'ai réussi... j'ai bien eu un problème pour importer depuis phpmyadmin et navicat for SQL a bien su importer les données... Merci.

                            Par contre, effectivement, la page d'enregistrement est un peu plus longue à se charger.

                            Et puis je suis pour le coup davantage intéressé par cette formule de code postale qui va trouver la ville directement... Est ce très compliqué à réalisée ?

                            J'imagine que cela demande des connaissance en javascript et en sql... lorsque je saisis le code postal dans le textbox la page n'est pas rechargée... hum. Une requete est réalisée à chaque nouveau caractère du code postal entré ?

                            Si vous pouviez me donner quelques pistes. Merci

                            Autre chose : community builder 2 ne conserve pas la valeur par défault désirée pour une liste déroulante lorsque que je la saisie pourtant depuis l'administration. Je ne comprends pas pourquoi. J'ai tenté de faire du forcing dans la base de donnée xxxx_comprofiler et le champ "default" mais rien à faire :-/
                            Dernière édition par gnosis à 24/10/2014, 11h58

                            Commentaire


                            • #15
                              Re : Community builder - créer une liste des communes de france..

                              Ok, inutile de "multiposter" la même question sur le "Default Registration Value". Jisse a déjà
                              donné une réponse et je n'ai pas eu le temps de vérifier, je n'ai pas plus d'élément à ajouter
                              pour le moment sur ce sujet.

                              Pour continuer sur les codes postaux et comme tu le demande, je te donne une solution qui fonctionne
                              au plus simple ! Elle se base sur une requête vers une base de données externe nommé ziptastic : http://www.getziptastic.com/

                              Le principe est d'envoyer la demande en temps réel lors de la saisie du code postal via un code javascript qui transmet l'info via une url :
                              par exemple : http://zip.getziptastic.com/v2/FR/44000
                              (44000 étant le code postal qui est saisi dans le champ du même nom)
                              Le code javascript remplace les champs vides (ville, région) par les valeurs qu'il récupère au format json.

                              Donc pour que cela fonctionne :

                              Il faut que jquery soit chargé en front (normalement c'est ok sur joomla 3).

                              1. Créer 5 champs dans Community Builder:
                              Nom : cb_zip / Titre : Code postal / Champ texte
                              Nom : cb_city / Titre : Ville / Champ texte
                              Nom : cb_state / Titre : Région / Champ texte
                              Nom : cb_country / Titre : Pays / Champ texte
                              Nom : codehtml / Titre : code html / Custom html


                              2. Copier le code suivant dans le champ codehtml :

                              Code:
                                      <script type="text/javascript" src="jquery.ziptastic.js"></script>
                                      <script type="text/javascript">
                                          (function($) {
                                              $(function() {
                                                  var duration = 500;
                              
                                                  var elements = {
                                                      country: $('#cb_country'),
                                                      state: $('#cb_state'),
                                                      state_short: $('#cb_stateshort'),
                                                      city: $('#cb_city'),
                                                      zip: $('#cb_zip')
                                                  }
                              
                                                  // Initially hide the city/state/zip
                                                  elements.country.parent().hide();
                                                  elements.state.parent().hide();
                                                  elements.state_short.parent().hide();
                                                  elements.city.parent().hide();
                              
                                                  // Initialize the ziptastic and bind to the change of zip code
                                                  elements.zip.ziptastic()
                                                      .on('zipChange', function(evt, country, state, state_short, city, zip) {
                                                          // Country
                                                          elements.country.val(country).parent().show(duration);
                              
                                                          // State
                                                          elements.state_short.val(state_short).parent().show(duration);
                                                          elements.state.val(state).parent().show(duration);
                              
                                                          // City
                                                          elements.city.val(city).parent().show(duration);
                              
                                                      });
                                              });
                                          }(jQuery));
                                      </script>
                              Editer ce champ code html, celui-ci ne doit pas être chargé dans le profil et ne doit pas comporter de titre, éditer les paramètres comme sur l'image : http://prntscr.com/4zkjo5

                              Attention les noms des champs textes reprennent automatiquement le titre précédé de cb_
                              Il faut absolument que les noms soient identiques à ceux écrits dans le code donc respectez bien l'écriture.

                              3. Télécharger l'archive en pièce jointe, décompresser et coller le fichier jquery.ziptastic.js à la racine du site.

                              Voila ! Rapidement, on aura donc le même résultat que dans la capture d'écran animée.

                              J'ai simplifié au mieux la démarche n'hésitez pas à faire un retour ou me corriger si j'ai omis quelques chose.

                              Pour infos :

                              - le code javascript peut s'améliorer par exemple si 2 villes ont le même code postal. Dans ce cas, il faudrait interroger une autre base comme http://www.cp-ville.com et adapter le code (je laisse cela aux pro du javascript) . Ici l'utilisateur a toujours la possibilité d'éditer la ville et de corriger le problème directement, une moindre difficulté vu le confort du pré-remplissage.

                              - le fichier jquery.ziptastic.js est à la racine mais on peut aussi le déplacer, il faudra cependant redéfinir le chemin dans le code javascript.

                              - getziptastic.com est un service gratuit mais je ne sais pas si celui-ci sera toujours disponible, heureusement on peut aussi récupérer le site complet (avec la base de données) pour le recréer et disposer de votre propre solution de base code postaux, villes, région, pays ( disponible sur github : https://github.com/joshstrange/Ziptastic )
                              Fichiers joints
                              Dernière édition par daneel à 25/10/2014, 16h23
                              Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

                              Commentaire

                              Annonce

                              Réduire
                              Aucune annonce pour le moment.

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X