Fix: [ bug #889 ] Titre civilité ne s'affiche

This commit is contained in:
Laurent Destailleur 2013-05-12 17:09:48 +02:00
parent d9e477d748
commit df6c796413
4 changed files with 13 additions and 12 deletions

View File

@ -1493,19 +1493,17 @@ class Adherent extends CommonObject
/** /**
* Return civility label of a contact * Return civility label of a member
* *
* @param int $nohtmlentities 0=Encode with htmlentities for HTML output, 1=No htmlentities for memory translation * @return string Translated name of civility
* @return string Name translated of civility
*/ */
function getCivilityLabel($nohtmlentities=0) function getCivilityLabel()
{ {
global $langs; global $langs;
$langs->load("dict"); $langs->load("dict");
$code=$this->civilite_id; $code=$this->civilite_id;
if ($nohtmlentities) return $langs->transnoentities("Civility".$code)!="Civility".$code ? $langs->transnoentities("Civility".$code) : $code; return $langs->getLabelFromKey($this->db, "Civility".$code, "c_civilite", "code", "civilite", $code);
else return $langs->trans("Civility".$code)!="Civility".$code ? $langs->trans("Civility".$code) : $code;
} }
/** /**

View File

@ -874,9 +874,9 @@ class Contact extends CommonObject
} }
/** /**
* Return label of a civility contact * Return civility label of contact
* *
* @return string Translated name of civility * @return string Translated name of civility
*/ */
function getCivilityLabel() function getCivilityLabel()
{ {
@ -884,7 +884,7 @@ class Contact extends CommonObject
$langs->load("dict"); $langs->load("dict");
$code=$this->civilite_id; $code=$this->civilite_id;
return $langs->trans("Civility".$code)!="Civility".$code ? $langs->trans("Civility".$code) : ''; return $langs->getLabelFromKey($this->db, "Civility".$code, "c_civilite", "code", "civilite", $code);
} }
/** /**

View File

@ -643,13 +643,15 @@ class Translate
* Store key-label found into cache variable $this->cache_labels to save SQL requests to get labels. * Store key-label found into cache variable $this->cache_labels to save SQL requests to get labels.
* *
* @param DoliBD $db Database handler * @param DoliBD $db Database handler
* @param string $key Key to get label (key in language file) * @param string $key Translation key to get label (key in language file)
* @param string $tablename Table name without prefix * @param string $tablename Table name without prefix
* @param string $fieldkey Field for key * @param string $fieldkey Field for key
* @param string $fieldlabel Field for label * @param string $fieldlabel Field for label
* @param string $keyforselect Use another value than the translation key for the where into select
* @return string Label in UTF8 (but without entities) * @return string Label in UTF8 (but without entities)
* @see dol_getIdFromCode
*/ */
function getLabelFromKey($db,$key,$tablename,$fieldkey,$fieldlabel) function getLabelFromKey($db,$key,$tablename,$fieldkey,$fieldlabel,$keyforselect='')
{ {
// If key empty // If key empty
if ($key == '') return ''; if ($key == '') return '';
@ -670,7 +672,7 @@ class Translate
$sql = "SELECT ".$fieldlabel." as label"; $sql = "SELECT ".$fieldlabel." as label";
$sql.= " FROM ".MAIN_DB_PREFIX.$tablename; $sql.= " FROM ".MAIN_DB_PREFIX.$tablename;
$sql.= " WHERE ".$fieldkey." = '".$key."'"; $sql.= " WHERE ".$fieldkey." = '".($keyforselect?$keyforselect:$key)."'";
dol_syslog(get_class($this).'::getLabelFromKey sql='.$sql,LOG_DEBUG); dol_syslog(get_class($this).'::getLabelFromKey sql='.$sql,LOG_DEBUG);
$resql = $db->query($sql); $resql = $db->query($sql);
if ($resql) if ($resql)

View File

@ -4071,6 +4071,7 @@ function dol_osencode($str)
* @param string $fieldkey Field for code * @param string $fieldkey Field for code
* @param string $fieldid Field for id * @param string $fieldid Field for id
* @return int Id of code * @return int Id of code
* @see getLabelFromKey
*/ */
function dol_getIdFromCode($db,$key,$tablename,$fieldkey='code',$fieldid='id') function dol_getIdFromCode($db,$key,$tablename,$fieldkey='code',$fieldid='id')
{ {