Merge branch '7.0' of git@github.com:Dolibarr/dolibarr.git into 8.0
Conflicts: htdocs/core/actions_massactions.inc.php htdocs/core/tpl/massactions_pre.tpl.php
This commit is contained in:
commit
3c4956838e
@ -222,22 +222,22 @@ class Adherent extends CommonObject
|
|||||||
'__ID__'=>$this->id,
|
'__ID__'=>$this->id,
|
||||||
'__MEMBER_ID__'=>$this->id,
|
'__MEMBER_ID__'=>$this->id,
|
||||||
'__CIVILITY__'=>$this->getCivilityLabel(),
|
'__CIVILITY__'=>$this->getCivilityLabel(),
|
||||||
'__FIRSTNAME__'=>$msgishtml?dol_htmlentitiesbr($this->firstname):$this->firstname,
|
'__FIRSTNAME__'=>$msgishtml?dol_htmlentitiesbr($this->firstname):($this->firstname?$this->firstname:''),
|
||||||
'__LASTNAME__'=>$msgishtml?dol_htmlentitiesbr($this->lastname):$this->lastname,
|
'__LASTNAME__'=>$msgishtml?dol_htmlentitiesbr($this->lastname):($this->lastname?$this->lastname:''),
|
||||||
'__FULLNAME__'=>$msgishtml?dol_htmlentitiesbr($this->getFullName($langs)):$this->getFullName($langs),
|
'__FULLNAME__'=>$msgishtml?dol_htmlentitiesbr($this->getFullName($langs)):$this->getFullName($langs),
|
||||||
'__COMPANY__'=>$msgishtml?dol_htmlentitiesbr($this->societe):$this->societe,
|
'__COMPANY__'=>$msgishtml?dol_htmlentitiesbr($this->societe):($this->societe?$this->societe:''),
|
||||||
'__ADDRESS__'=>$msgishtml?dol_htmlentitiesbr($this->address):$this->address,
|
'__ADDRESS__'=>$msgishtml?dol_htmlentitiesbr($this->address):($this->address?$this->address:''),
|
||||||
'__ZIP__'=>$msgishtml?dol_htmlentitiesbr($this->zip):$this->zip,
|
'__ZIP__'=>$msgishtml?dol_htmlentitiesbr($this->zip):($this->zip?$this->zip:''),
|
||||||
'__TOWN__'=>$msgishtml?dol_htmlentitiesbr($this->town):$this->town,
|
'__TOWN__'=>$msgishtml?dol_htmlentitiesbr($this->town):($this->town?$this->town:''),
|
||||||
'__COUNTRY__'=>$msgishtml?dol_htmlentitiesbr($this->country):$this->country,
|
'__COUNTRY__'=>$msgishtml?dol_htmlentitiesbr($this->country):($this->country?$this->country:''),
|
||||||
'__EMAIL__'=>$msgishtml?dol_htmlentitiesbr($this->email):$this->email,
|
'__EMAIL__'=>$msgishtml?dol_htmlentitiesbr($this->email):($this->email?$this->email:''),
|
||||||
'__BIRTH__'=>$msgishtml?dol_htmlentitiesbr($birthday):$birthday,
|
'__BIRTH__'=>$msgishtml?dol_htmlentitiesbr($birthday):($birthday?$birthday:''),
|
||||||
'__PHOTO__'=>$msgishtml?dol_htmlentitiesbr($this->photo):$this->photo,
|
'__PHOTO__'=>$msgishtml?dol_htmlentitiesbr($this->photo):($this->photo?$this->photo:''),
|
||||||
'__LOGIN__'=>$msgishtml?dol_htmlentitiesbr($this->login):$this->login,
|
'__LOGIN__'=>$msgishtml?dol_htmlentitiesbr($this->login):($this->login?$this->login:''),
|
||||||
'__PASSWORD__'=>$msgishtml?dol_htmlentitiesbr($this->pass):$this->pass,
|
'__PASSWORD__'=>$msgishtml?dol_htmlentitiesbr($this->pass):($this->pass?$this->pass:''),
|
||||||
'__PHONE__'=>$msgishtml?dol_htmlentitiesbr($this->phone):$this->phone,
|
'__PHONE__'=>$msgishtml?dol_htmlentitiesbr($this->phone):($this->phone?$this->phone:''),
|
||||||
'__PHONEPRO__'=>$msgishtml?dol_htmlentitiesbr($this->phone_perso):$this->phone_perso,
|
'__PHONEPRO__'=>$msgishtml?dol_htmlentitiesbr($this->phone_perso):($this->phone_perso?$this->phone_perso:''),
|
||||||
'__PHONEMOBILE__'=>$msgishtml?dol_htmlentitiesbr($this->phone_mobile):$this->phone_mobile,
|
'__PHONEMOBILE__'=>$msgishtml?dol_htmlentitiesbr($this->phone_mobile):($this->phone_mobile?$this->phone_mobile:'')
|
||||||
);
|
);
|
||||||
|
|
||||||
complete_substitutions_array($substitutionarray, $langs, $this);
|
complete_substitutions_array($substitutionarray, $langs, $this);
|
||||||
|
|||||||
@ -70,6 +70,8 @@ if (! $error && $massaction == 'confirm_presend')
|
|||||||
$listofobjectid=array();
|
$listofobjectid=array();
|
||||||
$listofobjectthirdparties=array();
|
$listofobjectthirdparties=array();
|
||||||
$listofobjectref=array();
|
$listofobjectref=array();
|
||||||
|
$attachedfilesThirdpartyObj=array();
|
||||||
|
$oneemailperrecipient=(GETPOST('oneemailperrecipient')=='on'?1:0);
|
||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
@ -194,7 +196,6 @@ if (! $error && $massaction == 'confirm_presend')
|
|||||||
$sendtocc=implode(',',$tmparray);
|
$sendtocc=implode(',',$tmparray);
|
||||||
|
|
||||||
//var_dump($listofobjectref);exit;
|
//var_dump($listofobjectref);exit;
|
||||||
$attachedfiles=array('paths'=>array(), 'names'=>array(), 'mimes'=>array());
|
|
||||||
$listofqualifiedobj=array();
|
$listofqualifiedobj=array();
|
||||||
$listofqualifiedref=array();
|
$listofqualifiedref=array();
|
||||||
$thirdpartywithoutemail=array();
|
$thirdpartywithoutemail=array();
|
||||||
@ -259,7 +260,7 @@ if (! $error && $massaction == 'confirm_presend')
|
|||||||
// TODO If not defined, use $objectobj->modelpdf (or defaut invoice config) to know what is template to use to regenerate doc.
|
// TODO If not defined, use $objectobj->modelpdf (or defaut invoice config) to know what is template to use to regenerate doc.
|
||||||
$filename = dol_sanitizeFileName($objectobj->ref).'.pdf';
|
$filename = dol_sanitizeFileName($objectobj->ref).'.pdf';
|
||||||
$subdir = '';
|
$subdir = '';
|
||||||
// TODO Set subdir to be compatible with multi levels dir trees
|
// TODO Set subdir to be compatible with multi levels dir trees
|
||||||
// $subdir = get_exdir($objectobj->id, 2, 0, 0, $objectobj, $objectobj->element)
|
// $subdir = get_exdir($objectobj->id, 2, 0, 0, $objectobj, $objectobj->element)
|
||||||
$filedir = $uploaddir . '/' . $subdir . dol_sanitizeFileName($objectobj->ref);
|
$filedir = $uploaddir . '/' . $subdir . dol_sanitizeFileName($objectobj->ref);
|
||||||
$file = $filedir . '/' . $filename;
|
$file = $filedir . '/' . $filename;
|
||||||
@ -275,12 +276,12 @@ if (! $error && $massaction == 'confirm_presend')
|
|||||||
|
|
||||||
if (dol_is_file($file))
|
if (dol_is_file($file))
|
||||||
{
|
{
|
||||||
// Create form object
|
// Create form object
|
||||||
$attachedfiles=array(
|
$attachedfilesThirdpartyObj[$thirdpartyid][$objectid]=array(
|
||||||
'paths'=>array_merge($attachedfiles['paths'],array($file)),
|
'paths'=>array($file),
|
||||||
'names'=>array_merge($attachedfiles['names'],array($filename)),
|
'names'=>array($filename),
|
||||||
'mimes'=>array_merge($attachedfiles['mimes'],array($mime))
|
'mimes'=>array($mime)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -346,7 +347,7 @@ if (! $error && $massaction == 'confirm_presend')
|
|||||||
if ($objectclass == 'FactureFournisseur') $sendtobcc .= (empty($conf->global->MAIN_MAIL_AUTOCOPY_SUPPLIER_INVOICE_TO) ? '' : (($sendtobcc?", ":"").$conf->global->MAIN_MAIL_AUTOCOPY_SUPPLIER_INVOICE_TO));
|
if ($objectclass == 'FactureFournisseur') $sendtobcc .= (empty($conf->global->MAIN_MAIL_AUTOCOPY_SUPPLIER_INVOICE_TO) ? '' : (($sendtobcc?", ":"").$conf->global->MAIN_MAIL_AUTOCOPY_SUPPLIER_INVOICE_TO));
|
||||||
|
|
||||||
// $listofqualifiedobj is array with key = object id and value is instance of qualified objects, for the current thirdparty (but thirdparty property is not loaded yet)
|
// $listofqualifiedobj is array with key = object id and value is instance of qualified objects, for the current thirdparty (but thirdparty property is not loaded yet)
|
||||||
$oneemailperrecipient=(GETPOST('oneemailperrecipient')=='on'?1:0);
|
|
||||||
$looparray=array();
|
$looparray=array();
|
||||||
if (! $oneemailperrecipient)
|
if (! $oneemailperrecipient)
|
||||||
{
|
{
|
||||||
@ -363,8 +364,9 @@ if (! $error && $massaction == 'confirm_presend')
|
|||||||
$looparray[0]=$objectforloop;
|
$looparray[0]=$objectforloop;
|
||||||
}
|
}
|
||||||
//var_dump($looparray);exit;
|
//var_dump($looparray);exit;
|
||||||
|
dol_syslog("We have set an array of ".count($looparray)." emails to send. oneemailperrecipient=".$oneemailperrecipient);
|
||||||
foreach ($looparray as $objecttmp) // $objecttmp is a real object or an empty object if we choose to send one email per thirdparty instead of one per record
|
//var_dump($oneemailperrecipient); var_dump($listofqualifiedobj); var_dump($listofqualifiedref);
|
||||||
|
foreach ($looparray as $objectid => $objecttmp) // $objecttmp is a real object or an empty object if we choose to send one email per thirdparty instead of one per object
|
||||||
{
|
{
|
||||||
// Make substitution in email content
|
// Make substitution in email content
|
||||||
$substitutionarray=getCommonSubstitutionArray($langs, 0, null, $objecttmp);
|
$substitutionarray=getCommonSubstitutionArray($langs, 0, null, $objecttmp);
|
||||||
@ -384,18 +386,44 @@ if (! $error && $massaction == 'confirm_presend')
|
|||||||
|
|
||||||
complete_substitutions_array($substitutionarray, $langs, $objecttmp, $parameters);
|
complete_substitutions_array($substitutionarray, $langs, $objecttmp, $parameters);
|
||||||
|
|
||||||
$subject=make_substitutions($subject, $substitutionarray);
|
$subjectreplaced=make_substitutions($subject, $substitutionarray);
|
||||||
$message=make_substitutions($message, $substitutionarray);
|
$messagereplaced=make_substitutions($message, $substitutionarray);
|
||||||
|
|
||||||
|
|
||||||
|
$attachedfiles=array('paths'=>array(), 'names'=>array(), 'mimes'=>array());
|
||||||
|
if($oneemailperrecipient)
|
||||||
|
{
|
||||||
|
// if "one email per recipient" isn't check we must collate $attachedfiles by thirdparty
|
||||||
|
if(is_array($attachedfilesThirdpartyObj[$thirdparty->id]) && count($attachedfilesThirdpartyObj[$thirdparty->id]))
|
||||||
|
{
|
||||||
|
foreach ($attachedfilesThirdpartyObj[$thirdparty->id] as $keyObjId => $objAttachedFiles){
|
||||||
|
// Create form object
|
||||||
|
$attachedfiles=array(
|
||||||
|
'paths'=>array_merge($attachedfiles['paths'], $objAttachedFiles['paths']),
|
||||||
|
'names'=>array_merge($attachedfiles['names'], $objAttachedFiles['names']),
|
||||||
|
'mimes'=>array_merge($attachedfiles['mimes'], $objAttachedFiles['mimes'])
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elseif(!empty($attachedfilesThirdpartyObj[$thirdparty->id][$objectid])){
|
||||||
|
// Create form object
|
||||||
|
// if "one email per recipient" isn't check we must separate $attachedfiles by object
|
||||||
|
$attachedfiles=$attachedfilesThirdpartyObj[$thirdparty->id][$objectid];
|
||||||
|
}
|
||||||
|
|
||||||
$filepath = $attachedfiles['paths'];
|
$filepath = $attachedfiles['paths'];
|
||||||
$filename = $attachedfiles['names'];
|
$filename = $attachedfiles['names'];
|
||||||
$mimetype = $attachedfiles['mimes'];
|
$mimetype = $attachedfiles['mimes'];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//var_dump($filepath);
|
//var_dump($filepath);
|
||||||
|
|
||||||
// Send mail (substitutionarray must be done just before this)
|
// Send mail (substitutionarray must be done just before this)
|
||||||
require_once(DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php');
|
require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php';
|
||||||
$mailfile = new CMailFile($subject,$sendto,$from,$message,$filepath,$mimetype,$filename,$sendtocc,$sendtobcc,$deliveryreceipt,-1);
|
$mailfile = new CMailFile($subjectreplaced, $sendto, $from, $messagereplaced, $filepath, $mimetype, $filename, $sendtocc, $sendtobcc, $deliveryreceipt, -1);
|
||||||
if ($mailfile->error)
|
if ($mailfile->error)
|
||||||
{
|
{
|
||||||
$resaction.='<div class="error">'.$mailfile->error.'</div>';
|
$resaction.='<div class="error">'.$mailfile->error.'</div>';
|
||||||
@ -410,8 +438,12 @@ if (! $error && $massaction == 'confirm_presend')
|
|||||||
$error=0;
|
$error=0;
|
||||||
|
|
||||||
// Insert logs into agenda
|
// Insert logs into agenda
|
||||||
foreach($listofqualifiedobj as $objid => $objectobj)
|
foreach($listofqualifiedobj as $objid2 => $objectobj2)
|
||||||
{
|
{
|
||||||
|
if ((! $oneemailperrecipient) && $objid2 != $objectid) continue; // We discard this pass to avoid duplicate with other pass in looparray at higher level
|
||||||
|
|
||||||
|
dol_syslog("Try to insert email event into agenda for objid=".$objid2." => objectobj=".get_class($objectobj2));
|
||||||
|
|
||||||
/*if ($objectclass == 'Propale') $actiontypecode='AC_PROP';
|
/*if ($objectclass == 'Propale') $actiontypecode='AC_PROP';
|
||||||
if ($objectclass == 'Commande') $actiontypecode='AC_COM';
|
if ($objectclass == 'Commande') $actiontypecode='AC_COM';
|
||||||
if ($objectclass == 'Facture') $actiontypecode='AC_FAC';
|
if ($objectclass == 'Facture') $actiontypecode='AC_FAC';
|
||||||
@ -423,18 +455,18 @@ if (! $error && $massaction == 'confirm_presend')
|
|||||||
if ($message)
|
if ($message)
|
||||||
{
|
{
|
||||||
if ($sendtocc) $actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('Bcc') . ": " . $sendtocc);
|
if ($sendtocc) $actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('Bcc') . ": " . $sendtocc);
|
||||||
$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('MailTopic') . ": " . $subject);
|
$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('MailTopic') . ": " . $subjectreplaced);
|
||||||
$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('TextUsedInTheMessageBody') . ":");
|
$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('TextUsedInTheMessageBody') . ":");
|
||||||
$actionmsg = dol_concatdesc($actionmsg, $message);
|
$actionmsg = dol_concatdesc($actionmsg, $messagereplaced);
|
||||||
}
|
}
|
||||||
$actionmsg2='';
|
$actionmsg2='';
|
||||||
|
|
||||||
// Initialisation donnees
|
// Initialisation donnees
|
||||||
$objectobj->sendtoid = 0;
|
$objectobj2->sendtoid = 0;
|
||||||
$objectobj->actionmsg = $actionmsg; // Long text
|
$objectobj2->actionmsg = $actionmsg; // Long text
|
||||||
$objectobj->actionmsg2 = $actionmsg2; // Short text
|
$objectobj2->actionmsg2 = $actionmsg2; // Short text
|
||||||
$objectobj->fk_element = $objid;
|
$objectobj2->fk_element = $objid2;
|
||||||
$objectobj->elementtype = $objectobj->element;
|
$objectobj2->elementtype = $objectobj2->element;
|
||||||
|
|
||||||
$triggername = strtoupper(get_class($objectobj)) .'_SENTBYMAIL';
|
$triggername = strtoupper(get_class($objectobj)) .'_SENTBYMAIL';
|
||||||
if ($triggername == 'SOCIETE_SENTBYMAIL') $triggername = 'COMPANY_SENTBYEMAIL';
|
if ($triggername == 'SOCIETE_SENTBYMAIL') $triggername = 'COMPANY_SENTBYEMAIL';
|
||||||
@ -449,9 +481,9 @@ if (! $error && $massaction == 'confirm_presend')
|
|||||||
if (! empty($triggername))
|
if (! empty($triggername))
|
||||||
{
|
{
|
||||||
// Appel des triggers
|
// Appel des triggers
|
||||||
include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php");
|
include_once DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php";
|
||||||
$interface=new Interfaces($db);
|
$interface=new Interfaces($db);
|
||||||
$result=$interface->run_triggers($triggername, $objectobj, $user, $langs, $conf);
|
$result=$interface->run_triggers($triggername, $objectobj2, $user, $langs, $conf);
|
||||||
if ($result < 0) { $error++; $errors=$interface->errors; }
|
if ($result < 0) { $error++; $errors=$interface->errors; }
|
||||||
// Fin appel triggers
|
// Fin appel triggers
|
||||||
|
|
||||||
@ -461,9 +493,9 @@ if (! $error && $massaction == 'confirm_presend')
|
|||||||
dol_syslog("Error in trigger ".$triggername.' '.$db->lasterror(), LOG_ERR);
|
dol_syslog("Error in trigger ".$triggername.' '.$db->lasterror(), LOG_ERR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$nbsent++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$nbsent++; // Nb of email sent (may be lower than number of record selected if we group thirdparties)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -736,7 +768,7 @@ if ($massaction == 'confirm_createbills')
|
|||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
$db->commit();
|
$db->commit();
|
||||||
setEventMessage($langs->trans('BillCreated', $nb_bills_created));
|
setEventMessages($langs->trans('BillCreated', $nb_bills_created), null, 'mesgs');
|
||||||
|
|
||||||
// Make a redirect to avoid to bill twice if we make a refresh or back
|
// Make a redirect to avoid to bill twice if we make a refresh or back
|
||||||
$param='';
|
$param='';
|
||||||
|
|||||||
@ -992,7 +992,6 @@ class FormMail extends Form
|
|||||||
$defaultmessage=preg_replace("/^(<br>)+/","",$defaultmessage);
|
$defaultmessage=preg_replace("/^(<br>)+/","",$defaultmessage);
|
||||||
$defaultmessage=preg_replace("/^\n+/","",$defaultmessage);
|
$defaultmessage=preg_replace("/^\n+/","",$defaultmessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
$out.= '<tr>';
|
$out.= '<tr>';
|
||||||
$out.= '<td valign="top">';
|
$out.= '<td valign="top">';
|
||||||
$out.=$form->textwithpicto($langs->trans('MailText'), $helpforsubstitution, 1, 'help', '', 0, 2, 'substittooltipfrombody');
|
$out.=$form->textwithpicto($langs->trans('MailText'), $helpforsubstitution, 1, 'help', '', 0, 2, 'substittooltipfrombody');
|
||||||
|
|||||||
@ -6233,6 +6233,8 @@ function make_substitutions($text, $substitutionarray, $outputlangs=null)
|
|||||||
// Make substitition for array $substitutionarray
|
// Make substitition for array $substitutionarray
|
||||||
foreach ($substitutionarray as $key => $value)
|
foreach ($substitutionarray as $key => $value)
|
||||||
{
|
{
|
||||||
|
if (! isset($value)) continue; // If value is null, it same than not having substitution key at all into array, we do not replace.
|
||||||
|
|
||||||
if ($key == '__SIGNATURE__' && (! empty($conf->global->MAIN_MAIL_DO_NOT_USE_SIGN))) $value=''; // Protection
|
if ($key == '__SIGNATURE__' && (! empty($conf->global->MAIN_MAIL_DO_NOT_USE_SIGN))) $value=''; // Protection
|
||||||
if ($key == '__USER_SIGNATURE__' && (! empty($conf->global->MAIN_MAIL_DO_NOT_USE_SIGN))) $value=''; // Protection
|
if ($key == '__USER_SIGNATURE__' && (! empty($conf->global->MAIN_MAIL_DO_NOT_USE_SIGN))) $value=''; // Protection
|
||||||
|
|
||||||
|
|||||||
@ -44,7 +44,7 @@ if ($massaction == 'presend')
|
|||||||
$listofselectedid = array();
|
$listofselectedid = array();
|
||||||
$listofselectedthirdparties = array();
|
$listofselectedthirdparties = array();
|
||||||
$listofselectedref = array();
|
$listofselectedref = array();
|
||||||
|
|
||||||
if (! GETPOST('cancel', 'alpha'))
|
if (! GETPOST('cancel', 'alpha'))
|
||||||
{
|
{
|
||||||
foreach ($arrayofselected as $toselectid)
|
foreach ($arrayofselected as $toselectid)
|
||||||
@ -111,8 +111,9 @@ if ($massaction == 'presend')
|
|||||||
} else {
|
} else {
|
||||||
$formmail->withtoreadonly = 1;
|
$formmail->withtoreadonly = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
$formmail->withoptiononeemailperrecipient = (count($listofselectedref) == 1 || empty($liste))? 0 : ((GETPOST('oneemailperrecipient')=='on')?1:-1);
|
$formmail->withoptiononeemailperrecipient = (count($listofselectedref) == 1 || empty($liste))? 0 : ((GETPOST('oneemailperrecipient')=='on')?1:-1);
|
||||||
|
|
||||||
$formmail->withto = empty($liste)?(GETPOST('sendto','alpha')?GETPOST('sendto','alpha'):array()):$liste;
|
$formmail->withto = empty($liste)?(GETPOST('sendto','alpha')?GETPOST('sendto','alpha'):array()):$liste;
|
||||||
$formmail->withtofree = empty($liste)?1:0;
|
$formmail->withtofree = empty($liste)?1:0;
|
||||||
$formmail->withtocc = 1;
|
$formmail->withtocc = 1;
|
||||||
@ -131,6 +132,7 @@ if ($massaction == 'presend')
|
|||||||
|
|
||||||
// Make substitution in email content
|
// Make substitution in email content
|
||||||
$substitutionarray = getCommonSubstitutionArray($langs, 0, null, $object);
|
$substitutionarray = getCommonSubstitutionArray($langs, 0, null, $object);
|
||||||
|
|
||||||
$substitutionarray['__EMAIL__'] = $sendto;
|
$substitutionarray['__EMAIL__'] = $sendto;
|
||||||
$substitutionarray['__CHECK_READ__'] = (is_object($object) && is_object($object->thirdparty)) ? '<img src="' . DOL_MAIN_URL_ROOT . '/public/emailing/mailing-read.php?tag=' . $object->thirdparty->tag . '&securitykey=' . urlencode($conf->global->MAILING_EMAIL_UNSUBSCRIBE_KEY) . '" width="1" height="1" style="width:1px;height:1px" border="0"/>' : '';
|
$substitutionarray['__CHECK_READ__'] = (is_object($object) && is_object($object->thirdparty)) ? '<img src="' . DOL_MAIN_URL_ROOT . '/public/emailing/mailing-read.php?tag=' . $object->thirdparty->tag . '&securitykey=' . urlencode($conf->global->MAILING_EMAIL_UNSUBSCRIBE_KEY) . '" width="1" height="1" style="width:1px;height:1px" border="0"/>' : '';
|
||||||
$substitutionarray['__PERSONALIZED__'] = ''; // deprecated
|
$substitutionarray['__PERSONALIZED__'] = ''; // deprecated
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user