2015-02-19 22 views
6

Come posso utilizzare le condizioni if ​​/ else nel modello di e-mail in SugarCRM? Sto cercando di utilizzare le condizioni di modello pdf e modello smarty, ma non ho avuto successo.Come utilizzare le condizioni all'interno del modello di e-mail in SugarCRM

Nessun successo

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

Nessun successo

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

senza successo

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

Qualsiasi successo (?)

?????? 

Grazie

risposta

3

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;)

2

handlebarsjs può aiutare?
http://handlebarsjs.com/builtin_helpers.html

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

In lunedi cercherò la tua soluzione :) – ErasmoOliveira

+0

@ mg33dev - ho dissotterrato nel codice, temo che non sia neanche il manubrio. È un tentativo "Let's-preg-match-everything" :( –

1

Prova questa e vedere come si va:

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