Permet d'utiliser la reponse pour envoyer un mail

Cela permet de gere un email comme une page web.
327647
public function bootMail()
    {
        /**
         * Mail manager
         *
         * @param string $view
         * @param array $data
         * @param array $from
         * @param array $to
         * @param string $subject
         * @param array $attach
         */
        Response::macro('mail', function($view, $data = [], $from = [], $to = [], $subject = '', $attach = []) {

            if ($from instanceof Mail\Message) {
                \Mail::send($view, $data, function (Mail\Message $message) use ($from, $attach) {

                    // Getting the generated message
                    $swift = $from->getSwiftMessage();

                    // Setting the mandatory arguments
                    $message->subject($swift->getSubject());
                    $message->from($swift->getFrom());
                    $message->to($swift->getTo());

                    // Getting the optional arguments
                    if (!empty($swift->getSender()))    { $message->sender($swift->getSender()); }
                    if (!empty($swift->getCc()))        { $message->cc($swift->getCc()); }
                    if (!empty($swift->getBcc()))       { $message->bcc($swift->getBcc()); }
                    if (!empty($swift->getReplyTo()))   { $message->replyTo($swift->getReplyTo()); }
                    if (!empty($swift->getPriority()))  { $message->priority($swift->getPriority()); }
                    if (!empty($swift->getChildren()))  {
                        foreach($swift->getChildren() as $child){
                            $message->attachData($child->getBody(),$child->getHeaders()->get('content-type')->getParameter('name'));
                        }
                    }
                });

            } else {
                \Mail::send($view, $data, function (Mail\Message $message) use ($from, $to, $subject, $attach) {
                    // Setting the mandatory arguments
                    $message->from(...$from)->subject($subject);

                    // Managing multiple to
                    foreach ($to as $mail)      { $message->to(...$mail); }
                    // Managing multiple attachment
                    foreach ($attach as $file)  { $message->attach($file); }
                });
            }
        });
    }
677435
function getHTML()
    {
        $html="";
        if ($this->getCountOnglets()>0) {
            /*
             * assignation des styles en dur : a changer à terme,
             * les styles sont les memes que pour le site en ligne
             * => a ajouter dans la feuille de style
             * */
            if (isset($this->stylesOnglets) && $this->stylesOnglets!='') {
                $html=$this->stylesOnglets;
            }

            if (!isset($this->hauteurEtiquettes)) {
                $this->hauteurEtiquettes=25;
            }
            
            if (!isset($this->styleTable)) {
                $this->styleTable="";
            }
            
            if (!isset($this->styleTableEtiquettes)) {
                $this->styleTableEtiquettes ="";
            }
            
            if (!isset($this->styleBorderHautContenu)) {
                $this->styleBorderHautContenu
                    ="style='border-bottom:1px solid #000000;'";
            }
                
            $html.="<a name='onglet'></a>";
            $html.="<table width='".$this->largeurTotale.
            "' cellspacing=0 cellpadding=0 border=0><tr><td height=".
            $this->hauteurEtiquettes." ".$this->styleTable.">";            
            $html.="<table cellspacing=0 cellpadding=0 border=0 ".
            $this->styleTableEtiquettes."><tr class='onglets'>";
            // construction du tableau contenant les intitules
            $i=0;
            $largeurGauche = 0;
            if (isset($this->largeurGauche)) {
                    $largeurGauche = $this->largeurGauche;
                    $html.="<td height=".$this->hauteurEtiquettes." ".
                    $this->styleBorderHautContenu." width='".
                    $this->largeurGauche."'>&nbsp;</td>";
            }
            
            foreach ($this->ongletsArray as $fieldName => $fieldValue) {
                $className='OngletOff';
                if ($i==$this->numOngletSelected) {
                    $className='OngletOn';
                }
                
                $link = "";
                if ($this->isAncreOnglet==true) {
                    $link = "href='#onglet'";
                }
                
                $link="";
                switch($this->typeOngletsArray[$fieldName]) {
                case 'link':
                    $link = "href='".$this->optionsOngletParType[$fieldName]."'";
                    break;
                default:
                    $link = "onclick=\"".$this->createJSDivCalls($i);
                    /* lien le champs hiddenCourant est un champs cache
                    du formulaire permettant de stocker l'onglet actif courant
                    * */
                    if (isset($this->champHiddenCourant)
                        && $this->champHiddenCourant<>""
                    ) {
                        $link.="document.getElementById('".
                        $this->champHiddenCourant."').value='".$i."';";
                    }
                    $link.="\"";
                    break;
                }
                
                $spaces="";
                if ($this->isSpaceInLibelle == true) {
                    $spaces = "&nbsp;&nbsp;&nbsp;";
                }
                
                $html.="<td height='".$this->hauteurEtiquettes."' width='".
                $this->largeurEtiquette."' id='".
                $this->convertIntituleOnglet($fieldName.$i).$this->idOngletBuilder.
                "_onglet' class='".$className."' >".$spaces.
                "<a style='cursor:pointer;' ".$link;
                $html.=">".$fieldName."</a>".$spaces.
                "</td><td width='4' height='".$this->hauteurEtiquettes.
                "' ".">&nbsp</td>";
                $i++;
                
            }
            // dernier td => pour affichage du border //
            
            
            $html.="<td height='".$this->hauteurEtiquettes."' width='".
            ( $this->largeurTotale - ($i * ($this->largeurEtiquette+4))
            -$largeurGauche).
            "' >&nbsp;</td>";
            
            $styleContours = "";
            if ($this->isContours==true) {
                if (isset($this->styleContoursContenu)) {
                    $styleContours = $this->styleContoursContenu;
                } else {
                    $styleContours = "style='border-left:1px solid #000000;".
                    "border-right:1px solid #000000;".
                    "border-bottom:1px solid #000000;'";
                }
            }
            
            $html.="</tr></table></td></tr><tr><td class='event ".$styleContours.">";
            
            
            // construction des contenus
            $i=0;
            foreach ($this->ongletsArray as $fieldName => $fieldValue) {
                if ($i==$this->numOngletSelected) {
                    $styleDisplay='block';
                    
                } else {
                    $styleDisplay='none';    
                }
                $testedFieldValue=="<table cellspacing='0' cellpadding='0' ".
                "border='0'></table>";
                // cas ou il n'y a pas de photo dans la liste
                if ($fieldValue==$testedFieldValue) {
                    $fieldValue="<table cellspacing='0' width='100%' ".
                    "cellpadding='0'".
                    " border='1'><tr><td><br><center>Pas de document</center>".
                    "</br></td></tr></table>";
                }
                
                $html.="<div id='".$this->convertIntituleOnglet($fieldName.$i).
                $this->idOngletBuilder."' style='display:".$styleDisplay.
                ";'>".$fieldValue."</div>";
                $i++;
            }
            
            
            $html.="</td></tr></table>";
        }
        return $html;
        
    }
791489
def CorrectEmail(self, email):
        ''''''
        print("Wrong Email : "+email)
        contents = email.split('@')
        if len(contents) == 2:
            domain_data = contents[1].split('.')

            for vemail in self.valid:
                alters = perms(vemail.split('.', 1)[0])
                if domain_data[0] in alters and qyn.query_yes_no("Did you mean : " + contents[0] + '@' + vemail) is True:
                        return contents[0] + '@' + vemail

            corrected = input('Enter Corrected Email : ')
            while self.CheckEmail(corrected) is False:
                corrected = input('PLEASE Enter "Corrected" Email : ')
            return corrected
        else:
            print('Looks like you missed/overused `@`')
            if len(contents) == 1:
                for vemail in self.valid:
                    if email[len(email) - len(vemail):] == vemail and qyn.query_yes_no("Did you mean : " + email[:len(email) - len(vemail)] + '@' + vemail) is True:
                        return email[:len(email) - len(vemail)] + '@' + vemail

            corrected = input('Enter Corrected Email : ')
            while self.CheckEmail(corrected) is False:
                corrected = input('PLEASE Enter "Corrected" Email : ')
            return corrected
897899
public function afficheFormulaireModificationElementAdresse($parametres = array())
    {
        // verification des droits
        $a = new archiAuthentification();
        $u = new archiUtilisateur();

        $html="";

        if ($a->estAdmin() || ($u->isAuthorized('admin_rues', $a->getIdUtilisateur()) && $u->isAuthorized('admin_quartiers', $a->getIdUtilisateur()) && $u->isAuthorized('admin_sousQuartiers', $a->getIdUtilisateur()))) {
            $htmlDependances="";
            $t = new Template('modules/archi/templates/');


            $idRue          = 0;
            $idQuartier     = 0;
            $idSousQuartier = 0;
            $idVille        = 0;
            $idPays         = 0;


            switch ($parametres['tableName']) {
                case 'rue':
                    $t->set_filenames((array('modificationElementAdresse'=>'modificationElementAdresseRue.tpl')));

                    $idRue = $parametres['id'];

                    $req = "
                            SELECT r.nom as nomRue, r.prefixe as prefixeRue,sq.idSousQuartier as idSousQuartier,
                                    q.idQuartier as idQuartier, v.idVille as idVille, p.idPays as idPays
                            FROM rue r
                            LEFT JOIN sousQuartier sq ON sq.idSousQuartier = r.idSousQuartier
                            LEFT JOIN quartier q ON q.idQuartier = sq.idQuartier
                            LEFT JOIN ville v ON v.idVille = q.idVille
                            LEFT JOIN pays p ON p.idPays = v.idPays
                            WHERE idRue = '".$idRue."'";

                    $res = $this->connexionBdd->requete($req);

                    if (mysql_num_rows($res)==1) {
                        $fetch=mysql_fetch_assoc($res);

                        $t->assign_vars(array(
                            'intitule'=>stripslashes($fetch['nomRue']),
                            'complement'=>stripslashes($fetch['prefixeRue']),
                            'sousQuartierField'=>$this->afficheSelectSousQuartier(array('idQuartier'=>$fetch['idQuartier'],'idSousQuartier'=>$fetch['idSousQuartier'])),
                            'quartierField'=>$this->afficheSelectQuartier(array('idVille'=>$fetch['idVille'],'idQuartier'=>$fetch['idQuartier'])),
                            'villeField'=>$this->afficheSelectVille(array('idPays'=>$fetch['idPays'],'idVille'=>$fetch['idVille'])),
                            'paysField'=>$this->afficheSelectPays(array('idPays'=>$fetch['idPays'])),
                            'idRue'=>$idRue
                        ));
                    }

                    // 
                    // affichage des dependances liées a la rue:
                    // 
                    $htmlDependances.="<h3>Dependances sur les adresses affichées sur le site</h3>";

                    $arrayDependances = $this->getDependancesFrom($idRue, 'idRue');

                    $lienSupprRue="";
                    if ($arrayDependances['nbDependances']==0) {
                        $lienSupprRue = "<a href='".$this->creerUrl('supprimerRueFromAdminRue', 'adminElementAdresse', array('tableName'=>'rue','idRueSuppr'=>$idRue))."'>Supprimer la rue</a>";
                    }

                    $htmlDependances.="nombre de dépendances = ".$arrayDependances['nbDependances']." $lienSupprRue<br>";
                    $tableau = new tableau();

                    $tableau->addValue("adresses", "style='font-weight:bold'");
                    $tableau->addValue("nombre d'evenements associés", "style='font-weight:bold'");

                    foreach ($arrayDependances['arrayDependances'] as $indice => $value) {
                        $lienSupprAdresse = "";
                        if ($value['nbEvenementsAssocies']==0) {
                            $lienSupprAdresse = "&nbsp;&nbsp;&nbsp;<a href='".$this->creerUrl('supprimerAdresseFromAdminRue', 'adminAdresseDetail', array('tableName'=>'rue','idModification'=>$idRue,'idAdresseSuppr'=>$value['idAdresse']))."'>Supprimer l'adresse</a>";
                        }


                        $tableau->addValue("<a href='".$this->creerUrl('', 'adresseDetail', array('archiIdAdresse'=>$value['idAdresse']))."'>".$this->getIntituleAdresseFrom($value['idAdresse'], 'idAdresse')."</a>");
                        $tableau->addValue($value['nbEvenementsAssocies'].$lienSupprAdresse);
                    }

                    $htmlDependances .=$tableau->createHtmlTableFromArray(2);

                    break;

                case 'sousQuartier':
                    $t->set_filenames((array('modificationElementAdresse'=>'modificationElementAdresseSousQuartier.tpl')));

                    $idSousQuartier = $parametres['id'];

                    $req = "
                        SELECT sq.nom as nomSousQuartier, sq.idSousQuartier as idSousQuartier,
                                    q.idQuartier as idQuartier, v.idVille as idVille, p.idPays as idPays
                        FROM sousQuartier sq
                        LEFT JOIN quartier q ON q.idQuartier = sq.idQuartier
                        LEFT JOIN ville v ON v.idVille = q.idVille
                        LEFT JOIN pays p ON p.idPays = v.idPays
                        WHERE sq.idSousQuartier= '".$idSousQuartier."'";
                    $res = $this->connexionBdd->requete($req);

                    if (mysql_num_rows($res)==1) {
                        $fetch=mysql_fetch_assoc($res);

                        $t->assign_vars(array(
                            'intitule'=>stripslashes($fetch['nomSousQuartier']),
                            'quartierField'=>$this->afficheSelectQuartier(array('idVille'=>$fetch['idVille'],'idQuartier'=>$fetch['idQuartier'],'noSousQuartier'=>true)),
                            'villeField'=>$this->afficheSelectVille(array('idPays'=>$fetch['idPays'],'idVille'=>$fetch['idVille'],'noSousQuartier'=>true)),
                            'paysField'=>$this->afficheSelectPays(array('idPays'=>$fetch['idPays'],'noSousQuartier'=>true)),
                            'idSousQuartier'=>$idSousQuartier
                        ));
                    }


                    // 
                    // affichage des dependances liées au sous quartier
                    // 
                    $htmlDependances.="<h3>Dependances sur les sous quartiers</h3>";

                    $arrayDependances = $this->getDependancesFrom($idSousQuartier, 'idSousQuartier');
                    $htmlDependances.="nombre de dépendances = ".$arrayDependances['nbDependances']."<br>";
                    $tableauAdresses = new tableau();
                    $tableauRues = new tableau();


                    $tableauAdresses->addValue("adresses", "style='font-weight:bold'");
                    $tableauAdresses->addValue("nombre d'evenements associés", "style='font-weight:bold'");

                    $tableauRues->addValue("rues dépendantes de ce sous quartier", "style='font-weight:bold'");

                    foreach ($arrayDependances['arrayDependances'] as $indice => $value) {
                        if (isset($value['idAdresse'])) {
                            $tableauAdresses->addValue("<a href='".$this->creerUrl('', 'adresseDetail', array('archiIdAdresse'=>$value['idAdresse']))."'>".$this->getIntituleAdresseFrom($value['idAdresse'], 'idAdresse')."</a>");
                            $tableauAdresses->addValue($value['nbEvenementsAssocies']);
                        }



                        if (isset($value['idRue'])) {
                            $intituleRue = $this->getAdresseComplete($value['idRue'], 'rue', array('miseEnForme'=>true));
                            $tableauRues->addValue("<a href='".$this->creerUrl('', 'adminAdresseDetail', array('tableName'=>'rue','idModification'=>$value['idRue']))."'>".$intituleRue."</a>");
                        }
                    }

                    $htmlDependances .=$tableauAdresses->createHtmlTableFromArray(2);
                    $htmlDependances .=$tableauRues->createHtmlTableFromArray(1);

                    break;
                case 'quartier':
                    $t->set_filenames((array('modificationElementAdresse'=>'modificationElementAdresseQuartier.tpl')));

                    $idQuartier = $parametres['id'];

                    $req = "
                            SELECT q.nom as nomQuartier,v.idVille as idVille, p.idPays as idPays
                            FROM quartier q
                            LEFT JOIN ville v ON v.idVille = q.idVille
                            LEFT JOIN pays p ON p.idPays = v.idPays
                            WHERE q.idQuartier = '".$idQuartier."'
                    ";
                    $res = $this->connexionBdd->requete($req);


                    if (mysql_num_rows($res)==1) {
                        $fetch=mysql_fetch_assoc($res);

                        $t->assign_vars(array(
                            'intitule'=>stripslashes($fetch['nomQuartier']),
                            'villeField'=>$this->afficheSelectVille(array('idPays'=>$fetch['idPays'],'idVille'=>$fetch['idVille'],'noSousQuartier'=>true,'noQuartier'=>true)),
                            'paysField'=>$this->afficheSelectPays(array('idPays'=>$fetch['idPays'],'noSousQuartier'=>true,'noQuartier'=>true)),
                            'idQuartier'=>$idQuartier
                        ));
                    }



                    // 
                    // affichage des dependances liées au  quartier
                    // 
                    $htmlDependances.="<h3>Dependances sur quartiers</h3>";

                    $arrayDependances = $this->getDependancesFrom($idQuartier, 'idQuartier');
                    $htmlDependances.="nombre de dépendances = ".$arrayDependances['nbDependances']."<br>";
                    $tableauAdresses = new tableau();
                    $tableauRues = new tableau();
                    $tableauSousQuartiers = new tableau();

                    $tableauAdresses->addValue("adresses", "style='font-weight:bold'");
                    $tableauAdresses->addValue("nombre d'evenements associés", "style='font-weight:bold'");

                    $tableauRues->addValue("rues dépendantes de ce quartier", "style='font-weight:bold'");

                    $tableauSousQuartiers->addValue("sous quartiers dépendants de ce quartier", "style='font-weight:bold'");

                    foreach ($arrayDependances['arrayDependances'] as $indice => $value) {
                        if (isset($value['idAdresse'])) {
                            $tableauAdresses->addValue("<a href='".$this->creerUrl('', 'adresseDetail', array('archiIdAdresse'=>$value['idAdresse']))."'>".$this->getIntituleAdresseFrom($value['idAdresse'], 'idAdresse')."</a>");
                            $tableauAdresses->addValue($value['nbEvenementsAssocies']);
                        }



                        if (isset($value['idRue'])) {
                            $intituleRue = $this->getAdresseComplete($value['idRue'], 'rue', array('miseEnForme'=>true));
                            $tableauRues->addValue("<a href='".$this->creerUrl('', 'adminAdresseDetail', array('tableName'=>'rue','idModification'=>$value['idRue']))."'>".$intituleRue."</a>");
                        }


                        if (isset($value['idSousQuartier'])) {
                            $intituleSousQuartier = $this->getAdresseComplete($value['idSousQuartier'], 'sousQuartier', array('miseEnForme'=>true));
                            $tableauSousQuartiers->addValue("<a href='".$this->creerUrl('', 'adminAdresseDetail', array('tableName'=>'sousQuartier','idModification'=>$value['idSousQuartier']))."'>".$intituleSousQuartier."</a>");
                        }
                    }

                    $htmlDependances .=$tableauAdresses->createHtmlTableFromArray(2);
                    $htmlDependances .=$tableauRues->createHtmlTableFromArray(1);
                    $htmlDependances .=$tableauSousQuartiers->createHtmlTableFromArray(1);



                    break;
                case 'ville':
                    $googleMap = new googleMap(array('googleMapKey'=>$this->googleMapKey));

                    $jsGoogleMap="";
                    $jsGoogleMap.= $googleMap->getJsFunctions();
                    $jsGoogleMap.= $googleMap->getJSInitGeoCoder();

                    $jsToExecute="document.getElementById('formModif').action='".$this->creerUrl('adminEnregistreModifAdresse', '', $parametres)."';document.getElementById('formModif').submit();";

                    $arrayJsCoordonneesFromGoogleMap = $googleMap->getJSRetriveCoordonnees(array(
                        'nomChampLatitudeRetour'=>'latitude',
                        'nomChampLongitudeRetour'=>'longitude',
                        'getAdresseFromElementById'=>true,
                        'jsAdresseValue'=>"document.getElementById('intituleVille').value+' '+document.getElementById('pays').options[document.getElementById('pays').selectedIndex].innerHTML",
                        'jsToExecuteIfOK'=>$jsToExecute,
                        'jsToExecuteIfNoAddressFound'=>"document.getElementById('latitude').value='';document.getElementById('longitude').value='';".$jsToExecute
                    ));

                    $jsGoogleMap.= $arrayJsCoordonneesFromGoogleMap['jsFunctionToExecute'];



                    $t->set_filenames((array('modificationElementAdresse'=>'modificationElementAdresseVille.tpl')));
                    $idVille = $parametres['id'];

                    $req = "
                            SELECT v.nom as nomVille,v.codepostal as codePostal, p.idPays as idPays,v.longitude as longitude, v.latitude as latitude
                            FROM ville v
                            LEFT JOIN pays p ON p.idPays = v.idPays
                            WHERE v.idVille = '".$idVille."'
                    ";
                    $res = $this->connexionBdd->requete($req);

                    if (mysql_num_rows($res)==1) {
                        $fetch=mysql_fetch_assoc($res);

                        $t->assign_vars(array(
                            'jsGoogleMap'=>$jsGoogleMap,
                            'intitule'=>stripslashes($fetch['nomVille']),
                            'codePostal' => $fetch['codePostal'],
                            'paysField'=>$this->afficheSelectPays(array('idPays'=>$fetch['idPays'],'noSousQuartier'=>true,'noQuartier'=>true,'noVille'=>true)),
                            'latitude'=>$fetch['latitude'],
                            'longitude'=>$fetch['longitude'],
                            'idVille'=>$idVille
                        ));
                    }



                    // 
                    // affichage des dependances liées a la ville
                    // 
                    $htmlDependances.="<h3>Dependances sur la ville</h3>";

                    $arrayDependances = $this->getDependancesFrom($idVille, 'idVille');
                    $htmlDependances.="nombre de dépendances = ".$arrayDependances['nbDependances']."<br>";
                    $tableauAdresses = new tableau();
                    $tableauRues = new tableau();
                    $tableauSousQuartiers = new tableau();
                    $tableauQuartiers = new tableau();

                    $tableauAdresses->addValue("adresses", "style='font-weight:bold'");
                    $tableauAdresses->addValue("nombre d'evenements associés", "style='font-weight:bold'");

                    $tableauRues->addValue("rues dépendantes de cette ville", "style='font-weight:bold'");

                    $tableauSousQuartiers->addValue("sous quartiers dépendants de cette ville", "style='font-weight:bold'");

                    $tableauQuartiers->addValue("quartiers dépendants de cette ville", "style='font-weight:bold'");

                    foreach ($arrayDependances['arrayDependances'] as $indice => $value) {
                        if (isset($value['idAdresse'])) {
                            $tableauAdresses->addValue("<a href='".$this->creerUrl('', 'adresseDetail', array('archiIdAdresse'=>$value['idAdresse']))."'>".$this->getIntituleAdresseFrom($value['idAdresse'], 'idAdresse')."</a>");
                            $tableauAdresses->addValue($value['nbEvenementsAssocies']);
                        }



                        if (isset($value['idRue'])) {
                            $intituleRue = $this->getAdresseComplete($value['idRue'], 'rue', array('miseEnForme'=>true));
                            $tableauRues->addValue("<a href='".$this->creerUrl('', 'adminAdresseDetail', array('tableName'=>'rue','idModification'=>$value['idRue']))."'>".$intituleRue."</a>");
                        }


                        if (isset($value['idSousQuartier'])) {
                            $intituleSousQuartier = $this->getAdresseComplete($value['idSousQuartier'], 'sousQuartier', array('miseEnForme'=>true));
                            $tableauSousQuartiers->addValue("<a href='".$this->creerUrl('', 'adminAdresseDetail', array('tableName'=>'sousQuartier','idModification'=>$value['idSousQuartier']))."'>".$intituleSousQuartier."</a>");
                        }

                        if (isset($value['idQuartier'])) {
                            $intituleQuartier = $this->getAdresseComplete($value['idQuartier'], 'quartier', array('miseEnForme'=>true));
                            $tableauQuartiers->addValue("<a href='".$this->creerUrl('', 'adminAdresseDetail', array('tableName'=>'quartier','idModification'=>$value['idQuartier']))."'>".$intituleQuartier."</a>");
                        }
                    }

                    $htmlDependances .=$tableauAdresses->createHtmlTableFromArray(2);
                    $htmlDependances .=$tableauRues->createHtmlTableFromArray(1);
                    $htmlDependances .=$tableauSousQuartiers->createHtmlTableFromArray(1);
                    $htmlDependances .=$tableauQuartiers->createHtmlTableFromArray(1);



                    break;

                case 'pays':
                    $t->set_filenames((array('modificationElementAdresse'=>'modificationElementAdressePays.tpl')));
                    $idPays = $parametres['id'];

                    $req = "
                            SELECT p.nom as nomPays
                            FROM pays p
                            WHERE p.idPays = '".$idPays."'
                    ";
                    $res = $this->connexionBdd->requete($req);

                    if (mysql_num_rows($res)==1) {
                        $fetch=mysql_fetch_assoc($res);

                        $t->assign_vars(array(
                            'intitule'=>stripslashes($fetch['nomPays']),
                            'idPays'=>$idPays
                        ));
                    }




                    // 
                    // affichage des dependances liées a la ville
                    // 
                    $htmlDependances.="<h3>Dependances sur le pays</h3>";

                    $arrayDependances = $this->getDependancesFrom($idPays, 'idPays');
                    $htmlDependances.="nombre de dépendances = ".$arrayDependances['nbDependances']."<br>";
                    $tableauAdresses = new tableau();
                    $tableauRues = new tableau();
                    $tableauSousQuartiers = new tableau();
                    $tableauQuartiers = new tableau();
                    $tableauVilles = new tableau();

                    $tableauAdresses->addValue("adresses", "style='font-weight:bold'");
                    $tableauAdresses->addValue("nombre d'evenements associés", "style='font-weight:bold'");

                    $tableauRues->addValue("rues dépendantes de ce pays", "style='font-weight:bold'");

                    $tableauSousQuartiers->addValue("sous quartiers dépendants de ce pays", "style='font-weight:bold'");

                    $tableauQuartiers->addValue("quartiers dépendants de ce pays", "style='font-weight:bold'");

                    $tableauVilles->addValue("villes dépendantes de ce pays", "style='font-weight:bold'");

                    foreach ($arrayDependances['arrayDependances'] as $indice => $value) {
                        if (isset($value['idAdresse'])) {
                            $tableauAdresses->addValue("<a href='".$this->creerUrl('', 'adresseDetail', array('archiIdAdresse'=>$value['idAdresse']))."'>".$this->getIntituleAdresseFrom($value['idAdresse'], 'idAdresse')."</a>");

                            $tableauAdresses->addValue($value['nbEvenementsAssocies']);
                        }



                        if (isset($value['idRue'])) {
                            $intituleRue = $this->getAdresseComplete($value['idRue'], 'rue', array('miseEnForme'=>true));
                            $tableauRues->addValue("<a href='".$this->creerUrl('', 'adminAdresseDetail', array('tableName'=>'rue','idModification'=>$value['idRue']))."'>".$intituleRue."</a>");
                        }


                        if (isset($value['idSousQuartier'])) {
                            $intituleSousQuartier = $this->getAdresseComplete($value['idSousQuartier'], 'sousQuartier', array('miseEnForme'=>true));
                            $tableauSousQuartiers->addValue("<a href='".$this->creerUrl('', 'adminAdresseDetail', array('tableName'=>'sousQuartier','idModification'=>$value['idSousQuartier']))."'>".$intituleSousQuartier."</a>");
                        }

                        if (isset($value['idQuartier'])) {
                            $intituleQuartier = $this->getAdresseComplete($value['idQuartier'], 'quartier', array('miseEnForme'=>true));
                            $tableauQuartiers->addValue("<a href='".$this->creerUrl('', 'adminAdresseDetail', array('tableName'=>'quartier','idModification'=>$value['idQuartier']))."'>".$intituleQuartier."</a>");
                        }

                        if (isset($value['idVille'])) {
                            $intituleVille = $this->getAdresseComplete($value['idVille'], 'ville', array('miseEnForme'=>true));
                            $tableauVilles->addValue("<a href='".$this->creerUrl('', 'adminAdresseDetail', array('tableName'=>'ville','idModification'=>$value['idVille']))."'>".$intituleVille."</a>");
                        }
                    }

                    $htmlDependances .=$tableauAdresses->createHtmlTableFromArray(2);
                    $htmlDependances .=$tableauRues->createHtmlTableFromArray(1);
                    $htmlDependances .=$tableauSousQuartiers->createHtmlTableFromArray(1);
                    $htmlDependances .=$tableauQuartiers->createHtmlTableFromArray(1);
                    $htmlDependances .=$tableauVilles->createHtmlTableFromArray(1);

                    break;
            }



            switch ($parametres['tableName']) {
                case 'ville':
                    // on adapte le bouton modifier pour que la recherche googleMap des coordonnees se lance a la validation du formulaire
                    $typeButtonModifier="button";
                    $onClickButtonModifier = $arrayJsCoordonneesFromGoogleMap['jsFunctionCall'];
                    break;
                default:
                    $typeButtonModifier = "submit";
                    $onClickButtonModifier = "document.getElementById('formModif').action='".$this->creerUrl('adminEnregistreModifAdresse', '', $parametres)."';";
                    break;
            }


            $t->assign_vars(array(
                        'typeElement'               =>$parametres['tableName'],
                        'typeButtonModifier'        =>$typeButtonModifier,
                        'onClickBoutonModifier'     =>$onClickButtonModifier,
                        'onClickBoutonRetour'       =>"location.href='".$this->creerUrl('', 'adminElementAdresse', array('tableName'=>$parametres['tableName']))."';"
                        ));

            ob_start();
            $t->pparse('modificationElementAdresse');
            $html .= ob_get_contents();
            $html.="<br><br><h2>Dependances</h2>";
            $html.="(concernant les adresses, deux evenements différents peuvent afficher la meme adresse , dans ce cas l'adresse est liée a deux groupes d'adresses différents.<br><br>";
            $html.= $htmlDependances;
            ob_end_clean();


            // dans le cas de la rue , on affiche un onglet pour l'historique des noms de rue
            if ($parametres['tableName']=='rue') {
                $d = new dateObject();
                $reqVals = "SELECT * FROM historiqueNomsRues WHERE idRue = '".$parametres['id']."'";
                $resVals = $this->connexionBdd->requete($reqVals);

                $valsIdHistoriques = array();
                $valsIdRues = array();
                $valsAnnees = array();
                $valsNomsRues = array();
                $valsCommentaires = array();
                $valsPrefixes = array();
                $i=0;
                while ($fetchVals = mysql_fetch_assoc($resVals)) {
                    $valsIdHistoriques[$i]  = $fetchVals['idHistoriqueNomRue'];
                    $valsIdRues[$i]         = $fetchVals['idRue'];
                    $valsAnnees[$i]         = $d->toFrench($fetchVals['annee']);
                    $valsNomsRues[$i]       = $fetchVals['nomRue'];
                    $valsCommentaires[$i]   = $fetchVals['commentaire'];
                    $valPrefixes[$i]        = $fetchVals['prefixe'];
                    $i++;
                }

                if ($i==0) {
                    $valsIdHistoriques[$i]  = '';
                    $valsIdRues[$i]         = '';
                    $valsAnnees[$i]         = '';
                    $valsNomsRues[$i]       = '';
                    $valsCommentaires[$i]   = '';
                    $valPrefixes[$i]        = '';
                }


                $configForm=array(
                        "idHistoriqueNomRue"=>array("type"=>"hidden","libelle"=>"idHistoriqueNomRue","defaultValues"=>$valsIdHistoriques,"error"=>"","default"=>""),
                        "annee"=>array("type"=>"date","libelle"=>"annee","defaultValues"=>$valsAnnees,"error"=>"","default"=>""),
                        "prefixe"=>array("type"=>"text","libelle"=>"prefixe","defaultValues"=>$valPrefixes,"error"=>"","default"=>""),
                        "nomRue"=>array("type"=>"text","libelle"=>"nomRue","defaultValues"=>$valsNomsRues,"error"=>"","default"=>""),
                        "commentaire"=>array("type"=>"bigText","libelle"=>"commentaire","defaultValues"=>$valsCommentaires,"error"=>"","default"=>"")
                );


                $f = new formGenerator();

                $arrayFormulaireMultiLignes = $f->getFormulaireMultiLignes(array("configForm"=>$configForm,"formAction"=>$this->creerUrl('enregistreHistoriqueNomsRues', 'adminAdresseDetail', array("tableName"=>'rue',"idModification"=>$parametres['id']))));

                $htmlHistoriqueNomRue=$arrayFormulaireMultiLignes['html'];


                $onglets = new ongletObject();
                $onglets->init(0);
                $onglets->setStyleTable("style='margin:0px;padding:0px;'");
                $onglets->setStyleTableEtiquettes("style='margin:0px;padding:0px;'");
                $onglets->addContent("Modifier un élément de rue ", $html);
                $onglets->addContent("Historique du nom de la rue", $htmlHistoriqueNomRue);

                $html=$onglets->getHTML();

                $html.=$arrayFormulaireMultiLignes['jsAfterMultiLigneArray'];
            }
        } else {
            $erreurObj = new objetErreur();
            $erreurObj->ajouter("Vous n'avez pas les droits pour accéder à cette partie du site");
            echo $erreurObj->afficher();
        }

        return $html;
    }
90847
def email_message(
        self,
        user,
        subject_template,
        body_template,
        sender=None,
        message_class=EmailMessage,
        **kwargs
    ):
        
        if sender:
            try:
                display_name = sender.get_full_name()
            except (AttributeError, TypeError):
                display_name = sender.get_username()
            from_email = "%s <%s>" % (
                display_name, email.utils.parseaddr(settings.DEFAULT_FROM_EMAIL)[1]
            )
            reply_to = "%s <%s>" % (display_name, sender.email)
        else:
            from_email = settings.DEFAULT_FROM_EMAIL
            reply_to = from_email

        headers = {"Reply-To": reply_to}
        kwargs.update({"sender": sender, "user": user})

        subject_template = loader.get_template(subject_template)
        body_template = loader.get_template(body_template)
        subject = subject_template.render(
            kwargs
        ).strip()  # Remove stray newline characters
        body = body_template.render(kwargs)
        return message_class(subject, body, from_email, [user.email], headers=headers)
1317689
def send_mail(to_list, sub, content, cc=None):
    '''
    
    '''
    sender = SMTP_CFG['name'] + "<" + SMTP_CFG['user'] + ">"
    msg = MIMEText(content, _subtype='html', _charset='utf-8')
    msg['Subject'] = sub
    msg['From'] = sender
    msg['To'] = ";".join(to_list)
    if cc:
        msg['cc'] = ';'.join(cc)
    try:
        # Using SMTP_SSL. The alinyun ECS has masked the 25 port since 9,2016.
        smtper = smtplib.SMTP_SSL(SMTP_CFG['host'], port=994)
        smtper.login(SMTP_CFG['user'], SMTP_CFG['pass'])
        smtper.sendmail(sender, to_list, msg.as_string())
        smtper.close()
        return True
    except:
        return False
755464
function makeMail(char) {
    let mail = function (messageIDorLabels, lastMailId) {
        // Matching to the inbox function when the second argument exists (since
        // 2nd function only takes 1 argument), or if the first argument is an
        // array or undefined.
        if (messageIDorLabels === undefined || Array.isArray(messageIDorLabels)
            || lastMailId !== undefined) {
            return char.agent.request('get_characters_character_id_mail', {
                path: { character_id: char.id },
                query: { labels: messageIDorLabels, last_mail_id: lastMailId }
            }, char.ssoToken);
        }
        else {
            return new MessageImpl(char, messageIDorLabels);
        }
    };
    let allMail = page_loader_1.makeIDBasedLoader(maxID => mail(undefined, maxID), item => item.mail_id, 50);
    mail.all = function () {
        return allMail.getAll();
    };
    mail.labels = makeLabels(char);
    mail.unreadCount = function () {
        return char.agent.request('get_characters_character_id_mail_labels', { path: { character_id: char.id } }, char.ssoToken)
            .then(result => result.total_unread_count || 0);
    };
    mail.cspaCost = function (to) {
        return char.agent.request('post_characters_character_id_cspa', { path: { character_id: char.id }, body: { characters: to } }, char.ssoToken).then(result => result.cost || 0);
    };
    mail.send = function (mail) {
        return char.agent.request('post_characters_character_id_mail', { path: { character_id: char.id }, body: mail }, char.ssoToken);
    };
    mail.lists = function () {
        return char.agent.request('get_characters_character_id_mail_lists', { path: { character_id: char.id } }, char.ssoToken);
    };
    return mail;
}
532149
def send_mail(self, sender, subject, recipients, message, response_id=None, html_message=False):
        """"""

        params = {
            'sender': sender,
            'subject': subject,
            'dests': recipients,
            'message': message,
            'html_message': html_message,
        }

        if response_id:
            params['response_id'] = response_id

        return self._request('mail/', postParams=params, verb='POST')
1177026
def EmailTemplate(
        self,
        TemplateId,
        TemplateModel,
        From,
        To,
        TemplateAlias=None,
        Cc=None,
        Bcc=None,
        Subject=None,
        Tag=None,
        ReplyTo=None,
        Headers=None,
        TrackOpens=None,
        TrackLinks="None",
        Attachments=None,
        InlineCss=True,
    ):
        
        return EmailTemplate(
            manager=self,
            TemplateId=TemplateId,
            TemplateAlias=TemplateAlias,
            TemplateModel=TemplateModel,
            From=From,
            To=To,
            Cc=Cc,
            Bcc=Bcc,
            Subject=Subject,
            Tag=Tag,
            ReplyTo=ReplyTo,
            Headers=Headers,
            TrackOpens=TrackOpens,
            TrackLinks=TrackLinks,
            Attachments=Attachments,
            InlineCss=InlineCss,
        )
1185241
public void initialize(Email email) {
		
		// Initialisation de l'Etat de Controle de la chaine vide
		this.matchOnEmpty = email.matchOnEmpty();
		
		// Construction du pattern des mails
		pattern = Pattern.compile(
				"^" + ATOM + "+(\\." + ATOM + "+)*@"
				+ DOMAIN
				+ "|"
				+ IP_DOMAIN
				+ ")$",
				java.util.regex.Pattern.CASE_INSENSITIVE
		);
	}
1040925
def inbox(request, template_name='django_messages/inbox.html'):
    
    message_list = Message.objects.inbox_for(request.user)
    return render(request, template_name, {
        'message_list': message_list,
    })
1037075
function sendVerificationEmail (req, res, next) {
  // skip if we don't need to send the email
  if (!req.sendVerificationEmail) {
    next()

  // send the email
  } else {
    var user = req.user

    var ttl = (settings.emailVerification &&
      settings.emailVerification.tokenTTL) ||
      (3600 * 24 * 7)

    OneTimeToken.issue({
      ttl: ttl,
      sub: user._id,
      use: 'emailVerification'
    }, function (err, token) {
      if (err) { return next(err) }

      var params = {
        token: token._id
      }

      ;[ 'redirect_uri', 'client_id', 'response_type', 'scope' ]
        .forEach(function (key) {
          var value = req.connectParams[key]
          if (value) {
            params[key] = value
          }
        })

      // build email link
      var verifyURL = url.parse(settings.issuer)
      verifyURL.pathname = 'email/verify'
      verifyURL.query = params

      // email template data
      var locals = {
        email: user.email,
        name: {
          first: user.givenName,
          last: user.familyName
        },
        verifyURL: url.format(verifyURL)
      }

      // Send verification email
      mailer.getMailer().sendMail('verifyEmail', locals, {
        to: user.email,
        subject: 'Verify your e-mail address'
      }, function (err, responseStatus) {
        if (err) { }
        // TODO: REQUIRES REFACTOR TO MAIL QUEUE
        next()
      })
    })
  }
}
557253
def sendEmail(self, subject, body, toAddress=False):
        

        if not toAddress:
            toAddress = self.toAddress
        toAddress = toAddress.split(';')

        message = MIMEText(body)
        message['Subject'] = subject
        message['From'] = self.fromAddress
        message['To'] = ','.join(toAddress)

        if not self.testing:
            s = SMTP(self.server, self.port)

            s.sendmail(self.fromAddress, toAddress, message.as_string())
            s.quit()

            print('email sent')
        else:
            print('***Begin Test Email Message***')
            print(message)
            print('***End Test Email Message***')
541837
public function getHtml($params = array())
	{
		$html="";
		$maxValue = $this->getMaxValue(); // cette valeur va permettre de calculer l'echelle la plus pratique a utiliser
		
		$nbChiffres = pia_strlen($maxValue);
		
		$unite='1';
		for($i=0 ; $i<$nbChiffres-2 ; $i++)
		{
			$unite.='0';
		}
		
		$roundedValue = round($maxValue,-$nbChiffres+2)+$unite;
		
		
		$hauteur = 200;
		if(isset($params['hauteur']) && $params['hauteur']!='')
		{
			$hauteur = $params['hauteur'];
		}
		
		
		$colWidth=20;
		if(isset($params['colWidth']) && $params['colWidth']!='')
		{
			$colWidth=$params['colWidth'];
		}
		
		// echelle
		$heightEchelle = $hauteur;
		
		$html.="<table cellspacing=0 cellpadding=0 border=0 height=".($heightEchelle+50+50)."><tr><td valign=bottom>";
		$html.="<table border=0 cellspacing=0 cellpadding=0 style='background-color:white;' height=".($heightEchelle+50).">";
		$html.="<tr>";
		$html.="<td valign=top>";
		$html.=" <table height=$heightEchelle width=60 border=0 cellspacing=0 cellpadding=0 style=''><tr><td width=60 valign=bottom>";
		$html.="<div style='position:relative;'>";
		$html.="<div style='position:absolute;bottom:".round($heightEchelle/4)."px;left:0;width:60px;text-align:right;'>".round($roundedValue/4)."_</div>";
		$html.="<div style='position:absolute;bottom:".round($heightEchelle/2)."px;left:0;width:60px;text-align:right;'>".round($roundedValue/2)."_</div>";
		$html.="<div style='position:absolute;bottom:".round($heightEchelle/(4/3))."px;left:0;width:60px;text-align:right;'>".round($roundedValue/(4/3))."_</div>";
		$html.="<div style='position:absolute;bottom:0px;left:0;width:60px;text-align:right;'>0_</div>";
		$html.="<div style='position:absolute;bottom:".$heightEchelle."px;left:0;width:60px;text-align:right;'>".$roundedValue."_</div>";
		$html.="</div>";
		$html.="</td><td style='background-color:black;' width=2></td></tr></table>";
		$html.="</td>";
		
		foreach($this->listeValues as $indice => $value)
		{
			if(is_array($value))
			{

				if(!isset($this->listeModesAffichage[$indice]) || $this->listeModesAffichage[$indice]!='cumul')
				{
					asort($value);
				}
		
				$html.="<td valign=bottom height=200>";
				
				$html.="<table cellspacing=0 cellpadding=0 border=0  width=$colWidth style=''>";
				$valPrecedente = 0;
				$arrayHtmlGraph = array();
				foreach($value as $index => $values)
				{
					if(isset($this->listeModesAffichage[$indice]) && $this->listeModesAffichage[$indice]=='cumul')
					{
						// dans ce cas on cumul les barres , on affiche la premiere puis la seconde au dessus
						$height1 = round($value[$index]*$hauteur/$roundedValue);
						$arrayHtmlGraph[] = "<tr><td style='".$this->listeStyles[$indice][$index]."' height=".$height1."></td></tr>";
					}
					else
					{
						// dans ce cas on affiche les barres les une derriere les autres , et ont chacune comme ordonnee 0 au depart
						$height1 = round((($value[$index] - $valPrecedente) * $hauteur) / $roundedValue);
						$arrayHtmlGraph[] = "<tr><td style='".$this->listeStyles[$indice][$index]."' height=".$height1."></td></tr>";
						$valPrecedente = $value[$index] - $valPrecedente;
					}
				}
				
				// et on affiche a l'envers
				for($i=count($arrayHtmlGraph)-1 ; $i>=0 ; $i--)
				{
					$html.=$arrayHtmlGraph[$i];
				}
				
				$html.="<tr height=50><td style='background-color:white;border-top:1px solid black;font-size:9px;' valign=top>".$this->listeLibelles[$indice]."</td></tr>";//
				$html.="</table>";
				$html.="</td>";
			}
			else
			{
				$html.="<td valign=bottom height=200>";
				$height = round($value * $hauteur / $roundedValue);
				$html.="<table cellspacing=0 cellpadding=0 border=0 height=".($height+50)." width=$colWidth style='".$this->listeStyles[$indice]."'>";
				$html.="<tr>";
				$html.="<td valign=top></td>";
				$html.="</tr>";
				$html.="<tr height=50><td style='background-color:white;border-top:1px solid black;font-size:9px;' valign=top>".$this->listeLibelles[$indice]."</td></tr>";//
				$html.="</table>";
				$html.="</td>";
			}
		}
		
		$html.="</tr>";
		$html.="</table>";
		$html.="</tr>";
		$html.="</table>";
		
		
		return $html;
	}
3167
public function formulaireActualites($params = array())
    {
        $html = "";
        $f    = new formGenerator();
        $d    = new dateObject();
        $c    = new calqueObject();
        $this->addToJsHeader("<script>".$c->getJSScrollHeight()."</script>");
        $html                                    .= $c->getDiv(array('width'=>900, 'lienSrcIFrame'=>'', 'titre'=>'Prévisualisation'));
        $idActualite                              = 0;
        $boutonNouveau                            = "";
        $boutonSupprimer                          = "";
        $boutonPrevisualiser                      = "<input type='button' name='previsualisation' value='Prévisualisation' onclick=\"tinyMCE.triggerSave(true,true);document.getElementById('".$c->getJSDivId()."').style.top=(50+getScrollHeight())+'px';document.getElementById('".$c->getJSIFrameId()."').src='".$this->creerUrl('', 'previsualisationActualite', array())."';".$c->getJSOpenPopup()."\">";
        $boutonValiderEtEnvoiMailPrevisualisation = "<input type='button' name='valideEtEnvoi' id='valideEtEnvoi' value=\"Envoyer le mail tout de suite\" onclick=\"document.getElementById('formActu').action+='&previsualisationMail=1';document.getElementById('formActu').submit();\">
        <input type='button' name='valideEtPrev' id='valideEtPrev' value='"._("Prévisualiser le mail")."' onclick=\"document.getElementById('formActu').action+='&previsualisationMail=1&preview=1';document.getElementById('formActu').setAttribute('target', '_blank'); document.getElementById('formActu').submit();\">
        <input type='button' name='testMail' id='testMail' value='"._("Envoyer un mail de test")."' onclick=\"document.getElementById('formActu').action+='&previsualisationMail=1&preview=1&testMail=1';document.getElementById('formActu').setAttribute('target', '_blank'); document.getElementById('formActu').submit();\">
        ";
        if (isset($this->variablesGet['archiIdActualite']) && $this->variablesGet['archiIdActualite']!='') {
            $idActualite           = $this->variablesGet['archiIdActualite'];
            $reqActu               = "SELECT date,titre, sousTitre,photoIllustration, texte,urlFichier, fichierPdf, desactive,texteMailHebdomadaire,envoiMailHebdomadaire FROM actualites WHERE idActualite='".$idActualite."'";
            $resActu               = $this->connexionBdd->requete($reqActu);
            $fetchActu             = mysql_fetch_assoc($resActu);
            $date                  = $d->toFrenchAffichage($fetchActu['date']);
            $titre                 = $fetchActu['titre'];
            $sousTitre             = $fetchActu['sousTitre'];
            $illustration          = $fetchActu['photoIllustration'];
            $description           = $fetchActu['texte'];
            $urlFichier            = $fetchActu['urlFichier'];
            $fichierPdf            = $fetchActu['fichierPdf'];
            $isDesactivated        = $fetchActu['desactive'];
            $texteMailHebdomadaire = $fetchActu['texteMailHebdomadaire'];
            $isEnvoi               = $fetchActu['envoiMailHebdomadaire'];
            $formAction            = $this->creerUrl('modifierActu', 'adminActualites', array('archiIdActualite'=>$idActualite));
            $boutonNouveau         = "<input type='button' name='nouveauButton' value='Nouveau' onclick=\"location.href='".$this->creerUrl('', 'adminActualites', array())."'\">";
            $boutonSupprimer       = "<input type='button' name='supprimerBouton' value='Supprimer' onclick=\"location.href='".$this->creerUrl('supprimerActu', 'adminActualites', array("idActuSuppr"=>$idActualite))."'\">";
        } else {
            $date                  = date("d/m/Y");
            $titre                 = "";
            $sousTitre             = "";
            $illustration          = "";
            $description           = "";
            $urlFichier            = "";
            $fichierPdf            = "";
            $isDesactivated        = 0;
            $texteMailHebdomadaire = "";
            $isEnvoi               = 0;
            $formAction            = $this->creerUrl('ajouterActu', 'adminActualites', array('check'=>1));

            // check sert juste a ne pas avoir a gerer le ? ou le & dans l'url quand on rajoute un parametre en js
        }
        $idActualitePathImage = "";
        if ($idActualite!=0) {
            $idActualitePathImage = $idActualite;
        }

        // bibliotheques d'images
        $fileObject    = new fileObject();
        $arrayFiles    = $fileObject->getListeFichiersArrayFrom($this->getCheminPhysique()."images/actualites/".$idActualite."/");
        $listeFichiers = "";
        $t             = new tableau();
        foreach ($arrayFiles as $indiceFichier=>$fichier) {
            if (strtolower($fileObject->getExtensionFromFile($fichier))=='jpg' || strtolower($fileObject->getExtensionFromFile($fichier))=='gif' || strtolower($fileObject->getExtensionFromFile($fichier))=='png') {
                $t->addValue("<a onclick='injectInTinyMce(\"<img src=\\\"".$this->getUrlImage()."actualites/".$idActualite."/".str_replace("'", "\\\'", $fichier)."\\\" border=0>\");'><img src=\"".$this->getUrlImage()."actualites/".$idActualite."/".$fichier."\" border=0 width=100 height=100></a>");
                $t->addValue("$fichier");
            } else {
                $t->addValue("&nbsp;");
                $t->addValue("$fichier");
            }
        }
        $listeFichiers = $t->createTable(2);
        $gestionBibliothequeImages = "Bibliothèque d'images de l'actualité <span style='font-size:11px;'>(cliquez sur une image pour l'inserer à la position du curseur)</span> : <div id='listeFichiers' style='background-color:#87CEFF;width:300px;height:200px;overflow:scroll;'>".$listeFichiers."</div>";
        $this->addToJsHeader(
            "<script>
                function injectInTinyMce(txt)
                {
                    tinyMCE.execInstanceCommand('texte','mceInsertContent',false,txt);
                }
                
                function goRedim(idActualite)
                {
                    // validation du formulaire pour creer l'identifiant de l'actu et pouvoir ranger les photos
                    document.getElementById('formActu').submit();
                }
            </script>"
        );

        // on ne gere pas de timestamp , on assume que seul l'admin fera des mises a jour des actualités
        $applet       = $fileObject->getAppletUploadMultiple(array('cheminApplet'=>$this->getUrlRacine()."/includes/", 'uploadDirPart1'=>$this->getCheminPhysique()."images/", 'uploadDirPart2'=>"uploadMultipleActualites/", 'jsFunctionNameOnExit'=>"goRedim($idActualite)"));
        $configFields = array('idActualite'=>array('libelle'=>"idActualite", 'type'=>'hidden', 'required'=>true, 'value'=>'', 'forceValueTo'=>$idActualite, 'htmlCode'=>'', 'error'=>''), 'desactive'=>array('libelle'=>"désactiver", 'type'=>'singleCheckBox', 'required'=>false, 'value'=>'', 'forceValueTo'=>'1', 'isChecked'=>$isDesactivated, 'htmlCode'=>'', 'error'=>'', 'default'=>''), 'date'=>array('libelle'=>"date", 'withDatePicker'=>true, 'type'=>'date', 'required'=>true, 'value'=>'', 'forceValueTo'=>$date, 'htmlCode'=>'', 'error'=>''), 'titre'=>array('libelle'=>"titre", 'type'=>'text', 'required'=>false, 'value'=>'', 'forceValueTo'=>$titre, 'htmlCode'=>"style='width:300px;'", 'error'=>''), 'sousTitre'=>array('libelle'=>"sous-titre", 'type'=>'text', 'required'=>false, 'value'=>'', 'forceValueTo'=>$sousTitre, 'htmlCode'=>"style='width:300px;'", 'error'=>''), 'photoIllustration'=>array('libelle'=>"illustration", 'type'=>'uploadImage', 'required'=>false, 'value'=>'', 'forceValueTo'=>$illustration, 'physicalImagePathForTestExists'=>$this->getCheminPhysique()."images/actualites/".$idActualitePathImage."/", 'urlImagePathForDisplayInForm'=>$this->getUrlImage()."actualites/".$idActualitePathImage."/", 'htmlCode'=>'', 'error'=>''), 'texte'=>array('libelle'=>"description", 'type'=>'tinyMCE', 'required'=>false, 'value'=>'', 'forceValueTo'=>$description, 'htmlCode'=>"cols=80 rows=30", 'error'=>'', 'htmlCode2'=>$gestionBibliothequeImages."<div><a onclick=\"if(document.getElementById('divApplet').style.display=='none'){document.getElementById('divApplet').style.display='block';}else{document.getElementById('divApplet').style.display='none';}\" style='cursor:pointer;'>Voir/cacher ajouter une image</a></div><div id='divApplet' style='float:left;display:none'>".$applet."</div>"), 'urlFichier'=>array('libelle'=>"url redirection", 'type'=>'text', 'required'=>false, 'value'=>'', 'forceValueTo'=>$urlFichier, 'htmlCode'=>"style='width:300px;'", 'error'=>''), 'fichierPdf'=>array('libelle'=>"fichier pdf", 'type'=>'text', 'required'=>false, 'value'=>'', 'forceValueTo'=>$fichierPdf, 'htmlCode'=>"style='width:300px;'", 'error'=>''), 'texteMailHebdomadaire'=>array('libelle'=>"description mail hebdomadaire <span style='color:red;'>(ne pas oublier de préciser le titre)</span>", 'type'=>'tinyMCE', 'required'=>false, 'value'=>'', 'forceValueTo'=>$texteMailHebdomadaire, 'htmlCode'=>"cols=80 rows=30", 'error'=>''), 'envoiMailHebdomadaire'=>array('libelle'=>"envoi avec la newsletter hebdomadaire", 'type'=>'singleCheckBox', 'required'=>false, 'value'=>'', 'forceValueTo'=>'1', 'isChecked'=>$isEnvoi, 'htmlCode'=>'', 'error'=>'', 'default'=>''));
        $configForm   = array("fields"=>$configFields, 'formAction'=>$formAction, 'codeHtmlAfterSubmitButton'=>$boutonNouveau.$boutonSupprimer.$boutonPrevisualiser.$boutonValiderEtEnvoiMailPrevisualisation, 'formName'=>'formActu');
        $html        .= $f->afficherFromArray($configForm);
        return $html;
    }
168808
def Email(
        self,
        From,
        To,
        Cc=None,
        Bcc=None,
        Subject=None,
        Tag=None,
        HtmlBody=None,
        TextBody=None,
        Metadata=None,
        ReplyTo=None,
        Headers=None,
        TrackOpens=None,
        TrackLinks="None",
        Attachments=None,
    ):
        
        return Email(
            manager=self,
            From=From,
            To=To,
            Cc=Cc,
            Bcc=Bcc,
            Subject=Subject,
            Tag=Tag,
            HtmlBody=HtmlBody,
            TextBody=TextBody,
            Metadata=Metadata,
            ReplyTo=ReplyTo,
            Headers=Headers,
            TrackOpens=TrackOpens,
            TrackLinks=TrackLinks,
            Attachments=Attachments,
        )
561052
function(to,tmpName,obj,cb){
    fs.readFile(
      path.join(__dirname, 'emailBoiler.html'),
      'utf8',
      function(err, data) {
        if (err){
          return cb(err);
        }
        var tmp = cfg.templates[tmpName];
        var locals = {
          title: '',
          content: tmp.text,
        };

        var html = ejs.render(data, locals);
        obj.link = '<a href="' + obj.url + '">' + tmp.linkText + '</a>';
        html = ejs.render(html,obj);

        var subject = ejs.render(tmp.subject,obj);

        sendEmail(to,subject,html,cb);
      }
    );
  }