12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- <?php
- /*
- Effet de workflow
- Envois un mail a une ou plusieurs adresses
- */
- class MailEffect{
- //Descriptif du type d'effet
- public static function manifest($key = null){
- $manifest = array(
- 'slug' => 'mail',
- 'label' => 'Envoyer un e-mail',
- 'class' => get_called_class(),
- 'path' => __FILE__,
- 'icon' => 'fas fa-envelope-open-text',
- 'color' => '#ff9f43',
- );
- if(!isset($key)) return $manifest;
- return isset($manifest[$key]) ? $manifest[$key] : '' ;
- }
- //méthode d'affichage de l'effet
- public static function form($item){
- $html = '';
- $class = get_called_class();
-
-
- ob_start();
- ?>
-
- <div class="input-group">
- <div class="input-group-text input-group-prepend">
- Pour :
- </div>
- <input type="text" data-id="to" class="form-control" value="<?php echo isset($item['to']) ? $item['to'] : '' ?>" placeholder="jdoe@doe.com, jmith@smithcorp.com">
- </div>
- <div class="input-group mt-2">
- <div class="input-group-text input-group-prepend">
- Titre :
- </div>
- <input type="text" data-id="title" class="form-control" value="<?php echo isset($item['title']) ? $item['title'] : '' ?>" placeholder="Bonjour,...">
- </div>
- <textarea data-id="message" data-type="wysiwyg"><?php echo isset($item['message']) ? $item['message'] : '' ?></textarea>
- <?php
- $html = ob_get_clean();
- return $html;
- }
- public static function run($effect,$parameters = array()){
- global $conf;
- $logs = '';
- try{
- if( in_array($parameters['workflow']['type'] , array( Workflow::TYPE_ENTITY, Workflow::TYPE_LIST)) ){
- if(isset($parameters['current'])) $parameters['current'] = $parameters['current']->toArray();
- if(isset($parameters['old'])) $parameters['old'] = $parameters['old']->toArray();
- }
- $effect->values['title'] = template($effect->values['title'],$parameters,true);
- $effect->values['message'] = template($effect->values['message'],$parameters,true);
-
- $expeditor = $conf->get('workflow_mail_from') != '' ? $conf->get('workflow_mail_from'): PROGRAM_NAME.' <workflow@'.PROGRAM_NAME.'.fr>';
- $reply = $conf->get('workflow_mail_reply') != '' ? $conf->get('workflow_mail_reply'): $expeditor;
- $mail = new Mail();
- $mail->expeditor = $expeditor;
- $mail->reply = $reply;
- $mail->title = $effect->values['title'];
- $mail->message = html_entity_decode($effect->values['message']);
- $mail->recipients['to'][] = $effect->values['to'];
- $logs = 'Sujet: "'.$mail->title.'" pour '.implode($mail->recipients['to']);
- $mail->send();
-
- }catch(Exception $e){
- $logs .= '<span class="text-danger"><br>Erreur : '.$e->getMessage().'</span>';
- }
- return $logs;
- }
- }
- ?>
|