Merge branch 'develop' of ssh://git@github.com/Dolibarr/dolibarr.git into develop
This commit is contained in:
commit
864589f4cf
@ -58,13 +58,15 @@ class Mailing extends CommonObject
|
|||||||
var $date_creat;
|
var $date_creat;
|
||||||
var $date_valid;
|
var $date_valid;
|
||||||
|
|
||||||
|
var $extraparams=array();
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*
|
*
|
||||||
* @param DoliDb $db Database handler
|
* @param DoliDb $db Database handler
|
||||||
*/
|
*/
|
||||||
function Mailing($db)
|
function __construct($db)
|
||||||
{
|
{
|
||||||
$this->db = $db;
|
$this->db = $db;
|
||||||
|
|
||||||
@ -176,14 +178,15 @@ class Mailing extends CommonObject
|
|||||||
function fetch($rowid)
|
function fetch($rowid)
|
||||||
{
|
{
|
||||||
$sql = "SELECT m.rowid, m.titre, m.sujet, m.body, m.bgcolor, m.bgimage";
|
$sql = "SELECT m.rowid, m.titre, m.sujet, m.body, m.bgcolor, m.bgimage";
|
||||||
$sql .= ", m.email_from, m.email_replyto, m.email_errorsto";
|
$sql.= ", m.email_from, m.email_replyto, m.email_errorsto";
|
||||||
$sql .= ", m.statut, m.nbemail";
|
$sql.= ", m.statut, m.nbemail";
|
||||||
$sql .= ", m.fk_user_creat, m.fk_user_valid";
|
$sql.= ", m.fk_user_creat, m.fk_user_valid";
|
||||||
$sql .= ", m.date_creat";
|
$sql.= ", m.date_creat";
|
||||||
$sql .= ", m.date_valid";
|
$sql.= ", m.date_valid";
|
||||||
$sql .= ", m.date_envoi";
|
$sql.= ", m.date_envoi";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."mailing as m";
|
$sql.= ", m.extraparams";
|
||||||
$sql .= " WHERE m.rowid = ".$rowid;
|
$sql.= " FROM ".MAIN_DB_PREFIX."mailing as m";
|
||||||
|
$sql.= " WHERE m.rowid = ".$rowid;
|
||||||
|
|
||||||
dol_syslog(get_class($this)."::fetch sql=".$sql);
|
dol_syslog(get_class($this)."::fetch sql=".$sql);
|
||||||
$result=$this->db->query($sql);
|
$result=$this->db->query($sql);
|
||||||
@ -214,6 +217,8 @@ class Mailing extends CommonObject
|
|||||||
$this->date_valid = $this->db->jdate($obj->date_valid);
|
$this->date_valid = $this->db->jdate($obj->date_valid);
|
||||||
$this->date_envoi = $this->db->jdate($obj->date_envoi);
|
$this->date_envoi = $this->db->jdate($obj->date_envoi);
|
||||||
|
|
||||||
|
$this->extraparams = (array) json_decode($obj->extraparams, true);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@ -30,6 +30,7 @@ require_once(DOL_DOCUMENT_ROOT."/core/class/CMailFile.class.php");
|
|||||||
require_once(DOL_DOCUMENT_ROOT."/core/lib/functions2.lib.php");
|
require_once(DOL_DOCUMENT_ROOT."/core/lib/functions2.lib.php");
|
||||||
require_once(DOL_DOCUMENT_ROOT."/comm/mailing/class/mailing.class.php");
|
require_once(DOL_DOCUMENT_ROOT."/comm/mailing/class/mailing.class.php");
|
||||||
require_once(DOL_DOCUMENT_ROOT."/core/class/html.formother.class.php");
|
require_once(DOL_DOCUMENT_ROOT."/core/class/html.formother.class.php");
|
||||||
|
require_once(DOL_DOCUMENT_ROOT."/core/class/extrafields.class.php");
|
||||||
|
|
||||||
$langs->load("mails");
|
$langs->load("mails");
|
||||||
|
|
||||||
@ -41,10 +42,17 @@ $confirm=GETPOST('confirm','alpha');
|
|||||||
$message = '';
|
$message = '';
|
||||||
|
|
||||||
$object=new Mailing($db);
|
$object=new Mailing($db);
|
||||||
|
$result=$object->fetch($id);
|
||||||
|
|
||||||
|
$extrafields = new ExtraFields($db);
|
||||||
|
|
||||||
|
// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
|
||||||
|
include_once(DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php');
|
||||||
|
$hookmanager=new HookManager($db);
|
||||||
|
$hookmanager->initHooks(array('mailingcard'));
|
||||||
|
|
||||||
// Tableau des substitutions possibles
|
// Tableau des substitutions possibles
|
||||||
$substitutionarray=array(
|
$object->substitutionarray=array(
|
||||||
'__ID__' => 'IdRecord',
|
'__ID__' => 'IdRecord',
|
||||||
'__EMAIL__' => 'EMail',
|
'__EMAIL__' => 'EMail',
|
||||||
'__LASTNAME__' => 'Lastname',
|
'__LASTNAME__' => 'Lastname',
|
||||||
@ -60,8 +68,8 @@ $substitutionarray=array(
|
|||||||
);
|
);
|
||||||
if ($conf->global->MAILING_EMAIL_UNSUBSCRIBE)
|
if ($conf->global->MAILING_EMAIL_UNSUBSCRIBE)
|
||||||
{
|
{
|
||||||
$substitutionarray=array_merge(
|
$object->substitutionarray=array_merge(
|
||||||
$substitutionarray,
|
$object->substitutionarray,
|
||||||
array(
|
array(
|
||||||
'__CHECK_READ__' => 'CheckMail',
|
'__CHECK_READ__' => 'CheckMail',
|
||||||
'__UNSUSCRIBE__' => 'Unsubscribe'
|
'__UNSUSCRIBE__' => 'Unsubscribe'
|
||||||
@ -69,7 +77,7 @@ if ($conf->global->MAILING_EMAIL_UNSUBSCRIBE)
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
$substitutionarrayfortest=array(
|
$object->substitutionarrayfortest=array(
|
||||||
'__ID__' => 'TESTIdRecord',
|
'__ID__' => 'TESTIdRecord',
|
||||||
'__EMAIL__' => 'TESTEMail',
|
'__EMAIL__' => 'TESTEMail',
|
||||||
'__LASTNAME__' => 'TESTLastname',
|
'__LASTNAME__' => 'TESTLastname',
|
||||||
@ -85,8 +93,8 @@ $substitutionarrayfortest=array(
|
|||||||
);
|
);
|
||||||
if ($conf->global->MAILING_EMAIL_UNSUBSCRIBE)
|
if ($conf->global->MAILING_EMAIL_UNSUBSCRIBE)
|
||||||
{
|
{
|
||||||
$substitutionarrayfortest=array_merge(
|
$object->substitutionarrayfortest=array_merge(
|
||||||
$substitutionarrayfortest,
|
$object->substitutionarrayfortest,
|
||||||
array(
|
array(
|
||||||
'__CHECK_READ__' => 'TESTCheckMail',
|
'__CHECK_READ__' => 'TESTCheckMail',
|
||||||
'__UNSUSCRIBE__' => 'TESTUnsubscribe'
|
'__UNSUSCRIBE__' => 'TESTUnsubscribe'
|
||||||
@ -94,6 +102,13 @@ if ($conf->global->MAILING_EMAIL_UNSUBSCRIBE)
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Actions
|
||||||
|
*/
|
||||||
|
|
||||||
|
$parameters=array();
|
||||||
|
$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
||||||
|
|
||||||
// Action clone object
|
// Action clone object
|
||||||
if ($action == 'confirm_clone' && $confirm == 'yes')
|
if ($action == 'confirm_clone' && $confirm == 'yes')
|
||||||
{
|
{
|
||||||
@ -103,7 +118,7 @@ if ($action == 'confirm_clone' && $confirm == 'yes')
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$result=$object->createFromClone($id,$_REQUEST["clone_content"],$_REQUEST["clone_receivers"]);
|
$result=$object->createFromClone($object->id,$_REQUEST["clone_content"],$_REQUEST["clone_receivers"]);
|
||||||
if ($result > 0)
|
if ($result > 0)
|
||||||
{
|
{
|
||||||
header("Location: ".$_SERVER['PHP_SELF'].'?id='.$result);
|
header("Location: ".$_SERVER['PHP_SELF'].'?id='.$result);
|
||||||
@ -125,7 +140,7 @@ if ($action == 'sendallconfirmed' && $confirm == 'yes')
|
|||||||
// Pour des raisons de securite, on ne permet pas cette fonction via l'IHM,
|
// Pour des raisons de securite, on ne permet pas cette fonction via l'IHM,
|
||||||
// on affiche donc juste un message
|
// on affiche donc juste un message
|
||||||
$message='<div class="warning">'.$langs->trans("MailingNeedCommand").'</div>';
|
$message='<div class="warning">'.$langs->trans("MailingNeedCommand").'</div>';
|
||||||
$message.='<br><textarea cols="70" rows="'.ROWS_2.'" wrap="soft">php ./scripts/emailings/mailing-send.php '.$id.'</textarea>';
|
$message.='<br><textarea cols="70" rows="'.ROWS_2.'" wrap="soft">php ./scripts/emailings/mailing-send.php '.$object->id.'</textarea>';
|
||||||
$message.='<br><br><div class="warning">'.$langs->trans("MailingNeedCommand2").'</div>';
|
$message.='<br><br><div class="warning">'.$langs->trans("MailingNeedCommand2").'</div>';
|
||||||
$action='';
|
$action='';
|
||||||
}
|
}
|
||||||
@ -136,8 +151,6 @@ if ($action == 'sendallconfirmed' && $confirm == 'yes')
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$result=$object->fetch($id);
|
|
||||||
|
|
||||||
$upload_dir = $conf->mailing->dir_output . "/" . get_exdir($object->id,2,0,1);
|
$upload_dir = $conf->mailing->dir_output . "/" . get_exdir($object->id,2,0,1);
|
||||||
|
|
||||||
if ($object->statut == 0)
|
if ($object->statut == 0)
|
||||||
@ -358,8 +371,6 @@ if ($action == 'sendallconfirmed' && $confirm == 'yes')
|
|||||||
// Action send test emailing
|
// Action send test emailing
|
||||||
if ($action == 'send' && empty($_POST["cancel"]))
|
if ($action == 'send' && empty($_POST["cancel"]))
|
||||||
{
|
{
|
||||||
$result=$object->fetch($id);
|
|
||||||
|
|
||||||
$error=0;
|
$error=0;
|
||||||
|
|
||||||
$upload_dir = $conf->mailing->dir_output . "/" . get_exdir($object->id,2,0,1);
|
$upload_dir = $conf->mailing->dir_output . "/" . get_exdir($object->id,2,0,1);
|
||||||
@ -378,8 +389,8 @@ if ($action == 'send' && empty($_POST["cancel"]))
|
|||||||
if (preg_match('/[\s\t]*<html>/i',$message)) $msgishtml=1;
|
if (preg_match('/[\s\t]*<html>/i',$message)) $msgishtml=1;
|
||||||
|
|
||||||
// Pratique les substitutions sur le sujet et message
|
// Pratique les substitutions sur le sujet et message
|
||||||
$object->sujet=make_substitutions($object->sujet,$substitutionarrayfortest,$langs);
|
$object->sujet=make_substitutions($object->sujet,$object->substitutionarrayfortest,$langs);
|
||||||
$object->body=make_substitutions($object->body,$substitutionarrayfortest,$langs);
|
$object->body=make_substitutions($object->body,$object->substitutionarrayfortest,$langs);
|
||||||
|
|
||||||
$arr_file = array();
|
$arr_file = array();
|
||||||
$arr_mime = array();
|
$arr_mime = array();
|
||||||
@ -453,8 +464,6 @@ if ($action == 'add')
|
|||||||
// Action update description of emailing
|
// Action update description of emailing
|
||||||
if ($action == 'settitre' || $action == 'setemail_from' || $actino == 'setreplyto' || $action == 'setemail_errorsto')
|
if ($action == 'settitre' || $action == 'setemail_from' || $actino == 'setreplyto' || $action == 'setemail_errorsto')
|
||||||
{
|
{
|
||||||
$object->fetch($id);
|
|
||||||
|
|
||||||
$upload_dir = $conf->mailing->dir_output . "/" . get_exdir($object->id,2,0,1);
|
$upload_dir = $conf->mailing->dir_output . "/" . get_exdir($object->id,2,0,1);
|
||||||
|
|
||||||
if ($action == 'settitre') $object->titre = trim(GETPOST('titre','alpha'));
|
if ($action == 'settitre') $object->titre = trim(GETPOST('titre','alpha'));
|
||||||
@ -484,8 +493,6 @@ if ($action == 'settitre' || $action == 'setemail_from' || $actino == 'setreplyt
|
|||||||
*/
|
*/
|
||||||
if (! empty($_POST['addfile']))
|
if (! empty($_POST['addfile']))
|
||||||
{
|
{
|
||||||
$object->fetch($id);
|
|
||||||
|
|
||||||
$upload_dir = $conf->mailing->dir_output . "/" . get_exdir($object->id,2,0,1);
|
$upload_dir = $conf->mailing->dir_output . "/" . get_exdir($object->id,2,0,1);
|
||||||
|
|
||||||
require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php");
|
require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php");
|
||||||
@ -499,8 +506,6 @@ if (! empty($_POST['addfile']))
|
|||||||
// Action update emailing
|
// Action update emailing
|
||||||
if (! empty($_POST["removedfile"]))
|
if (! empty($_POST["removedfile"]))
|
||||||
{
|
{
|
||||||
$object->fetch($id);
|
|
||||||
|
|
||||||
$upload_dir = $conf->mailing->dir_output . "/" . get_exdir($object->id,2,0,1);
|
$upload_dir = $conf->mailing->dir_output . "/" . get_exdir($object->id,2,0,1);
|
||||||
|
|
||||||
require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php");
|
require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php");
|
||||||
@ -515,8 +520,6 @@ if ($action == 'update' && empty($_POST["removedfile"]) && empty($_POST["cancel"
|
|||||||
{
|
{
|
||||||
require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php");
|
require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php");
|
||||||
|
|
||||||
$object->fetch($id);
|
|
||||||
|
|
||||||
$isupload=0;
|
$isupload=0;
|
||||||
|
|
||||||
if (! $isupload)
|
if (! $isupload)
|
||||||
@ -551,7 +554,7 @@ if ($action == 'update' && empty($_POST["removedfile"]) && empty($_POST["cancel"
|
|||||||
// Action confirmation validation
|
// Action confirmation validation
|
||||||
if ($action == 'confirm_valid' && $confirm == 'yes')
|
if ($action == 'confirm_valid' && $confirm == 'yes')
|
||||||
{
|
{
|
||||||
if ($object->fetch($id) >= 0)
|
if ($object->id > 0)
|
||||||
{
|
{
|
||||||
$object->valid($user);
|
$object->valid($user);
|
||||||
|
|
||||||
@ -567,7 +570,7 @@ if ($action == 'confirm_valid' && $confirm == 'yes')
|
|||||||
// Resend
|
// Resend
|
||||||
if ($action == 'confirm_reset' && $confirm == 'yes')
|
if ($action == 'confirm_reset' && $confirm == 'yes')
|
||||||
{
|
{
|
||||||
if ($object->fetch($id) >= 0)
|
if ($object->id > 0)
|
||||||
{
|
{
|
||||||
$db->begin();
|
$db->begin();
|
||||||
|
|
||||||
@ -598,8 +601,6 @@ if ($action == 'confirm_reset' && $confirm == 'yes')
|
|||||||
// Action confirmation suppression
|
// Action confirmation suppression
|
||||||
if ($action == 'confirm_delete' && $confirm == 'yes')
|
if ($action == 'confirm_delete' && $confirm == 'yes')
|
||||||
{
|
{
|
||||||
$object->fetch($id);
|
|
||||||
|
|
||||||
if ($object->delete($object->id))
|
if ($object->delete($object->id))
|
||||||
{
|
{
|
||||||
Header("Location: liste.php");
|
Header("Location: liste.php");
|
||||||
@ -618,6 +619,9 @@ if (! empty($_POST["cancel"]))
|
|||||||
* View
|
* View
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// fetch optionals attributes and labels
|
||||||
|
$extralabels=$extrafields->fetch_name_optionals_label('mailing');
|
||||||
|
|
||||||
$help_url='EN:Module_EMailing|FR:Module_Mailing|ES:Módulo_Mailing';
|
$help_url='EN:Module_EMailing|FR:Module_Mailing|ES:Módulo_Mailing';
|
||||||
llxHeader('',$langs->trans("Mailing"),$help_url);
|
llxHeader('',$langs->trans("Mailing"),$help_url);
|
||||||
|
|
||||||
@ -639,6 +643,21 @@ if ($action == 'create')
|
|||||||
print '<tr><td width="25%" class="fieldrequired">'.$langs->trans("MailTitle").'</td><td><input class="flat" name="titre" size="40" value="'.$_POST['titre'].'"></td></tr>';
|
print '<tr><td width="25%" class="fieldrequired">'.$langs->trans("MailTitle").'</td><td><input class="flat" name="titre" size="40" value="'.$_POST['titre'].'"></td></tr>';
|
||||||
print '<tr><td width="25%" class="fieldrequired">'.$langs->trans("MailFrom").'</td><td><input class="flat" name="from" size="40" value="'.$conf->global->MAILING_EMAIL_FROM.'"></td></tr>';
|
print '<tr><td width="25%" class="fieldrequired">'.$langs->trans("MailFrom").'</td><td><input class="flat" name="from" size="40" value="'.$conf->global->MAILING_EMAIL_FROM.'"></td></tr>';
|
||||||
print '<tr><td width="25%">'.$langs->trans("MailErrorsTo").'</td><td><input class="flat" name="errorsto" size="40" value="'.(!empty($conf->global->MAILING_EMAIL_ERRORSTO)?$conf->global->MAILING_EMAIL_ERRORSTO:$conf->global->MAIN_MAIL_ERRORS_TO).'"></td></tr>';
|
print '<tr><td width="25%">'.$langs->trans("MailErrorsTo").'</td><td><input class="flat" name="errorsto" size="40" value="'.(!empty($conf->global->MAILING_EMAIL_ERRORSTO)?$conf->global->MAILING_EMAIL_ERRORSTO:$conf->global->MAIN_MAIL_ERRORS_TO).'"></td></tr>';
|
||||||
|
|
||||||
|
// Other attributes
|
||||||
|
$parameters=array();
|
||||||
|
$reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook
|
||||||
|
if (empty($reshook) && ! empty($extrafields->attribute_label))
|
||||||
|
{
|
||||||
|
foreach($extrafields->attribute_label as $key=>$label)
|
||||||
|
{
|
||||||
|
$value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$object->array_options["options_".$key]);
|
||||||
|
print '<tr><td>'.$label.'</td><td colspan="3">';
|
||||||
|
print $extrafields->showInputField($key,$value);
|
||||||
|
print '</td></tr>'."\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
print '</br><br>';
|
print '</br><br>';
|
||||||
|
|
||||||
@ -649,7 +668,7 @@ if ($action == 'create')
|
|||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
print '<tr><td width="25%" class="fieldrequired" valign="top">'.$langs->trans("MailMessage").'<br>';
|
print '<tr><td width="25%" class="fieldrequired" valign="top">'.$langs->trans("MailMessage").'<br>';
|
||||||
print '<br><i>'.$langs->trans("CommonSubstitutions").':<br>';
|
print '<br><i>'.$langs->trans("CommonSubstitutions").':<br>';
|
||||||
foreach($substitutionarray as $key => $val)
|
foreach($object->substitutionarray as $key => $val)
|
||||||
{
|
{
|
||||||
print $key.' = '.$langs->trans($val).'<br>';
|
print $key.' = '.$langs->trans($val).'<br>';
|
||||||
}
|
}
|
||||||
@ -668,7 +687,7 @@ if ($action == 'create')
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ($object->fetch($id) >= 0)
|
if ($object->id > 0)
|
||||||
{
|
{
|
||||||
$upload_dir = $conf->mailing->dir_output . "/" . get_exdir($object->id,2,0,1);
|
$upload_dir = $conf->mailing->dir_output . "/" . get_exdir($object->id,2,0,1);
|
||||||
|
|
||||||
@ -785,6 +804,20 @@ else
|
|||||||
}
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
|
// Other attributes
|
||||||
|
$parameters=array();
|
||||||
|
$reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook
|
||||||
|
if (empty($reshook) && ! empty($extrafields->attribute_label))
|
||||||
|
{
|
||||||
|
foreach($extrafields->attribute_label as $key=>$label)
|
||||||
|
{
|
||||||
|
$value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$object->array_options["options_".$key]);
|
||||||
|
print '<tr><td>'.$label.'</td><td colspan="3">';
|
||||||
|
print $extrafields->showInputField($key,$value);
|
||||||
|
print "</td></tr>\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
print "</div>";
|
print "</div>";
|
||||||
@ -894,7 +927,7 @@ else
|
|||||||
$formmail->withcancel=1;
|
$formmail->withcancel=1;
|
||||||
$formmail->withdeliveryreceipt=0;
|
$formmail->withdeliveryreceipt=0;
|
||||||
// Tableau des substitutions
|
// Tableau des substitutions
|
||||||
$formmail->substit=$substitutionarrayfortest;
|
$formmail->substit=$object->substitutionarrayfortest;
|
||||||
// Tableau des parametres complementaires du post
|
// Tableau des parametres complementaires du post
|
||||||
$formmail->param["action"]="send";
|
$formmail->param["action"]="send";
|
||||||
$formmail->param["models"]="body";
|
$formmail->param["models"]="body";
|
||||||
@ -987,6 +1020,20 @@ else
|
|||||||
}
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
|
// Other attributes
|
||||||
|
$parameters=array();
|
||||||
|
$reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook
|
||||||
|
if (empty($reshook) && ! empty($extrafields->attribute_label))
|
||||||
|
{
|
||||||
|
foreach($extrafields->attribute_label as $key=>$label)
|
||||||
|
{
|
||||||
|
$value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$object->array_options["options_".$key]);
|
||||||
|
print '<tr><td>'.$label.'</td><td colspan="3">';
|
||||||
|
print $extrafields->showInputField($key,$value);
|
||||||
|
print "</td></tr>\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
print "</div>";
|
print "</div>";
|
||||||
|
|
||||||
@ -1049,21 +1096,10 @@ else
|
|||||||
// Message
|
// Message
|
||||||
print '<tr><td width="25%" valign="top">'.$langs->trans("MailMessage").'<br>';
|
print '<tr><td width="25%" valign="top">'.$langs->trans("MailMessage").'<br>';
|
||||||
print '<br><i>'.$langs->trans("CommonSubstitutions").':<br>';
|
print '<br><i>'.$langs->trans("CommonSubstitutions").':<br>';
|
||||||
print '__ID__ = '.$langs->trans("IdRecord").'<br>';
|
foreach($object->substitutionarray as $key => $val)
|
||||||
print '__EMAIL__ = '.$langs->trans("EMail").'<br>';
|
|
||||||
if ($conf->global->MAILING_EMAIL_UNSUBSCRIBE)
|
|
||||||
{
|
{
|
||||||
print '__CHECK_READ__ = '.$langs->trans("CheckRead").'<br>';
|
print $key.' = '.$langs->trans($val).'<br>';
|
||||||
print '__UNSUSCRIBE__ = '.$langs->trans("MailUnsubcribe").'<br>';
|
|
||||||
}
|
}
|
||||||
print '__MAILTOEMAIL__ = '.$langs->trans("MailtoEMail").'<br>';
|
|
||||||
print '__LASTNAME__ = '.$langs->trans("Lastname").'<br>';
|
|
||||||
print '__FIRSTNAME__ = '.$langs->trans("Firstname").'<br>';
|
|
||||||
print '__OTHER1__ = '.$langs->trans("Other").'1<br>';
|
|
||||||
print '__OTHER2__ = '.$langs->trans("Other").'2<br>';
|
|
||||||
print '__OTHER3__ = '.$langs->trans("Other").'3<br>';
|
|
||||||
print '__OTHER4__ = '.$langs->trans("Other").'4<br>';
|
|
||||||
print '__OTHER5__ = '.$langs->trans("Other").'5<br>';
|
|
||||||
print '</i></td>';
|
print '</i></td>';
|
||||||
print '<td colspan="3">';
|
print '<td colspan="3">';
|
||||||
// Editeur wysiwyg
|
// Editeur wysiwyg
|
||||||
|
|||||||
@ -52,13 +52,11 @@ class Conf
|
|||||||
public $smart_menu;
|
public $smart_menu;
|
||||||
|
|
||||||
public $modules = array(); // List of activated modules
|
public $modules = array(); // List of activated modules
|
||||||
public $modules_parts = array('js'=>array(),'triggers'=>array(),'login'=>array(),'substitutions'=>array(),'menus'=>array(),'theme'=>array(),'tpl'=>array(),'barcode'=>array(),'models'=>array()); // List of modules parts
|
public $modules_parts = array('js'=>array(),'triggers'=>array(),'login'=>array(),'substitutions'=>array(),'menus'=>array(),'theme'=>array(),'tpl'=>array(),'barcode'=>array(),'models'=>array(),'hooks'=>array()); // List of modules parts
|
||||||
|
|
||||||
// TODO Remove thoose arrays with generic module_parts
|
// TODO Remove thoose arrays with generic module_parts
|
||||||
public $tabs_modules = array();
|
public $tabs_modules = array();
|
||||||
public $sms_engine_modules = array();
|
public $sms_engine_modules = array();
|
||||||
// TODO Remove thoose arrays with generic module_parts
|
|
||||||
public $hooks_modules = array();
|
|
||||||
public $societe_modules = array();
|
public $societe_modules = array();
|
||||||
|
|
||||||
var $logbuffer = array();
|
var $logbuffer = array();
|
||||||
|
|||||||
@ -176,7 +176,7 @@ class DolEditor
|
|||||||
/* should be editor=CKEDITOR.replace but what if serveral editors ? */
|
/* should be editor=CKEDITOR.replace but what if serveral editors ? */
|
||||||
CKEDITOR.replace(\''.$this->htmlname.'\',
|
CKEDITOR.replace(\''.$this->htmlname.'\',
|
||||||
{
|
{
|
||||||
customConfig : \''.dol_buildpath('/theme/'.$conf->theme.'/ckeditor/config.js',1).'\',
|
customConfig : ckeditorConfig,
|
||||||
toolbar: \''.$this->toolbarname.'\',
|
toolbar: \''.$this->toolbarname.'\',
|
||||||
toolbarStartupExpanded: '.($this->toolbarstartexpanded ? 'true' : 'false').',
|
toolbarStartupExpanded: '.($this->toolbarstartexpanded ? 'true' : 'false').',
|
||||||
width: '.($this->width ? '\''.$this->width.'\'' : '\'\'').',
|
width: '.($this->width ? '\''.$this->width.'\'' : '\'\'').',
|
||||||
@ -201,8 +201,8 @@ class DolEditor
|
|||||||
{
|
{
|
||||||
$out.= ','."\n";
|
$out.= ','."\n";
|
||||||
// To use filemanager with old fckeditor (GPL)
|
// To use filemanager with old fckeditor (GPL)
|
||||||
$out.= ' filebrowserBrowseUrl : \''.DOL_URL_ROOT.'/core/filemanagerdol/browser/default/browser.php?Connector='.DOL_URL_ROOT.'/core/filemanagerdol/connectors/php/connector.php\',';
|
$out.= ' filebrowserBrowseUrl : ckeditorFilebrowserBrowseUrl,';
|
||||||
$out.= ' filebrowserImageBrowseUrl : \''.DOL_URL_ROOT.'/core/filemanagerdol/browser/default/browser.php?Type=Image&Connector='.DOL_URL_ROOT.'/core/filemanagerdol/connectors/php/connector.php\',';
|
$out.= ' filebrowserImageBrowseUrl : ckeditorFilebrowserImageBrowseUrl,';
|
||||||
//$out.= ' filebrowserUploadUrl : \''.DOL_URL_ROOT.'/includes/fckeditor/editor/filemanagerdol/connectors/php/upload.php?Type=File\',';
|
//$out.= ' filebrowserUploadUrl : \''.DOL_URL_ROOT.'/includes/fckeditor/editor/filemanagerdol/connectors/php/upload.php?Type=File\',';
|
||||||
//$out.= ' filebrowserImageUploadUrl : \''.DOL_URL_ROOT.'/includes/fckeditor/editor/filemanagerdol/connectors/php/upload.php?Type=Image\',';
|
//$out.= ' filebrowserImageUploadUrl : \''.DOL_URL_ROOT.'/includes/fckeditor/editor/filemanagerdol/connectors/php/upload.php?Type=Image\',';
|
||||||
$out.= "\n";
|
$out.= "\n";
|
||||||
|
|||||||
@ -70,14 +70,14 @@ class HookManager
|
|||||||
global $conf;
|
global $conf;
|
||||||
|
|
||||||
// Test if there is hooks to manage
|
// Test if there is hooks to manage
|
||||||
if (! is_array($conf->hooks_modules) || empty($conf->hooks_modules)) return;
|
if (! is_array($conf->modules_parts['hooks']) || empty($conf->modules_parts['hooks'])) return;
|
||||||
|
|
||||||
// For backward compatibility
|
// For backward compatibility
|
||||||
if (! is_array($arraycontext)) $arraycontext=array($arraycontext);
|
if (! is_array($arraycontext)) $arraycontext=array($arraycontext);
|
||||||
|
|
||||||
$this->contextarray=array_unique(array_merge($arraycontext,$this->contextarray)); // All contexts are concatenated
|
$this->contextarray=array_unique(array_merge($arraycontext,$this->contextarray)); // All contexts are concatenated
|
||||||
|
|
||||||
foreach($conf->hooks_modules as $module => $hooks)
|
foreach($conf->modules_parts['hooks'] as $module => $hooks)
|
||||||
{
|
{
|
||||||
if ($conf->$module->enabled)
|
if ($conf->$module->enabled)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -80,7 +80,13 @@ $(document).ready(function() {
|
|||||||
indicator : indicatorInPlace,
|
indicator : indicatorInPlace,
|
||||||
ckeditor : {
|
ckeditor : {
|
||||||
customConfig: ckeditorConfig,
|
customConfig: ckeditorConfig,
|
||||||
toolbar: $('#ckeditor_toolbar').val()
|
toolbar: $('#ckeditor_toolbar').val(),
|
||||||
|
filebrowserBrowseUrl : ckeditorFilebrowserBrowseUrl,
|
||||||
|
filebrowserImageBrowseUrl : ckeditorFilebrowserImageBrowseUrl,
|
||||||
|
filebrowserWindowWidth : '900',
|
||||||
|
filebrowserWindowHeight : '500',
|
||||||
|
filebrowserImageWindowWidth : '900',
|
||||||
|
filebrowserImageWindowHeight : '500'
|
||||||
},
|
},
|
||||||
submitdata : function(result, settings) {
|
submitdata : function(result, settings) {
|
||||||
return getParameters(this, 'ckeditor');
|
return getParameters(this, 'ckeditor');
|
||||||
|
|||||||
@ -35,3 +35,4 @@ ALTER TABLE llx_commande_fournisseur CHANGE COLUMN date_cloture date_approve dat
|
|||||||
ALTER TABLE llx_commande_fournisseur CHANGE COLUMN fk_user_cloture fk_user_approve integer;
|
ALTER TABLE llx_commande_fournisseur CHANGE COLUMN fk_user_cloture fk_user_approve integer;
|
||||||
|
|
||||||
ALTER TABLE llx_mailing MODIFY COLUMN body mediumtext;
|
ALTER TABLE llx_mailing MODIFY COLUMN body mediumtext;
|
||||||
|
ALTER TABLE llx_mailing ADD COLUMN extraparams varchar(255);
|
||||||
@ -46,6 +46,7 @@ create table llx_mailing
|
|||||||
fk_user_creat integer, -- user creator
|
fk_user_creat integer, -- user creator
|
||||||
fk_user_valid integer, -- user validator
|
fk_user_valid integer, -- user validator
|
||||||
fk_user_appro integer, -- not used
|
fk_user_appro integer, -- not used
|
||||||
|
extraparams varchar(255), -- for stock other parameters with json format
|
||||||
joined_file1 varchar(255),
|
joined_file1 varchar(255),
|
||||||
joined_file2 varchar(255),
|
joined_file2 varchar(255),
|
||||||
joined_file3 varchar(255),
|
joined_file3 varchar(255),
|
||||||
|
|||||||
@ -978,7 +978,6 @@ function top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs
|
|||||||
print 'var cancelInPlace = \''.$langs->trans('Cancel').'\';'."\n";
|
print 'var cancelInPlace = \''.$langs->trans('Cancel').'\';'."\n";
|
||||||
print 'var submitInPlace = \''.$langs->trans('Ok').'\';'."\n";
|
print 'var submitInPlace = \''.$langs->trans('Ok').'\';'."\n";
|
||||||
print 'var indicatorInPlace = \'<img src="'.DOL_URL_ROOT."/theme/".$conf->theme."/img/working.gif".'">\';'."\n";
|
print 'var indicatorInPlace = \'<img src="'.DOL_URL_ROOT."/theme/".$conf->theme."/img/working.gif".'">\';'."\n";
|
||||||
print 'var ckeditorConfig = \''.dol_buildpath('/theme/'.$conf->theme.'/ckeditor/config.js',1).'\';'."\n";
|
|
||||||
print '</script>'."\n";
|
print '</script>'."\n";
|
||||||
print '<script type="text/javascript" src="'.DOL_URL_ROOT.'/core/js/editinplace.js"></script>'."\n";
|
print '<script type="text/javascript" src="'.DOL_URL_ROOT.'/core/js/editinplace.js"></script>'."\n";
|
||||||
print '<script type="text/javascript" src="'.DOL_URL_ROOT.'/includes/jquery/plugins/jeditable/jquery.jeditable.ckeditor.js"></script>'."\n";
|
print '<script type="text/javascript" src="'.DOL_URL_ROOT.'/includes/jquery/plugins/jeditable/jquery.jeditable.ckeditor.js"></script>'."\n";
|
||||||
@ -1019,7 +1018,12 @@ function top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print '<script type="text/javascript">var CKEDITOR_BASEPATH = \''.DOL_URL_ROOT.'/includes/ckeditor/\';</script>'."\n";
|
print '<script type="text/javascript">';
|
||||||
|
print 'var CKEDITOR_BASEPATH = \''.DOL_URL_ROOT.'/includes/ckeditor/\';'."\n";
|
||||||
|
print 'var ckeditorConfig = \''.dol_buildpath('/theme/'.$conf->theme.'/ckeditor/config.js',1).'\';'."\n";
|
||||||
|
print 'var ckeditorFilebrowserBrowseUrl = \''.DOL_URL_ROOT.'/core/filemanagerdol/browser/default/browser.php?Connector='.DOL_URL_ROOT.'/core/filemanagerdol/connectors/php/connector.php\';'."\n";
|
||||||
|
print 'var ckeditorFilebrowserImageBrowseUrl = \''.DOL_URL_ROOT.'/core/filemanagerdol/browser/default/browser.php?Type=Image&Connector='.DOL_URL_ROOT.'/core/filemanagerdol/connectors/php/connector.php\';'."\n";
|
||||||
|
print '</script>'."\n";
|
||||||
print '<script type="text/javascript" src="'.DOL_URL_ROOT.'/includes/ckeditor/ckeditor_basic.js"></script>'."\n";
|
print '<script type="text/javascript" src="'.DOL_URL_ROOT.'/includes/ckeditor/ckeditor_basic.js"></script>'."\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user