Plugin Contacts & Organisations

Ce plugin ajoute à SPIP des fonctionnalités de gestionnaire de contacts. Distingue les personnes morales (organisations) des personnes physiques (contacts) en conservant tous les attributs des auteurs SPIP.

En conjonction avec le plugin Coordonnées, il permet d’étendre à la fois les champs unitaires (prénom, date de naissance…) et les champs multiples (numéros de téléphone, adresses mail…).

Principe

Comme un certain nombre d’autres plugins jusque là, « Contacts & Organisations » ajoute des champs indispensables à la table spip_auteurs, dès lors qu’il s’agit de gérer des personnes d’une manière un peu poussée. La table spip_auteurs est par nature, et historiquement sans doute, limitée aux champs nécessaires pour la rédaction d’articles. Dès que cette table doit être utilisée pour d’autres fonctions (inscription, transaction, etc.) certaines caractéristiques lui font défaut, et parmi elles :

-  prénom, date de naissance, autres informations personnelles
-  notion de « groupes d’auteurs »
-  plus de une adresse mail, plusieurs numéros de téléphone ou ID communautaires (ICQ, MSN)
-  autres informations spécifiques à l’utilisation

Objectif

Lors du développement du plugin nous avons veillé à ce que la notion d’auteur SPIP soit conservée. Nous avons par exemple choisi de ne pas modifier l’intégrité de la table spip_auteurs, ce qui permet de conserver possibilités de gestion déjà développées, telles que celles fournies par les plugins acces_restreint ou spip_liste. Ainsi, nous avons seulement ajouté les tables nécessaires à l’ajout de propriétés aux auteurs et les avons liées à la table spip_auteurs.

Ce plugin est déjà utilisé par le plugin Catalogue, et le plugin SPIPMine.

Fonctionnement

Une fois le plugin installé, une nouvelle boîte de dialogue apparait dans l’interface privée sur la page d’un auteur :

Tous les auteurs SPIP du site peuvent désormais acquérir un statut de « contact » ou d’« organisation ».

Exemple 1 : ajouter un contact

Prenons l’exemple d’un auteur SPIP dont on veuille gérer distinctement le nom, le prénom et l’activité (fonction). Si on attribue à cet auteur le statut de contact, les champs nom, prénom, et activité seront disponibles dans les boucles #AUTEUR. Pour conférer le statut de « contact » à un auteur SPIP, dépliez la boîte et cliquez sur « devenir contact » :

Dès lors, les champs supplémentaires de la fiche contact sont disponibles sur la fiche auteur sur la page d’édition d’un auteur. Pour ajouter les informations correspondant à ces champs, cliquez sur « modifier cet auteur », puis descendez jusqu’à « détails du contact » :

Si le plugin coordonnées est aussi installé, il est possible d’ajouter des numéros de téléphone, adresses mail ou adresses postales à ce contact :

Exemple 2 : ajouter une organisation

De la même manière, on peut attribuer à un auteur SPIP le statut « organisation » (une société, une association...) afin de gérer par exemple une liste de fournisseurs ou de clients.

Choisissez l’auteur SPIP à qui attribuer le statut d’organisation, puis dépliez la boite de dialogue « Contacts & Organisations » et cliquez sur « Devenir une organisation ». Modifiez l’auteur (maintenant devenu une organisation) et ajoutez lui les informations nécessaires. Ce qui donnera, par exemple :

Exemple 3 : lier un contact à une organisation

Le plugin permet de lier un ou plusieurs contacts, à une ou plusieurs organisations. Cette fonctionnalité (en cours de test) est inspirée des logiciels CRM de gestion de contacts.

On peut lier un contact avec une organisation, soit depuis une fiche contact, soit depuis une fiche organisation. Voici un exemple de liaison d’un contact avec une organisation à partir d’une fiche organisation.

Depuis la fiche « auteur » de l’organisation, dépliez la la boite de dialogue ; un champ de saisie apparait et permet de rechercher un contact [1] à lier à l’organisation.

Une fois le(s) contact(s) trouvé(s) par SPIP affiché(s), cliquez sur le « + » pour lier ce contact à l’organisation. Pour « délier » le contact de l’organisation, il suffit de cliquer sur le bouton « délier » (icône en forme de maillon de chaine rompu).

Dépendances

Le plugin « Contacts & organisations » nécessite le plugin saisies en version 1.7.7 minimum (pour la saisie du champ date).

Nouvelles tables / nouveaux champs

Le plugin installe 3 nouvelles tables, et permet d’utiliser de nouveaux champs dans les boucles #AUTEURS :

  • table spip_contacts :
    • #CIVILITE
    • #NOM
    • #PRENOM
    • #FONCTION
    • #DATE_NAISSANCE
    • #DESCRIPTIF
  • table spip_organisations :
    • #NOM
    • #STATUT_JURIDIQUE (anciennement « type »)
    • #IDENTIFICATION (anciennement « siret »)
    • #ACTIVITE
    • #DATE_CREATION
    • #DESCRIPTIF
  • table spip_contacts_organisations
    • pas de champ nouveau, mais permet de déterminer des liaisons entre contacts et organisations

Annuaires

Il est possible de regrouper des organisations et/ou des contacts, en les séparant dans des annuaires différents. Chaque fiche ne peut appartenir qu’à un seul annuaire.

Partie expérimentale

Rq : les pages présentées ici ont bien évolué depuis la création de cette documentation.

Deux pages de gestion des contact et des organisations sont en cours d’élaboration et présentes dans le plugin :

Les fonctionnalités sont à imaginer à partir de ces pages (imports, transformations en masse, etc.). N’hésitez pas à faire des suggestions.

Notes

[1un spip_auteur ayant le statut de contact

Discussion

89 discussions

  • 5

    Bonjour,

    Dans le cas d’ajout de champs extra aux contacts et/ou aux organisations, ces champs ne sont pas visibles dans l’édition d’un auteur, si les fiches sont associées.
    Comment corriger cela svp ?

    • Oui effectivement, c’est dû au fonctionnement de Champs extras qui ne s’insère que dans le form de l’objet des champs. Faut alors refaire tout son boulot soi-même à la main, quand on les veut ailleurs, ce qui est un peu chiant. Le plus propre serait que Champs extras ajoute directement les saisies ajoutées dans les saisies de l’objet des champs quand cet objet est déjà fabriqué entièrement en saisies (ce qui est le cas pour les contacts et orgas), et dans ce cas dès qu’on récupère « les saisies de tel objet », alors on aurait la liste complète, celles d’origines + les extras. Mais du coup c’est plutôt une amélioration directement du plugin Champs Extras…

      Un ticket existait déjà en ce sens d’ailleurs (je viens de le repréciser/compléter un peu plus) :
      https://git.spip.net/spip-contrib-extensions/champs_extras_core/issues/10

    • Merci pour ce retour, je vais faire ça.

    • Euh tu vas faire quoi ça ? :)

    • Faut alors refaire tout son boulot soi-même à la main, quand on les veut ailleurs, ce qui est un peu chiant

      Créer un formulaire sur mesure.

    • Ce n’est pas du tout ce que j’ai dit : j’ai dit que si ce n’est pas Champs Extras qui fournit directement l’ensemble des saisies au bon endroit, alors dans les plugins qui ont besoin des extras *ailleurs que dans l’objet de ces champs*, doivent refaire le même travail que ce que fait Champs Extras dans les formulaires des objets. Là en l’occurrence C&0 devrait recoder le même travail que ce que fait Champs Extras pour editer_contact et editer_organisation, mais dans editer_auteur. Ma préférence étant donc que ce soit Champs Extras qui fassent mieux dès le départ.

      En attendant, t’as pas du tout à tout recoder toi-même : le plugin Profils sert justement à ça, en bien mieux que ce que fait C&0 dans editer_auteur en bourrin. Avec tu peux gérer tes utilisateurs avec les champs voulus pour chacun, mélangeant dans le même unique form les champs des auteurs, contacts, coordonnées…

    Répondre à ce message

  • 7

    Bonjour
    retour de test en Spip 4
    dans « contact » la recherche pour associer à un auteur génère bien un résultat mais la feuille de style est sur display : none ; et y reste
    ligne 1617

     .lat .liste-objets tr > :not(.principale):not(.id):not(.statut), .lat .liste-objets .titre .soustitre, .lat .liste-objets .titre .surtitre {display: none;}

    une fois bidouillé le css en cliquant sur l’auteur l’association ne se fait pas
    c’est juste un lien vers l’auteur

    j’ai aussi constaté que l’action de chercher lançait une requète XHR de plugins-dist/bigup/javascript/bigup.logos.js

    Répondre à ce message

  • 2

    Bonjour

    quelle est la méthode pour importer en masse des nouveaux contacts ?

    merci
    Natacha

    • Il n’y a pas de méthode, le plugin ne fournit pas d’outils pour importer/exposer en masse.

      Le plugin Profils fournit cela, mais dans son cas, toute organisation ou contact doit être lié à un compte utilisateur. Éventuellement on peut feinter en l’utilisant puis en supprimant les comptes associés à chaque (et dans les tables de liens ensuite), mais ça reste du bidouillage (si on ne veut pas de compte associé à chaque).

    • Merci RastaPopoulos

      c’est peut une bonne piste quand même

      merci
      Natacha

    Répondre à ce message

  • 8

    Bonjour,

    Quelqu’un l’a-t-il testé avec spip 4 ?

    Je vais le tester en forçant la compatibilité dans le fichier xml du plugin, mais si quelqu’un avait déjà tenté le coup et avait un retour d’expérience, je serais preneur.

    Merci d’avance,

    Cordialement,

    Hervé

    • Je l’utilise sur un site et tout ce que j’utilise fonctionne (utitlisation avec Profils notamment). Mais je n’ai pas testé intensivement chaque option possible (organisations en hiérarchie, liens multiples orgas contacts, liens avec les autres contenus, etc).

    • Merci de ta réponse.

      Profils n’est aussi pas compatible avec spip 4.

    • Bonsoir,

      Sous spip 4.0.0, j’ai tenté de forcer la compatibilité des trois plugins « contacts et organisation », « profils » et « rubrique à l’inscription », mais j’ai eu en retour les messages d’erreurs suivants :

      Erreurs survenues

      Erreur dans les plugins : _plugins_compat_forcee/contacts_et_organisations
      > required
      Erreur dans les plugins : _plugins_compat_forcee/profils
      > required
      Erreur dans les plugins : _plugins_compat_forcee/rubrique_a_linscription
      > required

      Je pourrais, bien entendu, construire un site ne spip 3.2, mais ça serait dommage.

      Merci d’avance,

      Cordialement,

      Hervé

    • En « retour » de quoi ? À quel endroit ? Ce que tu colles là ne correspond ni a des erreurs PHP, ni a des erreurs de SVP dans l’admin des plugins, donc je ne vois pas de quelle sorte de message il s’agit ni où.

    • Bonjour,

      Ci-joint une capture d’écran des erreurs affichées par l’interface de "Gestion des plugins" sur un spip 4.0.0 vierge avec les fichiers paquet.xml des plugins modifiés sur le modèle habituel pour forcer la compatibilité vers une version plus récente de spip :

      "> required" signifie-t-il qu’un chevron ">" est manquant alors que le seul code modifié est compatibilite=« [3.0.0 ;4.0.*] » ?

      <paquet
      	prefix="contacts"
      	categorie="auteur"
      	version="4.0.8"
      	etat="test"
      	compatibilite=« [3.0.0;4.0.*] »
      	logo="images/contacts-128.png"
      	schema="1.13.0"
      	documentation="https://contrib.spip.net/Plugin-Contacts-Organisations"
      >
      	<nom>Contacts &#38; Organisations</nom>
      	<!-- Ajouter un gestionnaire de contacts à SPIP -->
      
      	<auteur>Cyril MARION</auteur>
      	<auteur lien="http://www.cym.fr/">Ateliers CYM</auteur>
      	<auteur lien="http://magraine.net/">Matthieu Marcillaud</auteur>
      	<auteur lien="http://www.ldd.fr/">Les D&#233;veloppements Durables</auteur>
      
      	<traduire module="contacts" reference="fr" gestionnaire="salvatore" />
      	<traduire module="paquet-contacts" reference="fr" gestionnaire="salvatore" />
      
      	<pipeline nom="declarer_tables_objets_sql" inclure="base/contacts.php" />
      	<pipeline nom="declarer_tables_interfaces" inclure="base/contacts.php" />
      	<pipeline nom="declarer_tables_auxiliaires" inclure="base/contacts.php" />
      
      	<pipeline nom="affiche_gauche" inclure="contacts_pipelines.php" />
      	<pipeline nom="afficher_contenu_objet" inclure="contacts_pipelines.php" />
      	<pipeline nom="affiche_hierarchie" inclure="contacts_pipelines.php" />
      	<pipeline nom="autoriser" inclure="contacts_autoriser.php" />
      	<pipeline nom="boite_infos" inclure="contacts_pipelines.php" />
      	<pipeline nom="formulaire_fond" inclure="contacts_pipelines.php" />
      	<pipeline nom="formulaire_charger" inclure="contacts_pipelines.php" />
      	<pipeline nom="formulaire_verifier" inclure="contacts_pipelines.php" />
      	<pipeline nom="formulaire_traiter" inclure="contacts_pipelines.php" />
      	<pipeline nom="ieconfig_metas" inclure="contacts_pipelines.php" />
      	<pipeline nom="insert_head_css" inclure="contacts_pipelines.php" />
      	<pipeline nom="optimiser_base_disparus" inclure="contacts_pipelines.php" />
      
      	<necessite nom="saisies" compatibilite="[3.23.2;[" />
      	<necessite nom="medias" compatibilite="[2.7.27;[" />
      	<necessite nom="spip_bonux" compatibilite="[3.1.0;[" />
      
      	<utilise nom="coordonnees" compatibilite="[2.1.0;[" />
      	<utilise nom="crayons" compatibilite="[1.13.8;[" />
      
      	<menu nom="contacts_organisations" titre="contacts:bouton_contacts_organisations" parent="menu_edition" icone="images/contact-16.png" action="repertoire" />
      
      	<onglet nom="repertoire" titre="contacts:bouton_repertoire" parent="contacts" icone="images/annuaire-24.png" />
      	<onglet nom="organisations" titre="contacts:bouton_organisations" parent="contacts" icone="images/organisation-24.png" />
      	<onglet nom="contacts" titre="contacts:bouton_contacts" parent="contacts" icone="images/contact-24.png" />
      </paquet>
    • Ton copié collé montre pourtant que tous les attributs ont un double quote classique du code pour les entourer, alors que seul l’attribut de compat que tu as modifié a des guillemets français autour. Si c’est ça forcément ça ne peut que péter.

    • c’est bien cela et l’erreur se voit en ouvrant les fichiers xml dans Sublime Text !

      J’ai commis l’erreur de les éditer dans un l’éditeur de texte très basique intégré au logiciel Mac Path Finder (qui rend beaucoup de services par ailleurs) :

      au lieu de guillemets droits ", il avait « <0xa0> et <0xa0>"

      Après ce problème corrigé, il me reste un problème gênant :
      si l’ensemble des plugins ont pu être activés, l’activation du plugin rubrique à l’inscription provoque une erreur 500 et, si l’on revient en arrière dans le navigateur, ce dernier plugin est fonctionnel, mais la page Gestion des plugins est vide ! (voir copie d’écran jointe)

    • C’est un autre problème, à signaler dans le plugin idoine (mais j’ai vu que Maieul avait commencé à corriger des choses)

    Répondre à ce message

  • 1

    Bonjour,

    Spip 3
    Comment faire pour inclure, dans un article, le contenu d’une organisation ?
    existe-il un modele
    ou bien modifier article.html avec #INCLURE ??

    Merci
    c’est sans doute une question de débutant ... de l’aide serait bienvenue

    • Bon voilà ma petite coopération, un modele à utiliser dans un article.

      [(#REM)
        Copie du 2021-03-23 17:35:02 par administrateur
        Fichier original tmp/cache/scaffold/contenu/organisation.html
        Modèle «organisation» par défaut : voir schéma complet des données d'une organisation
        
               Utilisation :
              - Dans un squelette : #MODELE{organisation, id_organisation=x, param}
              - Dans un article :     <organisation|id_organisation=x|parametres> 
      ][(#REM)
              Paramètres :
                      id_organisation Identifiant d'une organisation.
                      v_tout          Afficher l'ensemble des données de l'organisation
                      v_legales       Afficher les données légales
                      v_adresse       Afficher l'adresse (gis)
                      v_web           Afficher l'adresse du site Web
                      v_description	Afficher la description
                      v_horaire		Afficher les horaires
                      v_tarifs		Afficher les tarifs
                      v_telephone		Affficher les téléphones
                      v_mail			Afficher les mails
                      v_rezo			Afficher les reseaux sociaux
      ]
      <BOUCLE_contenu(spip_organisations){id_organisation}>
      <div class='contenu-principal'>
      	[(#ENV{v_titre}|ou{#ENV{v_tout}}|oui)<div class='cartouche'><h2 class='#EDIT{nom} nom'>[(#NOM|image_reduire{500,0})]</h2></div>]
      	[(#ENV{v_date}|ou{#ENV{v_tout}}|oui)<div class='cartouche'>#OUVERTURES</div>]
      	<B_adresses><BOUCLE_adresses(ADRESSES adresses_liens?){id_organisation}>[(#ENV{v_adresse}|ou{#ENV{v_tout}}|oui)#INCLURE{fond=modeles/picto,nom=map-marker,theme=carreVide,taille=1} #VOIE #CODE_POSTAL #VILLE ]</BOUCLE_adresses><br />
      	</B_adresses>
      [(#REM) #TYPE #NUMERO ]
      	<B_telephones><BOUCLE_telephones(NUMEROS numeros_liens?){id_organisation}>[(#ENV{v_phone}|ou{#ENV{v_tout}}|oui)#INCLURE{fond=modeles/picto,nom=#TYPE,theme=carreVide,taille=1} #NUMERO ]</BOUCLE_telephones><br />
      	</B_telephones>
      	[(#ENV{v_mail}|ou{#ENV{v_tout}}|oui)]<B_emails>
      	<BOUCLE_emails(EMAILS emails_liens?){id_organisation}>[(#ENV{v_mail}|ou{#ENV{v_tout}}|oui)
      	<a href="mailto:#EMAIL">#INCLURE{fond=modeles/picto,nom=at,theme=carreVide,taille=1}Envoyer un email</a> ]</BOUCLE_emails><br />
      	</B_emails>
      	[(#ENV{v_web}|ou{#ENV{v_tout}}|oui)<div class='#EDIT{url_site} url_site'>  <a href="#URL_SITE" target="_blank"> #INCLURE{fond=modeles/picto,nom=home,theme=carreVide,taille=1} #URL_SITE </a> </div>]
      	<B_socios><BOUCLE_socios(REZOSOCIOS rezosocios_liens?){id_organisation}>#SET{type, #TYPE_REZO|mb_strtolower}
      	<a href="https://www.#GET{type}.com/#NOM_COMPTE" target="_blank">[(#ENV{v_rezo}|ou{#ENV{v_tout}}|oui)#INCLURE{fond=modeles/picto,nom=#GET{type},theme=carreVide,taille=1}Rejoindre le réseau</a> ]</BOUCLE_socios><br />
      	</B_socios>
      </div>
      [<div class='notes surlignable'><h2 class='h2 pas_surlignable'><:info_notes:></h2>(#NOTES)</div>]
      </BOUCLE_contenu>

      et un exemple https://3w.plandecuques.fr/lou-grihet-dou-plan-dei-cuco

    Répondre à ce message

  • 1

    À la manière de ce que fait le plugin « auteurs partout », y a-t-il un moyen pour lier un évènement (agenda), un article etc... non pas à un auteur mais à une organisation ?

    • Oui c’est dans la config du plugin, tu peux dire sur quels objets tu veux lier des Contacts ou des Organisations, et donc après t’as les boites de liaison sur les objets cochés.

    Répondre à ce message

  • 2

    Tout en abord bravo pour ce plugin que j’utilise avec beaucoup de plaisir.

    Je ne souhaite pas qu’un auteur devenu une Organisation utilise son identifiant et son mot de passe. Cette utilisation au nom d’une Organisation est générique. Or, le RGPD demande à ce que nous puissions avoir une traçabilités des opérateurs et ce mode de connexion me pose problème.
    En d’autres termes, je souhaite que seul les Contacts puissent se connecter en tant qu’Auteur.

    Y-a-t-il une démarche simple que je puisse mettre en œuvre ?

    merci par avance.

    • vider leur login et leur mot de passe ?

    • Oui, démarche simple et efficace. Merci.
      Et lors de création, ne pas indiquer de login et mot de passe pour ne pas permettre d’accès.

    Répondre à ce message

  • 1

    Salut à tous

    je crée un auteur
    je l’associe à un contact
    en rééditant l’auteur, je sélectionne l’annuaire « Boulanger » pour ce contact

    dans la page contacts et organisation
    il y a 3 onglets : Répertoire, Organisations, Contacts

    dans Répertoire, s’affichent les annuaires
    je sélectionne l’annuaire « Boulanger »
    et je ne vois pas le nouveau contact
    pour le voir dans cette liste,
    il faudrait que j’ajoute le contact à cet annuaire
    ce qui ajouterait une entrée dans spip_contacts_liens

    dans Contacts, là je retrouve aussitôt mon auteur
    dans l’onglet de l’annuaire « Boulanger » à partir du champ id_annuaire de spip_contacts

    ce n’est pas un peu tordu ce truc ?
    pourquoi donc ces deux fonctionnement ?
    c’est très déroutant

    • Salut, je pige pas pourquoi tu parles de table de lien. L’annuaire est unique pour une fiche (contact ou orga), soit il n’est nulle part, soit il est dans un annuaire, avec son champ id_annuaire rempli. Ya pas plusieurs fonctionnements.

    Répondre à ce message

  • 3

    Bonjour,

    Je n’arrive pas afficher une organisation suivant un mot clef dans un squelette, par exemple :

    <BOUCLE_organisation(ORGANISATIONS){id_mot=17}>
          #NOM
    </BOUCLE_organisation>

    Si l’auteur n’est pas une organisation, il est bien affiché par la boucle

    <BOUCLE_auteur(AUTEURS){id_mot=17}>
          #NOM
    </BOUCLE_auteur>

    Merci pour vos lumières !

    • Bon, à priori, il faut ajouter l’organisation au mot clef et non le mot clef à l’organisation pour que cela fonctionne.

    • Bah non, ça ne veut plus dire la même chose, c’est pas du tout pareil.

      Quand deux objets ont des tables de liens, il faut spécifier explicitement la liaison que tu cherches à faire sinon il utilise la première table de lien qu’il trouve, celle de l’objet principal de la boucle.

      Il faut mettre {mots_liens.id_mot}

    • Oh ! Je te remercie beaucoup pour ta réponse :) et évidemment cela fonctionne parfaitement.

    Répondre à ce message

  • 1

    Avec Spip 3.1.1 j’ai un problème que je n’ai pas avec Spip 3.1.0, à savoir l’impossibilité d’afficher une page ’annuaire.html’ dans la partie publique du site, avec l’erreur suivante :

    Fatal error : Call to undefined function type_du_logo() in /home/.../ecrire/public/composer.php on line 548

    Ceci, quelque soit le réglage de la fonction ’Activer les squelettes publics pour ZPIP en version 1, permettant le parcourir les contacts et organisations dans l’espace public ?’.

    D’autres rencontrent le meme problème ?

    • Je ne vois pas trop le rapport avec cette erreur. Car c’est surtout une erreur 404 que tu devrais avoir, vu qu’il n’existe pas du tout de squelette « annuaire » par défaut. À moins que tu n’en ais toi-même ajouter un perso.

    Répondre à ce message

  • 1

    Tout à coup mon merveilleux petit plugin me fait des siennes ?

    Erreur SQL 1064
    You have an error in your SQL syntax ; check the manual that corresponds to your MySQL server version for the right syntax to use near ’)) AS titre_rang FROM xxxxxxxxx.spip_contacts AS contacts WHERE (contacts’ at line 1
    SELECT contacts.prenom, contacts.nom, contacts.id_contact, nom)) AS titre_rang FROM spip_contacts AS contacts WHERE (contacts.id_contact = xxxxx)
    /home/xxxxx/www/ecrire/public/composer.php

    Boucle : calculer_select() sql_select() ;
    Ligne : 1005

    A l’aide !

    • Oui, il faut avoir SPIP à jour pour cette mise à jour du plugin :(

      Un bug dans la balise #RANG a été corrigé récemment, et il y a besoin de cette correction pour l’amélioration apportée dans la déclaration du titre des contacts.

      Soit avec SVN, soit avec le ZIP de la branche stable (pas de telle version précise, mais de la branche).

    Répondre à ce message

  • 4

    Bonjour,

    Oui, bravo pour ce plugin.

    Nouvelle suggestion :
    Lorsque le champ #NOM n’est utilisé qu’avec des initiales, exemple « D. », conjointement avec un prénom complet, l’URL résultante est de la forme contact2.html car #NOM trop court.

    Pourrait-on proposer, si le #PRENOM existe, de l’utiliser pour allonger l’URL, qui deviendrait de la forme louis-d.html ?

    Merci

    Répondre à ce message

  • 2

    Hello

    re-merci pour cet excellent plugin (on le ne dit jamais assez)
    Juste pour signaler un truc pas grave du tout mais que mes admins n’ont pas manqué de souligner (ils ont le don pour trouver tout de suite ce qui ne fonctionne pas ,-) ) : depuis peu on dispose d’un menu abc pour naviguer dans les organisations. Très bonne idée. Cependant sur notre site (en 3.0) il est inopérant : on voit qu’il se passe quelque chose, la petite roue indique un rechargement ajax de la liste, mais elle reste identque quelle que soit la lettre sur laquelle on clique.

    Voilà. Comme je le disais c’est pas bloquant.
    Peut-être est-ce un conflit avec un autre plugin ou un truc manquant chez nous ? Mais si jamais c’est un bug du plugin et que ça peut être fixé dans une prochaine version ça fera des heureux.
    Merci !

    • chez-moi-ça-marche ©

      ça reste évidemment identique si la lettre sur laquelle tu cliques commence sur la page sur laquelle tu es déjà

      par contre il manquait les ancres, qui étaient dans les URL mais pas dans le HTML, je viens de les rajouter :
      http://zone.spip.org/trac/spip-zone/changeset/95729

    • Toujours pas chez moi.
      Je vais regarder ça d’un peu plus près voir si je trouve un début de piste, conflit de plugins ou autre.
      J’ai eu un espoir en me disant « ben oui les ancres ! » heu. Mais non. Je vais dégainer firebug ;-)

    Répondre à ce message

  • Bonjour,

    Un bug à signaler sur V2.13.0 et qui était déjà sur 2.12.z, Spip 3.1.0

    * Edition | Contacts et organisations
    * Créer une organisation
    * Saisie :
    -  Nom : 1re-SI
    -  Organisation parente : sélection d’une autre organisation
    -  Enregistrer
    * Redirigé vers ecrire/?exec=organisation&id_organisation=0

    donc message :

    Accès interdit
    Vous n’avez pas le droit d’accéder à la page organisation.

    Mais l’organisation est bien créée

    Merci

    Répondre à ce message

  • 1

    Bonjour,

    Est-ce qu’a été implémenté un critère {branche} qui permettrait de lister tous les contacts d’une organisation ET de ses sous-organisations ?

    Merci

    Répondre à ce message

  • 2

    Bonjour,

    merci pour ce plugin.

    Je me demande comment référencer au mieux quand une organisation à de nombreux services.

    Un service n’est pas forcement une personne « physique » à référencer (pas de civilité, prénom, nom, etc).
    Et un service n’est pas non plus une organisation (pas de statut juridique, siren, etc).

    Par contre un service a bien des coordonnées dédiées : adresse, téléphone ou courriel, parfois un contact (personne physique).

    Qu’en pensez vous ?

    • Ben c’est clairement une sous-organisation. T’es pas obligé de remplir tous les champs hein. Il faut activer l’arborescence d’orgas dans la config du plugin.

    • ok merci j’étais passé à côté de cette option dans la config du plugin.

      Donc pour résumé mon cas, chaque service aura une fiche light « Organisation » et la filiation sera gérée avec l’arborescence d’organisation.
      Merci encore !

    Répondre à ce message

  • 2

    Bonjour,

    J’ai lié un auteur à un contact, je place un logo (avatar) sur le contact. Ce logo n’est-il pas reporté sur l’auteur ?? Si non peut-on le faire automatiquement ?

    Merci

    • Non il n’y a rien de prévu pour ça désolé. C’est juste lié entre eux, mais chacun a ses champs (même le nom peut être différent), et pareil pour le logo et aussi pour les documents joints par exemple, chacun ses trucs.

    • Merci pour la précision, et pour le plugin.

    Répondre à ce message

  • 13

    Bonjour et merci pour ce plugin... Comment autoriser les administrateurs restreints à utiliser ce plugin ainsi que celui de coordonnées ?

    • Hello.

      Je plussoie car j’ai la même question et quelque chose doit m’échapper : j’ai beau surcharger les autorisations ou modifier le fichier contacts_autoriser, vider le cache, secouer l’ordi, absolument rien ne change : seuls les admins complets peuvent utiliser les contacts ou les associer à un objet. Je commence à patauger dans le potage.

      Si quelqu’un a trouvé une solution pour permettre aux admins restreints juste que ne serait-ce de pouvoir associer une organisation à un article je suis preneur ;-)

    • Dudfactory

      Bonjour,
      Je suis également preneur si quelqu’un à trouvé une solution pour permettre l’accès de ce plugin à un admin restreint.

    • Je pense avoir trouvé l’astuce :

      Insérer dès la ligne 21, au fichier contacts_autoriser.php les lignes suivantes :

      function autoriser_contactsorganisations_menu_dist($faire, $type, $id, $qui, $opt) {
      	return ($qui['statut'] == '0minirezo');
      }
    • Bah non, si c’est une *personnalisation*, tu ne dois pas modifier le plugin. On ne doit JAMAIS modifier un plugin pour personnaliser (seulement quand ce sont des modifs pour tout le monde).

      Donc pour personnaliser, il faut que tu copies la fonction que tu veux changer, dans un fichier « options », et en supprimant le « _dist » à la fin du nom de la fonction.

      Donc soit dans « config/mes_options.php », soit dans un plugin à toi, donc son fichier « prefixe_options.php ».

      Pareil pour n’importe quelle fonction de SPIP que tu veux personnaliser et qui a un « _dist » à la fin.

    • Bonjour RastaPopoulos... Oui, je ne maîtrise guère la programmation à ce niveau... Merci pour les explications... Quoique ’prefixe_options.php’ ne me parle pas beaucoup... C’est un ovni pour moi.... Je commence seulement à étudier le côté ’plugin fait maison’...

      Un cours élaboré sur ’la création de plugin spip pour les nuls’ serait le bien venu :-)

      Je vais donc essayer d’ajouter ma fonction à mes_options.php.

    • J’ai créé un fichier mes_options.php dans un mon dossier squelette mais la fonction n’est pas appelée... ??... Ai-je oublié un p’tit quelque chose ?

    • C’est marqué juste au-dessus hein :)
      config/mes_options.php

    • Bonjour RastaPopoulos,

      Je galère encore... J’ai bien le bouton ’Contacts & Organisations’ qui apparaît dans le menu edition mais par contre je n’arrive pas à faire apparaître le bouton ’[Ajouter une organisation]’ dans la page ’/ecrire/ ?exec=evenement...’

      En effet, j’ai associer la possibilité d’ajouter des organisations à l’objet ’evenements’...

      En mode administrateur complet, pas de problème, mais en mode administrateur restreint, le bouton ne s’affiche pas ???..... :-/

      J’aimerais vraiment trouver un cours sur la conception d’un plugin de A à Z ou pourquoi pas une description précise de ce que fait ce plugin pour mieux comprendre les différentes fonctions et inclusions... ??....

    • Il s’agit d’une autre autorisation. Il faut donc la surcharger aussi si là encore les restreints doivent y avoir accès.

      Par défaut, pour avoir le droit d’ajouter des liens sur un objet quelconque, c’est défini dans le #FORMULAIRE_EDITER_LIENS générique de SPIP, qui se trouve dans « prive/formulaires/editer_liens.php ».

      Tu as alors cette ligne :

      $editable = ($editable and autoriser('associer'.$table_source, $objet, $id_objet) and autoriser('modifier',$objet,$id_objet));

      Ce qui signifie qu’il faut :

      1. Être autorisé pour : associerorganisations / evenement / 123
      2. Être autorisé pour : modifier / evenement / 123

      Tes admins restreints ont bien le droit de modifier cet événement ?

      Pour l’autorisation « associerorganisations » il ne me semble pas qu’elle soit définie du tout. Et du coup je ne sais pas ce que ça utilise dans ce cas là… (rien ? ou une autre par défaut ? je ne sais pas).

      Essayes d’ajouter une fonction pour tester (et sinon avec ton même test précédent) :

      function autoriser_associerorganisations($faire, $type, $id, $qui, $opt){
          return true;
      }
    • Whouuuaaaa.... Merci mille fois !!... Voici donc ce que j’ai inséré dans le fichier spip/config/mes_options.php dès la ligne 2.

      function autoriser_contactsorganisations_menu($faire, $type, $id, $qui, $opt) {
              return ($qui['statut'] == '0minirezo');
      }
      
      function autoriser_associerorganisations($faire, $type, $id, $qui, $opt){
      	return ($qui['statut'] == '0minirezo');
      }
      
      function autoriser_associerorganisation($faire, $type, $id, $qui, $opt){
      	return ($qui['statut'] == '0minirezo');
      }

      Oui, j’ai aussi eu un petit miracle... Car il faut les deux fonctions associerorganisations et associerorganisation (sans ’s’ pour que cela fonctionne. J’avais essayé avec la première fonction mais comme cela ne fonctionnait pas, je me suis dis essayons en retirant le ’s’ mais j’avais omis d’enlever la première fonction... Et cela a fonctionné ! J’ai essayé ensuite d’enlever l’une ou l’autre et là, ça ne fonctionne pas... Je ne comprend pas pourquoi mais tu vas certainement me l’expliquer :-)

      Encore merci pour ta guidance ! Et si tu entends parler d’une formation en développement de plugins spip en France ou en Belgique, je suis preneur !!

    • Oups, il faut aussi ajouter à spip/config/mes_options.php :

      function autoriser_organisation_modifier($faire, $type, $id, $qui, $opt){
      	return ($qui['statut'] == '0minirezo');
      }
    • Dudfactory

      Bonjour Eric,
      Merci pour ta contribution, j’ai copié les 4 fonctions dans mes_options.php mais sans succès car sur mon site un administrateur restreint ne peut toujours pas utiliser ce plugin. Existe-t-il une étape intermédiaire avant ou après la copie dans le fichier config/mes_options.php ?

    • Bonjour Dudfactory... Désolé pour le temps de réponse, j’étais occupé avec les passage du plugin spip-listes au plugin newsletter... Bref,... en avançant avec le plugin C_O, j’ai ajouté d’autres fonctions au fichier spip/config/mes_options.php dès la ligne 2.

      function autoriser_contactsorganisations_menu($faire, $type, $id, $qui, $opt)
      return ($qui[’statut’] == ’0minirezo’) ;

      function autoriser_organisationcreer($faire, $type, $id, $qui, $opt)
      return ($qui[’statut’] == ’0minirezo’) ;

      function autoriser_associerorganisations($faire, $type, $id, $qui, $opt)
      return ($qui[’statut’] == ’0minirezo’) ;

      function autoriser_associerorganisation($faire, $type, $id, $qui, $opt)
      return ($qui[’statut’] == ’0minirezo’) ;

      function autoriser_organisation_modifier($faire, $type, $id, $qui, $opt)
      return ($qui[’statut’] == ’0minirezo’) ;

      function autoriser_contactcreer($faire, $type, $id, $qui, $opt)
      return ($qui[’statut’] == ’0minirezo’) ;

      function autoriser_associercontacts($faire, $type, $id, $qui, $opt)
      return ($qui[’statut’] == ’0minirezo’) ;

      function autoriser_associerocontact($faire, $type, $id, $qui, $opt)
      return ($qui[’statut’] == ’0minirezo’) ;

      function autoriser_contact_modifier($faire, $type, $id, $qui, $opt)
      return ($qui[’statut’] == ’0minirezo’) ;

    Répondre à ce message

  • 5

    Bonjour,

    Je découvre une erreur lorsque je veux mettre à jour une organisation...

    J’ai simplement ajouté le site internet à une organisation, ensuite je veux ’enregistrer’ et là...

    Je reçois une page blanche contenant : [object Object]

    et dans la barre d’adresse : javascript:if (window.jQuery) jQuery(".entete-formulaire .retour a").followLink();

    • Peut-être qu’une mise à jour s’est mal passée ou pas faite du tout, et qu’il te manque un champ dans la table, ce qui provoque une erreur lors de l’enregistrement ? Tu es allé sur la page d’admin des plugins pour lancer les mises à jour de base, les dernières fois où le plugin a été mis à jour ? Vérifie par exemple si tu as bien le champ pour l’URL dans la table des orgas.

    • J’ai la version 3.0.21 de spip et la Rév. 93274 du 28/11/15 de Contacts & Organisations. L’enregistrement s’effectue mais c’est le problème de la page blanche qui m’ennuie :-/

    • Ça ne répond pas à mes questions précédentes. Si un champ manque dans la table.

    • Oui, désolé, en effet, le champ existe dans la table... C’était sous-entendu dans ma réponse vu que l’enregistrement s’est déroulé correctement ;-)

    • T’as bien testé en ayant aucun autre plugin non-nécessaire ? Il ne faudrait pas qu’il y ait un conflit je ne sais où.

      Ensuite il y a apparemment une erreur durant l’envoi en ajax du formulaire d’édition, il faudrait laisser ouvert le panneau dev de firefox avec les erreurs JS. Et voir ce qui s’affiche.

    Répondre à ce message

  • 4

    Bonjour,

    j’ai installé la version 2.012.0 de ce plugin en spip 3.020.
    Je bute sur l’export des organisations et des contacts tels qu’accessibles à partir de la liste des organisations et de celle des contacts.
    En dépit de ma qualité d’administrateur, je ne parviens pas à obtenir ces exports.
    Je peux par ailleurs supprimer une organisation ou un contact.
    Une subtilité m’a-t-elle échappé ?

    Répondre à ce message

  • 2

    bonjour et merci pour ce plugin.
    J’ai un petit soucis pour trouver la boucle d’appel pour la période d’ouverture concernant une organisation. Quelqu’un sait ? merci d’avance

    • Je n’ai pas trop compris, c’est un champ libre. Donc faut juste l’appeler avec la balise du champ, comme n’importe quel autre champ. #OUVERTURES

    • merci RastaPopoulos !
      Je découvre juste ce plugin, qui est super intéressant et j’ai du mal à connecter mes neurones parfois ;-)
      #OUVERTURES c’était pourtant logique mais j’avoue qu ’un petit récap. des balises serait sympa. (en mode pdf, comme il existe sur certains plugins déjà).
      enfin merci encore !!!

    Répondre à ce message

  • 5

    Bonjour, prévoyez-vous une mise-à-jour vers spip 3.1 ? Merci.

    Répondre à ce message

  • 3

    Je constate que dans l’espace privé la page d’un mot-clé ne filtre pas les contacts et organisations qui sont liés à un mot-clé, mais les liste tous.

    Normal ?

    Répondre à ce message

  • 2

    Bonjour,

    a t’on moyen de lier un auteur et une fiche contact sans intervention humaine, directement suite à une inscription au site sans avoir recours au PHP personnalisé :) ? J’utilise la table auteur pour utiliser les sessions et ce plugin pour une fiche cliente complète associée aux pluginx coordonnées, commandes and co.

    merci pour votre retour !

    Répondre à ce message

  • 4

    Bonjour,
    Nous avons une anomalie lors de l’utilisation de ce plugin :

    Lorsque l’on tente de lier une organisation à une organisation parente, à la validation de la fiche nous avons une page blanche avec écrit :

    [object Object]

    Est-ce un problème connu ?

    PS : je suis en SPIP 3.0.17

    • Je viens de constater que suite à cette action, j’ai ça dans ma barre d’URL :

      javascript:if (window.jQuery) jQuery(".entete-formulaire .retour a").followLink();

    • Ok je reproduis effectivement. Je ne sais pas dire depuis quand ça ne marche plus, car ce n’est pas quelque chose que j’utilise pour ma part. Donc il faut aller fouiller le code pour comprendre.

    • Merci pour cette réponse rapide, j’ai désactivé cette option le temps de trouver le correctif.

      J’ai constaté un autre bug, au moment de l’export des contacts, j’ai une erreur :

      « Fatal error : Call to undefined function champs_extras_saisies_lister_avec_sql() in /***/plugins/C_et_O_SPIP_3/action/exporter_contacts.php on line 87 »

    • J’allais te répondre qu’il manquait peut-être un test, mais non non, la ligne en question est bien à un endroit où on ne peut être QUE si on a bien CEXTRAS activé comme il faut.

      Juste avant ça teste « _DIR_PLUGIN_CEXTRAS » et ça teste aussi la bonne inclusion de « inc/cextras » qui contient cette fonction.

      Donc t’es sur un site qui n’a pas Champs Extras, ou bien tu n’as pas cette fonction dans « inc/cextras » de ce plugin ?

    Répondre à ce message

  • 3

    Bonjour,

    Excellente idée !

    Je n’ai pas encore approfondi toutes les possibilités, mais mon premier usage me conduit à faire une première remarque :
    Je pense que « fonction » devrait être associé à la jointure entre organisation et contact. En effet, je peux être Président d’une association et trésorier ou secrétaire d’une autre, Maire d’une collectivité et conseiller départemental. Par ailleurs, je n’ai pas de fonction, hors ma « fonction » familiale si je n’appartient pas à une organisation.
    On pourrait pousser plus loin en donnant une date de début et de fin à la fonction. Mais c’est peut-être du luxe.

    Cordialement

    • Oui pour les fonctions ça peut être une idée à garder en tête. Après il faut voir où mettre ça correctement dans l’interface qui fait les liaisons aussi.

    • Pourquoi ne pas utiliser la table spip_contacts_organisations pour accueillir ce champ qui serait renseigné au moment de la jointure ou plus tard dans la vue contact un peu à la manière « choisir mot » ou choisir auteur" dans article.

    • Où mettre dans l’interface je dis. Ya *déjà* une interface pour lier C&O ensemble avec des boites de liaison de part et d’autre. Mais du coup il faudrait ajouter un champ libre fonction à l’intérieur de cette boite, logique d’un point de vue technique mais pas forcément super intuitif. À réfléchir…

    Répondre à ce message

  • Nouvelle fonctionnalité documentée : il est possible de regrouper des organisations et/ou des contacts, en les séparant dans des annuaires différents. Chaque fiche ne peut appartenir qu’à un seul annuaire.

    Répondre à ce message

  • Bonjour,

    Sur plusieurs projets j’utilise ce plugin conjointement avec Coordonnées.
    On peut associer une seule url de type site a une organisation actuellement.

    A l’utilisation je me demande si ça ne devrais pas être comme une adresse ou un numéro de téléphone et intégré au plugin Coordonnées : car les entreprises on souvent plusieurs liens web : boutique, blog, intra, page facebook, ...

    J’ai contourné suivant les cas :

    -  soit en syndiquant les sites et en les associants a la rubrique de l’organisation : solution simple et permettant en plus l’affichage des articles du site de l’organisation si elle a un flux rss.

    -  dans les autres cas lorsque je n’ai pas de rubrique, avec un mini plugin Reseaux, créée juste au départ pour les réseaux sociaux (la terminologie est discutable, je pencherais plutôt pour url), et qui au final me sert aussi pour tous les liens web.

    Au final je pense que la solution la plus efficace serait de le considérer comme un élément d’ ADRESSE comme le téléphone, et permettre a chaque Contact d’avoir plusieurs liens web : twitter, gitHub, Facebook, site, blog ...

    @++

    Répondre à ce message

  • Bonjour,

    J’ai regardé votre plugin avec un grand intérêt car il permet d’articuler des participants au site qui soient des indivius ou des organisation ... et je réponds ici à votre appel « N’hésitez pas à faire des suggestions ».

    Je commence par des hésitations sur la façon d’utiliser le plugin, j’ai été voir les tables pour mieux comprendre ce qui me mélangeais ... Il y a des choses qui me semblent faire double emploi Nom et prénom de la table « contacts » correspondent au champ « nom » de la table « auteurs » ; de même, « auteurs-bio » et « contacts-descriptif » ne me paraissent pas évidents à utiliser l’un par rapport à l’autre ... Je crains les doublons, les confusions. De même, je comprend l’intérêt que peuvent avoir certains champs de la table « organisations », pour d’autres, ouvertures et tarifs ne concernent pas mon projet ... Idéalement nous pourrions configurer les champs que nous souhaiterions ajouter à la table originale des « auteurs ». (pour ma part j’essayerai de n’en ajouter qu’un minimum).

    Par contre je trouve la table « organisation_contacts » très intéressante car elle permet de lier une personne avec une organisation, et le nombre de ces associations peut être assez large, surtout si on utilise le champ « type de liaison ». Paul peut être employé de l’association X, pendant que Jacques en est membre du CA, André simple membre. Aujourd’hui c’est Paul qui en est le représentant auprès de la coordination du site, mais quand son contrat sera fini en Juin, c’est Jacques du CA qui aura ce rôle ... Dans l’association Y on peut retrouver les mêmes personnes, avec des rôles différents ! Tout ce ci peut être défini et mis à jour dans cette « petite » table à trois entrées, c’est génial.

    On peut même étendre la logique entres organisations, l’une étant membre d’une autre (une coordination), ou sous traitante, fournisseur ... De même entre les personnes, l’une pouvant l’enfant d’une autre, ou employée par l’autre ... en offrant la possibilité de définir un « type de liaison » entres auteurs, personnes ou organisations, on apporterait beaucoup de versatilité au plugin pour que les webmestres adaptent la logique à leurs situations spécifiques.

    Voilà pour les idées et suggestions, je ne sais pas si c’est un peu ou très compliqué à mettre en oeuvre, mais si je peux aider, préciser les idées ou plus ; faites moi signe.

    Encouragements, je me sert aussi du plugin « Coordonnées », merci pour tout.

    Répondre à ce message

  • 1

    Bonjour,

    Est-il possible d’associer un annuaire à une zone restreinte ?

    • Bonjour,

      J’allais avoir le meme genre de demande :
      -  mais, s’il s’agit de limiter par annuaire, cela signifierait (par rapport à Accès Restreint) de coupler l’accès avec des Rubriques ?
      ou faudrait-il gérer par une Autorisation #AUTORISER{zoner , nom_de_zone} tel que suggéré en complément du plugin actuel ?

      Je regarde un autre type de couplage :
      -  pouvoir associer un article (ou une rubrique), comme commentaire à un contact (ou une organisation) : il me semble que ce serait la démarche inversée des ajouts proposés en configuration.

      • l’idée : pouvoir compléter les contact par une sorte de « journalisation » des contacts, échanges, rendez-vous.... avec les controles classiques d’autorisations sur les auteurs (redacteur, administrateur restreint, plugin nouvelle version = Dupliquer et Publier...) et bien sûr les zones d’accès restreint.
      • avec les plugins evenements-agenda, cela offre aussi un mini-CRM textuel (par exemple pour suivre les activités de communication relationnelles des membres d’un bureau d’association 1901..

      A suivre

      YannX

    Répondre à ce message

  • Est-il possible d’y ajouter une gestion d’abonnement avec date d’inscription et période d’abonnement (1jour, 1 mois, 1an, etc.) ?

    Arrivé la date d’échéance, l’auteur se change automatiquement en visiteur pour ne plus avoir d’accès privés. Les admins et l’auteur recoivent une notification indiquant la fin de l’échéance et la désincription de l’auteur.

    Comme spip est spécialisé dans les contenus rédactionnels, cette fonction d’abonnement à un contenu (comme la presse papier) me semble important.

    Répondre à ce message

  • Bonjour,

    En version spip 3.0.13, quand je vais sur la fiche d’un auteur je n’ai pas la boite contact et organisations.

    Je peux par contre créer un contact ou une organisation depuis le menu éditer où j’ai bien l’item contact et organisation.

    Répondre à ce message

  • 1

    Bonjour

    J’aurais besoin que les rédacteurs puissent modifier, avec les crayons, les champs de l’organisation.

    Pour le moment, pas possible, dans la console avec

    define ('_DEBUG_AUTORISER', true);

    ca donne

    Apr 17 09:03:32 ::1 (pid 19233) :Pub:info: autoriser_organisation_modifier_dist(modifier,organisation,32,vdcsophied): niet

    que faire que faire ?
    merci

    • Je dirais que tu as fait le plus gros du travail : identifier la fonction de autorisation « fautive » !

      Maintenant il suffit de surcharger cette autorisation
      tu trouveras plein d informations dans le « carnet-wiki » de ce site (cf. Menu) le premier article de réponses à « autorisations ».....

      YannX

    Répondre à ce message

  • rburton

    Bonjour,

    pour une raison que j’ignore, sur C&O et SPIP 3.0.16) le typage de liaison via editer liens simples (et crayons) n’enregistre pas en base de données ...

    merci,
    Roger Burton

    Répondre à ce message

  • bonjour,
    j’ai une erreur dans les logs apache, lors du chargement des pages auteur admin.

    PHP Warning : in_array() expects parameter 2 to be array, null given in /blabla/tmp/cache/skel/html_bdc22bcc0609832d2f5d81140920f489.php on line 114

    ... ce qui me revoie vers la ligne 44 du fichier /prive/squelettes/contenu/organisation sur auteur.html

    il faut tester si #CONFIGcontacts_et_organisations/lier_organisations_objets n’est pas vide et ça résoud le problème :

    [(#CONFIG{contacts_et_organisations/lier_organisations_objets}|oui) 
    [(#VAL{spip_rubriques}|in_array{
    #CONFIG{contacts_et_organisations/lier_organisations_objets}}|oui)
    <div class="ajax">
    	#FORMULAIRE_EDITER_LIENS{organisation,#ID_ORGANISATION,
    rubriques,#AUTORISER{modifier,organisation,#ID_ORGANISATION}}
    </div>
    ]
    ].

    (version du plugin 2.10.3)

    Répondre à ce message

  • 1

    Quand j’essaye de voir un contact il m’affiche l’erreur : impossible de trouver noisettes/formulaire_contact ?

    • Bonjour, lolo06
      Est-ce que tu pourrais nous indiquer les conditions dans lesquelles se produit cette erreur, et qui nous permettraient de la reproduire ? En général : version de SPIP et du plugin, autres plugins installés, éventuellement une url ou une copie d’écran... Merci !

    Répondre à ce message

  • 3

    Bon je vais essayer de pas me ridiculiser de nouveau ( voir question précédente) ...

    Apparemment les recherches (avec ou sans plugin fulltext) ne recherchent que ce qui se trouve dans le nom, mais rien n’est retourné si l’on cherche un terme qui est dans le descriptif ou dans l’activité ... Idem pour les contacts.
    J’ai ajouté des champs extras, la recherche marche pour ceux qui ont été stipulé comme inclus dans la recherche (dernier onglet de l’édition des champs).

    Bref ma question concerne la possibilité d’inclure un ou plusieurs champs « natifs » du plugin C&O dans la recherche de Spip ... (afin d’éviter de créer des champs extras en double des existants sur lesquels la recherche marcherait).

    Je me souviens d’un pipeline _rechercher_liste_des_champs qui liste les champs avec pondération, c’était en Spip2, je ne sais pas si ce mécanisme est toujours présent en 3, s’il est différent, ou on pourrait agir là-dessus au niveau du plugin, d’une déclaration dans mes_options, ... bref le brouillard ... si quelqu’un a une lumière, je suis preneur !

    Merci d’avance !

    • Pierrot

      Bonjour,

      Je me permet un petit up sur ce message, on me relance sur ce sujet ... Si une bonne âme a une idée ...

      Pierre

    • Tout pareil qu’en SPIP 2 le pipeline en question.

      Donc, en utilisant ce pipeline, tu peux ajouter les champs dont tu as besoin, avec la pondération dont tu as besoin :)

      MM.

    • Pierrot

      Pour d’autres qui chercheraient, ceci a l’air de marcher, exemple avec les champs « activite » et « descriptif » de la table « organisations » du plugin « contacts » (C&O) :

      $GLOBALS['spip_pipeline']['rechercher_liste_des_champs'] .="|contacts_rechercher_liste_des_champs";
      
      function contacts_rechercher_liste_des_champs($tables){
      $tables['organisation']['activite'] = 3;
      $tables['organisation']['descriptif'] = 3;
      return $tables;
      } 

    Répondre à ce message

  • 2
    Pierrot

    Bonjour,

    Je me demandais si quelqu’un avait été confronté au besoin d’ajouter plus d’une image à une organisation (par ex : créer une galerie d’image sur une organisation, en plus du logo que l’on peut déjà mettre).

    La seule solution que j’ai trouvée pour l’instant est d’ajouter le plugin CKeditor mais je trouve la solution loin d’être satisfaisante, ce plugin marche moyennement je trouve (en fait le plugin n’est pas en cause, c’est CKeditor qui pour moi marche moyennement, en gros c’est ok quand on crée un article, mais au bout de 10 modifs l’HTML est tellement trituré que c’est la cata ...).

    J’ai aussi regardé champs extra mais on n’a pas de champ image possible ... L’idéal serait d’avoir le simple « téléverser une image » et tout serait zen ...

    Pierre.

    • En SPIP 3, tu vas dans configurer > contenus du site > Documents joints. Puis tu coches les organisations. Et voilà, enjoy.

    • Pierrot

      Ok, je sors .... --->

      Vous avez gagné une invitation à boire un coup à Grenoble si jamais vous passez par là.
      Et moi un coup de pied au c.... J’ai montré ça pour autre chose à quelqu’un il y a pas une semaine ...

      Merci. Pierre qui devrait se coucher moins tard.

    Répondre à ce message

  • 4
    Xebiaut

    Bonjour,

    Je suis en SPIP 3.0.8 [20422] avec les plugins C_&_O et editer_liens_simples.zip pris directement sur ce site, donc les dernières versions.

    Je n’arrive ni à lier un auteur à un contact ni à une organisation. Le menu qui devrait le permettre ne s’affiche pas dans l’espace privé :-(

    Y aurait-il un bug ??

    • Bonsoir,

      J’ai eu le meme souci,
      qui s’est résolu en activant les choix correspondants
      dans la configuration du plugin.

      Cdlt
      YannX

    • C-joint une copie de l’ecran de configuration
      pour compléter la documentation du plugin (C_&_O_SPIP3 v2.6.5)
      /ecrire/ ?exec=configurer_contacts

    • Xebiaut

      Bonsoir,
      Je suis peut être un peu idiot ou très fatigué, mais je ne trouve pas le lien permettant de gérer la configuration de ce plugin :-(

    • En général y a une icône (tournevis) sur la page d’administration des plugins, sur les plugins actifs qui ont des configurations. Ça doit aussi être le cas pour celui-là. En SPIP 3 en tout cas.

    Répondre à ce message

  • 4

    Bonjour,

    Très bon plugin qui permet une meilleure gestion des informations des contacts indépendamment de la gestion des auteurs native de spip.

    J’obtiens cette erreur (voir image) lorsque je souhaite ajouter une organisation sans pour autant que cela nuise au fonctionnement de l’ensemble.

    Je dois préciser que j’utilise le plugin Champs extras sur l’objet ’Contacts’. Est ce la cause ?

    Merci de l’éclairage.

    Coordonnées 2.0.18 - test
    SPIP 3.0.5 [19905]
    Champs Extras 3.2.3 - stable

    Répondre à ce message

  • 4

    Bonjour,

    sur un spip 3 et le plugins Contact & org. dernières versions
    le bouton enregistrer une organisation « fille »
    me renvoie sur un lien
    javascript:if (window.jQuery) jQuery(« .entete-formulaire .retour a »).followLink() ;
    donc : rien !
    chaque fois que j’essaie de modifier l’organisation mère sur une org. fille déjà créée.

    Par ailleurs, au moùment du premier enregistrement d’une organisation fille créée via le bouton « créer une org. fille », l’enregistrement se passe ok, mais ne conserve pas l’id de l’org mère ...

    Cordialement
    RB

    • Bonjour,

      Je suis confus, mais je ne reproduis rien de cela !

      Par contre, il y a un autre bug identifié lorsqu’on a activé les contacts-auteurs dans la conf de C&O, et des mots clés sur les auteurs. Mais rien à voir avec ce que tu expliques. Il doit manquer une information dans ta procédure pour reproduire ce bug ?

      MM.

    • Bonjour,

      je ne crois pas ... mais ?... vous ai envoyé message via votre page auteur.

      Merci,
      RB

    • linkfox

      Bonjours, je cherche a savoir s’il y a un moyen d’importer en csv une liste de contact et organisation merci d’avance

    • Bonjour,

      Je reproduit sur une installation toute neuve.
      Lors de l’ajout d’une organisation fille, l’organisation est bien crée mais à la racine.
      Ensuite lorsque l’on l’édite et qu’on sélectionne une organisation parente on est redirigé vers une adresse « javascript:if (window.jQuery) jQuery( ».entete-formulaire .retour a« ).followLink() ; ».

      SPIP 3.0.6 [20322]
      Coordonnées 2.1.7 SVN [70747]
      Contacts & Organisations 2.6.3 SVN [70271]
      Editer Liens Simples 1.0.1 SVN [70922]

      Merci

    Répondre à ce message

  • Bonjour,

    un contact peut ne pas être lié à une organisation ou l’être à plusieurs organisations. Dès lors la fonction du contact intrinsèque à l’objet contact me paraît plutôt relever d’un typage de la liaison à une organisation.
    Si vous souhaitez conserve ce champ, j’opterais plutôt par « métier principal », ou « domaines de compétences ».
    Par ailleurs, l’internationalisation du plugin fait que pour la fiche « organisation » je propose de séparer l’identifiant (n° d’entreprise, en Belgique, Siret en France, etc.) et le numéro de TVA (type de données au minimum valable sur toute l’europe).
    J’ajouterais aussi l’acronyme ou le sigle de l’organisation (OMS pour Organisation mondiale de la santé)
    l’usage d’un champ « lang » serait très bien. (aussi pour contact)

    Enfin, pour l’activité, compte tenu qu’il peut être nécessaire d’homogénéiser les entrées, peut-être qu’une liste de sélection permettant soit de sélectionner une entrée déjà existante, soit d’en créer une, serait pas mal : ce serait dommage qu’un rédacteur encode ONG et un autre « humanitaire » et un troisième « coopération au développement » ...

    Perso, par ailleurs, j’ai surcharger des fichiers pour pouvoir lier des organisation à des organisations (autrement que dans une relation mère-fille et idem pour les contacts (avec typage des relations)

    En tous cas, formidable base de travail !
    Merci

    Répondre à ce message

  • 4

    Bonsoir,
    Lorsqu’on essaye d’activer le plug-in, on obtient le message suivant : « Le plugin Contacts&Organisations dépend de EDITER_LIENS_SIMPLES [1. ;[ »
    Or, impossible de trouver ce dernier plug-in. D’ailleurs, le lien n’est pas actif dans la présentation de Contacts & Organisations.
    Qu’elle est donc la procédure à suivre ?
    Merci

    • Bonsoir,
      Ce plugin est nécessaire pour la version de C&O pour SPIP 3.0. Il est présent sur la zone à l’adresse suivante :
      http://zone.spip.org/trac/spip-zone/browser/_plugins_/editer_liens_simples. Pour l’instant on a pas fait générer le zip automatiquement, ce qui explique que le plugin ne puisse pas être trouvé automatiquement.
      Je vais faire la modif qui sera effective et visible sur cette page (lien vers le zip) dans 1h. En attendant le zip peut être récupéré avec le lien paramétré suivant : http://zone.spip.org/trac/spip-zone/changeset/latest/_plugins_/editer_liens_simples?old_path=/&format=zip
      Cyril

    • merci pour cette réponse très rapide
      j’ai hâte de découvrir ce plug-in
      bravo pour le travail réalisé
      JF

    • Bonjour,

      Je confirme que le plugin peut maintenant être installé directement sur la branche SPIP 3.x : Merci à Cyril & Matthieu. Ce n’est pas encore le cas de Coordonnées visiblement encore incompatible pour SPIP 3 : dommage...

      J’en profite pour vous indiquer obtenir le message d’erreur suivant après création d’une organisation :

      Erreur SQL 1054
      Unknown column ’$_id_objets’ in ’where clause’
      SELECT id_organisation FROM spip_organisations_contacts WHERE $_id_objets=2 AND $_id_objetl=1

      L’organisation est néanmoins bien créée et est bien rattachée à l’auteur, comme demandé =°)

      Merci !

    • Bonjour, Bonsoir : Bonjoir,

      Spip 3.0.5 (html5) et autres plugins...

      Vous avez certainement vos raisons, mais je ne comprends pas très bien - sans vouloir être désagréable bien entendu -)) - pourquoi il faut ’transformer’ un auteur en organisation et non pas créer une organisation pour ensuite y lier des contacts. Que se passera-t-il par exemple si le contact principal est détruit par un utilisateur non averti ... ? Je n’ai pas testé cette éventualité, j’avoue ! =°)

      Ce n’est pas pour cette raison que je poste ici : je ne parviens à afficher le nom de l’organisation que pour le contact principal, soit celui qui a été ’transformé’ en organisation, or je voudrais l’afficher également pour les autres contacts liés à l’organisation.

      Le code / boucle utilisé :

      <BOUCLE_details_auteur(AUTEURS){tout}{id_auteur=#ENV{auteur}}{statut=6forum}>
              
              <BOUCLE_details_contact(CONTACTS){id_auteur}>
              [<p>Civilit&eacute; : (#CIVILITE)</p>]
              [<p>Nom : (#NOM)</p>]
              [<p>Pr&eacute;nom : (#PRENOM)</p>]
              </BOUCLE_details_contact>
              
              <BOUCLE_details_organisation(ORGANISATIONS){id_auteur}>
              [<p>Organisation : (#NOM)</p>]
              </BOUCLE_details_organisation>
              
              [<p>Email : (#EMAIL)</p>]
              
       </BOUCLE_details_auteur>

      Merci d’avance pour vos réponses & bravo pour ce plugin.

    Répondre à ce message

  • Bonjour, soit un spip 3.0.5 SQLITE + Contacts & Organisations 2.2.2 - test et Coordonnées 2.0.14 - test

    l’idée est de réaliser un annuaire de contact via la page auteur, il me faut donc
    le nom et prénom ; l’adresse ; téléphone portable + fixe, adresse mails etc ...

    d’où l’idée d’utiliser coordonnée
    impossible de faire fonctionner seul il m’a fallu installé également le plugin Contacts et organisation mais en plus modifié le necessité de coordonnée de :
    compatibilite="[3.0.0-dev ;compatibilite="[3.0.0-dev;3.0.*"

    voilà pour l’installation ensuite lorsque j’essaye une boucle pour afficher les données rien ne s’affiche est ce lié a ma boucle ou a SQLITE ?

    <BOUCLE_auteur_principal(AUTEURS){id_auteur}{lang_select}>
                        <div id="titre-article"><:escal:envoyer_message:><strong>#NOM</strong>
                    ----
    
    a    [(#CIVILITE)] 			<br />
    b    [(#NOM)] 			<br />
    c    [(#PRENOM)] 			<br />
    d    [(#FONCTION)] 			<br />
    e    [(#DATE_NAISSANCE)] 			<br />
    f     [(#DESCRIPTIF)] 			<br />
                    ----    
                        </div>
                        <!-- Affichage de la bio si elle existe -->
                        <div id="descriptif-article">			[(#BIO)] 			<br />
                          <!-- si l'auteur n'a pas donne d'adresse, on le signale
                          		s'il l'a donne,  le formumaire s'affiche -->
                          [(#EMAIL|non) <:escal:adresse_non:>]
                        </div>
                    </div><!-- fin cadre-titre-article -->
                    
                    <div id="texte-article" >
                    
                    <div id="formulaire-auteur">#FORMULAIRE_ECRIRE_AUTEUR</div>
    
    
                      </BOUCLE_auteur_principal>

    merci pour votre aide
    URL exemple

    Répondre à ce message

  • Bonjour, apparemment il manque le squelette prive/objets/liste/contacts_organisations_lies ?

    Répondre à ce message

  • Bonjour,

    Autre petit souci : les champs supplémentaires créés par le plugin ne sont pas vus par le plugin Fulltext, et je ne vois pas de moyen pour les ajouter (comme par ex avec le plugin Champ Extra).
    Le plugin Fulltext ne voit que le champ « nom ».

    Pour s’en sortir il est possible de créer l’index « tout » sur le « nom » seulement depuis spip, ensuite manuellement en phpMyAdmin d’ajouter les autres champs nécessaires à l’index précédemment créé.

    Mais bon ça serait plus classe par spip :-)

    Pierre.

    Répondre à ce message

  • Bonjour,
    excellent plugins

    quelques suggestions :
    la possibilité de lier plusieurs fois un contact à la même organisation (il peut y occuper des fonctions diverses)
    la possibilité de définir une période de validité pour un lien contact>organisation (par exemple pour un élu dans une assemblée. le lien est maintenu en dehors d ela période, bien sûr, mais on sait de quand à quand cette fonction a été occupée chez Y par X
    ajouter un champ acronyme pour les organisations (BIT pour Bureau International du Travail)
    pour ce dernier point, j’imagine que champs extras peut faire l’affaire

    beau boulot en tous cas,
    R. Burton

    Répondre à ce message

  • 1

    Bonjour,

    Une question concernant l’usage de mot-clés sur des organisations. Cela fonctionne-t-il ? (spip 3.0.5 et Contacts 2.2.1 SVN [67082])

    Je pose la question car nos essais sont moyennement concluants, par ex une boucle qui va chercher des organisations qui ont un mot-clé :

    BOUCLE_test (ORGANISATIONS) id_mot=27 ne marche pas alors que
    BOUCLE_test (ORGANISATIONS) titre_mot=Savoie marche
    (bien sûr le mot-clé 27 a pour titre Savoie et of course, on préfèrerait bosser avec les id ...)

    De la même façon, dans le back-office, habituellement dans la liste de mots-clés on voit pour un mot XX qu’il a YY articles liés, ça ne marche pas pour les organisations, si pas de mot c’est ok, si on a une organisation on a la mention « Une organisation » et si plusieurs organisations la mention « organisation nb » ...

    Merci, Pierre.

    • Je me réponds à moi-même, en tous cas pour la première partie de la question :

      http://marcimat.magraine.net/SPIP-3-Documents-Mots

      C’est le même problème pour les organisations qu’avec les mots appliqués à des documents ou les documents attachés à des mots ... et il est donc logique que ça marche avec le titre, puisque pas d’ambiguité. Lecture intéressante.

      Cela ne résout cependant pas le souci dans le back-office, mais bon, c’est pas majeur.

      P.

    Répondre à ce message

  • 5

    bonjour,

    la modification apportée récemment (voir http://zone.spip.org/trac/spip-zone... ) corrige sans doute le problème pour sqlite, mais elle empêche maintenant la création des tables de liaison avec mysql (testé sur spip 3).

    •  ?? Quelle version de MySQL ? parce-que ça devrait pas poser de problème et en plus c’est portable !

    • version 5.5.25 (celle fournie avec MAMP 2.1.1).

      Les tables de liaison ne se sont pas créées à l’installation du plugin et il y avait ce message dans les log (fichier mysql.log) « Oct 14 16:22:01 ::1 (pid 6301) :Pri:ERREUR : Erreur 1170 de mysql : BLOB/TEXT column ’numero’ used in key specification without a key length »

    • précision relative à mon message précédent : le log venait de l’installation du plugin Coordonnées qui a le même problème (d’où la colonne « numéro » qui apparaît ici), mais le message était identique pour Contacts.

    • Vous avez raison : MySQL ne sait pas créer des indexes/clés sur ce genre de champ... (ou du moins il s’autorise seulement lorsqu’on précise la quantité à prendre) Il faudra probablement utiliser un VARCHAR sur le champ fautif...

      Par contre, cela ne doit pas empêcher la création de la table elle-même (sauf si l’API fait toute l’opération en une fois au lieu de faire la création de colonnes d’une part puis d’ajouter les indexes d’autre part) :-/

    • Salut.

      Pour Coordonnées ça devrait être résolu.

      Pour Contacts & Organisations, je me pencherai dessus plus tard (sauf si quelqu’un d’autre le fait avant)

      Merci.

    Répondre à ce message

  • 3
    tascip

    Bonjour,
    Avec un spip 3 RC, contacts et organisations en V2.1.1 et coordonnées 2.0.1, lors de l’insertion d’un nouveau contact (new=oui), la redirection du formulaire ne se fait pas (vers le contact fraichement inséré). Le plugin me ré-affiche le formulaire d’insertion.
    L’’enregistrement a cependant bien lieu. Cela se produit également avec les organisations.

    Auriez vous une idée svp ?

    De plus, si j’essaye de créer un contact pour l’associer a celle-ci depuis l’encadré de liaison de contact à une organisation (bouton « Créer et associer un contact »), spip me retourne une erreur :

    Erreur SQL 1054
    Unknown column '$_id_objets' in 'where clause'
    SELECT id_organisation FROM spip_organisations_contacts WHERE $_id_objets=10 AND $_id_objetl=17

    merci d’avance pour votre aide et encore bravo pour ce plugin :)

    • Bonjour,

      J’ai le même problème.

      Impossible de lier un contact à une organisation et vice versa. J’obtiens le même message d’erreur :

      1 ERREUR DANS LE SQUELETTE :
      Erreur SQL 1054
      Unknown column ’$_id_objets’ in ’where clause’
      SELECT id_organisation FROM spip_organisations_contacts WHERE $_id_objets=10 AND $_id_objetl=1

      contenu de la table en PJ

    • une info supplémentaire importante : à l’insatllation du plugin, les tables auxiliaires *_contacts ne se sont pas crées. Je les donc fais à la mimine jusqu’à la création des index => pas la table liée.

      Ceci explique certainement cela...

      Question comment on fait le lien en SQL ?

    • Salut.

      L’erreur SQL provient probablement du code PHP appelé par la page ; rien à voir avec la structure des tables... Comme je vais devoir utiliser ce plugin sous peu pour un projet, j’en profiterai pour jeter un coup d’oeil.

    Répondre à ce message

  • 3

    Bonjour
    Contacts et organisation nécessite médiatheque, mais je ne vois pas comment s’en servir pour gérer des logos de contacts ou d’organisations. J’ai loupé quelque chose ?
    Il y a bien #LOGO_CONTACT dans le code, cette balise est-elle gérée nativement par spip (#LOGO_objet) ou autrement.

    Merci

    • Bonjour,

      Une solution consiste à se servir du logo de l’auteur associé à un contact. C’est ce que j’utilise pour cette version. On va donc chercher le logo de l’auteur correspondant dans une boucle auteurs, avec comme id_auteur le id_auteur du contact (ou de l’organisation).

    • Merci Cyril. Pour mon cas c’est pas vraiment une solution (3 000 contacts environs), je vais m’orienter vers un truc du type, images associées à un article, avec pour titre qqchose du type contact_xx ou organisation_xx (xx étant l’id).

      Le nécessite mediatheque du plugin n’est donc pas justement nécessaire.

      Merci pour ce plugin.

    • Au temps pour moi. Je n’avais pas vu le bouton « Ajouter un document » pour les organisations et les contacts. Voilà qui me simplifie les choses et puis rectification, le necessite mediatheque du plugin est bien justifié.
      Désolé pour le bruit.

    Répondre à ce message

  • 2

    Bonjour,
    J’utilise la version 1.12.3 du plugin Contacts et Organisations sous SPIP 2.1. J’ai constaté qu’il existait une colonne « liaison » dans le tableau listant les contacts liés à une organisation dans l’espace privé, mais est-il possible de la renseigner ? Permet-elle bien de déclarer par exemple qu’untel exerce telle fonction au sein d’une organisation ?

    Par ailleurs, s’il est possible de créer des sous-organisations, il n’est pas encore possible de lier une sous-organisation à plusieurs organisations. Cette évolution est-elle envisageable ?

    Merci.

    • Bonjour Jean-Baptiste,

      Oui, en effet, il y a bien un champ « type_liaison » dans la table (de liaision justement...) « spip_organisations_contacts ». Ce champ permet de qualifier la relation pouvant exister entre un contact et une organisation, et d’indiquer, par exemple la fonction d’un contact dans une organisation. Pour éditer cette liaison, on utilise pour l’instant les crayons (c’était plus simple à développer dans un 1er temps, en évitant d’ajouter un formulaire).

      Pour activer les crayons sur ce champ, c’est très simple : il faut d’abord installer le plugin crayons bien sur, puis le configurer en cliquant sur le petit bouton "configurer" en haut à droite du bloc crayons, sur la page ?exec=admin_plugin. Là, il faut cocher la case « activer crayons pour la partie privée » puis mettre le caractère « * » dans la liste des pages autorisées. Ensuite la liaison entre un contact et une organisation peut être éditée en ligne, en double cliquant soit sur le champ (si existant) soit sur le caractère « - » qui est affiché par défaut.

      Ensuite, pour les liaisons entre organisations, effectivement, c’est le système de la filiation qui a été choisi ; le champ « id_parent » dans la table spip_organisations est utilisé pour indiquer la « mère » de l’organisation, et (il n’est pas prévu de faire évoluer cela) une organisation ne peut avoir qu’une seule mère. Pour l’instant le besoin ne s’est pas fait sentir de pouvoir lier une organisation à plusieurs mères, des exemples seraient utiles pour bien comprendre les cas d’application.

      Bonne utilisation,
      Cyril

    • Merci pour ces informations, Cyril.

      Pour l’association multiple d’organisations, elle ne sera finalement pas exploitée sur le site en question (Bases de données de l’INEE). Par contre, l’idée aurait été de lier des laboratoires du CNRS à plusieurs tutelles (CNRS, Inserm, Universités ...). Les labos et les tutelles étant des organisations.

    Répondre à ce message

  • 14

    Hello,
    J’ai procédé à la mise à jour du plugin vers la dernière version (1.9.4) car je ne voyais plus le bouton permettant de déclarer un auteur comme contact. Mais cela a provoqué d’autres problèmes :

    Dans l’espace privé, les contacts n’affichent plus les auteurs auxquels ils sont liés (sur la page / ?exec=contact&id_contact=xxx) alors que l’information est encore présente dans la table spip_contacts_liens.

    Sur la fiche des auteurs (?exec=auteur_infos&id_auteur=205), ceux-ci sont bien indiqués comme étant des contacts, mais liés à toutes les organisations (ce qui n’est pas le cas en réalité). Il m’est également arrivé d’avoir un message d’erreur « Critère inconnu id_auteur » dans la boucle _est_une_organisation à la consultation des pages auteurs (voir capture ci-jointe).

    Dans l’espace public, les boucles de type CONTACTS ne renvoient plus de résultats.

    Une idée ?

    Pour info : SPIP 2.1.10 + PHP 5.3.3

    • Hello,
      J’ai essayé d’installer la version 1.9.4 du plugin sur autre site SPIP 2.1.10, PHP 5.3.5, mySQL 5.1.36, sans mise à jour cette fois (plugin installé pour la première fois) et le message d’erreur « Table spip_contacts doesn’t exist » apparait après avoir activé le plugin (voire capture). La table est néanmoins créée dans la base.

      Quand j’affiche la page d’un auteur dans l’espace privé, j’ai le message d’erreur suivant :

      Erreur SQL 1054
      Unknown column 'organisations.L1.objet' in 'on clause'
      SELECT organisations.id_organisation FROM spip_organisations AS <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+b3JnYW5pc2F0aW9uczwvY29kZT4="></span> INNER JOIN spip_organisations_liens AS L1 ON ( L1.id_organisation = organisations.L1.objet='organisation' ) WHERE (L1.id_objet = 1) AND (L1.objet = 'auteur')
      
      squelettes : ../plugins/auto/contacts_et_organisations/prive/boite/selecteur_contacts_organisations.html
      
      boucle : _est_une_organisation
    • Hello,
      J’ai vu que la version du plugin en téléchargement avait été downgradée en 1.9.2. Par contre, il y a un bug à la consultation de la page « Auteurs > Contacts et organisations > Organisations » :

      Critère inconnu ==
      squelette : ../plugins/auto/contacts_et_organisations/prive/liste/organisations.html
      boucle : _liste_orga

      Il y a un message d’erreur identique à la consultation de la page « Auteurs > Contacts et organisations > Contacts »

      Le message disparait au bout de quelques consultations ...

    • Ah oui, j’ai oublié de dire qu’à mon avis le message d’erreur vient du critère de boucle {auteurs.statut == #ENV{statut,.*}} qui avait été supprimé dans la version 1.9.4 de C&O.

    • Je confirme, ça va mieux en enlevant le critère {auteurs.statut == #ENV{statut,.*}} de la boucle _liste_orga du fichier contacts_et_organisations/prive/liste/organisations.html : Le message d’erreur cité plus haut disparait, et la liste des organisations peut s’afficher ....

    • Même problème ici sauf que le plugin devient inutilisable, chacune de ses pages provoquant des erreurs.
      Merci de mettre à jour ce plugin afin qu’il retrouve ses aspects fonctionnels.

    • Bonjour,

      Je vais essayer de remettre de l’ordre dans ce plugin, et vais tenter d’expliquer les déboires qui sont arrivées.

      Pris d’une très bonne intention, et après discussions, azerttyu a proposé de supprimer la table SQL spip_organisations_contacts, car elle venait indirectement et potentiellement doublonner la table spip_organisations_liens qui pourrait très bien accueillir ces liens. D’ailleurs, quelqu’un dans le forum l’avait aussi signalé. La suite fut moins glorieuse que l’enthousiasme de départ : des modifications ont été faite dans le plugin, en pensant naïvement que tout allait marcher. Ce ne fut pas le cas : des jointures ne se faisaient plus. Le plugin partait en vrille.

      Idéalement, il aurait fallu : soit tester en local les modifications et l’upgrade avant de déposer les modifications sur la zone, soit faire un « tag » ou un sabot, c’est à dire que l’archive du plugin fournie ici restait figée à une version X, permettant de tester les modifications apportées en SVN, avant ensuite d’enlever le tag, soit faire une branche en SVN pour ces modifications. Ça n’a pas été le cas, et évidemment il y a eu une pluie de messages dans le forum montrant les bugs.

      Par la suite, pour corriger une partie des problèmes, j’ai créé ces branches, formant une branche 1.9 ayant encore spip_organisations_contacts, et fonctionnant normalement correctement sur une installation neuve, copie du plugin avant les modifications supprimant spip_organisations_contacts. La partie qui a déjà les modifications porte la branche 1.10 et est bugguée. Le zip actuel fournit est celui de la branche 1.9, mais des personnes ont déjà migré sur une version récente et bugguée donc.


      Voici donc ce que je propose pour débloquer, je l’espère, la situation :
      Partir de la version 1.9, et faire un upgrade pour ceux qui ont déjà les modifications bugguées, pour réinstaller la table spip_organisations_contacts, qui semble indispensable à SPIP 2.1 dans ce cas précis de plugin. La version qui aboutira, devrait s’appeler 1.11, et aboutir à la réunion de nos deux branches du plugin qui sont génantes. Voilà.

      Maintenant... ce n’est pas tout. Il reste le cas de SPIP 3. Car SPIP 3, lui, en développement, gère très bien (beaucoup mieux) les jointures avec les tables de _liens. Je pense que dans la version du plugin destiné à SPIP 3, on pourra effectivement ne pas avoir cette table de liaison spip_organisations_contacts. Mais comme on sera malin, on testera avant, hein ?

      À bientôt donc pour de nouvelles aventures...

    • Il reste un autre soucis, plus ancien, attribué lui, à la suppression du champ SQL id_auteur sur les tables spip_contacts et spip_organisations. La liaison entre auteur et contact, ou entre organisation et contact est pratiquement impossible à faire actuellement en SPIP 2.1. Cela est très ennuyant vu que c’est tout de même fournit avec le plugin que l’on puisse lier ces objets aux auteurs.

      En SPIP 3, ces problèmes seront réglés je pense, naturellement. Pour le cas qui nous occupe, sur la 2.1, il faut trouver une solution de repli.

      Je propose de remettre ce champ id_auteur sur les 2 tables qui nous concernent. Soit pour doublonner la liaison spip_contacts_liens et spip_organisations_liens sur auteur, soit pour remplacer celle-ci. Ça ferait un autre retour en arrière sur ce plugin.

    • Hello Matthieu,

      La suppression du champ id_auteur est moins problématique que la suppression de la table de liaison spécifique entre contacts et organisations. La liaison d’un contact ou d’une organisation avec un auteur se gère bien avec les tables spip_contacts_liens et spip_organisations_liens ; elle nécessite seulement quelques boucles supplémentaires dans les squelettes. A mon avis ce n’est pas la peine de remettre id_auteur dans les tables C et O.

      En revanche, oui, revenir à la table de liaison spip_organisations_contacts me parait être une bonne idée.

    • Après re-discussion, on va effectivement remettre cette colonne id_auteur, car son absence est tout de même un peu problématique, car compliquant vraiment beaucoup les squelettes qui ont besoin d’afficher des informations de contacts et d’auteurs en même temps.

    • mais finalement, oui, le retour du champ id_auteur dans les tables C et O ça me parait aussi une bonne chose : en effet c’est un moyen simple de garantir une liaison 1-1 entre contact <> auteur et entre organisation <> auteur. Et ça évite les boucles lourdes pour retrouver le prénom d’un auteur, ou le statut d’un contact.

    • Voilà qui est posté, avec la version 1.12.0 du plugin.

      Merci de signaler les derniers petits bugs qui pourraient traîner.

    • Salut, c’est encore moi,

      Merci pour ces corrections, cependant, dans la version 1.12 du plugin, dans le fichier /actions/creer_auteur_lie.php, il y a une virgule en trop à la fin de la ligne 32 et une parenthèse en trop à la fin de la ligne 33 ....

      "id_contact =" . $arg[1],
      ));

      En effet, quand on crée un nouveau contact puis que l’on clique sur le lien « Créer un nouvel auteur et le lier à ce contact » on obtient le message d’erreur suivant :

      Parse error: syntax error, unexpected ')' in C:\Program Files\wamp\www\bases-inee\plugins\auto\contacts_et_organisations_1_12\action\creer_auteur_lie.php on line 33

      Merci

    • merci, normalement corrigé avec la version 1.12.2, merci (http://zone.spip.org/trac/spip-zone/changeset/51671)

    • La mise à jour du plugin de la version 1.9.2 du plugin vers la version 1.12.3 a corrigé sur mon site tous les problèmes cités précédemment. Merci pour ce travail de correction.

    Répondre à ce message

  • 2

    Bonjour,

    Suite à une mise à jour du plugin je reçois le message suivant

    Impossible d'activer le plugin ../plugins/auto/contacts_et_organisations
    
        Nécessite le plugin MEDIAS en version [1.6;] minimum.

    J’ai fait une recherche de plugin et je n’ai pas trouvé le plugin MEDIAS, pouvez-vous me donner un lien vers ce plugin ?

    Merci beaucoup

    Zaa

    Répondre à ce message

  • 4

    une question me turlupine... peut-on être a la fois contact et organisation ?? comment est-ce géré dans ce cas ?

    un peu similaire, un auteur peut-il se voir attribuer plusieurs contacts ?

    une autre question annexe concernant SPIP : est-il possible de creer des balises qui sont différents des noms des champs des tables ?

    • Salut,

      Non, à la base un auteur est soit un contact, soit une organisation. C’est 1 seul contact ou 1 seule organisation.
      Il serait peut être possible de faire autrement, la laison se faisant sur contacts_liens, mais cela demande du développement :).

      Un contact peut être lié à plusieurs organisations par contre.

    • Le plugin Contacts et Organisations (C&O) étend les auteurs SPIP, un auteur pouvant être soit l’un soit l’autre mais pas les 2. En revanche, comme précisé dans le message précédent, un contact peut être lié à un nombre illimité d’organisations, et même sa fonction au sein de chaque organisation peut être précisée (cf champ type_liaison table spip_contacts_organisations). De plus les organisations peuvent être liées entre elles (cf champ id_parent de la table spip_organisations) à la manière des rubriques SPIP (pour une gestion des filiales par exemple).

      Désormais aussi, une rubrique peut être rattachée à une organisation.

      Bonne utilisation ;-)

    • Désormais aussi, une rubrique peut être rattachée à une organisation.

      J’ai vu cette nouvelle option, par contre une fois que la rubrique est attachée, on ne le voit pas. J’ai fait une tite modif au cas ou.

      [(#VAL{inc/presentation}|include_spip|oui)]
      
      <!--#extra-->
      
      [(#CHEMIN{images/organisation-24.png}
      
      	|debut_cadre_relief{#EVAL{true},'',[(#VAL{<:contacts:lier_organisation:>})],0})]
      
      #SET{rien,0}#SET{rubrique,0}
      
      
      
      	<BOUCLE_organisation_rubrique(ORGANISATIONS){id_rubrique}>
      
      		#SET{id_organisation,#ID_ORGANISATION}
      
      		<a href="[(#ID_ORGANISATION|generer_url_entite{organisation})]" title="<:contacts:organisation_voir:>">[(#CHEMIN{images/organisation-48.png}|image_reduire{48}|inserer_attribut{class,contact_logo})]#NOM</a>
      
      	</BOUCLE_organisation_rubrique>
      
      	</B_organisation_rubrique>
      
      
      
      	<div class='ajax'>
      
      	[(#FORMULAIRE_LIER_ORGANISATION_RUBRIQUE{#ID_RUBRIQUE, #SELF})]
      
      	</div>
      
      	<//B_organisation_rubrique>
      
      [(#EVAL{true}|fin_cadre_relief)]
      
      <!--/#extra-->

      Par contre, ca ne gére pas encore la déliaison, et surtout la rubrique avec plusieurs organisations.

      En tous cas, merci pour tout :)

    • Merci pour la réponse : soit l’un soit l’autre, mais pas les deux...
      Je me suis posé la question suite à une erreur de chargement des tables directement en SQL (qu’une cinquantaine, mais je ne voulais pas me les taper tous un par un... mais il y en avait deux qui ont été défini à la fois comme contact et comme organisation, et il n’apparaissaient dans SPIP que comme contact et je ne savais pas si c’était lié au code applicatif de gestion ou si c’était la base de données qui de par son design ne reflète pas bien l’aspect exclusif...)

      Je ne répond que maintenant car j’ai été souffrant entre temps, mais ça m’a laissé le temps de murir ma réflexion sur le sujet :)
      Tout d’abord, je constate une grande similitude entre les deux objets, et si on ne peut qu’être l’un ou l’autre alors je ne sais pas trop quel est l’intérêt d’avoir deux tables...

      personne organisation contact
      type statut_juridique civilite
      nom1 nom nom (de famille)
      nom2 unite ? prenom
      identification identification (siret) numero_securite_sociale ?
      date_debut date_creation date_naissance
      date_fin date_dissolution ? date_deces ?
      specialite ? activite fonction
      descriptif

      C’est ce constat qui m’avait amené à penser que les tables pouvaient être fusionnées (et du coup on s’assurait de l’unicité de la liaison avec l’objet... dans l’interface ça ne change pas pour les utilisateurs, mais quand on attaque directement les tables en SQL on s’évite l’erreur et donc la base est plus robuste par rapport aux objuctifs)
      C’est cette idée (pas encore claire à l’époque) qui me faisait demander accessoirement si les balises pouvaient être différentes des noms des champs (et la réponse est oui... on peut définir ces propres balises indépendamment et indiquer ce qu’elles renvoient... et donc on pourra avoir une balise quand c’est une organisation et une autre quand c’est un contact)
      Justement, qu’est-ce qui différencie l’un de l’autre si la table est commune ? Bah, un champ booléen (ou mieux un ENUM ou un CHAR si on veut se laisser la possibilité d’autres choses demain) qui dira si la personne est physique (contact) ou morale (organisation) ;)

      Dans ce nouveau schéma que je propose, la liaison spip_contacts_organisations devient spip_personne_personnes avec plus de liberté (selon les usages que les squelettes ou autres plugins voudront en faire), et il faudra prévoir un champ type/description de/du lien. En effet, on pourra lier :

      • un contact (personne physique) à une organisation (personne morale) comme prévu initialement (le type de liaison serait le « rôle » ou poste du contact dans l’organisation)
      • une organisation avec une autre comme ça vient d’être rajouté, mais pas uniquement verticalement (type de liaison est filiale) car les concentration peuvent être horizontales aussi (et certains pourraient vouloir juste avoir des liaisons de type partenariat) et sans avoir besoin d’un id_parent...
      • un contact avec un autre contact... aussi bien verticalement (relation filiale aussi, mais sans avoir besoin de deux id_parent —et du coup ce plugin peut m’être utile dans un projet de mini-généalogie à venir bientôt—) que horizontalement (dans un premier temps je vois les liaisons de type époux ou concubins —qui me serait très utile actuellement— et plus tard les collègues ou amis —ce qui fait un prémisse d’organisation ou réseau social dans spip même si ce n’est pas le but initial ni ultime de ce plugin)

    Répondre à ce message

  • Bonjour, et merci pour ce plugin.

    Je suis en train de le tester en vue de l’utiliser comme base d’un annuaire.

    Et je tombe directement sur un problème : le cartouche « Contact et organisation » ne s’affiche pas en dessous du cadre portant le n° de l’auteur.

    Je suis en SPIP 2.1.10 SVN [18284] + Quelques plugins tous pris en SVN du jour :
    spip_bonux(2.2.21), yaml(1.5), medias(1.6.7), menus(0.8.28), saisies(1.13.0), pays(1.0.6), coordonnees(1.4.5), contacts(1.9.0), compresseur(1.0.1)

    Répondre à ce message

  • 6

    Lorsque je crée un nouvel enregistrement de coordonnées (numéro, adresse ou e-mail), les données ne s’enregistrent pas. Elles ne sont pas prises en considération (ni dans les tables côté phpmyadmin).

    Quel pourrait-être le problème ?

    • tu as utilisé la dernière correction du plugin Coordonnées ?
      j’avais le même problème il y a une semaine ^_^

    • J’ai bien la dernière version, 46929... Et je n’ai pas réussi à résoudre le problème. Je joins une capture écran pour montrer la réponse dès que j’encode une nouvelle adresse.

    • Je n’ai toujours pas trouvé de solution ?... Est-ce un problème de script ?

    • Hello,
      L’affichage du message « no ajax » n’est pas normal, ça pourrait être un début de piste. Pour déterminer précisément d’où vient le problème, il faudrait repartir d’un SPIP « propre », c’est à dire juste un SPIP et sa base de données. Désactiver tous les plugins, puis les réactiver un par un, en commençant par « Coordonnées » (car c’est bien ce plugin qui ajoute les adresses, et non C&O) et ses dépendances. Désactiver aussi les options, fonctions, scripts et code pouvant être amenés par les squelettes.
      Je te rassure, « Coordonnées » fonctionne bien partout ailleurs.
      Bonne enquête, bon dépannage...

    • Voilà, j’ai trouvé d’où vient le problème... Mais je ne comprends pas pourquoi. Lorsque je supprime le fichier mes_fonctions.php ... je peux ajouter une nouvelle adresse. Avant de trouver le problème, j’ai essayer de supprimer les fonctions que j’avais ajouter... Mais rien n’y fait. Même si le ficher mes_fonctions.php est vide, l’erreur est présente (no ajax). Mais dès que je supprime le fichier mes_fonctions.php alors, je peux créer une nouvelle coordonnée. Bizarre non ?

    • [Résolu]

      Voir la suite de la discussion ici

    Répondre à ce message

  • Bonjour,

    J’ai ajouté avec le plugin champs extra quelques champs supplémentaires à l’objet organisation (utilisation pour une liste d’écoles ( ajout du réseau d’enseignement, la province, et le type (fondamental, secondaire, spécialisé)).

    Les champs sont bien présents lors de l’édition/modification de l’enregistrement mais ils ne s’affichent pas dans la page édition de l’auteur ni à l’affichage de la page détail de l’organisation. Cela indique -vide- en regards des champs ajoutés.

    Que dois-je modifier ? Merci.

    Répondre à ce message

  • bonjours

    je suis actuellement en train de faire un annuaire des organismes partenaires de mon site.
    pour cela, j’ai utilisé les plugin Contact et Organisations, Coordonnées, Champs extras
    je voudrais faire, dans la partie publique, un formulaire de recherche pour trouver les « fiches » de chaque organisation. le formulaire est composé de trois menus déroulants contenant des mots clés (champs supplémentaires dans la table organisation via le plugin champs extra)
    la recherche doit me retourner une liste des noms d’organisation correspondant à la recherche, avec un lien en direction de la fiche.

    là où j’ai un problème, c’est pour afficher dans la même page le nom de l’organisation, ses coordonnées, les contacts associés avec leur nom et leurs coordonnées, ainsi que quelques autres données ajoutées a Organisations avec les Champs extra. Pour arriver sur ma page, j’utilise comme lien

    <a href="#URL_PAGE{ficheorga, id_organisation=#ID_ORGANISATION}">#NOM</a>

    dans la fiche en elle même, actuellement :

    <BOUCLE_rechercheorga(ORGANISATIONS){id_organisation}>
    		<a href="#URL_PAGE{ficheorga,id_organisation=#ID_ORGANISATION}">#NOM</a><br/>
    		#MISSION<br/>
    		#ACTIVITE<br/>
    		#DESCRIPTIF<br/>
    		<p> les contacts:<br/>
    			 <BOUCLE_contacts(CONTACTS){id_organisation}>
    				#CIVILITE
    				#NOM #PRENOM <br/>
    				#FONCTION<br/>
    				<p>coordonnées:</p><br/>
    
    				<p>adresse:</p><br/>
    				<BOUCLE_adressecontact(ADRESSES){id_objet}>
    				#VOIE <br/>
    				#CODE_POSTAL #VILLE <br/>
    				</BOUCLE_adressecontact>
    				
    
    				<p>téléphone:</p><br/>
    				<BOUCLE_telcontact(NUMEROS){id_objet}>
    				#NUMERO <br/>
    				</BOUCLE_telcontact>
    
    				<p>email:</p><br/>
    				<BOUCLE_mailcontact(EMAILS){id_objet}>
    				#EMAIL <br/>
    				</BOUCLE_mailcontact>
    
    			</BOUCLE_contacts>
    
    		<p> les productions:<br/>
    		-périodique:	#PERIODIQUE<br/>
    		-newsletter:	#ORGA_NEWSLETTER<br/>
    		-exposition:	#ORGA_EXPOSITION<br/>
    		-livre:		#ORGA_LIVRE<br/>
    		-dvd:		#ORGA_DVD<br/>
    		-autres:	#ORGA_PRODUC_DIVERS<br/>
    		</p>
    		<p> les mots clefs associés:<br/>
    		-département:		#ORGA_MOTCLEFDEP<br/>
    		-type de structure:	#ORGA_MOTCLEFSTRUCT<br/>
    		-thèmes:       		#ORGA_MOTCLEFTHEM<br/>
    		</p>
    	</BOUCLE_rechercheorga>

    le truc, c’est que je n’arrive pas a récupérer les coordonnées des contacts. j’ai essayé de rajouter une boucle auteur, ou de remplacer le paramètre id_organisation par id_auteur, mais forcement, l’organisation et ses contacts n’ont pas le même id_auteur...

    si quelqu’un avait une idée pour un novice de spip, je suis preneur ^_^

    Répondre à ce message

  • 3

    Bonjour,
    J’ai la même erreur que Jeannot
    Aucun squelette prive/contenu/portfolio_document.html n’est disponible

    Dans ../plugins/auto/contacts_et_organisations/prive/exec/organisation.html
    Boucle _orga
    Ligne 52

    et
    Dans ../plugins/auto/contacts_et_organisations/prive/exec/contact.html
    Boucle _contact
    Ligne 32

    Il a résolu son pb en installant le plugin mediatheque, dont je n’ai pas foncièrement besoin. Suis-je obligée de l’installer pour voir disparaitre le message d’erreur ? Merci.
    Ma version du plugin : 1.8.0 [47519]

    • J’ai une autre question : j’utilise le plugin Formulaire de contact avancé. Je voudrais savoir si Contacts et Organisations (avec Coordonnées) récupèrerait les infos enregistrées depuis le formulaire de contact (exemple : numéro de téléphone, adresse mail et adresse postale) ? Re-merci !

    • Hello,

      l’appel a la médiathèque, c’est pour pouvoir ajouter des documents à un contact ou une organisation. Il faut juste ajouter le nécessite dans le plugin.xml

      En attendant la modif de ce fichier, tu peux effectivement ajouter mediathèque à la main.

      Quand à l’utilisation du formulaire de contact avancé pour charger les tables C&O, je suis pas sûr que ça puisse se faire comma ça, sans recoder au moins une partie des formulaires ; artlogic voulait réutiliser les formulaires du prive pour atteindre le même objectif (saisie/modif des infos coté public), peut être a t’il du nouveau ?

      Bonne utilisation !
      Cyril

    • Merci pour ta réponse supersonique !
      Effectivement, j’imagine qu’un couplage formulaire de saisie en partie publique + récup des coordonnées en partie privée serait top ! Malheureusement, mes compétences ne vont pas jusqu’à me lancer dans le code... Et çà me paraît complexe, compte-tenu des personnalisations possibles des champs du Formulaire de contact avancé.
      Dommage... peut-être quand j’serai grande...
      En attendant, il nous faudra saisir les coordonnées à la main à partir du message reçu via le formulaire.
      Je vais de ce pas installer la médiathèque, ainsi, mon client ne prendra pas peur devant le message d’erreur !
      Un grand merci Cyril !

    Répondre à ce message

  • 5

    Salut,

    J’aurai aimé savoir si un rédacteur identifié pouvait s’ajouter à une organisation au travers de l’espace public ? Ou faut-il les droits d’admin ? Est-ce que le form interne pourrait fonctionner en CVT coté public ?

    • hello Artlogic,

      Non ce n’est pas prévu, pour l’instant ; et les autorisations pour faire cette manip sont a priori réservées aux administrateurs.

      On peut essayer d’utiliser les formulaires CVT du privé lier_contact, lier_organisation, ou lier_organisation_auteur dans le public.

      Actuellement pour qu’un auteur s’ajoute à une Organisation, il faut :
      -  que l’organisation soit déja dans la base [1]
      -  que le rédacteur identifié possède le statut de Contact [2]
      -  lier le Contact à l’Organisation, depuis la fiche auteur du Contact ou de l’Organisation

      ++
      Cyril

    • Mouep. Y a quelques étapes en trop pour que ce soit sympa. Dommage, j’aurai pu faire une sorte de SPIP-Groupes. :)

    • Question subsidiaire : Les champs sont-ils crayonnables ?

    • oui, par défaut tout champ d’une table SPIP est crayonnable. Il faut ajouter la class class="#EDIT{le_nom_de_la_table}" dans la balise qui affiche ce champ, dans le squelette. Il faut vérifier que les autorisations de la personne identifiée soient suffisantes pour crayonner ; si les autorisations ne sont pas suffisantes le crayon ne s’affiche pas.

    • pardon, il faut lire class="#EDIT{le_nom_du_champ}

      et toujours se relire avant de poster...

      Cyril

    Répondre à ce message

  • 3

    Bonjour,

    alors avec SPIP 2.1.8, Saisies 1.9.8[46947], Bonux 2.2.19[46927] Contacts 1.8.0[47059], j’ai beau définir un auteur comme contact, rien a faire je ne vois pas d’espace « Details du contact » ou inserer les informations (alors meme que sur la gauche, on me confirme que l’auteur est defini comme contact).

    Si je passe par le répertoire->contacts (?exec=contacts) je vois bien les auteurs que j’ai defini comme contact. Si je clique sur l’un d’entre eux, (?exec=contact&id_contact=4 par exemple), j’ai une erreur de squelette :

    1 Aucun squelette prive/contenu/portfolio_document.html n’est disponible... ../plugins/contacts_et_organisations/prive/exec/contact.html _contact 32

    mais je vois quand meme derriere que mon contact est bien lié a l’auteur dont l’id apparait correctement. De la je peux éditer le contact et mon edition est bien prise en compte dans la table spip_contacts et apparait bien si je reviens sur cette meme page, sauf la date de naissance qui s’obstine a rester tout a 0. Meme avec le contact renseigné, je ne vois aucune trace de lui ni sur la page d’edition, ni sur celle d’info de l’auteur.

    J’ai oublié un truc ?

      • Pour l’erreur de squelettes, c’est un fichier de la « Médiathèque ». Il faudra que je mette un test sur la présence du plugin.
      • Pour le fait qu’on ne voit pas le contact sur la vue d’un auteur... ce n’est pas normal (je n’ai pas ce problème).
      • Pour le fait qu’on ne peut plus éditer un contact sur le formulaire d’édition d’auteur, là, c’est normal : on édite les infos du contacts sur la page du contact (on y va en cliquant l’icone contacts sur la gauche depuis la vue de l’auteur, ou sur le lien du cadre listant les infos du contact dans la fiche de l’auteur, qui ne semble pas apparaître chez toi)

      Marcimat.

    • Merci pour la reponse matinale !

      • en effet une fois installé médiathèque, l’erreur disparait.
      • j’ai jeté un coup d’oeil rapide au code, et le probleme me semble venir de prive/contenu/contact.html qui contient une boucle qui s’attend a avoir un #ID_CONTACT dans l’environement mais l’environement, conformement a ce qu’envoi contacts_affiche_milieu() dans contacts_pipelines.php, ne contient que id_auteur, cadre et lang. La boucle ne retourne donc rien et rien ne s’affiche.
      • Merci !
    • et par ailleurs pour la date de naissance non prise en compte, il doit y avoir un probleme avec le plugin Saisies car si je fais un var_dump dans spip_log sur _request(’date_naissance’) dans la fonction de traitement du formulaire, j’ai tout a zero (un string : 0000-00-00 00:00:00) quelle que soit la valeur que je rentre dans les champs correspondants.

    Répondre à ce message

  • 1

    Salut,
    Je n’ai pas re-testé le plugin depuis toutes les évolutions récentes. Mais je me pose des questions sur la suite du développement du plugin.
    Quand est il de la question de pouvoir, comme pour les contacts, joindre une organisation à d’autres objets que les auteurs, et donc de la création d’une table organisations-liens ?
    La table contacts_organisations ne serait-elle pas obsolète alors ?
    Merci.

    • Bonjour Norbert,

      Oui, il faudra y songer pour ce qui est de spip_organisations_liens. Ce n’est pas spécialement ma priorité (déjà que je n’avais pas l’utilité de spip_contacts_liens personnellement). À chaque fois que l’on enlève le lien direct par une table de liaison, on complique les jointures et par delà les boucles SPIP à réaliser. Cependant, par homogénéité avec les contacts, il le faudrait cette table spip_organisations_liens.

      Pour ce qui est de la suppression de spip_organisations_contacts, je n’ai pas vraiment réfléchis si le seul fait d’avoir spip_organisations_liens suffirait.

    Répondre à ce message

  • 6

    le modèle auteur.html livré avec le plugin :
    -  fonctionne normalement quand il est appelé avec pour un auteur qui n’est ni un contact ni une organisation
    -  ajoute les informations supplémentaires renseignées (mais insiste pour rajouter la fonction même quand elle est vide) quand l’auteur est un contact
    -  ne renvoie rien quand l’auteur est une organisation...
    cerise sur le gâteau, j’ai eu l’erreur suivante quand l’organisation appelée est le modèle est l’auteur de l’article :

    NuméromessagesqueletteboucleLigne
    1 Table SQL « NUMEROS » inconnue ../plugins/auto/contacts_et_organisations/modeles/auteur.html _num 25
    2 Table SQL « emails » inconnue ../plugins/auto/contacts_et_organisations/modeles/auteur.html _mail 31
    • marcimat

      Ah oui... j’ai l’impression qu’il n’est pas fini ce modèle ! loin de là...

      Pour les erreurs de tables, c’est avec le plugin « coordonnées postales » (dont le préfixe a été renommé récemment « coordonnees » (à la place de cop). Mais le test dans le modèle ne fait rien actuellement pour empêcer la boucle. Il faudrait une boucle conditions.

      Je ne sais pas ce que souhaitait faire cyril avec ce modèle, alors le je laisse corriger.

      Sinon, je n’ai pas tout compris l’explication des points que tu cites

    • les points cités sont justes différents scénarios pour aider à circoncir les conditions du bug :
      supposons que je suis auteur 10 et que je suis une organisation : si j’appelle <auteur10> dans un article j’ai ces deux erreurs...
      dans les autres cas, il ne semble pas y avoir d’erreur (du moins dans l’espace privé) sauf qu’il ne se passe rien si un autre auteur fait le même appel avec le même numéro 10 (qu’il n’est pas)

    • Fichtre ! C’est bien naturel de chercher à cerner les conditions du bug, mais la méthode retenue parait... surprenante : dans un premier temps, pourquoi ne pas se limiter à simplement les circonscrire ?

    • il ne s’agit pas d’une méthode retenue, c’est la description du bug. je reformule : je suis auteur numeéro dix et je suis une organisation et quand je marque dans un article cours de rédaction <auteur10 j’ai les deux erreurs signalés (dans d’autres conditions/circonstances ça ne se reeproduit pas). c’est tout !

      complément d’informations :
      SPIP 2.1.9
      C&O 1.4.1

    • Nous nous sommes mal compris : c’était simplement l’emploi du mot « circoncire » qui me faisait sourire...
      Ah, faute de frappe quand tu nous tiens !!!

    • oups... je recopies cent fois :
      tu tourneras tes doigts sept fois (après t’étre relu autant de fois) avant de valider
      tu liras avec attention chaque mot et chaque phrase avant de répondre à côté de la plaque..

    Répondre à ce message

  • 7

    Je prends connaissance du projet et ça me plait mieux que Inscription2 ne serait-ce parce-qu’on peut avoir plusieurs adresses pour une personnes (en tout cas bien pratique pour le projet d’annuaire sous Spip que j’ai).
    Il y a cependant quelque chose qui me chiffonne dans la structure de la table spip_contacts : pourquoi ne pas utiliser id_auteur comme clé primaire et se passer de id_contact...? C’est un peu comme si l’analyse avait estimé qu’un auteur pouvait avoir plusieurs noms et prénoms... :-/
    Autre chose aussi : il manque le champ id_civilité (monsieur, madame, docteur, etc.) qu’on ne sait pas toujours déduire des noms et prénoms et qui par ailleurs est utile à ceux qui aiment utiliser leur base de donnée pour faire de publipostage :)
    Ceci dits, félicitations pour ce bébé si prometteur.

    • oups, les civilités sont déjà prévu ; autant pour moi. mais id_contact me laisse toujours songeur :-\

    • Bonne remarque également, concernant les clés primaires de spip_contacts et spip_comptes ; du fait que chaque enregistrement de ces 2 tables est lié de manière unique à un enregistrement de spip_auteurs, le id_contact et le id_compte pourraient être supprimés et remplacés par le id_auteur...

      A intégrer dans la structure.

    • je viens de voir le dernier zip (qui correspond à la version 1.4.1) et la table spip_contacs a un champ id_contact (bien par rapport à son rôle et par rapport à la nomenclature SPIP) qui est une clé primaire (bien pour les contraintes d’intégrité référentielle et pour les lectures notamment avec jointure ou filtrage) mais auto-incrémenté (donc gérée de façon autonome au lieu de reprendre id_auteur) :-\
      même remarque pour la table spip_organisations et son champ id_organisation qui a en plus un champ id_auteur (que je devine être une clef étrangère ?) que ne possède pas la table spip_contacts ...
      please, keep it simple :-O

    • Pour répondre à la demande de certains utilisateurs qui souhaitaient que la dépendance à la table spip_auteurs existe, mais ne soit pas obligatoire, les clés id_contact et id_organisation sont devenues primaires. Il y a sans doute encore quelques ajustements à faire pour que tout ça soit parfait, mais on est sur la bonne voie.

      Parmi les évolutions, sans doute rapidement des pages de type ?exec=contact&id_contact=X ou ?exec=organisation&id_organisation=Y.

      Concrètement, en quoi consiste le problème dû à cette évolution de la structure ?

    • ok...
      c’est que je n’ai plus suivi l’évolution du plug-ins (et je n’ai pas trouvé toutes les discussions relatives à certains changements) et du coup j’ai du mal à comprendre certaines choses par rapport aux objectifs de base. :-( si on est dans l’optique d’une utilisation indépendante des auteurs, effectivement ces clefs doivent être propres à ces tables (j’étais resté dans l’idée de dépendance avec la table spip_auteurs qui était alors étendu/élargi...)
      mais alors, je ne m’explique pas pourquoi spip_organisation a un champ id_auteur pour faire le lien (qui n’est plus obligatoire) mais spip_contacts ne l’a pas (ce qui aurait été pourtant logique) :-S

    • marcimat

      spip_contacts avait bien un id_auteur au début. Camille a eu besoin d’utiliser des contacts en dehors d’auteurs, et a proposé une table de liaison avec objet/id_objet. Il ne l’a fait que pour les contacts, et idéalement, il faudrait passer les organisations de la sorte pour être homogène.

    • tout à fait : si on peut utiliser les contacts en dehors de auteurs, on devrait pouvoir utiliser organisations aussi en dehors de auteurs..

    Répondre à ce message

  • 5

    Bonjour,

    Super ce plugin.

    Juste une remarque : le champ descriptif (contacts ou organisations) est déclaré dans base/contact.php comme un tinytext. Dans l’interface, il est présenté comme un véritable champ texte, avec porte-plume et tout. Or, le descriptif sera coupé à 256 caractères... Un peu surprenant.

    • Merci !
      Et la remarque est pertinente aussi ; le type de champ est donc changé pour TEXT au lieu de TINYTEXT à partir de la version 1.3.6 (révision 41044). On pouvait déjà utiliser le champ « bio » de type TEXT (table spip_auteurs) pour stocker des chaînes longues ; on peut désormais utiliser en plus les champs « descriptif » des tables spip_contacts et spip_organisations.

    • Merci pour la modif en cas d’upgrade, mais ne faut-il pas aussi changer la fonction contacts_declarer_tables_principales dans base/contacts.php pour les nouvelles installations ?

    • Merci Aurélie, r41727 ;-)

    • Au fait, à quoi sert cette « description » alors qu’il y a déjà un champ « bio » ?

    • Un champ de type text, dispo pour ce qu’on veut ; par exemple sur une grosse base, je l’ai utilisé pour stocker le CV. Et au cas où, pour une application particulière, la table spip_organisations ou la table spip_contacts doive être utilisée en déconnexion d’avec la table spip_auteurs, le champ #DESCRIPTIF peut s’avérer utile.

    Répondre à ce message

  • 9

    Bonjour,
    Dans la documentation vous indiquez qu’il est possible d’utiliser dans une boucle de type AUTEURS les balises correspondants au nouveaux champs créés par le plugin. Cependant, je n’ai pas réussi à utiliser ces balises sans passer par une boucle intermédiaire de type CONTACTS (Version du plugin : 1.3.12 et SPIP 2.1.8), est-ce normal ?
    Cordialement,

    • Non, ce n’est pas normal ; peut-être qu’une mise à jour d’une clé parimaire ne s’est pas déroulé correctement lors d’un passage de version. Pouvez-vous vérifier que le champ id_contact ou id_organisation de vos table spip_contacts et spip_organiations est bien de type clé primaire ?

      Sinon pour vous dépanner essayez de mettre le nom des 2 tables dans la boucle :

      <BOUCLE_crm(CONTACTS spip_contacts_liens) {id_auteur=99}>
      ...

      — 
      Cyril

    • Bonjour,
      Les champs indiqués sont bien des clés primaires. Il s’agissait d’une première installation du plugin sur un site nouvellement installé.

      Jean-Baptiste

    • Bonjour,
      J’ai reproduit le problème sur un site SPIP 2.1.8 fraichement installé avec les dernières versions des plugins suivants : Contacts 1.3.12, SPIP Bonux 2.2.17, Saisies 1.9.0, Accès Restreint 3.0.2, CFG 1.16.0, Couteau Suisse 1.8.36.01.
      Jean-Baptiste

    • Hello,
      Comme le problème me semblait lié aux jointures, j’ai essayé de modifier le fichier bases/contact.php pour préciser le champs des jointures :

      $interface['tables_jointures']['spip_contacts']['id_contact']= 'contacts_liens';
      $interface['tables_jointures']['spip_auteurs']['id_objet']= 'contacts_liens';
    • Précision : les modifications dans bases/contact.php ne changent rien, mais je ne suis pas sûr que ces déclarations soient correctes.

    • Bonjour,
      En fait, j’utilise le plugin Champs Extra avec lequel j’ai créé un champ « responsables_bases » de type « contact ». Ce champ extra contient donc id_contact. Si je veux afficher le nom, prénom, email du contact et faire un lien vers sa fiche auteur, je dois donc utiliser deux boucles. Une boucle de type CONTACTS et une autre de type AUTEURS. Je dois également utiliser une balise non ambiguë pour #NOM. 

      <BOUCLE_nom_responsable_bdd(CONTACTS){id_contact IN (#RESPONSABLES_BASE|explode{","})}{tous}{','}>
      <BOUCLE_contact(AUTEURS){id_contact}>            [(#_nom_responsable_bdd:COMPTEUR_BOUCLE|=={1}|oui)<strong>Responsable[(#_nom_responsable_bdd:TOTAL_BOUCLE|>{1}|?{'s',''})] de la base de données</strong> : ][(#EMAIL|?{<a href="spip.php?auteur#ID_AUTEUR">#PRENOM #_nom_responsable_bdd:#NOM</a>,#PRENOM #_nom_responsable_bdd:#NOM})]
      </BOUCLE_contact> 
      </BOUCLE_nom_responsable_bdd>

      J’avais donc essayé de me passer le la boucle de type AUTEURS par une jointure :

      <B_nom_responsable_bdd_test>
      <p>
      <BOUCLE_nom_responsable_bdd_test(CONTACTS spip_contacts spip_contacts_liens){id_contact IN (#RESPONSABLES_BASE|explode{","})}{tous}{','}>
      [(#COMPTEUR_BOUCLE|=={1}|oui)<strong>Responsable[(#TOTAL_BOUCLE|>{1}|?{'s',''})] de la base de données</strong> : ][(#EMAIL|?{<a href="spip.php?auteur#ID_AUTEUR">#PRENOM #NOM</a>,#PRENOM #NOM})]
      </BOUCLE_nom_responsable_bdd_test>
      </p>
      </B_nom_responsable_bdd_test>   

      Mais bien sûr, il y a une erreur dans le ON de la requête SQL résultante où il est écrit L1.id_contact = contacts.id_contact alors que L1 (c.a.d. id_auteur) n’a pas de champ id_contact :

      SELECT L1.id_auteur, contacts.prenom, contacts.nom
      FROM spip_contacts AS <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+Y29udGFjdHM8L2NvZGU+"></span>  
      INNER JOIN spip_contacts_liens AS L1 ON ( L1.id_contact = contacts.id_contact )
      WHERE ((contacts.id_contact  IN (116,117)))
      ORDER BY FIELD(contacts.id_contact,116,117)

      Y aurait-il moyen, par une déclaration de jointure, de corriger la requête SQL ?

    • Ça semble complexe...

      Pour afficher un #QQC appartenant à une table, il faut impérativement que la table soit présente dans les parenthèse de la boucle effectivement. Donc, dans ton cas (CONTACTS spip_contacts_liens spip_auteurs).

      Ceci dit. Le ON ne semble pas en erreur. spip_contacts_liens a bien (id_contact, objet, id_objet). Il doit être en erreur sur le SELECT uniquement (L1.id_auteur). Normal, vu qu’il manque là la table spip_auteurs.

    • Autre chose spip.php?auteur#ID_AUTEUR = #URL_AUTEUR{#ID_AUTEUR}.

    • Dans la version 1.4, j’ai testé cela qui fonctionne :

      <B__a>
      <ul>
      <BOUCLE__a(CONTACTS contacts_liens auteurs){id_auteur>0}>
      	<li>#ID_CONTACT / #NOM / #PRENOM (id_auteur: [(#ID_AUTEUR)] ) (login: [(#LOGIN)] )</li>
      </BOUCLE__a>
      </ul>
      </B__a>

    Répondre à ce message

  • 1

    Bjr

    Sauf erreur de ma part, je crois voir un petit bug ... (2.1.8 et dernier svn).

    Quand j’appelle un contact (dans l’admin), j’ai à gauche un mini-tableau avec l’organisation (ou les) avec laquelle il est lié, on peut cliquer dessus pour rejoindre cette organisation. Ok.

    Quand j’appelle une organisation, de la même façon j’ai un mini-tableau avec les contacts liés, également avec un lien permettant de rejoindre le contact ... sauf que le lien est

     ?exec=auteur_infos&id_auteur=0

    Et ce pour tous les contacts liés, au lieu d’avoir l’id de l’auteur en question ...

    Un truc que je fais mal ou un bug ?

    Pierre.

    Répondre à ce message

  • 1

    Bonjour,

    J’ai un problème avec l’installation de la version 1.3.11 : la table contact ne se créé pas.

    Dernière version de SPIP 2.1.8

    La version 1.3.8 semble s’installer et fonctionner correctement.

    Au passage, merci pour ce plugin !

    Répondre à ce message

  • 1

    Y a-t-il la possibilité de créer des champs personnalisés pour ce plugin ? Il me semble tout à fait adapté pour ce que je souhaite faire (que des utilisateurs puissent poster des profils publics sur le site, consultables par tout le monde), mais j’ai besoin d’un plugin qui permette l’utilisation de champs personnalisés dans ces profils.

    Répondre à ce message

  • 1

    N’est-il pas dommage d’avoir choisi la balise #NOM, ce qui me paraît interdire de référencer le #NOM de la table Auteurs à l’intérieur d’une boucle contacts ?

    • Lorsque des boucles AUTEURS, CONTACTS et/ou ORGANSIATIONS sont imbriquées, il peut y avoir risque de confusion (pour le concepteur, pas pour SPIP...) entre les champs homonymes #NOM.

      Pour limiter ce risque, il est bon et relaxant de pouvoir compter sur 2 caractéristiques de SPIP :

      1. si 2 boucles imbriquées ont un champ homonyme (#NOM dans notre cas) SPIP fera référence en priorité au champ de la boucle active ;

      exemple : l’appel de #NOM dans une boucle ’contacts’ présente au sein d’une boucle ’organisations’, fera référence au(x) champ(s) ’nom’ de la table ’contacts’ et non au champ ’nom’ de la table ’organisations’.

      2. pour ajouter de la précision dans l’écriture des boucles, on peut ajouter le nom de la boucle devant le nom du champ ;

      exemple : la balise #_mes_potes:NOM fera référence au champ #NOM de la boucle <BOUCLE_mes_potes(CONTACTS)>.

    Répondre à ce message

  • Bonjour et merci pour cette contrib bien intéressante !
    Si je comprends bien, on peut faire soi-même un skel pour faire un annuaire… Il y a peut-être déjà des exemples de skel ? Peut-on y mettre les logos des auteurs-contacts et du coup faire un trombinoscope ?

    Répondre à ce message

  • 3

    Bonjour,
    Question peut etre bête mais bon, je me lance...
    Est il prévu la liaison des contacts avec une rubrique genre « annuaire » dans la partie publique ?
    Merci de vos réponses !

    • Bonjour,
      SPIP offre déjà de base la possibilité de développer un site de type annuaire. C&O a été seulement été conçu pour étendre l’utilisation des auteurs SPIP, en offrant notamment 3 possibilités supplémentaires :
      -  pouvoir distinguer les Contacts (personnes physiques) des Organisations (personnes morales)
      -  pouvoir lier des Contacts à des Organisations
      -  pouvoir attribuer "n" adresses mail, numéro de téléphone ou adresses postales à une personne
      Qu’entendez-vous précisément par « liaison des contacts avec une rubrique genre "annuaire" dans la partie publique » ?

    • Bonjour et désolé de ma réponse tardive...
      En fait, j’aimerais pouvoir proposer la rubrique annuaire dans la partie publique du site.
      Cette rubrique pourrait lister tous les contacts par personne ou par organisation.
      Si j’ai bien compris l’utilisation de ce plugin, il permet d’avoir un annuaire seulement dans la partie privée ?

    • Bonjour,

      C&O permet d’ajouter des informations aux auteurs (mails, tels, adresses) et permet de leur attribuer soit le statut de personne physique (contact) soit le statut de personne morale (organisation).

      Une fois saisies, ces informations supplémentaires sont disponibles aussi bien dans la partie privée, que la partie publique... Donc le plugin n’ajoute pas d’annuaire, c’est vous qui devez créer le squelette d’annuaire ; en revanche il permet de compléter un éventuel annuaire par des informations plus détaillées.

    Répondre à ce message

  • 2

    Hello,

    Il serait également intéressant d’y ajouter une table date, en effet on trouve « date de création » pour entreprise, mais pas d’autre possibilité.

    Je pense à : date d’inscription, date de modification, date de contact, date de relance,...

    On serait alors peut être pas loin d’une gestion « fournisseurs » ou « clients » je pense ?

    • Bonjour Paulbe,
      Il y a 2 champ date dans les tables C&O, une date « normale » qui s’appelle date de création (ou naissance), mais qu’on peut utiliser pour d’autres usages (comme on peut utiliser les champs date des articles à autre chose), et une date de mise à jour (pour gérer les dates de modifs sur l’enregistrement).

      Pour les dates d’inscriptions, de relance, de contact, etc. ce sont des champs qui ne devraient pas faire partie de la table contacts, mais de tables extérieures : table pour gérer les inscriptions, table pour gérer les commandes, les actions, etc.

      Tout ce qu’il faut est déjà là pour une gestion client/fournisseur avec SPIP el le plugin C&0, y compris l’attribution de mots clé sur les auteurs (depuis le plugin mots_objets).

    • Hello Cyril,

      Je suppose que ta remarque des mots clés s’adresse au fait que l’on peut « accrocher » un mot clé =>client ou fournisseur à un auteur ?

      Autre point, je suis entièrement d’accord sur le fait que pour les dates, une table id_auteur/date/evenements pourrait faire l’affaire je suppose, ma question était l’inclure dans le plugin existant ou faire un plugin « historique » plus générique et indépendant de C&O et de coordonnées ?

      P.S. De toute façon dans les 2 cas je dois encore tout apprendre :-p , mais autant essayer de faire ses armes sur un truc qui pourrait servir un jour ;-)

    Répondre à ce message

  • Hello,

    Dans les numéros, on devrait par cfg pouvoir ajouter d’autres propositions, pour l’instant on a perso, pro ou fax, je pense à GSM, poste n°, code, ... et pourquoi pas y adjoindre des icônes pour le classement et pourquoi pas proposer une liste déroulante à partir de ce moment là.

    Cela évite les fautes de frappe et facilite la vie des fainéants ;-)

    Répondre à ce message

  • 2

    Bonjour,

    Avez-vous envisagé de ne pas lier les contacts et organisations aux auteurs mais à des objets SPIP ?
    Serait-ce « facile » ?

    C’est ce qui est (très bien) fait dans le plugin coordonnées. Sa généricité (et les mécanismes spip, bravo) permettent de facilement associer des coordonnées à un article par exemple. Une seule fonction « pipeline » nécessaire.

    J’imagine que cela implique de transférer le lien/clé de spip_contacts et spip_organisation sur spip_auteurs dans des tables spip_contacts_liens… avec impact (lourd ?) sur le code (+migration pour l’existant).

    Il me sembre que ce serait la dernière brique qui manque pour pouvoir réaliser une annuaire de coordonnées sans « polluer » la table des auteurs avec des données qui n’ont rien à voir avec le « workflow » SPIP.

    Qu’en pensez-vous ?

    Luc

    • La question s’est posée au départ, de savoir si les contacts pourraient ou pas être liés aux auteurs SPIP. Le choix a été fait qu’ils le soient, mais seulement afin de pouvoir bénéficier des mécanismes d’authentification. Les Contacts et Organisation ont été conçus plutôt comme des extensions des auteurs ; ainsi les formulaires de saisie sont intégrés à la fiche auteur.

      Cependant les tables contacts et organisations pourraient être autonomes en pratique : les 2 tables possèdent une clé primaire (id_contact ou id_organisation) indépendante de id_auteur ; le champ id_auteur est pour l’instant paramétré en « unique » afin d’éviter qu’un même auteur soit étendu vers plusieurs contacts en même temps, mais il serait possible de le changer avec phpMyAdmin pour pouvoir importer un grand nombre de C&O sans pour autant avoir des auteurs liés. Il manquera malgré tout les formulaires dans l’interface d’admin pour gérer C&O indépendamment des auteurs.

      Si le mécanisme qui empêche d’attribuer plus d’un contact à un auteur pouvait être réalisé autrement que par une contrainte sur le type de champ, on pourrait parfaire l’indépendance de C&O avec les auteurs SPIP.

      D’autre part, l’intérêt d’une liaison contact/autre objet de SPIP n’est pas très évident... un cas d’utilisation serait le bienvenu.

    • Merci de tes précisions.

      Pour le « comment » de la l’indépendance C&O des auteurs, je ne sais pas trop comment. Je comprends que l’unicité permet des retours cohérents des requêtes avec la jointure.

      Pour ce qui est du cas d’utilisation, ce n’est pas encore mûr dans mon esprit. L’idée serait de faire un plugin « annuaire » (style « pages jaunes », pas « open directory »), avec des fonctionnalités de recherche, des regroupements par thèmes (mots clés/rubrique), en autonomie des objets SPIP. Mais certaines pourraient être associées à un article (présentation d’une association, d’un gîte…). Affichées alors via le squelette, plutôt que simplement intégrée au texte de l’article.

      D’un autre côté, le découpage C&O, Coordonnées... est pratique du point de vue dev et intéressant pour les saisies dans l’interface privée et les restitutions dans les boucles (vive SPIP). La contre-partie est un éparpillement des formulaires (au lieu d’un seul) et des tables, compliquant probablement les imports de masse (à partir de csv par exemple).

      Je réfléchis à cela lentement, en dilettante faute de disponibilité. Je pose donc mes questions sur C&O « à la cantonnade » car j’y ai (entre)vu en [brève] analyse un moyen de ne pas réinventer la poudre.

    Répondre à ce message

  • 2

    salut,

    je te propose cette petite modif dans le fichier prive/liste/contacts.html :

    	<td class='action'>[(#AUTORISER{modifier, contact, #ID_CONTACT}|?{
    			[(#ENV{id_organisation}|oui)	
    				[(#BOUTON_ACTION{
    					[(#CHEMIN{images/delier-16.png}|balise_img{<:contacts:delier_contact:>})],
    					[(#URL_ACTION_AUTEUR{delier_contact,[(#ID_CONTACT)/#ID_ORGANISATION],[(#ENV{retour,#SELF})]})],
    					ajax,<:contacts:confirmer_delier_organisation:>})],
    				#ID_AUTEUR 				
    			]	
    			[(#ENV{id_organisation}|non)
    			[(#BOUTON_ACTION{[(#CHEMIN{images/contact-delete-24.png}
    					|balise_img{<:contacts:supprimer_contact:>}
    					)],
    					[(#URL_ACTION_AUTEUR{supprimer_contact,contact/#GET{id_contact},#SELF})],
    					ajax,<:contacts:confirmer_supprimer_contact:>})]
    			]
    			})]</td>

    si on est sur la page d’une organisation, on délie un contact, mais si on est sur la page des contacts, on a la possibilité de supprimer un contact.

    et on fait de même dans le fichier prive/liste/organisations.html

    merci pour ce travail.

    • merci pour cette proposition ; si tu le souhaites, tu peux intervenir directement sur le code du plugin ; en essayant de mutualiser au maximum le code entre les fichiers liste/organisations.html et liste/contacts.html ; si les tests sont ok tu peux passer de version 1.3.6 à 1.3.7.

    • la révision r41395 distingue 2 sortes de listes, la première permettant de lier ou délier un contact et une organisation (utilisé dans la colonne gauche), et la deuxième permettant de lister les contacts ou les organisations, et de les supprimer.

    Répondre à ce message

  • 1
    norbert

    salut,

    il semble qu’il y ait un problème avec la mise à jour du plugin.
    J’avais des message d’erreurs « id_contact => critère inconnu » ou « id_organisation => critère inconnu ».
    Les listes de contacts ou d’organisations n’apparaissaient pas.

    Après mise à jour du plugin et vidages de cache, le problème continuait.
    La table organisation contact n’est pas mise à jour automatiquement.

    Après désinstallation/réinstallation, le problème ne se produit plus.

    voilà

    • La révision [40044] d’hier soir corrige une erreur de syntaxe dans la requête de mise à jour des tables ; le problème ne devrait donc plus se produire.

      La mise à jour concernait l’ajout d’un champ « activité » à la table spip_organisations, et le renommage de 2 champs de cette même table : « siret » devient « identification » et « type » devient « statut_juridique ».

      Merci pour la remontée de ces informations.

    Répondre à ce message

  • 2

    si cette réécriture d’inscription2 est intéressante il est dommage de n’avoir pas fait de liaison avec le plugin groupe_d’auteur2

    il est en train d’être réécrit proprement pour spip 2.1 il fonctionne avec ldap++, réécrit également.

    ce qui permet de créér des groupes d’auteurs automatiquement sur simple critère

    je dois avouer que je n’ai pas réussi a lié un contact avec une organisation avec ce plugin

    • La manière choisie de lier plusieurs contacts entre eux au sein d’une organisation (par une table de liaison) n’interfère pas avec le plugin groupes_auteurs. En revanche elle est fonctionnelle bien que toujours en test (voir doc), et donc fragile...

    • hello phil93 ; il restait une référence à un ancien nom de table dans les déclarations de jonctions ; la liaison d’un contact avec une organisation ne pouvait se faire que dans un seul sens.

      C’est corrigé avec la révision [40023], qui permet aussi de lister les contacts et les organisations ; cette révision propose 2 pictos au format du nouveau bandeau de l’interface privée.

      Bonne utilisation ;-)

    Répondre à ce message

  • 2

    Il n’y a plus d’évolution apparente. Je peux donc installer ? Tous les bugs mentionnés dans les autres messages sont corrigés ? Merci d’avance.

    • Mort, non, endormi c’est possible...
      La prochaine grosse étape serait d’intégrer la partie « gestion depuis l’interface privée » en utilisant le dernier gros commit de xdjuj (34647).
      Ne pas utiliser en prod.

    • c’est pas encore commité... j’ai hâte de tester ça :)

    Répondre à ce message

  • concernant les autres liens....

    dans le cas des liens familiaux et amicaux par exemple, il s’agit d’une liaison auteur_auteur (id auteur liant, id auteur lié, texte court décrivant le type de relation) :)

    Répondre à ce message

  • 1

    pour pouvoir s’activer, ce plugin réclame :
    -  SPIP_BONUX 1.8.8
    -  VERIFIER 0.1.
    -  INSCRIPTION2 0.71

    mais quel est l’utilité si je peux utiliser inscription2 ?

    • inscription ne sert pour l’instant que pour la liste des pays ; une modif est en cours pour requerir le plugin geographie, à la place. Si vous pouvez utiliser inscrition, aucun intérêt à utiliser Comptes & Contacts.

    Répondre à ce message

  • 7

    Bonjour,

    Joli travail !

    Je sais que ce plugin est en cours de développement, c’est pourquoi je me permets de faire une suggestion.

    Puisque vous avez ajouté des champs date de naissance et nom, prénom, je pense que ville et code postal serait un plus.

    Pensez-vous étendre ce plugin de manière à proposer ces nouveaux champs dans le formulaire d’inscription ? Ce serait le Must !

    • Ville est code postal font partie de la table spip_adresses, liée à la table spip_contact. Cela permet d’attribuer plus de 1 adresse à un contact, et permet d’attribuer aussi des adresses à des comptes (groupes de contacts). 3 types d’informations ont été distinguées et le développement du plugin est allé dans ce sens :

      • nom, prénom, date de naissance, etc. sont des informations uniques, elles sont stockées dans la table spip_contacts (ça aurait pu être la table spip_auteurs si elle avait contenu ces champs
      • numéros de téléphone, adresses postales, email, etc. sont des informations « multiples » : en effet, on peut attribuer plusieurs d’entre elle au même contact, elles sont stockées dans des tables séparées, liées à la table contacts
      • autres infos, spécifiques à un développement particulier : c’est par ici que le plugin peut-être étendu par l’ajout de nouvelles tables.

      Jusqu’à présent une table unique contenant tous les champs (cf inscription2) était utilisée. Dorénavant, la plupart des champs classiques sont déjà inclus dans le plugin Comptes & Contatcts et les extensions ne portent que sur des champs vraiment spécifiques.

      Une table spip_champs a été proposée, justement afin de stocker des infos supplémentaires sans avoir à créer de nouvelles tables. Elle ne permet de stocker que des couples champ/valeur mais peut suffire dans certains cas.

    • Salut, une idée comme ça...
      est-ce que tu as regardé du côté des microformats ?
      hcard par exemple, il me semble que ce format peut contenir n’importe quel type d’information individuelle...

      http://microformats.org/wiki/hcard

      tu pourrais t’inspirer de ces reflexions pour construire l’archi des tables ?

    • Le micro format permettrait d’ajouter des N° de téléphone ou des emails en nombre à une fiche contact. Cela pourrait donc être une piste à suivre.

      <span class="tel">
       <span class="type">home</span>:
       <span class="value">+1.415.555.1212</span>
      </span>
      
      <span class="tel">
       <span class="type">work</span>:
       <span class="value">+1.4343.6986</span>
      </span>

      Merci pour l’info.

    • @th

      Les microformats ne sont que du balisage sémantique inspiré des spécifications du VCF ; donc ça concerne plus les modèles de présentation...
      Le plugin est conçu de façon compatible avec les VCF en permettant d’avoir plusieurs adresses (mais on est limite à trois —work/bureau/professionnel, home/domicile/personnelle/privée, othor/autre— du côté des vCard) dont on peut spécifier le type je crois, et les mêmes informations (lignes d’adresse —on ne distingue pas numéro et voie—, code postal, localité —ville ou lieu-dit—, département et pays).
      Il faut juste prévoir une autre table pour pour numéros (et contrairement à ce qu’on pense, ça concerne aussi les biper, le fax, etc. qui sont les différents types de contacts vocaux) ; et aussi pour les adresses mail (avec leur type aussi), et la messagerie instantanée (où le type est en fait le réseau/fournisseur/protocole : msn, yahoo, jabber, icq, etc.) D’ailleurs, ces trois tables étant similaires et fonctionnant de façon identique, on pourrait n’utiliser qu’une seule table avec une colonne catégorie qui indiquerait : tel, email, mailer (je reprend les termes du rfc2426) :)

    • Bonnes remarques, le n° et la voie dans la table spip_adresses pourraient être regroupées. En revanche j’hésite encore : j’ai prévu à la fois les tables spip_numeros, spip_emails et spip_messagerie pour gérer les 3 champs séparéments, mais aussi une table unique spip_champs pour ces 3 types de données avec une colonne supplémentaire ’type_champ’ qui peut prendre les valeurs email, numero, messagerie.

      Il faut voir à l’usage, et dans les jours qui viennent je vais importer des données d’un gros CRM et voir ce qui est le plus facile et le plus souple à gérer.

      Commentaires et remarques bienvenus !

    • les 3 extensions d’une hcard selon la page du wiki sont :
      -  adr
      -  tel
      -  email

      Cela correspond aux 3 tables spip_adresses, spip_numeros et spip_emails.

    • j’hésite encore : j’ai prévu à la fois les tables spip_numeros, spip_emails et spip_messagerie pour gérer les 3 champs séparéments, mais aussi une table unique spip_champs pour ces 3 types de données avec une colonne supplémentaire ’type_champ’ qui peut prendre les valeurs email, numero, messagerie.

      les deux approches se défendent... tout dépend de la souplessse d’utilisation que l’on veut (quoi que je ne vois pas trop si ça fera vraiment une différence pour l’utilisateur) et/ou de la complexité (pour les développeurs qui souhaitent étendre le plugin ou l’interfacer avec une autre application)

      Il faut voir à l’usage, et dans les jours qui viennent je vais importer des données d’un gros CRM et voir ce qui est le plus facile et le plus souple à gérer.

      les deux approches existent... il y a des CRM pour lesquels tout est combiné avec l’adresse : c’est moins souple...

      l’avantage d’une table est qu’au niveau des requêtes, ça peut paraitre plus simple : on lit/écrit une seule table.. mais cette simplicité est apparente car il faut lire plusieurs occurrences (relation 1-N) et faire le tri selon le type_champ (en particulier quand on ne veut récupérer qu’une seule information et non plusieurs). mais en écriture, c’est moins simple que d’adresser plusieurs tables dans une seule requête (je me place du point de vue où il y a un numéro et un mail, sinon c’est tout aussi complexe, mais toujours moins de requêtes à faire...) :-/ je crois qu’il faut tester et ne garder que la solution la plus simple et souple au niveau de l’écriture des boucles (la viabilité du plugin dépendra de sa facilité à être intégré dans les squelettes)

      les 3 extensions d’une hcard selon la page du wiki sont : adr tel email Cela correspond aux 3 tables spip_adresses, spip_numeros et spip_emails.

      il faut que je regarde comment sont traités les messageries (mais pour beaucoup d’application, c’est traité comme l’email sauf que c’est d’un type msn/icq/yim et non mail —et dans ces cas, ils ne font pas de différence entre les mails qui peuvent être principal/pro/perso/etc.—)

      • email
        • id_auteur (pour le lien)
        • type (privé/pro/...)
        • valeur (qui devrait être unique !)
      • messagerie (qui peut utiliser une adresse email...)
        • id_auteur (pour le lien)
        • type (gadu/gtalk/icq/aol/...)
        • valeur (qui devrait être unique !)
      • numéro
        • id_auteur (pour le lien)
        • type (fax/gsm/biper/...)
        • valeur (habituellement unique —gsm— mais peut être partagé quand c’est lié à une adresse —rtc/fax— finalement donc indexable mais sans contrainte)
      • adresse (lui est clairement différent des autres et a besoin d’une table de liaison...)
        • lignes d’adresse (en général deux ou trois, mais il est plus souple d’avoir un unique textarea de trois lignes)
        • code postal (normalement entier mais stocké comme chaine non contrôlée —comme les numéros, peut commencer par zéro, contenir des espace ou un caractère—)
        • département (quelques caractères)
        • ville...
        • pays
        • geo (il y a d’autres extensions possibles, mais celle-ci est la plus courante avec les GPS qui se démocratisent)
        • notes (toujours utile pour indiquer porte, code d’accès au bâtiment et autres infos non transmises avec la vCard)
          -  

    Répondre à ce message

  • 1

    attention aux réglages/préférences de l’éditeur, notamment en ce qui concerne le style de codage (usage des tabulations, convention de nommage, indentation) et —dans le cas présent— à l’encodage utilisé...
    je vois ici des é qui ne le sont plus (on dirait un passage en utf8, ce qui est une bonne chose, mais ne semble pas correspondre au format dans lequel on enregistre). par ailleurs, pour une meilleure portabilité, il est recommandé d’utiliser les entités HTML/XML pour les fichiers de langue et tous les textes d’interface de SPIP :)

    Répondre à ce message

  • Pour info une page de doc a été inclue à l’interface d’admin, listant les balises utilisables dans les squelettes. Je rappelle que dans l’état actuel des travaux, la partie publique est opérationnelle, mais la partie privée (ajout, édition de comptes & contacts) se fait manuellement.

    Répondre à ce message

  • 1
    Jaimepasgougueule

    C’est normal que le plugin les crayons soit actif sur cette page pour tout un chacun sans identification ?
    Si des petits c... passent par là ils vont se régaler !

    Répondre à ce message

  • 1

    Le site familiale est pour moi une zone test et de découvertes, mais ce qui est sympa c’est de prévenir pour les sites pro.

    Une idée pour avancer : le Zip est-il complet ? car je n’ai pas le sous dossier /img/

    De plus, après clic sur « Edition » et « Comptes » apparait la page : /ecrire/ ?exec=comptes, avec comme indication : Fichier comptes introuvable.

    Bonne continuation

    AlainF

    • La partie admin est en cours d’édition. Pour l’instant l’ajout de données dans les tables spip_contacts, spip_adresses, spip_numeros se fait manuellement. Correction à faire sur le plugin.

    Répondre à ce message

  • Bonjour et merci pour votre enthousiasme ! à tempérer cependant dans la mesure ou cette contrib est « en chantier » pour l’instant, un certain nombre de questions se posant toujours par rapport à son orientation. Je vous conseille dans l’immédiat de vous tourner plutôt vers le plugin inscription2 qui est certainement beaucoup plus aboutie au jour d’aujourd’hui.

    Répondre à ce message

  • Bravo,

    je recherchais cette fonction (plugin) pour notre site familial

    maintenant, je vais pouvoir gérer les anniversaires ainsi que le groupement pour les enfants de chaque oncle et tante, je crois que je vais me régaler. Je vous tiens au courant.

    Merci à vous et à cet excellent outils qu’est SPIP et bonne année aux spipiens et aux autres.

    AlainF

    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