';
if ($contact->birthday && $contact->birthday > 0) {
print '
'.$langs->trans("Birthdate").'
'.dolibarr_print_date($contact->birthday);
diff --git a/htdocs/contact/vcard.php b/htdocs/contact/vcard.php
index 86d6da46bd2..f58323e2105 100644
--- a/htdocs/contact/vcard.php
+++ b/htdocs/contact/vcard.php
@@ -18,7 +18,6 @@
*
* $Id$
* $Source$
- *
*/
/**
@@ -47,7 +46,6 @@ $v->setPhoneNumber($contact->phone_perso, "PREF;HOME;VOICE");
if ($contact->birthday) $v->setBirthday($contact->birthday);
-// TODO finir le support des adresses dans les contacts
$v->setAddress("", "", $contact->address, $contact->ville, "", $contact->cp, $contact->pays);
$v->setEmail($contact->email);
@@ -59,15 +57,18 @@ $v->setEmail($contact->email);
$db->close();
-// Renvoi VCard au navigateur
+// Renvoi la VCard au navigateur
$output = $v->getVCard();
-$filename = sanitize_string(ereg_replace('^%20','',$v->getFileName()));
-Header("Content-Disposition: attachment; filename=$filename");
+$filename =trim(urldecode($v->getFileName())); // "Nom prenom.vcf"
+$filenameurlencoded = sanitize_string(urlencode($filename));
+//$filename = sanitize_string($filename);
+
+Header("Content-Disposition: attachment; filename=\"$filename\"");
Header("Content-Length: ".strlen($output));
Header("Connection: close");
-Header("Content-Type: text/x-vCard; name=$filename");
+Header("Content-Type: text/x-vCard; name=\"$filename\"");
print $output;
diff --git a/htdocs/html.form.class.php b/htdocs/html.form.class.php
index c8636d3779b..59c842dff71 100644
--- a/htdocs/html.form.class.php
+++ b/htdocs/html.form.class.php
@@ -827,99 +827,30 @@ class Form
}
- /**
- * \brief Retourne la liste déroulante des civilite actives
- * \param selected civilite pré-sélectionnée
- */
-
- function select_civilite($selected='')
- {
- global $conf,$langs;
- $langs->load("dict");
-
- $sql = "SELECT rowid, code, civilite, active FROM ".MAIN_DB_PREFIX."c_civilite";
- $sql .= " WHERE active = 1";
-
- if ($this->db->query($sql))
- {
- print '';
- }
- else {
- dolibarr_print_error($this->db);
- }
-
- }
-
-
- /**
- * \brief Retourne la liste déroulante des formes juridiques tous pays confondus ou pour un pays donné.
- * \remarks Dans le cas d'une liste tous pays confondu, on affiche une rupture sur le pays
- * \param selected Code forme juridique a présélectionné
- * \param pays_code 0=liste tous pays confondus, sinon code du pays à afficher
- */
-
- function select_forme_juridique($selected='',$pays_code=0)
- {
- global $conf,$langs;
- $langs->load("dict");
-
- // On recherche les formes juridiques actives des pays actifs
- $sql = "SELECT f.rowid, f.code as code , f.libelle as nom, f.active, p.libelle as libelle_pays, p.code as code_pays";
- $sql .= " FROM llx_c_forme_juridique as f, llx_c_pays as p";
- $sql .= " WHERE f.fk_pays=p.rowid";
- $sql .= " AND f.active = 1 AND p.active = 1";
- if ($pays_code) $sql .= " AND p.code = '".$pays_code."'";
- $sql .= " ORDER BY p.code, f.code";
-
- $result=$this->db->query($sql);
- if ($result)
+ /**
+ * \brief Retourne la liste déroulante des civilite actives
+ * \param selected civilite pré-sélectionnée
+ */
+ function select_civilite($selected='')
{
- print '';
}
- else {
- dolibarr_print_error($this->db);
+
+
+ /**
+ * \brief Retourne le nom traduit de la civilité
+ * \param code Code de la civilité
+ * \return string Nom traduit de la civilité
+ */
+ function civilite_name($code)
+ {
+ global $langs;
+ $langs->load("dict");
+ return $langs->trans("Civility".$code)!="Civility".$code ? $langs->trans("Civility".$code) : $code;
+ }
+
+
+ /**
+ * \brief Retourne la liste déroulante des formes juridiques tous pays confondus ou pour un pays donné.
+ * \remarks Dans le cas d'une liste tous pays confondu, on affiche une rupture sur le pays
+ * \param selected Code forme juridique a présélectionn
+ * \param pays_code 0=liste tous pays confondus, sinon code du pays à afficher
+ */
+ function select_forme_juridique($selected='',$pays_code=0)
+ {
+ global $conf,$langs;
+ $langs->load("dict");
+
+ // On recherche les formes juridiques actives des pays actifs
+ $sql = "SELECT f.rowid, f.code as code , f.libelle as nom, f.active, p.libelle as libelle_pays, p.code as code_pays";
+ $sql .= " FROM llx_c_forme_juridique as f, llx_c_pays as p";
+ $sql .= " WHERE f.fk_pays=p.rowid";
+ $sql .= " AND f.active = 1 AND p.active = 1";
+ if ($pays_code) $sql .= " AND p.code = '".$pays_code."'";
+ $sql .= " ORDER BY p.code, f.code";
+
+ $result=$this->db->query($sql);
+ if ($result)
+ {
+ print '';
+ if ($pays_code) print '';
+ $num = $this->db->num_rows($result);
+ $i = 0;
+ if ($num)
+ {
+ $pays='';
+ while ($i < $num)
+ {
+ $obj = $this->db->fetch_object($result);
+ if ($obj->code == 0) {
+ print '';
+ }
+ else {
+ if (! $pays || $pays != $obj->libelle_pays) {
+ // Affiche la rupture si on est en mode liste multipays
+ if (! $pays_code && $obj->code_pays) {
+ print '\n";
+ $pays=$obj->libelle_pays;
+ }
+ }
+
+ if ($selected > 0 && $selected == $obj->code)
+ {
+ print '';
+ }
+ $i++;
+ }
+ }
+ print '';
+ }
+ else
+ {
+ dolibarr_print_error($this->db);
+ }
}
- }
- /**
- * \brief Retourne le nom traduit de la forme juridique
- * \param code Code de la forme juridique
- * \return string Nom traduit du pays
- */
+ /**
+ * \brief Retourne le nom traduit de la forme juridique
+ * \param code Code de la forme juridique
+ * \return string Nom traduit du pays
+ */
function forme_juridique_name($code)
{
global $langs;
diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang
index 5637561ad0a..336d8f4596f 100644
--- a/htdocs/langs/en_US/companies.lang
+++ b/htdocs/langs/en_US/companies.lang
@@ -30,6 +30,7 @@ Fax=Fax
Zip=Zip Code
Town=Town
Web=Web
+##### Professionnal ID #####
ProfId1=Professional ID 1
ProfId2=Professional ID 2
ProfId3=Professional ID 3
diff --git a/htdocs/langs/en_US/dict.lang b/htdocs/langs/en_US/dict.lang
index bc1e8f15467..ff7d017efdb 100755
--- a/htdocs/langs/en_US/dict.lang
+++ b/htdocs/langs/en_US/dict.lang
@@ -22,4 +22,9 @@ CountrySE=Sweden
CountryCI=Côte d'Ivoire
CountrySN=Senegal
CountryAR=Argentina
-CountryCM=Cameroun
\ No newline at end of file
+CountryCM=Cameroun
+##### Civilities #####
+CivilityMME=Madam
+CivilityMR=Mister
+CivilityMLE=Miss
+CivilityMTRE=Maître
diff --git a/htdocs/langs/en_US/mails.lang b/htdocs/langs/en_US/mails.lang
index fc96d4e2b84..eabb55c50cf 100644
--- a/htdocs/langs/en_US/mails.lang
+++ b/htdocs/langs/en_US/mails.lang
@@ -70,5 +70,5 @@ MailingNeedCommand=For securities reason, sending an emailing can only be perfor
TargetsReset=Clear list
ToClearAllRecipientsClickHere=To clear recipients' list for this emailing, click here
ToAddRecipientsChooseHere=To add recipients, choose in those lists
-NbOfEMailingsReceived=Nb of mass emailings received
+NbOfEMailingsReceived=Mass emailings received
IdRecord=ID record
\ No newline at end of file
diff --git a/htdocs/langs/fr_FR/companies.lang b/htdocs/langs/fr_FR/companies.lang
index a2824c49584..194266a18ee 100644
--- a/htdocs/langs/fr_FR/companies.lang
+++ b/htdocs/langs/fr_FR/companies.lang
@@ -30,6 +30,7 @@ Fax=Fax
Zip=Code postal
Town=Ville
Web=Web
+##### Professionnal ID #####
ProfId1=ID professionnel 1
ProfId2=ID professionnel 2
ProfId3=ID professionnel 3
diff --git a/htdocs/langs/fr_FR/dict.lang b/htdocs/langs/fr_FR/dict.lang
index 36c5f263258..b3fc525af3c 100755
--- a/htdocs/langs/fr_FR/dict.lang
+++ b/htdocs/langs/fr_FR/dict.lang
@@ -23,3 +23,8 @@ CountryCI=C
CountrySN=Sénégal
CountryAR=Argentine
CountryCM=Cameroun
+##### Civilities #####
+CivilityMME=Madame
+CivilityMR=Monsieur
+CivilityMLE=Mademoiselle
+CivilityMTRE=Maître
diff --git a/htdocs/langs/fr_FR/mails.lang b/htdocs/langs/fr_FR/mails.lang
index 73e303579ca..e45e85bda24 100644
--- a/htdocs/langs/fr_FR/mails.lang
+++ b/htdocs/langs/fr_FR/mails.lang
@@ -70,5 +70,5 @@ MailingNeedCommand=Pour des raisons de s
TargetsReset=Vider liste
ToClearAllRecipientsClickHere=Pour effacer la liste des destinataires de ce mailing, cliquer ici
ToAddRecipientsChooseHere=Pour ajouter des destinataires, choisir dans les listes ci-dessous
-NbOfEMailingsReceived=Mailings de masse reçus
+NbOfEMailingsReceived=Mailings de masse reçus
IdRecord=ID enregistrement
\ No newline at end of file