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.
Discussions par date d’activité
89 discussions
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 ;
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 ;
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
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
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
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
salut,
je te propose cette petite modif dans le fichier prive/liste/contacts.html :
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
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
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
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
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
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.
Suivre les commentaires : |