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

  • 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

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