如何在SugarCRM中使用电子邮件模板中的条件

时间:2015-02-19 16:45:24

标签: php sugarcrm email-templates

如何在SugarCRM的电子邮件模板中使用if / else条件? 我正在尝试使用条件相同的pdf模板和smarty模板,但我没有成功。

没有成功

<?php if ({::past::Opportunities::name::} != {::future::Opportunities::name::}){ ?>

没有成功

{if {::past::Opportunities::name::} neq {::future::Opportunities::name::}}

没有成功

<!-- {if {::past::Opportunities::name::} neq {::future::Opportunities::name::}} -->

任何成功(?)

??????

由于

3 个答案:

答案 0 :(得分:3)

似乎official SugarCRM docs没有提供有关在电子邮件模板中使用if / else条件的任何信息。我不相信他们,所以我挖了SugarCRM代码。

<强>研究

在方法sendEmail:

中的EmailMan class中发送电子邮件
$template_data = $this->current_emailtemplate
                    ->parse_email_template(
                    array(
                        'subject' => $this->current_emailtemplate->subject,
                        'body_html' => $this->current_emailtemplate->body_html,
                        'body' => $this->current_emailtemplate->body,
                    )
                    , $focus_name, $module
                    , $macro_nv);

它使用class EmailTemplate中的parse_email_template方法。正如我所想的那样,它写得不是那么好。它只提供基本的变量替换。让我们仔细看看它:

function parse_email_template($template_text_array, $focus_name, $focus, &$macro_nv)
    {
        [...] //variable initiation
        //preparing prefixes to search for variables (all variables are in "$some_name" format
        $pattern_prefix = '$' . strtolower($beanList[$focus_name]) . '_';
        $pattern_prefix_length = strlen($pattern_prefix);
        $pattern = '/\\' . $pattern_prefix . '[A-Za-z_0-9]*/';


        foreach ($template_text_array as $key => $template_text) {
            [...] //searching for variables matching $pattern and replacing them with proper values

            $return_array[$key] = $template_text;
        }

        return $return_array;
    }

<强>结论:

我可以说更多 - 此时SugarCRM不提供任何条件,也不提供智能或其他模板引擎。您可以尝试修改他们的代码来实现它,但我不建议这样做,因为它是litlle spaghetti;)

答案 1 :(得分:2)

handlebarsjs可能有帮助吗? http://handlebarsjs.com/builtin_helpers.html

{{#if yourcondition}} action {{else}} action{{/if}}

答案 2 :(得分:1)

试试这个,看看你怎么做:

{if $fieldname!="value"}sometext {$fieldname} {/if}