FIX : bug #1840 Email template modules in HTML are not render correctly

This commit is contained in:
Florian HENRY 2015-02-11 11:44:49 +01:00
parent ddb95e5765
commit 7f5e4aa135
2 changed files with 20 additions and 6 deletions

View File

@ -43,6 +43,7 @@ class DolEditor
var $height;
var $width;
var $readonly;
var $allowed_content;
/**
@ -62,8 +63,9 @@ class DolEditor
* @param int $rows Size of rows for textarea tool
* @param int $cols Size of cols for textarea tool (textarea number of cols or %)
* @param int $readonly 0=Read/Edit, 1=Read only
* @param int $allowed_content 0=filter input text, 1=render as it is
*/
function __construct($htmlname,$content,$width='',$height=200,$toolbarname='Basic',$toolbarlocation='In',$toolbarstartexpanded=false,$uselocalbrowser=true,$okforextendededitor=true,$rows=0,$cols=0,$readonly=0)
function __construct($htmlname,$content,$width='',$height=200,$toolbarname='Basic',$toolbarlocation='In',$toolbarstartexpanded=false,$uselocalbrowser=true,$okforextendededitor=true,$rows=0,$cols=0,$readonly=0,$allowed_content=0)
{
global $conf,$langs;
@ -132,6 +134,7 @@ class DolEditor
$this->cols = (preg_match('/%/',$cols)?$cols:max(40,$cols)); // If $cols is a percent, we keep it, otherwise, we take max
$this->height = $height;
$this->width = $width;
$this->allowed_content = $allowed_content;
}
}
@ -163,16 +166,14 @@ class DolEditor
$out.= '<textarea id="'.$this->htmlname.'" name="'.$this->htmlname.'" rows="'.$this->rows.'"'.(preg_match('/%/',$this->cols)?' style="width: '.$this->cols.'"':' cols="'.$this->cols.'"').' class="flat">';
$out.= $this->content;
$out.= '</textarea>';
if ($this->tool == 'ckeditor')
{
if (! defined('REQUIRE_CKEDITOR')) define('REQUIRE_CKEDITOR','1');
//$skin='kama';
$skin='moono'; // default with cdeditor 4
$htmlencode_force=preg_match('/_encoded$/',$this->toolbarname)?'true':'false';
$out.= '<script type="text/javascript">
$(document).ready(function () {
/* if (CKEDITOR.loadFullCore) CKEDITOR.loadFullCore(); */
@ -181,6 +182,7 @@ class DolEditor
{
/* property:xxx is same than CKEDITOR.config.property = xxx */
customConfig : ckeditorConfig,
allowedContent :'.($this->allowed_content?'true':'false').',
readOnly : '.($this->readonly?'true':'false').',
htmlEncodeOutput :'.$htmlencode_force.',
toolbar: \''.$this->toolbarname.'\',

View File

@ -582,7 +582,12 @@ class FormMail
if (! empty($this->withbody))
{
$defaultmessage="";
if (count($arraydefaultmessage) > 0 && $arraydefaultmessage['content']) $defaultmessage=$arraydefaultmessage['content'];
$from_template=false;
if (count($arraydefaultmessage) > 0 && $arraydefaultmessage['content']) {
$defaultmessage=$arraydefaultmessage['content'];
$from_template=true;
}
elseif (! is_numeric($this->withbody)) $defaultmessage=$this->withbody;
// Complete substitution array
@ -611,6 +616,13 @@ class FormMail
$this->substit['__SIGNATURE__'] = dol_nl2br($this->substit['__SIGNATURE__']);
} else if(!dol_textishtml($defaultmessage) && dol_textishtml($this->substit['__SIGNATURE__'])) {
$defaultmessage = dol_nl2br($defaultmessage);
}
if (dol_textishtml($defaultmessage) && $from_template) {
$allow_content=1;
var_dump($allow_content);
} else {
$allow_content=0;
}
@ -643,7 +655,7 @@ class FormMail
else $this->withfckeditor=0;
}
$doleditor=new DolEditor('message',$defaultmessage,'',280,$this->ckeditortoolbar,'In',true,true,$this->withfckeditor,8,72);
$doleditor=new DolEditor('message',$defaultmessage,'',280,$this->ckeditortoolbar,'In',true,true,$this->withfckeditor,8,72,0,$allow_content);
$out.= $doleditor->Create(1);
}
$out.= "</td></tr>\n";