Sembra, che official SugarCRM docs non forniscono alcuna informazione sull'utilizzo if/else condizioni in modelli di posta elettronica. Non li ho creduti, quindi ho scavato nel codice SugarCRM.
di ricerca:
L'invio di e-mail è fatto in EmailMan class nel metodo 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);
Si utilizza il metodo parse_email_template da class EmailTemplate. Non è così ben scritto, come stavo pensando. E fornisce solo la sostituzione delle variabili di base. Diamo un'occhiata a un po 'più vicino:
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;
}
Conclusione:
cosa posso dire di più - SugarCRM a questo punto non fornisce alcuna condizione né Smarty o altro motore di template. Si può provare a modificare il loro codice per implementare, ma io non lo consiglio che come è un ambiente assomigliasse spaghetti;)
fonte
2015-03-01 11:58:45
In lunedi cercherò la tua soluzione :) – ErasmoOliveira
@ mg33dev - ho dissotterrato nel codice, temo che non sia neanche il manubrio. È un tentativo "Let's-preg-match-everything" :( –