largersmallernormaltext version of this page

View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0008970phplistTemplate Managementpublic18-01-07 01:0411-08-08 06:55
Reporterdanatang 
PrioritynormalSeverityminorReproducibilityalways
StatusnewResolutionopen 
PlatformOSOS Version
Product Version2.10.4 
Target Version2.11.XFixed in Version 
Summary0008970: multiple contents placeholder for template and my solution
DescriptionMany of my administrators request multiple contents in template, so I made my solution as below:

in sendemaillib.php line:192 (original code)
///////////////////////////////////////////
if ($cached[$messageid]["template"])
# template used
$htmlmessage = eregi_replace("\[CONTENT\]",$htmlcontent,$cached[$messageid]["template"]);
else {
# no template used
///////////////////////////////////////////

And my solution is:
///////////////////////////////////////////
if ($cached[$messageid]["template"]){
# template used
$arr_content = preg_split('#\[CONTENT\]#', $htmlcontent, -1, PREG_SPLIT_NO_EMPTY);
$len = count($arr_content);
$i=0;
while($i < $len)
{
if($i == 0)
$pattern = "#\[CONTENT\]#";
else
$pattern = "#\[CONTENT".$i."\]#";
$cached[$messageid]["template"] = preg_replace($pattern,$arr_content[$i],$cached[$messageid]["template"]);
$i++;
}

$htmlmessage = $html_link.$cached[$messageid]["template"];
}else {
# no template used
///////////////////////////////////////////

The usage of multiple contents template is attached.

Besides, you can add any more contents as you need, just follow the usage.

My administrators are using the new feature very well, I do hope the improvement is helpful for all of you. If possible, the enhancement can be added to the next version of phplist.

TagsNo tags attached.
Attached Filesdoc file icon template.doc [^] (121,856 bytes) 18-01-07 01:04

- Relationships
related to 0002705closed PHPList v2.11 release 

-  Notes
(0050170)
bizzynate (reporter)
08-08-08 15:41

This hack creates a bug. US Currency values are removed from templates upon sending. For example:

"It costs $35 to go..."

becomes

"It costs to go..."

This appears to be misinterpreted as a php variable. This core feature should NOT be released until this issue is resolved as it will be a major factor for anyone who needs to use a legitimate $ as part of content and not as a variable.
(0050180)
danatang (reporter)
11-08-08 06:55

Thanks bizzynate!

I made fix as below:
//////////////////////////////////////////////////////////////////////
if ($cached[$messageid]["template"]){
    # template used
        $arr_content = spliti('\[CONTENT\]', $htmlcontent);
        $len = count($arr_content);
        $i=0;
        while($i < $len)
        {
            if($i == 0)
                $pattern = "\[CONTENT\]";
            else
                $pattern = "\[CONTENT".$i."\]";
            $cached[$messageid]["template"] = eregi_replace($pattern,$arr_content[$i],$cached[$messageid]["template"]);
            $i++;
        }
        $htmlmessage = $html_link.$cached[$messageid]["template"];
  }else {

..............


Copyright © 2000 - 2010 MantisBT Group
Powered by Mantis Bugtracker