Как я могу использовать условия if / else внутри шаблона электронной почты в SugarCRM?
Я пытаюсь использовать условия, равные шаблону 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::}} -->
Любой успех (?)
??????
Спасибо
Кажется, что официальные документы SugarCRM не предоставляйте никакой информации об использовании условий if / else в шаблонах электронной почты. Я не поверил им, поэтому я копался в SugarCRM код.
Исследование:
Отправка электронной почты осуществляется в Класс EmailMan в методе sendEmail:
$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);
Он использует метод parse_email_template из Класс EmailTemplate. Это не так хорошо написано, как я думал. И это только обеспечивает базовую замену переменных. Давайте посмотрим на это немного ближе:
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 на данный момент не предоставляет никаких условий, ни умных, ни других шаблонных движков. Вы можете попытаться изменить их код, чтобы реализовать его, но я бы не советовал, так как это немного спагетти 😉
handlebarsjs может помочь?
http://handlebarsjs.com/builtin_helpers.html
{{#if yourcondition}} action {{else}} action{{/if}}
Попробуйте это и посмотрите, как вы идете:
{if $fieldname!="value"}sometext {$fieldname} {/if}