diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php
index a97265c848f..576d10b01bd 100644
--- a/htdocs/core/class/html.form.class.php
+++ b/htdocs/core/class/html.form.class.php
@@ -2728,7 +2728,7 @@ class Form
if (count($this->cache_currencies)) return 0; // Cache deja charge
- $sql = "SELECT code_iso, label";
+ $sql = "SELECT code, code_iso, label";
$sql.= " FROM ".MAIN_DB_PREFIX."c_currencies";
$sql.= " WHERE active = 1";
$sql.= " ORDER BY code_iso ASC";
@@ -2743,12 +2743,14 @@ class Form
{
$obj = $this->db->fetch_object($resql);
- // Si traduction existe, on l'utilise, sinon on prend le libelle par defaut
- $this->cache_currencies[$obj->code_iso] = ($obj->code_iso && $langs->trans("Currency".$obj->code_iso)!="Currency".$obj->code_iso?$langs->trans("Currency".$obj->code_iso):($obj->label!='-'?$obj->label:''));
+ // Si traduction existe, on l'utilise, sinon on prend le libelle par defaut
+ $this->cache_currencies[$obj->code]['code_iso'] = $obj->code_iso;
+ $this->cache_currencies[$obj->code]['label'] = ($obj->code_iso && $langs->trans("Currency".$obj->code_iso)!="Currency".$obj->code_iso?$langs->trans("Currency".$obj->code_iso):($obj->label!='-'?$obj->label:''));
+ $label[$obj->code] = $this->cache_currencies[$obj->code]['label'];
$i++;
}
- asort($this->cache_currencies);
+ array_multisort($label, SORT_ASC, $this->cache_currencies);
return $num;
}
@@ -2778,18 +2780,18 @@ class Form
if ($selected=='euro' || $selected=='euros') $selected='EUR'; // Pour compatibilite
$out.= '';