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
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 AScontacts
WHERE (contacts’ at line 1SELECT 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
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 formecontact2.html
car#NOM
trop court.Pourrait-on proposer, si le
#PRENOM
existe, de l’utiliser pour allonger l’URL, qui deviendrait de la formelouis-d.html
?Merci
Et dans les mêmes circonstances, dans l’espace privé, pour notifier dans la colonne gauche des objets récemment édités, afficher prénom et nom au lieu du nom seul.
J’ai déclaré le titre de l’objet comme étant prénom et nom.
Mais cela a fait planter le plugin Numérotation, qui n’était pas solide dans son scannage du titre déclaré. J’ai donc corrigé ce plugin :
http://zone.spip.org/trac/spip-zone/changeset/95747
Mais ça continuait car la balise #RANG du noyau aussi n’était pas solide dans son utilisation de la description du titre. J’ai donc dû corriger le noyau (3.0, 3.1, 3.2) :
http://core.spip.org/projects/spip/repository/revisions/22875
http://core.spip.org/projects/spip/repository/revisions/22876
http://core.spip.org/projects/spip/repository/revisions/22877
Et là ENFIN j’ai pu déclarer prénom et nom :
http://zone.spip.org/trac/spip-zone/changeset/95749
MERCI pour cette insomnie Stéphane, MERCI. :D
Bon au moins ça a corrigé des trucs…
:-D
J’imagine combien tu as dû râler et regretter cette initiative hier soir, au fur et à mesure que les plantages se présentaient...
Alors tous mes remerciements pour
cetteces évolutions !Et une excellente journée à toi !
D’ailleurs la mise à jour modifiant le titre par défaut ne méritait-elle pas un Up version de ’
y
’ au lieu de ’z
’ ?Répondre à ce message
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 :
Mais l’organisation est bien créée
Merci
Répondre à ce message
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
Non, mais c’est une bonne idée à ajouter dans une todo effectivement…
Répondre à ce message
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
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
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 ;-)
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 :
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 :
Ce qui signifie qu’il faut :
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) :
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.
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 :
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.
Répondre à ce message
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
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é ?
Mais concrètement ça te fait quoi ? Où ? Quand ? :)
Concrètement, ça ne fait rien. J’ai essayé de débuguer mais en vain.
Je ne parviens pas à déterminer si c’est au niveau de l’autorisation ou au-delà que se produit un blocage.
L’adresse formatée sur la liste des organisation est de ce type : http://localhost/ecrire/?exec=organisations&action=exporter_organisations&arg=&hash=24a02cfb7140d1bd302ccdac6d0e15181829d78a
Par défaut l’autorisation d’exporter c’est la même que pour configurer càd par défaut les admins complets il me semble :
http://zone.spip.org/trac/spip-zone/browser/_plugins_/contacts_et_organisations/trunk/contacts_autoriser.php#L63
Ah ! Mais dans le XML il manque un nécessite sur Bonux ! Tu as Bonux ? C’est toujours lui qui a les fonctions autour de CSV, c’est toujours pas dans le noyau…
Du coup si t’as pas Bonux c’est sûrement ça.
Après toutes ces heures passées à chercher dans toutes les voies, je n’aurais pas emprunté celle là. D’autant plus que je récupérais des CSV dans le plugin « agenda » sans difficulté.
C’est effectivement la solution.
Merci du fond du coeur.
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 : |