depuis quelques jours il y a ds posts autour des variables de substituions dans les modèles d’email.
En m’y intéressant un peu, j’ai regardé le code, et j’ai une question quant aux variables de substitution concernant le contact lié à une facture par exemple: (en V9.0.3)
dans d’anciennes versions de dolibarr, il y avait CONTACTCIVNAME qui ramenait titre + nom+prénom.
Mais cette variable a été supprimée car elle est codée pour retourner une valeur vide :
dolibarr-9.0.3\htdocs\core\tpl\card_presend.tpl.php line 204
$substitutionarray['__CONTACTCIVNAME__'] = '';
Ça semble être remplacé par un autre traitement, dont je ne comprends pas le fonctionnement.
dolibarr-9.0.3\htdocs\core\tpl\card_presend.tpl.php line 210
$sql = "SELECT ec.rowid, ec.statut as statuslink, ec.fk_socpeople as id, ec.fk_c_type_contact"; // This field contains id of llx_socpeople or id of llx_user
if ($source == 'internal') $sql.=", '-1' as socid, t.statut as statuscontact, t.login, t.photo";
if ($source == 'external' || $source == 'thirdparty') $sql.=", t.fk_soc as socid, t.statut as statuscontact";
$sql.= ", t.civility as civility, t.lastname as lastname, t.firstname, t.email";
$sql.= ", tc.source, tc.element, tc.code, tc.libelle";
$sql.= " FROM ".MAIN_DB_PREFIX."c_type_contact tc";
$sql.= ", ".MAIN_DB_PREFIX."element_contact ec";
if ($source == 'internal') $sql.=" LEFT JOIN ".MAIN_DB_PREFIX."user t on ec.fk_socpeople = t.rowid";
if ($source == 'external'|| $source == 'thirdparty') $sql.=" LEFT JOIN ".MAIN_DB_PREFIX."socpeople t on ec.fk_socpeople = t.rowid";
$sql.= " WHERE ec.element_id =".$this->id;
$sql.= " AND ec.fk_c_type_contact=tc.rowid";
$sql.= " AND tc.element='".$this->db->escape($this->element)."'";
if ($code) $sql.= " AND tc.code = '".$this->db->escape($code)."'";
if ($source == 'internal') $sql.= " AND tc.source = 'internal'";
if ($source == 'external' || $source == 'thirdparty') $sql.= " AND tc.source = 'external'";
$sql.= " AND tc.active=1";
if ($statut >= 0) $sql.= " AND ec.statut = '".$statut."'";
$sql.=" ORDER BY t.lastname ASC";
ok, c’est bien ce que j’avais compris aussi.
Maintenant on est au même point lol
mais j’ai essayé toutes les combinaisons et ça ne donne rien (la variable reste en clair lors de l’émission de l’email, sans être remplacée ni par une valeur existante ni par une valeur vide)
Ce qui me chagrine aussi c’est l’unique underscore avant _NAME … c’est pas logique par rapport au reste.