2018-02-20 17:57:16 +01:00
< ? php
include_once __DIR__ . '/core.php' ;
2018-07-19 15:33:32 +02:00
$template = Mail :: getTemplate ( get ( 'id' ));
2018-02-20 17:57:16 +01:00
$module = Modules :: get ( $id_module );
2018-02-21 17:47:43 +01:00
$smtp = Mail :: get ( $template [ 'id_smtp' ]);
2018-02-20 17:57:16 +01:00
$body = $template [ 'body' ];
$subject = $template [ 'subject' ];
2018-02-21 17:47:43 +01:00
$variables = Mail :: getTemplateVariables ( $template [ 'id' ], $id_record );
2018-02-20 17:57:16 +01:00
$email = $variables [ 'email' ];
2018-02-21 17:47:43 +01:00
// Sostituzione delle variabili di base
$replaces = [];
foreach ( $variables as $key => $value ) {
$replaces [ '{' . $key . '}' ] = $value ;
}
$body = str_replace ( array_keys ( $replaces ), array_values ( $replaces ), $body );
$subject = str_replace ( array_keys ( $replaces ), array_values ( $replaces ), $subject );
2018-04-15 14:46:33 +02:00
// Campi mancanti
2018-04-03 15:15:15 +02:00
$campi_mancanti = [];
2018-04-15 14:46:33 +02:00
if ( empty ( $smtp [ 'from_address' ])) {
$campi_mancanti [] = tr ( 'Mittente' );
2018-04-03 15:15:15 +02:00
}
2018-04-15 14:46:33 +02:00
if ( empty ( $smtp [ 'server' ])) {
$campi_mancanti [] = tr ( 'Server SMTP' );
2018-04-03 15:15:15 +02:00
}
2018-04-15 14:46:33 +02:00
if ( empty ( $smtp [ 'port' ])) {
$campi_mancanti [] = tr ( 'Porta' );
2018-04-03 15:15:15 +02:00
}
2018-04-15 14:46:33 +02:00
2018-04-03 15:15:15 +02:00
if ( sizeof ( $campi_mancanti ) > 0 ) {
2018-07-10 17:07:27 +02:00
echo '
< div class = " alert alert-warning " >
< i class = " fa fa-warning " ></ i > '.tr("Prima di procedere all' invio completa : _VALUES_ " , [
'_VALUES_' => '<b>' . implode ( ', ' , $campi_mancanti ) . '</b>' ,
]) . ' < br />
'.Modules::link(' Account email ', $smtp[' id '], tr(' Vai alla scheda account email '), null).'
</ div > ' ;
2018-04-03 15:15:15 +02:00
}
2018-02-21 17:47:43 +01:00
// Form
2018-02-20 17:57:16 +01:00
echo '
2018-02-21 17:47:43 +01:00
< form action = " " method = " post " id = " email-form " >
2018-02-20 17:57:16 +01:00
< input type = " hidden " name = " op " value = " send-email " >
< input type = " hidden " name = " backto " value = " record-edit " >
< input type = " hidden " name = " template " value = " '. $template['id'] .' " >
2018-02-21 17:47:43 +01:00
< p >< b > '.tr(' Mittente ').' </ b >: '.$smtp[' from_name '].' & lt ; '.$smtp[' from_address '].' & gt ; </ p > ' ;
2018-02-20 17:57:16 +01:00
2018-07-10 16:50:23 +02:00
if ( ! empty ( $template [ 'cc' ])) {
2018-02-21 17:47:43 +01:00
echo '
2018-07-10 16:50:23 +02:00
< p >< b > '.tr(' CC ').' </ b >: '.$template[' cc '].' </ p > ' ;
2018-02-21 17:47:43 +01:00
}
2018-02-20 17:57:16 +01:00
2018-07-10 16:50:23 +02:00
if ( ! empty ( $template [ 'bcc' ])) {
2018-02-20 17:57:16 +01:00
echo '
2018-07-10 16:50:23 +02:00
< p >< b > '.tr(' CCN ').' </ b >: '.$template[' bcc '].' </ p > ' ;
2018-02-20 17:57:16 +01:00
}
echo '
2018-02-21 17:47:43 +01:00
< b > '.tr(' Destinatari ').' </ b >
< div class = " row " id = " lista-destinatari " >
< div class = " col-md-12 " >
{[ " type " : " email " , " name " : " destinatari[] " , " value " : " '. $email .' " , " icon-before " : " choice|email " , " extra " : " onkeyup= \ 'aggiungi_destinatario(); \ ' " , " class " : " destinatari " , " required " : 1 ]}
</ div >
</ div >
2018-02-20 17:57:16 +01:00
2018-02-21 17:47:43 +01:00
< br >
2018-02-20 17:57:16 +01:00
2018-02-21 17:47:43 +01:00
< div class = " row " >
< div class = " col-md-8 " >
{[ " type " : " text " , " label " : " '.tr('Oggetto').' " , " name " : " subject " , " value " : " '. $subject .' " , " required " : 1 ]}
2018-02-20 17:57:16 +01:00
</ div >
< div class = " col-md-4 " >
2018-02-21 17:47:43 +01:00
{[ " type " : " checkbox " , " label " : " '.tr('Notifica di lettura').' " , " name " : " read_notify " , " value " : " '. $template['read_notify'] .' " ]}
</ div >
</ div > ' ;
2018-02-20 17:57:16 +01:00
2018-02-21 17:47:43 +01:00
// Stampe
$selected_prints = $dbo -> fetchArray ( 'SELECT id_print FROM zz_email_print WHERE id_email = ' . prepare ( $template [ 'id' ]));
$selected = array_column ( $selected_prints , 'id_print' );
2018-02-20 17:57:16 +01:00
2018-02-21 17:47:43 +01:00
echo '
2018-02-20 17:57:16 +01:00
2018-02-21 17:47:43 +01:00
< div class = " row " >
< div class = " col-md-6 " >
2018-05-30 12:09:08 +02:00
{[ " type " : " select " , " multiple " : " 1 " , " label " : " '.tr('Stampe').' " , " name " : " prints[] " , " value " : " '.implode(',', $selected ).' " , " values " : " query=SELECT id, title AS text FROM zz_prints WHERE id_module = '.prepare( $id_module ).' AND enabled=1 " ]}
2018-02-21 17:47:43 +01:00
</ div > ' ;
2018-02-20 17:57:16 +01:00
2018-07-10 12:07:48 +02:00
$attachments = [];
if ( $template [ 'name' ] == 'Fattura Elettronica' ) {
$attachments = $dbo -> fetchArray ( 'SELECT id FROM zz_files WHERE id_module = ' . prepare ( $module [ 'id' ]) . ' AND id_record = ' . prepare ( $id_record ) . ' AND category = \'Fattura elettronica\'' );
$attachments = array_column ( $attachments , 'id' );
}
2018-02-21 17:47:43 +01:00
// Allegati
echo '
< div class = " col-md-6 " >
2018-07-10 12:07:48 +02:00
{[ " type " : " select " , " multiple " : " 1 " , " label " : " '.tr('Allegati').' " , " name " : " attachments[] " , " value " : " '.implode(',', $attachments ).' " , " values " : " query=SELECT id, nome AS text FROM zz_files WHERE id_module = '.prepare( $id_module ).' AND id_record = '.prepare( $id_record ). " UNION SELECT id , CONCAT ( nome , ' (Azienda)' ) AS text FROM zz_files WHERE id_module = " .prepare(Modules::get('Anagrafiche')['id']). " AND id_record = ( SELECT valore FROM zz_settings WHERE nome = 'Azienda predefinita' ) \ " ]}
2018-02-21 17:47:43 +01:00
</ div >
</ div > " ;
2018-02-20 17:57:16 +01:00
echo '
2018-02-21 17:47:43 +01:00
< div class = " row " >
< div class = " col-md-12 " >
{[ " type " : " textarea " , " label " : " '.tr('Contenuto').' " , " name " : " body " , " value " : '.json_encode($body).' ]}
2018-02-20 17:57:16 +01:00
</ div >
2018-02-21 17:47:43 +01:00
</ div > ' ;
2018-02-20 17:57:16 +01:00
2018-02-21 17:47:43 +01:00
echo '
2018-02-20 17:57:16 +01:00
<!-- PULSANTI -->
< div class = " row " >
< div class = " col-md-12 text-right " >
2018-02-21 17:47:43 +01:00
< button type = " button " class = " btn btn-primary " onclick = " send() " >< i class = " fa fa-envelope " ></ i > '.tr(' Invia ').' </ button >
2018-02-20 17:57:16 +01:00
</ div >
</ div >
</ form > ' ;
2018-02-21 17:47:43 +01:00
echo '
< div id = " destinatari_input " class = " hide " >
< div class = " col-md-12 " >
{[ " type " : " email " , " name " : " destinatari[] " , " icon-before " : " choice|email|cc " , " extra " : " onkeyup= \ 'aggiungi_destinatario(); \ ' " , " class " : " destinatari " ]}
</ div >
</ div > ' ;
2018-02-20 17:57:16 +01:00
echo '
< script src = " '. $rootdir .'/assets/dist/js/ckeditor/ckeditor.js " ></ script > ' ;
echo '
< script >
2018-02-21 17:47:43 +01:00
var emails = [];
2018-06-23 15:41:32 +02:00
$ ( document ) . ready ( function (){ ' ;
2018-02-21 17:47:43 +01:00
// Autocompletamento destinatario
2018-06-23 15:41:32 +02:00
if ( ! empty ( $variables [ 'id_anagrafica' ])) {
echo '
2018-07-10 12:07:48 +02:00
$ ( document ) . load ( globals . rootdir + " /ajax_complete.php?module=Anagrafiche&op=get_email&id_anagrafica='. $variables['id_anagrafica'] .( $template['name'] == 'Fattura Elettronica' ? '&type=pec' : '').' " , function ( response ) {
2018-02-21 17:47:43 +01:00
emails = JSON . parse ( response );
$ ( " .destinatari " ) . each ( function (){
2018-02-23 09:49:31 +01:00
$ ( this ) . autocomplete ({
source : emails ,
minLength : 0
}) . focus ( function () {
$ ( this ) . autocomplete ( " search " , $ ( this ) . val ())
});;
2018-02-21 17:47:43 +01:00
});
2018-08-01 15:10:56 +02:00
aggiungi_destinatario ();
2018-06-23 15:41:32 +02:00
}); ' ;
}
echo '
2018-02-21 17:47:43 +01:00
2018-02-23 09:49:31 +01:00
CKEDITOR . replace ( " body " , {
2018-03-07 23:50:28 +01:00
toolbar : globals . ckeditorToolbar ,
language : globals . locale ,
scayt_autoStartup : true ,
2018-04-15 14:46:33 +02:00
scayt_sLang : globals . full_locale
2018-02-23 09:49:31 +01:00
});
2018-02-20 17:57:16 +01:00
});
2018-02-21 17:47:43 +01:00
function send (){
if ( $ ( " #email-form " ) . parsley () . validate () && confirm ( " Inviare e-mail? " )) {
$ ( " #email-form " ) . submit ();
}
}
function aggiungi_destinatario (){
var last = $ ( " #lista-destinatari input " ) . last ();
if ( last . val ()){
$ ( " #destinatari_input " ) . find ( " .select2 " ) . remove ()
$ ( " #lista-destinatari " ) . append ( $ ( " #destinatari_input " ) . html ());
$ ( " .destinatari " ) . each ( function (){
$ ( this ) . autocomplete ({ source : emails });
});
start_superselect ();
}
}
2018-02-20 17:57:16 +01:00
</ script > ' ;
echo '
< script src = " '. $rootdir .'/lib/init.js " ></ script > ' ;