Plugin Coordonnées

Le plugin « Coordonnées » fournit la possibilité d’attribuer aux objets de SPIP des indications de coordonnées multiples tel que plusieurs adresses postales, emails, numéros de téléphone ou réseaux sociaux.

Ce plugin fonctionne de manière autonome ou peut être couplé au plugin « Contacts et Organisations ».

Vous pouvez accéder directement aux nouveautés concernant ce plugin.

Objectif

Ce plugin a pour objet de compléter les informations relatives aux auteurs par des éléments de contact, tel que des adresses postales, emails ou téléphoniques.

Origine

Ce plugin est né du projet « Contacts & Organisations » (avec la même finalité) dont il est une sous-partie fonctionnant de manière autonome.

Ce qui le différencie de plugins existants actuellement pour étendre les auteurs (Inscription2 par exemple) est le fait que l’on peut attribuer, pour un auteur donné, autant d’adresses que souhaité, ce qui était, pour certains, une limitation.

Fonctionnement

« Coordonnées » utilise 3 tables liées aux auteurs : une table adresses, une table emails et une table numeros sur lesquelles il est possible de faire des boucles :

<BOUCLE_auteur(AUTEURS){id_auteur}>
	<h2>#NOM :</h2>
	<BOUCLE_adresses_auteur(ADRESSES){id_auteur}>
		#NUMERO #VOIE<br />
		#COMPLEMENT<br />
		#CODE_POSTAL #VILLE
	</BOUCLE_adresses_auteur>
</BOUCLE_auteur>

Dans l’espace privé, la vue des auteurs permet d’attribuer des adresses :

Le formulaire est ajouté simplement en dessous. Les champs par défaut peuvent être complétés avec le plugin Champs Extras 2, comme ici le champ « région » :

Une fois l’adresse complétée, elle s’affiche sur la vue de l’auteur :

Champs

Les 3 types de coordonnées fournissent les champs suivants (extensibles avec le plugin Champs Extras 2) :

  • Boucles ADRESSES
    • #ADRESSE
    • #VOIE
    • #COMPLEMENT
    • #BOITE_POSTALE
    • #CODE_POSTAL
    • #VILLE
    • #REGION
    • #PAYS
    • #TITRE
    • #TYPE lorsqu’on fait un lien avec un objet SPIP
  • Boucles EMAILS
    • #EMAIL
    • #TITRE
    • #TYPE lorsqu’on fait un lien avec un objet SPIP
  • Boucles NUMEROS
    • #NUMERO
    • #TITRE
    • #TYPE lorsqu’on fait un lien avec un objet SPIP

Il est possible d’utiliser des réseaux sociaux via le plugin http://zone.spip.org/trac/spip-zone/browser/_plugins_/rezosocios/trunk

Dépendances

La version 1.1 du plugin nécessite SPIP 2.1 ainsi que :
-  Saisies
-  le plugin « Pays » ou le plugin « Géographie »

Nouveautés !

Depuis la version 1.4.5 le plugin Coordonnées permet d’attribuer de adresses, numéros de téléphone et adresses mail à d’autres objets que des auteurs. Pour ce faire, il suffit d’aller directement sur la page « ?exec=configurer_coordonnees » (ou en passant par le bouton configuration > Gestion des plugins > Coordonnées, puis cliquer sur le petit bouton « configurer » :

On peut alors choisir les objets « coordonnables »...

Expérimentation de la version 2.3.5

Cette version a essayé l’intégration des réseaux sociaux au même titre que les autres type de coordonnées.
Aprés discussion sur la liste de developpement, il a été constaté qu’il était plus pertinent de s’appuyer sur le plugin rezosociaux

Discussion

46 discussions

  • 2

    Bonjour.

    Je vois qu’il il y a un champ type qui est ajouté aux tables de liaisons. Pour quel usage est-il prévu ? A priori ça fait doublon avec le champ titre dans les tables principales non ?

    Merci.

    • Bonsoir.

      En fait, c’est bien deux choses distinctes (et le modèle de données est bien pensé) mais à l’époque j’ai utilisé les titres comme des tyes car c’était mon besoin. J’ai depuis ce temps migré les valeurs dans les bons champs (ça commençait à être problématique quand un type de coordonnée en était un autre pour ceux qui partagent la même coordonnée). Mais il manque toujours l’interface... J’ai rajouté cela récemment. Cependant, à l’édition, je n’arrive pas à récupérer le type renseigné (j’ai pourtant modifié les appels pour inclure cette valeur d’environnement et j’ai veillé que ce soit chargé dans le contexte... je ne sais pas ce que j’ai oublié, à moins que je n’utilise mal la saisie selection)

      Merci pour toute aide.

    • RastaPopoulos m’a fait découvrir le problème : n’étant pas présent dans l’environnement. ce n’est donc pas transmis par l’URL comme je me suis imaginé... Le souci est maintenant réglé (moyennant une requête supplémentaire au chargement du formulaire)  :-)

      J’en ai profité pour iconiser dans les listes affichées. (mais faudra trouver de jolies icônes... ceci dit chaque thème peut surcharger et les modèles peuvent même adopter d’autres tailles).
      Ceci amène une question : faut-il considérer cela comme une nouvelle fonctionnalité ? (je voyais plutôt une correction puisque les types ont été introduits il y a un bout de temps mais c’est juste que l’interface d’édition —surtout— n’avais pas suivi et que j’ai voulu corriger cet état de fait)

      Merci.

    Répondre à ce message

  • 1

    J’ai découvert l’extension aux objets autres que les auteurs un peu par hasard (j’avais un formulaire du même nom qui une fois retiré de son dossier a provoqué l’affichage du formulaire natif...)

    1. Je pense qu’il serait bien que parmi les objets natifs de Spip auxquels on peut lier des coordonnées il y ait aussi les sites...
    2. Ce serait bien aussi que d’autres plugins puissent en profiter simplement et donc qu’il y ait un pipeline (si c’est déjà le cas, alors c’est la documentation qui fait défaut)
    • Bientôt un an... Entre-temps je vois que c’est mentionné dans la documentation en ligne comme nouveauté de la 1.4.5. Je me suis permis de rajouter les sites (un besoin perso de l’époque, sauf que j’avais dû me passer de la belle interface) et les brèves (bof, juste comme ça).

      Voilou voilà

    Répondre à ce message

  • 1

    Bonjour,
    merci pour ce plugin.
    je veux installer le v148 sur un spip 3.0 mais il n’est pas compatible (message d’alerte dans le gestionnaire de plugin de spip).
    Ou trouver une version pour spip 3.0 ?
    Merci

    • Pareil !
      Est-ce que ce n’est pas juste un oubli de changement de la borne max dans plugin.xml ?
      (je préfère ne pas essayer à la mano)

    Répondre à ce message

  • 2

    merci pour ce plugin, que j’utilise couplé avec le plugin associaspip.

    Comme je voulais entrer les coordonnées de 200 membres, j’ai utilisé importCVS, mais si je modifie la table spip_numeros, cela ne modifie pas les auteurs.

    Après test, les id de la table spip_numeros ne sont pas les id des auteurs, mais sont incrémentés au fur et à mesure. Où se fait la correspondance entre les tables numeros et auteurs ?

    Je n’ai pas réussi à trouver où c’était.

    • spip_numeros_liens :
      id_numero est spip_numeros.id_numero
      objet est ’auteur’ et id_objet est spip_auteurs.id_auteur

    • merci !
      en fait, j’utilisais le plugin CSVimport, et la table n’était pas visible (car c’est une table de jointure).

      J’ai donc modifié le fichier mes_options.php en ajoutant

      $GLOBALS['csvimport_tables_jointures'] = true;

      Et c’était bon.

      Merci

    Répondre à ce message

  • 5

    Bonjour,

    Je viens de me rendre compte d’un petit problème, mais peut-être la solution est toute simple.

    Lorsque j’effectue une recherche sur un auteur, comment faire pour que la recherche se fasse également dans les tables coordonnées et organisations ?

    Voici ma page http://www.jqsi.qc.ca/spip.php?rubrique100

    On voit dans la liste plusieurs organismes situées à Montréal. Dans le moteur de recherche, situé au-dessus des drop down menus, lorsque je tape « Montréal », il n’y a que l’organisme ayant une adresse courriel montreal@.....org qui apparaît. http://www.jqsi.qc.ca/spip.php?page=rubrique&id_rubrique=100&recherche=montr%C3%A9al&x=0&y=0&var_mode=recalcul

    Avez-vous une idée comme faire une recherche dans la table auteurs, organisations et coordonnées en même temps ?

    Voici le code que j’utilise :

    <B_mots_auteurs>
            <div class="menu articles">
              <br />
                <h1>Tous les organismes <BOUCLE_le_mot(MOTS){id_mot}>[&#171;&thinsp;(#TITRE)&thinsp;&#187; ]</BOUCLE_le_mot>[&#171;&thinsp;(#RECHERCHE)&thinsp;&#187; ][&#171;&thinsp;(#ID_LETTRE)&thinsp;&#187;]</h1>
            	<ul>
                <BOUCLE_mots_auteurs(AUTEURS){id_mot?}{recherche?}{nom==^#ENV{id_lettre}}{par nom}{tous}>
                    <BOUCLE_aut(ORGANISATIONS){par nom}{id_auteur}>
                        <BOUCLE_auteur(AUTEURS){id_organisation}{tous}>
                        <li>
                            [(#LOGO_AUTEUR{right}|image_reduire{0,50})]
                            <h3><a href="#URL_AUTEUR">#NOM</a></h3>
                            <small>
                                <BOUCLE_adresses_auteur(ADRESSES){id_auteur}>
                                    [<div class="item #EDIT{titre}">(#TITRE)</div>]
                                    [<div class="item #EDIT{voie}">(#VOIE)</div>]               
                                    [<div class="item #EDIT{boite_postale}">(#BOITE_POSTALE)</div>]
                                    [<div class="item #EDIT{complement}">(#COMPLEMENT)</div>]
                                    <div>[<span class="item #EDIT{ville}">(#VILLE)</span>][ <span class="item #EDIT{code_postal} cp"> (#CODE_POSTAL)</span>][ <span class="item #EDIT{PAYS}">(#PAYS)</span>]</div>
                                </BOUCLE_adresses_auteur>
                                <BOUCLE_numeros_auteur(NUMEROS){id_auteur}>
                                    [<div>[<span class="item #EDIT{type_numero}">(#TYPE_NUMERO): </span>]<span class="item #EDIT{numero}">(#NUMERO)</span></div>]  
                                </BOUCLE_numeros_auteur>
                                [<div class="#EDIT{email}"><a class="spip_mail" href="[mailto:(#EMAIL)]">(#EMAIL)</a></div>]
                                <BOUCLE_emails_auteur(EMAILS){id_auteur}>
                                    [<div class="item #EDIT{type_numero}">(#TYPE_EMAIL)</div>]
                                    [<div class="item #EDIT{EMAIL}"><a class="spip_mail" href="[mailto:(#EMAIL)]">(#EMAIL)</a></div>]               
                                </BOUCLE_emails_auteur>
                                [<div class="#EDIT{hyperlien} hyperlien"><a href="(#URL_SITE)" class="url org spip_out">[(#URL_SITE|couper{80})]</a></div>]
                             </small>
                        </li>
                        </BOUCLE_auteur>
                        </BOUCLE_aut>
                </BOUCLE_mots_auteurs>
            	</ul>
                </div>
            </B_mots_auteurs>
    • les champs des tables du plugin ne sont pas déclarés « cherchables » (les recherches sont faites en base de données et non dans les pages finales) ce qui est normal dans beaucoup de cas (on gère par exemple des coordonnées privées et on n’aimerait pas que n’importe qui ait accès à ces informations depuis le net...) Peut-être à terme cela pourra être une option de configuration (on cocherait les champs sur lesquels on aimerait que la recherche puisse se faire —par exemple les noms de municipalité mais pas directement les adresses municipales ou les casiers postaux ?) Mais cela pose un autre problème : à l’heure actuelle, la recherche (il faudra modifier le squelette de la page pour prendre en compte les adresses) dans Spip concerne les objets autonomes : il te faudra donc une page dédiée aux adresses (tout comme tu en as une pour les articles ou les rubriques) car la recherche ne saura pas gérer ce genre d’inclusion dans ton squelette... (les recherches internes par Spip ne sont pas faites au sein de la page générée mais dans les données brutes des tables)

    • Au fait, tu sembles utiliser les crayons dans tes pages (je vois dans les classes du squelette des #EDIT{xxx} d’où cette déduction). Est-ce que ça fonctionne bien dans ce cas ?

      Par rapport à ton problème initial, il est possible de proposer aux visiteurs, la recherche via un moteur de recherche (Yahoo ! ou Google par exemple) qui indexe bien tes pages. Comme la recherche se fait textuellement dans les pages finales, ça résoudra le souci :)

    • Bonjour gilcot,

      Pour le crayon et les #EDIT{xxx} ça fonctionne très bien.

      Merci pour les infos concernant les tables. L’idée de développer une case à cocher permettant de choisir si les champs sont indexables ou non me semble très promoteur.

      Zaa

    • Rebonjour,

      Gilcot, je me demandais comment puis-je modifier les champs dans la BD pour qu’ils soient indexables par spip ? Est-ce une opération simple ?

      Merci

    • Bonjour zaa

      Normalement ce sont les plugins qui s’en occupent... (c’est pour cela que je parlais d’en faire une option si elle est intégrée un jour...) Mais Spip 2.x est assez souple et on peut avoir sa propre configuration qui étend ou surcharge celle des plugins. La facilité de la chose dépend des compétences et de l’expérience de chacun.
      Regarde cette discussion pour commencer : http://www.mail-archive.com/spip-zone@rezo.net/msg12262.html

    Répondre à ce message

  • 13

    Bonjour,

    J’ai posté un message sur le forum du plugin contact et organisations. Je le poste à nouveau ici en espérant trouver de l’aide.

    Lorsque j’encode un nouvel enregistrement (par ex : une nouvelle adresse) il m’est retourné « Nouvelle adresse noajax » (voir image associée) et l’enregistrement ne se fait pas au niveau de la base de donnée.

    J’ai essayé en désinstallant les plugins un à un mais rien à faire, l’erreur persiste. Par contre lorsque je supprime le fichier« mes_fonctions.php » je peux alors insérer un nouvel enregistrement. Si je laisse le fichier « mes_fonctions.php » même si celui-ci ne comporte aucun script (c-à-d un fichier vide) alors de nouveau je ne peux pas insérer un nouvel enregistrement. Avez-vous une piste pour m’aider à débugger.
    J’aurais bien besoin du plugin.

    • Bonjour Eric, je n’arrive pas à reproduire ton bug sur aucun des sites que j’utilise avec Coordonnées ; je suis quasi certain que ça ne vient pas du plugin. As-tu essayé d’installer un SPIP propre vide, avec seulement coordonnées (et ses dépendances), puis d’ajouter un auteur et une nouvelle adresse pour cet auteur ?
      A te lire,
      Cyril

    • Bien, j’ai lancé un spip tout propre tout fonctionne bien jusqu’au moment où je place mon dossier squelette. Et là, le fichier mes_fonctions.php pose problème... Je vais continuer à chercher. Merci Cyril.

    • marcimat

      Ah, c’est très simple : un espace / saut de ligne en trop avant <?php ou après ?>

      Matthieu.

    • C’est trop grave, j’ai cherché des heures...pffff.... Enfin, c’est comme ça qu’on apprend !... Merci Cyril, ça marche impec !

    • ... et Matthieu. C’est lui qui t’a trouvé la solution ;-)

    • Oups.... Oui, en effet, un grand merci à Matthieu... Morale de l’histoire toujours lire l’auteur du post !!

    • Bonjour,
      je reprends le fil car c’est approchant.

      lorsque je veux ajouter une adresse/telephone/mail, l’encart se referme après avoir afficher la roue de chargement et revient à l’état initial sans formulaire

      Si je désactive le javascript sur mon firefox je tombe bien sur le formulaire dédié. Firefox n’indique pas d’erreur js.

      J’ai retiré mes_fonctions et mes_options
      Sur un spip 3, avec juste coordonnées/pays et saisie

      Il n’y a que moi ?

    • J ai le même souci mais en SPIP 2.1.10... tu n’es pas tout seul !!

    • Maxime MAIGNAN

      Bonjour

      Je rencontre le même problème qu’Acatonne et Phil.

      J’ai désactivé les autres plugins mais le le bug persiste. Dans l’html, la boite contenant l’ajax du plugin se trouve dans un
      div class=« ajaxbloc env- [chaine de caractère inintelligible] ».
      En supprimant avec firebug la chaîne de caractère inintelligible, j’accède au formulaire en cliquant sur le lien, la saisie et l’enregistrement se déroule normalement. Je ne sais pas ce qui génère cette chaine de caractère apparemment inutile.

    • Problème identique que Acatonne, Phil, Maxime. Le dépliant fonctionne un instant uniquement. J’ai coordonnées ainsi que contact et org. Je vais remonter les commit et trouver ce qui coince.

    • Le site qui retient l’erreur est en 2.1.10. Celui d’acatone en v3. Ce n’est donc pas un problème de version.

      J’ai une erreur provenant de contacts_et_organisations :

      Critère inconnu id_auteur	../plugins/auto/contacts_et_organisations/prive/boite/selecteur_contacts_organisations.html	_est_une_organisation	16

      on dirait que l’id auteur n’est pas transmis. Toutefois je ne vois pas de lien possible. Quelqu’un a cette erreur ?

    • Il faudrait que vous donniez à quelqu’un un accès sur un SPIP en ligne qui rencontre ce problème. Ça permettrait de voir un peu plus ce qui se passe.

    Répondre à ce message

  • 5

    Il serait intéressant de stocker le code ISO 3166-1 (FR, MX, US, etc.) dans le champ « pays » plutôt qu’un id SQL. Ça permettrait de faire sauter la dépendance stricte au plugin pays. Dans plein de cas il est suffisant, voire appréciable, de disposer directement d’un code ISO. Libre aux gens ensuite de manipuler ce code comme bon leur semble, que ce soit avec le plugin Pays, des chaînes de langues, une utilisation directe du code ISO, etc.

    Dans la même veine, il faudrait aussi fournir un champ « région » ou « état », correspondant au code ISO 3166-2 (FR-75, MX-OAX, US-CA, etc.), également très utile.

    Le problème est bien sûr la transition vers ce modèle, car sur les sites existants, la colonne pays contient maintenant des numéros...

    • pour l’utilisation des code ISO, c’est fait depuis la version 1.3 \o/ et la migration est prévue aussi.
      ce qu’il faudrait maintenant, c’est supprimer la dépendance (je crois « utilise » au lieu de « necessite » ?) au plugin pays... s’il est présent, on continue comme maintenant en affichant une liste déroulante et le libellé « pays » ; s’il n’est pas présent on affiche une simple ligne de texte (limitée à 2 caractères) et le libellé « code pays »

      pour les départements/états il y a déjà un champs qui pourrait convenir à cela : celui appelé boite_postal (que j’aurais baptisé plutôt « region ») et libellé « boîte postale » (qui n’a pas de raison d’être séparé... mais bon, pour contenter tout le monde le libellé pourrait être « B.P./état/dépt. »...)

      toujours à propos de l’interface de saisie des adresses postales :
      le champ « voie », libellé « adresse », ne devrait pas être une ligne (inpui text) mais un bloc (textarea) de 3 à 5 lignes
      les champs « code_postal » et « boite_postale » devraient avoir une zone de saisie limitée à dix (10) caractères pour avertir (indépendamment de tout contrôle)

    • j’avais oublié en passant... concernant l’internationalisation, il serait bien d’afficher (puis plus tard de générer et imprimer les étiquettes) les élément s des adresses selon l’ordre attendu pour un bon traitement du courrier.
      j’ai pensé initialement que ça pourrait être une liste déroulante dans laquelle l’utilisateur choisirait (et donc un champ supplémentaire dans table des adresses) ; mais le formatage étant propre à un pays, il faudrait que l’information soit plutôt indiqué dans la table des pays (ce qui automatise le traitement et garde l’interface simple avec une information de moins à demander à l’utilisateur), mais ce sera toujours une liste de possibilités :

      • complement ; voie ; boite_postale ; code_postal ville (par défaut, recommandations de l’IUT)
      • complément ; voie ; boite_postale ; code_postal ville (cas de la France, et les CEDEX font partie de l’intitulé de la localité dont ils sont à la fin)
      • complement ; voie ; ville code_postal (Allemagne et Belgique)
      • complement ; voie ; code_canton-code_postal ville (Suisse)
      • voie ; complement ; ville code_postal ; nom_region (Indonésie)
      • cemplement ; voie ; code_postal ville ; nom_province (Italie)
      • voie ; complement ; boite_postale ; code_postal ville (Portugal)
      • complément ; voie ; code_postal, code_region ville (Canada)
      • complement ; voie ; code_region, ville code_posal (États-Unis)
      • complement ; boite_postal ; voie ; ville ; code_postal (Angleterre)
      • etc. cf 41 cas : http://en.wikipedia.org/wiki/Addres...

      cette fonctionnalité de la mort me semble assez facile à mettre en place. on peut utiliser une liste/table annexe (plus flexible et évolutif, mais plus contraignant à maintenir et moins simple à coder) ; ou on peut avoir une colonne de la table pays qui reprend les colonnes de la table adresse dans l’ordre où on doit les présenter et le formatage (dans mes exemple j’ai utilisé le point-virgule pour séparer les lignes, sachant que la virgule et le tiret sont utilisés dans le formatage quand des éléments/champs sont groupés...)

    • ps : penser à mettre à jour l’article... (au sujet des balises et des captures d’écran)
      les type_... n’existe plus, c’est désormais titre (j’ai cherché un petit bout de temps...)
      il n’y a plus de numéro non plus : c’est directement intégré à la voie (on gagne plus qu’on perd à l’usage)

      ps2 : si j’en crois la capture d’écran, apparemment il y avait « région » qui était prévu au départ (en plus de « boîte postale »)... pourquoi a t-il disparu ? :(

    • je suggérais :

      ce qu’il faudrait maintenant, c’est supprimer la dépendance (je crois « utilise » au lieu de « necessite » ?) au plugin pays... s’il est présent, on continue comme maintenant en affichant une liste déroulante et le libellé « pays » ; s’il n’est pas présent on affiche une simple ligne de texte (limitée à 2 caractères) et le libellé « code pays »

      toujours à propos de l’interface de saisie des adresses postales :
      le champ « voie », libellé « adresse », ne devrait pas être une ligne (inpui text) mais un bloc (textarea) de 3 à 5 lignes
      les champs « code_postal » et « boite_postale » devraient avoir une zone de saisie limitée à dix (10) caractères pour avertir (indépendamment de tout contrôle)

      ceci peut se faire aisément... voici le modèle editer_adresse modifié dans ce sens :

      <div class='formulaire_spip formulaire_#FORM formulaire_#FORM-#ENV{id_adresse,nouveau}'>
      
      
      
      	[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV**{message_ok})</p>]
      
      	[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
      
      
      
      	[(#ENV{editable}|oui)
      
      		<form method='post' action='[(#ENV{action})]'><div>
      
      			#ACTION_FORMULAIRE{#ENV{action}}
      
      			<input type='hidden' name='id_adresse' value='#ENV{id_adresse}' />
      
      			<input type='hidden' name='objet' value='#ENV{objet}' />
      
      			<input type='hidden' name='id_objet' value='#ENV{id_objet}' />
      
      			<ul>
      
      			  [(#CONFIG{coordonnees_types_adresses}|?{
      
      				[(#SAISIE{select,	titre,	label=<:coordonnees:label_titre:>,	option_datas=#CONFIG{coordonnees_types_adresses} })]
      
      			  ,
      
      				[(#SAISIE{input,	titre,	label=<:coordonnees:label_titre:> })]
      
      			  })]
      
      				[(#SAISIE{textarea,	voie,	label=<:coordonnees:label_voie:>,	rows=4 })]
      
      				[(#SAISIE{input,	complement,	label=<:coordonnees:label_complement:> })]
      
      				[(#SAISIE{input,	boite_postale,	label=<:coordonnees:label_boite_postale:>,	defaut=#CONFIG{coordonnees_boite_postal},	maxlength=10,	size=10 })]
      
      				[(#SAISIE{input,	code_postal,	label=<:coordonnees:label_code_postal:>,	defaut=#CONFIG{coordonnees_code_postal},	maxlength=10,	size=10 })]
      
      				[(#SAISIE{input,	ville,	label=<:coordonnees:label_ville:> ,	defaut=#CONFIG{coordonnees_nom_localite} })]
      
      				[(#SAISIE{input,	region,	label=<:coordonnees:label_region:>,	defaut=#CONFIG{coordonnees_code_region} })]
      
      			  [(#PLUGIN{pays}|?{
      
      				[(#SAISIE{pays,	pays,	code_pays=oui,	label=<:coordonnees:label_pays:>,	defaut=#CONFIG{coordonnees_code_pays,FR} })]
      
      			  ,
      
      				[(#SAISIE{input,	pays,	label=<:coordonnees:label_pays:>,	defaut=#CONFIG{coordonnees_code_pays,FR},	explication=<coordonnees:code_ISO-3166-1:>,	maxlength=2,	size=2 })]
      
      			  })]
      
      			</ul>
      
      			[(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
      
      			<!--extra-->
      
      			<p class='boutons'>
      
      				<input type='submit' class='submit' name='enregistrer' value='<:bouton_enregistrer:>' />
      
      			</p>
      
      
      
      		</div></form>
      
      	]
      
      </div>

      (concernant la région, j’ai créé ce champs dans ma base de données, et l’enregistrement se fait bien ; c’est juste qu’il n’est pas affiché par défaut... le mieux est de virer cette ligne du modèle et de gérer cela avec champs_extra2 pour l’instant)
      les valeurs par défaut, stockées dans la table spip_meta, sont supportées par le modèle ; il ne reste plus qu’à prévoir le formulaire CFG pour les gérer ;-)

    • pardon, formulaire CVT et non modèle... (justement dans prive/boite/coordonnees.html, on pourrait plutôt appeler des modeles/coordonnes_xxx.html au lieu d’inclure prive/liste/xxx.html ; avec l’avantage de permettre d’adapter plus facilement l’affichage aux modifications des formulaires)

      dans le même esprit, j’ai besoin des indicatifs téléphonique internationaux que j’ai rajouté à la table spip_pays ; et j’ai modifié le formulaire editer_numero comme suit :

      <div class='formulaire_spip formulaire_#FORM formulaire_#FORM-#ENV{id_numero,nouveau}'>
      
      	[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV**{message_ok})</p>]
      	[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
      
      	[(#ENV{editable}|oui)
      		<form method='post' action='[(#ENV{action})]'><div>
      			#ACTION_FORMULAIRE{#ENV{action}}
      			<input type='hidden' name='id_numero' value='#ENV{id_numero}' />
      			<input type='hidden' name='objet' value='#ENV{objet}' />
      			<input type='hidden' name='id_objet' value='#ENV{id_objet}' />
      			<ul>
      			  [(#CONFIG{coordonnees_types_numeros}|?{
      				[(#SAISIE{select,	titre,	label=<:coordonnees:label_titre:>,	option_datas=#CONFIG{coordonnees_types_numeros} })]
      			  ,
      				[(#SAISIE{input,	titre,	label=<:coordonnees:label_titre:> })]
      			  })]
      			  [(#PLUGIN{pays}|?{
      				[(#SAISIE{pays,	pays,	code_pays=oui, label=<:coordonnees:label_pays:>,	defaut=#CONFIG{coordonnees_code_pays,FR} })]
      			  ,
      				[(#SAISIE{input,	pays,	label=<:coordonnees:label_pays:>,	defaut=#CONFIG{coordonnees_code_pays,FR},	explication=<coordonnees:code_ISO-3166-1:>,	maxlength=2,	size=2 })]
      			  })]
      				[(#SAISIE{input,	region,	label=<:coordonnees:label_indicatif:>,	defaut=#CONFIG{coordonnees_indicatif_region},	maxlength=10,	size=10 })]
      				[(#SAISIE{input,	numero,	label=<:coordonnees:label_numero:> })]
      				[(#SAISIE{input,	poste,	label=<:coordonnees:label_poste:>,	maxlength=3,	size=3 })]
      				[(#SAISIE{textarea, horaires,	label=<:coordonnees:label_horaires:>,	rows=3 })]
      			</ul>
      			[(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
      			<!--extra-->
      			<p class='boutons'>
      				<input type='submit' name='enregistrer' value='<:bouton_enregistrer:>' />
      			</p>
      
      		</div></form>
      	]
      </div>

      les derniers champs (poste et horaires) devraient être typiquement gérés par « champs extra2 » ; mais l’interface est manquante (il voit et gère bien les adresses, mais pas les numéros)

    Répondre à ce message

  • 3

    Bonjours

    débutant dans l’utilisation de spip, je dois ajouter un module d’annuaire d’associations, musées et autres organismes sur un site sous spip 2.1.8. J’ai donc voulu employer ce plugin (conjointement au plugin Contacts et Organisations).
    L’installation du plugin c’est effectuée sans soucis. Cependant, quand je veux ajouter une adresse/ un mail/ un numero de tel, j’ai bien le formulaire, mais à la validation rien n’est ajouté dans la base.

    (le site n’est pas hébergé pour le moment)

    cordialement,
    Nico

    • Après test et « épluchage » du code, il semblerais que ce soit le traitement lors de la validation qui ne s’effectue pas correctement.
      en passant pas un phpmyadmin pour ajouter directement dans la base, je peux ensuite éditer les adresse/num/mail, et dans ce cas la validation fonctionne. seul le cas d’un ajout de nouvelle adresse (ou mail ou numero) pose problème.

    • Finalement, j’ai simplement mis en commentaire la ligne
      redirige_url_ecrire() ;

      dans la fonction action_editer_email_dist (ou téléphone, ou adresse) se trouvant dans action/edit_email.php (ou téléphone, ou... bref, vous m’avez compris ^_^)

      du coup, je peut enfin ajouter mes numeros et autres données de contact.

    Répondre à ce message

  • 1

    Salut Matthieu.

    J’utilise le formulaire d’edition d’adresse dans l’interface publique. Les membres de mon asso remplissent d’eux même ce champs.

    Est-ce que je peux corriger le champs « Le type peut être ’perso’ ou ’pro’. » Et mettre un champ déroulant avec les deux options ? Ou y a-t-il une contrindication ?

    ++

    • Huuu j’ai rien dis, le formulaire plante un peu après la validation : celui-ci affiche la page de rédaction interne de l’auteur dans le site public. Pourtant j’ai mis ceci :

      #FORMULAIRE_EDITER_ADRESSE{#ID_AUTEUR,#SELF}

      Que manque-t-il à cette balise de formulaire pour que cela fonctionne ?

    Répondre à ce message

  • 5

    Bonjour,

    Avec SPIP 2.1.2 [16017] et Coordonnées 1.1.1 [41584], sur exec=auteur_infos, quand je clique sur Ajouter une adresse, un téléphone ou un email, il ne se passe rien. Pourtant, sur ?exec=adresse_edit&objet=auteur&id_objet=XX&id_adresse=new&retour=..., cela fonctionne.

    Une idée ?

    • Avec SPIP 2.1.8 [16966] et Coordonnées 1.1.1 [41584], j’ai toujours le même binz.

      Pour contourner temporairement le problème, j’ai modifié cop_pipelines.php à la ligne 20 :

      $flux['data'] .= recuperer_fond('prive/boite/coordonnees', $contexte, array('ajax'=>false));

      Avec ajax à false, j’accède normalement à la page d’ajout d’une adresse.

    • Je pense que tu as une erreur javascript dans ton interface privée. Tu peux certainement la voir avec Firefox et l’extension Firebug d’ouverte.

    • Oui, probablement, mais je suis une nouille en javascript et que je n’ai jamais utilisé firebug en ce sens.

      Quand je charge la page ?exec=auteur_infos&id_auteur=x, il me dit Break on error. matches is undefined. Line 2237

      +/- le contexte qu’il m’affiche à ce moment-là :

      (function(){
      var html=document.documentElement,
      matches=html.matchesSelector||html.mozMatchesSelector||html.webkitMatchesSelector||html.msMatchesSelector,
      pseudoWorks=false;
      try{
      matches.call(document.documentElement,"[test!='']:sizzle")}catch(pseudoError){
      pseudoWorks=true}

      Si je ferme firebug, il termine le chargement de la page normalement, donc je ne suis pas sûre que c’est ça...

      Ensuite, je déplie la boîte coordonnées, je clique sur le bouton Ajouter une adresse. Il a l’air de bien réfléchir puis finalement, il replie la boîte sans afficher le formulaire d’ajout d’adresse. Firebug ne signale pas d’erreur. La console affiche à ce moment là une ligne dépliable :

      http://www..../local/cache-js/69169511b12faa03617e7a9b5de0f39d.js
      200 OK 2.21s
      691695...f39d.js (ligne 3315)

      Si je clique sur le lien vers le javascript, il m’amène une ligne qui dit :

      xhr.send(noContent||s.data==null?null:s.data)}catch(sendError){ 

      Si, au lieu de ça, je déplie, je vois dans l’onglet « POST » :

      Paramètres                 application/x-www-form-urlencoded
      exec:	adresse_edit
      id_adresse:	new
      id_objet:	15
      objet:	auteur
      retour:	./?exec=auteur_infos&id_auteur=15
      var_ajax:	1
      var_ajax_env:	D/3Oq9fCNpR/sri1/yvegaO43ElnJMQwW9V3OM6S2lRVzIS7+qAK7oMAKZW02BmyM+kquEvWbDL7Ed3vWo7yvCMxvtEt/NYhx6S12BXKdC98HYUYgx63uT75PJNmETsVSFqU2ZUMGR8Wy0HVi+tN3aFALnVtEFKD58Pyafg3vpU/JSLD

      Dans « Réponse » et « Html », il m’affiche le code de la boîte coordonnées sans le formulaire adresse_edit, donc, dans l’état où la page se trouve au chargement.

      À part, ça, dans la console d’erreurs, j’ai aussi des avertissements :

      Avertissement : Pseudo-classe ou pseudo-élément « file » inconnu.
      Fichier Source : http://www.gag3.collectifs.net/ecrire/?exec=auteur_infos&id_auteur=15
      Ligne : 0
      
      Avertissement : Pseudo-classe ou pseudo-élément « first » inconnu.
      Fichier Source : http://www.gag3.collectifs.net/ecrire/?exec=auteur_infos&id_auteur=15
      Ligne : 0
      
      Avertissement : Parenthèse fermante « ) » manquante dans la pseudo-classe de négation « , ».
      Fichier Source : http://www.gag3.collectifs.net/ecrire/?exec=auteur_infos&id_auteur=15
      Ligne : 0

      Je ne sais pas si ça aide. J’y comprends rien en tout cas. Si je ne donne pas les bonnes infos, dis-moi ce dont tu as besoin et je préciserai. Je suis sous Iceweasel 3.5.15 (Debian).

    • As-tu trouvé une solution ? Car j’ai cette même erreur avec jquery :

      (Break on error. matches is undefined.)

      4136 try {
      4137 // This should fail with an exception
      4138 // Gecko does not error, returns false instead
      4139 matches.call( document.documentElement, "[test!='']:sizzle" );
      4140
      4141 }

      C’est pendant la connection ou la déconnection, avec #LOGIN_PUBLIC. Cela n’empêche pas de se connecter, mais on ne voit pas le formulaire devenir plus pâle, aucun feedback, donc les visiteurs peuvent penser qu’il ne se passe rien (et cliquent 15000 fois, et quittent le site en pestant).

      Je n’ai pas trop d’autres indices, car sinon, ça marche bien.

      Sinon, pour firebug, la page peut continuer à se charger si tu cliques sur la petite flèche bleue, en haut du cadre, avec la bulle « continuer (F8) »

      Je suis aussi sur Iceweasel 3.5.16 (Debian)

    • J’ai le même problème sur 3 sites différents. Mais on dirait que ça marche bien à la première connection, mais plus sur les suivantes. Bref, j’arrête de polluer ce forum :-)

    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