Nous sommes le Mar 29 Juil, 2014 09:25
Supprimer les cookies

Modifier "phpMyAddressbook" en y ajoutant des cham

Pour une tâche précise, pour remplacer un logiciel propriétaire donné...

Ven 23 Mars, 2007 23:12

Salut à tous,

Voilà dans le cadre de la création d'une entreprise je me suis arrêté sur phpMyAddressbook qui me semble excellent.

Néanmoins pour une utilisation Pro, il manque des champs comme par exemple "Nom de l'entreprise", "Fax", "Raison sociale" etc. . .

N'ayant aucune connaissances particulières en PHP ou en MySQL, je me demandais si quelqu'un avait déjà modifier ce petit soft très sympa.

Éventuellement si des personnes était intéressé pour le faire, ça m'intéresse :D

En attendant, vive Framasoft !

Rod.
Rod

Messages : 4

Sam 24 Mars, 2007 06:52

Bonjour et bienvenue Rod,

J'ai fait des transformations sur Phpmyadressbook. C'est assez simple.
Pas le temps d'expliquer ca maintenant la mais je trouverai du temps ce week-end si personne ne le fait d'ici la.
Je n'ai juste pas compris comment rajouter des champs en Anglais et de les rajouter sur la traduction.
Je les ai directement écrit en Français.

A bientôt.

Bruno
givo

Messages : 354
Géo : Montreuil (93)

Dim 25 Mars, 2007 20:28

Il suffit pour cela de modifier le fichier init.inc.php pour ajouter des occurences dans le tableau php $userFieldList.

Le fichier en question est auto-documenté :

Code: Tout sélectionner
/**
 * the userFieldList array must fulfill ***spam*** definition
 *
 * array["fieldName"] = array("fieldName", "fieldType", _("field label"), _("field suggested value"), _("field default value"))
 *
 * @param fieldName is the field name in the database table
 * @param fieldType is the field type in the database table
 * @param field label is the label displayed next to each field (can be set with gettext)
 * @param field suggested value is the value displayed in each field when creating a new contact (can be set with gettext)
 * @param field default value is the value stored in the database when the field is left empty or equal to the suggested value (can be set with gettext)
 */
$userFieldList = array();
$userFieldList["name"] = array("name", "text", _("family name"), null, _("(unnamed)"));
$userFieldList["firstname"] = array("firstname", "text", _("first name"), null, null);
$userFieldList["address"] = array("address", "text", _("postal address"), null, null);
$userFieldList["zipcode"] = array("zipcode", "text", _("postal code"), null, null);
$userFieldList["city"] = array("city", "text", _("city"), null, null);
$userFieldList["country"] = array("country", "text", _("country"), null, null);
$userFieldList["homephone"] = array("homephone", "text", _("home ***spam***"), null, null);
$userFieldList["cellphone"] = array("cellphone", "text", _("mobile ***spam***"), null, null);
$userFieldList["email"] = array("email", "text", _("email"), null, null);
$userFieldList["website"] = array("website", "text", _("website"), "http://", null);
$userFieldList["comments"] = array("comments", "text", _("comments"), null, null);


Dans votre cas il faudrait ajouter les lignes suivantes :

Code: Tout sélectionner
$userFieldList["entreprise"] = array("entreprise", "text", _("entreprise"), null, null);
$userFieldList["fax"] = array("fax", "text", _("fax"), null, null);
$userFieldList["raisonsociale"] = array("raisonsociale", "text", _("raison sociale"), null, null);


Dans cet exemple, les valeurs par défaut (null null à la fin) ne sont pas initialisées, mais vous pouvez les initaliser aux valeurs de votre choix et faire des tests.

Cette modification doit être faite avant l'installation de l'application (c'est à dire avant l'appel au script install.php). Si vous avez déjà initialisé votre table dans la base de données, il faut modifier la table manuellement en même temps que la modification du fichier init.inc.php

Enfin, pour répondre à givo, le mieux est de rajouter les champs en Anglais (pour rester cohérent) dans le fichier init.inc.php puis de modifier en cohérence le dictionnaire gettexte Français (locale/fr_FR/LC_MESSAGES/messages.po) et enfin de regénérer le fichier messages.mo. Tout cela concerne gettext, et si cela vous semble trop compliqué, vous pouvez vous contenter de créer les nouveaux champs directement en Français.
ploc

Messages : 15

Lun 26 Mars, 2007 12:59

Tout d'abord, merci pour vos réponses très précises.

Mais je tiens à préciser que je n'ai pratiquement aucune connaissances en PHP ou MySQL.

Ne croyez vous pas que celà risque de me poser quelques problèmes ?!

D'autre part, vos modification seront-elles prisent en compte lors de l'export en PDF ou autres ?

N'y a t-il personne qui pourrait éventuellement mettre à disposition en ligne une version modifier ?

Merci d'avance à tous et désolé d'être si incompétent.

Rod.
Rod

Messages : 4

Lun 26 Mars, 2007 13:41

Vous n'avez pratiquement aucune connaissance en php ? Voici une bonne occasion d'en acquérir facilement ! Vous ne risquez vraiment pas grand chose à vous lancer, sinon à progresser rapidement et découvrir que ça n'était finalement pas si compliqué...

Concernant la prise en compte de ces modifications lors de l'export, cela dépend du format d'export choisi. Pour plus de détail, vous pouvez consulter les questions à la suite de la fiche de phpMyAddressbook sur Framasoft, j'y ai déjà répondu (par lolonene le 20 février 2007). En ce qui concerne l'export pdf, il y a déjà un travail de présentation qui est fait de manière à ce que les informations les plus pertinentes apparaissent en priorité, tout nouveau champ ne sera donc a priori pas pris en compte.

On pourrait certe mettre en ligne des versions modifiées de phpMyAddressbook mais je doute que ce soit vraiment une voie d'avenir car je pense que chacun aurait des besoins un peu différents, il faudrait donc mettre à disposition une version par utilisateur, ce qui représente une somme de travail considérable à terme.

C'est pourquoi j'ai opté pour un système de paramétrage simple et accessible. J'invite chacun à essayer d'adapter phpMyAddressbook en garantissant que j'ai tenté de rendre cette adaptation la plus simple possible. Je reste disponible pour toute aide à ceux qui rencontreraient des problèmes.
ploc

Messages : 15

Mar 27 Mars, 2007 08:14

Ok merci c'est effectivement un point de vue honorable.

Je vais tenter de modifier et je vous tiens au courant.

Après tout, je ne risque pas grand chose en effet.

Encore Merci

Rod.
Rod

Messages : 4

Mar 27 Mars, 2007 21:38

Effectivement les modifications ne sont vraiment pas compliqué . . . autant pour moi.

Par contre j'aimerai faire cela dans les règles de l'art, pourrait-tu m'expliquer ceci :

Code: Tout sélectionner
Enfin, pour répondre à givo, le mieux est de rajouter les champs en Anglais (pour rester cohérent) dans le fichier init.inc.php puis de modifier en cohérence le dictionnaire gettexte Français (locale/fr_FR/LC_MESSAGES/messages.po) et enfin de regénérer le fichier messages.mo. Tout cela concerne gettext, et si cela vous semble trop compliqué, vous pouvez vous contenter de créer les nouveaux champs directement en Français.


Pour le moment j'ai créer les nouveaux champs en Français mais j'aimerai "regénérer le fichier messages.mo" comment faire ?
Rod

Messages : 4

Mer 28 Mars, 2007 09:54

Bon, je vois que tu souhaites continuer dans le chemin et qu'en plus tu veux bien faire les choses.

Voici quelques pistes pour apprendre à appréhender gettext :
- le manuel de gettext (en Anglais)
- une présentation de gettext par Wikipédia (en Français)
- un rapide tutoriel de gettext (en Anglais), c'est par celui-ci que j'ai commencé

Tu verras, c'est pas dur !

Une dernière chose, si tu déclares de nouveaux champs et que tu souhaites utiliser gettext, autant déclarer tes nouveaux champs en Anglais pour rester cohérent avec l'existant. De plus, il faut que tes champs soient déclarés dans l'ordre d'affichage que tu souhaites.

Une fois que tu auras fait tes modifications, j'aimerai bien voir le résultat final (avant que tu n'entres tes données personnelles bien sûr).
ploc

Messages : 15

Lun 18 Fév, 2008 18:35

Bonjour
Toujours dans le même principe d'ajout de nouveaux champs, y a t'il un moyen de "compliquer" un peu le formulaire en ajoutant des menus déroulants à choix multiples du genre Mr, Mme ou Mle par exemple, ou des boutons radios?
merci
pandahfumi

Messages : 1

Mar 19 Fév, 2008 00:28

Ca ne fait pas partie des fonctionnalités de phpMyAddressbook.

En effet, ça compliquerait pas mal l'outil, il faudrait enregistrer quelque part les différentes valeurs possibles, pour chaque champ de type "menu déroulant" et n'irait pas vraiment dans le sens de l'appli qui veut que la simplicité reste de mise, garante des performance et de la maintenabilité.

Ceci dit, je crois qu'une personne est en train d'ajouter cette fonctionnalité, mais que ça n'est pas terminé. On peut imaginer à terme mettre à disposition des internautes ce patch.
ploc

Messages : 15

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit