Bienvenue, Invité
Nom d'utilisateur : Mot de passe : Se souvenir de moi

SUJET : Email : variable de substitution contacts

Email : variable de substitution contacts il y a 2 semaines 9 heures #111265

  • Arre
  • Portrait de Arre
  • Hors ligne
  • Modérateur
  • Envie de participer ? wiki -> adhérer à l'asso :)
  • Messages : 1454
  • Remerciements reçus 337
  • Karma: 42
Salut tout le monde,

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
// Find the good contact adress
	$custcontact = '';
	$contactarr = array();
	$contactarr = $object->liste_contact(- 1, 'external');

	if (is_array($contactarr) && count($contactarr) > 0) {
		require_once DOL_DOCUMENT_ROOT . '/contact/class/contact.class.php';
        $contactstatic = new Contact($db);

		foreach ($contactarr as $contact) {
            $contactstatic->fetch($contact['id']);
            $substitutionarray[' _NAME_'.$contact['code'].'__'] = $contactstatic->getFullName($langs, 1);
		}
	}

quelqu'un peut éclairer mes lanternes ?
Dernière édition: il y a 2 semaines 9 heures par Arre.
L'administrateur a désactivé l'accès en écriture pour le public.

Email : variable de substitution contacts il y a 2 semaines 8 heures #111266

  • dolibarr95
  • Portrait de dolibarr95
  • Hors ligne
  • Admin
  • Messages : 1133
  • Remerciements reçus 172
  • Karma: 26
Bonjour :)
Il s'agit d'une liste de contact il me semble
du type :
 _NAME_xxx__
qui renverra le nom complet
L'administrateur a désactivé l'accès en écriture pour le public.

Email : variable de substitution contacts il y a 2 semaines 8 heures #111267

  • Arre
  • Portrait de Arre
  • Hors ligne
  • Modérateur
  • Envie de participer ? wiki -> adhérer à l'asso :)
  • Messages : 1454
  • Remerciements reçus 337
  • Karma: 42
ok, mais tu mets quoi à la place des XXX ?
L'administrateur a désactivé l'accès en écriture pour le public.

Email : variable de substitution contacts il y a 2 semaines 8 heures #111268

  • dolibarr95
  • Portrait de dolibarr95
  • Hors ligne
  • Admin
  • Messages : 1133
  • Remerciements reçus 172
  • Karma: 26
Bah ca :laugh: :laugh:
effectivement a lire la fonction fetch () code n'est pas défini :unsure: :unsure:
L'administrateur a désactivé l'accès en écriture pour le public.

Email : variable de substitution contacts il y a 2 semaines 8 heures #111269

  • dolibarr95
  • Portrait de dolibarr95
  • Hors ligne
  • Admin
  • Messages : 1133
  • Remerciements reçus 172
  • Karma: 26
c'est dans liste_contact
code du contact
$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";
Dernière édition: il y a 2 semaines 8 heures par dolibarr95.
L'administrateur a désactivé l'accès en écriture pour le public.

Email : variable de substitution contacts il y a 2 semaines 8 heures #111270

  • dolibarr95
  • Portrait de dolibarr95
  • Hors ligne
  • Admin
  • Messages : 1133
  • Remerciements reçus 172
  • Karma: 26
xxx= BILLING ou SERVICE etc

ACTOR
AUTHOR
BILLING
CUSTOMER
FACTORYRESP
GUEST
INTERREPFOLL
INTERVENING
PROJECTCONTRIBUTOR
PROJECTLEADER
SALESREPFOLL
SALESREPSIGN
SERVICE
SHIPPING
TASKCONTRIBUTOR
TASKEXECUTIVE
THIRDINCHARGE
USERINCHARGE
WAREHOUSERESP
Dernière édition: il y a 2 semaines 8 heures par dolibarr95.
L'administrateur a désactivé l'accès en écriture pour le public.

Email : variable de substitution contacts il y a 2 semaines 8 heures #111273

  • Arre
  • Portrait de Arre
  • Hors ligne
  • Modérateur
  • Envie de participer ? wiki -> adhérer à l'asso :)
  • Messages : 1454
  • Remerciements reçus 337
  • Karma: 42
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.
L'administrateur a désactivé l'accès en écriture pour le public.

Email : variable de substitution contacts il y a 2 semaines 8 heures #111274

  • dolibarr95
  • Portrait de dolibarr95
  • Hors ligne
  • Admin
  • Messages : 1133
  • Remerciements reçus 172
  • Karma: 26
Ce sont les valeurs définies dans llx_c_type_contact que l'on retrouve depuis la page admin/dict.php?id=11
L'administrateur a désactivé l'accès en écriture pour le public.

Email : variable de substitution contacts il y a 2 semaines 8 heures #111275

  • dolibarr95
  • Portrait de dolibarr95
  • Hors ligne
  • Admin
  • Messages : 1133
  • Remerciements reçus 172
  • Karma: 26
Exact c'est bizarre la syntaxe :dry:
L'administrateur a désactivé l'accès en écriture pour le public.

Email : variable de substitution contacts il y a 2 semaines 8 heures #111276

  • dolibarr95
  • Portrait de dolibarr95
  • Hors ligne
  • Admin
  • Messages : 1133
  • Remerciements reçus 172
  • Karma: 26
__CONTACT_NAME_xxx__
L'administrateur a désactivé l'accès en écriture pour le public.
Cet utilisateur a été remercié pour son message par: Arre

Email : variable de substitution contacts il y a 2 semaines 8 heures #111278

  • Arre
  • Portrait de Arre
  • Hors ligne
  • Modérateur
  • Envie de participer ? wiki -> adhérer à l'asso :)
  • Messages : 1454
  • Remerciements reçus 337
  • Karma: 42
Bingo, merci !
Je mets à jour le wiki.
L'administrateur a désactivé l'accès en écriture pour le public.
Cet utilisateur a été remercié pour son message par: dolibarr95

Email : variable de substitution contacts il y a 2 semaines 8 heures #111279

  • dolibarr95
  • Portrait de dolibarr95
  • Hors ligne
  • Admin
  • Messages : 1133
  • Remerciements reçus 172
  • Karma: 26
B)
Mais je me demande si il n'y a pas des disparités entre odt, emails etc :evil:
Je l'ai trouvé dans htdocs/core/tpl/card_presend.tpl.php
Dernière édition: il y a 2 semaines 8 heures par dolibarr95.
L'administrateur a désactivé l'accès en écriture pour le public.