Questa è la sequenza di operazioni (uso chronoforms v4):
1) Registrazione utente tramite l'action "Joomla Users Registration". In caso di successo procedo con:
2) Creazione del barcode. Ho modificato il file barcode.php in questo modo (posto solo la parte incriminata)
//OutputImage ($im, $format, $quality); <-- codice originale dello script
imagepng( $im, $nomefile); /* <-- modifica inserita per salvare il file anziché generarne l'output a video
}
//-----------------------------------------------------------------------------
// Output an image to the browser
//-----------------------------------------------------------------------------
function OutputImage ($im, $format, $quality)
{
switch ($format)
{
case "JPEG":
ImageJPEG ($im, "", $quality);
break;
case "PNG":
ImagePNG ($im);
break;
case "GIF":
ImageGIF ($im);
break;
}
}
Visto che dovevo solo verificarne il funzionamento, inizialmente l'ho lasciato com'era senza richiamarlo come funzione, dato che comunque l'immagine la creava. Il barcode è legato all'ID utente appena registrato che recupero con
<?php $userid = $form->data['_PLUGINS_']['joomla_registration']['id']; ?>
2) Memorizzazione dei dati supplementari dell'utente inseriti nel form in una tabella creata ad hoc
3) Email all'amministratore con i dati dell'utente appena registrato
4) Invio dell'email all'utente contenente i dati di registrazione, il link per l'attivazione e il barcode incorporato nella mail
questo è il codice per l'invio della mail (in questa prima fase è strutturato solo per l'invio del barcode):<?php
$userid = $form->data['_PLUGINS_']['joomla_registration']['id'];
$nome = $form->data['name'];
$mail = $form->data['email'];
$numbcode=str_pad($userid,6,'0',STR_PAD_LEFT);
$mailer = JFactory::getMailer();
$config = JFactory::getConfig();
$sender = array(
$config->get( 'config.mailfrom' ),
$config->get( 'config.fromname' ) );
$mailer->setSender($sender);
$user = JFactory::getUser();
$recipient = $mail;
$mailer->addRecipient($recipient);
$body = '<h2>Our mail</h2>'
. '<div>-'.$numbcode.'- Test message'
. '<img src="cid:logo_id" alt="logo"/><>';
$mailer->isHTML(true);
$mailer->Encoding = 'base64';
$mailer->setBody($body);
// Optionally add embedded image
$bcode="moduli/ZZSXXXXXX.PNG";
$bcode=str_replace("XXXXXX",$numbcode,$bcode);
$mailer->AddEmbeddedImage($bcode, 'logo_id', $bcode, 'base64', 'image/png' );
// Optional file attached
/*$allegato="moduli/".$form->data['cf_pdf_file'];
$mailer->addAttachment($allegato);*/
$send = $mailer->Send();
if ( $send !== true ) {
echo 'Error sending email: ' . $send->__toString();
} else {
echo 'Mail sent';
}
?>
5) Output del messaggio di ringraziamento
Spero sia chiaro...
Grazie
Chico