Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 1782 → Rev 1783

/trunk/scripts/modules/commentaires/AlerteMailCommentaires.php
104,10 → 104,15
return $observations;
}
 
// classe les observations concernées par id_utilisateur (ou courriel si non inscrit)
// de l'auteur puis par id_observation
private function formaterObservations($liste_obs) {
foreach ($liste_obs as $obs) {
$id_obs = $obs['id_observation'];
$id_auteur_obs = $obs['ce_utilisateur'];
if (($id_auteur_obs == 0) && ($obs['courriel_utilisateur'] != '')) {
$id_auteur_obs = $obs['courriel_utilisateur'];
}
 
$infos = array();
$infos['id'] = $id_obs;
217,14 → 222,25
 
protected function envoyerMessageAuxDestinataires() {
foreach ($this->observations_concernees as $auteurId => $liste_obs) {
$messageTxt = '';
$messageHtml = '';
$donnees = $this->formaterDonneesPourMessage($auteurId, $liste_obs);
$messageTxt = $this->formaterMessageTxt($donnees);
$messageHtml = $this->formaterMessageHtml($donnees);
$this->recapitulatifAdmin[$auteurId] = array('txt' => $messageTxt, 'html' => $messageHtml);
 
if ($this->testeurCourriel == null) {
$this->envoyerMessage($messageHtml, $messageTxt, $auteurId);
if (is_numeric($auteurId)) {
if ($auteurId != 0) {
$messageTxt = $this->formaterMessageTxt($donnees, true);
$messageHtml = $this->formaterMessageHtml($donnees, true);
$this->envoyerMessage($messageHtml, $messageTxt, $auteurId);
}
} else {
$messageTxt = $this->formaterMessageTxt($donnees, false);
$messageHtml = $this->formaterMessageHtml($donnees, false);
$this->envoyerMessageAdresseArbitraire($messageHtml, $messageTxt, $auteurId);
}
}
$this->recapitulatifAdmin[$auteurId] = array('txt' => $messageTxt, 'html' => $messageHtml);
}
if ($this->testeurCourriel == null) {
$this->envoyerMessageRecap();
232,15 → 248,34
$this->envoyerMessagesTesteur();
}
 
private function formaterMessageHtml($donnees) {
$squelette = dirname(__FILE__).DS.'squelettes'.DS.'commentaires.tpl.html';
// Envoie un message sans passer par l'annuaire, pour les utilisateurs non inscrits
private function envoyerMessageAdresseArbitraire($messageHtml, $messageTxt, $adresseAuteur) {
$dateFmt = $this->formaterDateCourante();
$sujet = sprintf($this->conteneur->getParametre('titre_message_recapitulatif'), $dateFmt);
$messagerie = $this->conteneur->getMessagerie();
 
// envoi mixte HTML + texte
$envoieStatut = $messagerie->envoyerHtml($adresseAuteur, $sujet, $messageHtml, $messageTxt);
return $envoieStatut;
}
 
private function formaterMessageHtml($donnees, $inscrit=true) {
if ($inscrit) {
$squelette = dirname(__FILE__).DS.'squelettes'.DS.'commentaires.tpl.html';
} else {
$squelette = dirname(__FILE__).DS.'squelettes'.DS.'commentaires_non_inscrits.tpl.html';
}
$squelettePhp = $this->conteneur->getSquelettePhp();
$msgHtml = $squelettePhp->analyser($squelette, $donnees);
return $msgHtml;
}
 
private function formaterMessageTxt($donnees) {
$squelette = dirname(__FILE__).DS.'squelettes'.DS.'commentaires.tpl.txt';
private function formaterMessageTxt($donnees, $inscrit=true) {
if ($inscrit) {
$squelette = dirname(__FILE__).DS.'squelettes'.DS.'commentaires.tpl.txt';
} else {
$squelette = dirname(__FILE__).DS.'squelettes'.DS.'commentaires_non_inscrits.tpl.txt';
}
$squelettePhp = $this->conteneur->getSquelettePhp();
$msgTxt = $squelettePhp->analyser($squelette, $donnees);
// Nettoyage des tabulations pour indentation du code PHP
261,7 → 296,9
return $intituleUtilisateur;
}
 
// envoie un message à un utilisateur inscrit, à l'aide de l'annuaire
private function envoyerMessage($messageHtml, $messageTxt, $id_destinataire) {
 
$url = sprintf($this->conteneur->getParametre('url_service_messagerie'), $id_destinataire);
$dateFmt = $this->formaterDateCourante();
$sujet = sprintf($this->conteneur->getParametre('titre_message_recapitulatif'), $dateFmt);
310,6 → 347,7
return $this->messageRecapitulatif;
}
 
// envoie au testeur une copie de chaque type de message envoyé aux utilisateurs
private function envoyerMessagesTesteur() {
if ($this->testeurCourriel != null) {
$messagerie = $this->conteneur->getMessagerie();
319,12 → 357,32
$msgRecap = $this->obtenirMessageRecap();
$messagerie->envoyerTxt($this->testeurCourriel, $sujet, $msgRecap);
 
$message = $this->recapitulatifAdmin[array_rand($this->recapitulatifAdmin)];
$sujet = "TESTEUR : HTML - commentaire du $dateFmt";
$messagerie->envoyerHtml($this->testeurCourriel, $sujet, $message['html'], $message['txt']);
// deux types de messages (inscrits et non inscrits)
$messageInscrits = null;
$messageNonInscrits = null;
// méga sous optimal
foreach($this->recapitulatifAdmin as $idUtil => $mess) {
if ($messageInscrits != null && $messageNonInscrits != null) {
break; // arrière, Satan ! (mais c'est bien pratique)
}
if (is_numeric($idUtil)) {
$messageInscrits = $mess;
} else {
$messageNonInscrits = $mess;
}
}
 
$sujet = "TESTEUR : TXT - commentaire du $dateFmt";
$messagerie->envoyerTxt($this->testeurCourriel, $sujet, $message['txt']);
$sujet = "TESTEUR : HTML (inscrits) - commentaire du $dateFmt";
$messagerie->envoyerHtml($this->testeurCourriel, $sujet, $messageInscrits['html'], $messageInscrits['txt']);
 
$sujet = "TESTEUR : TXT (inscrits) - commentaire du $dateFmt";
$messagerie->envoyerTxt($this->testeurCourriel, $sujet, $messageInscrits['txt']);
 
$sujet = "TESTEUR : HTML (non inscrits) - commentaire du $dateFmt";
$messagerie->envoyerHtml($this->testeurCourriel, $sujet, $messageNonInscrits['html'], $messageNonInscrits['txt']);
 
$sujet = "TESTEUR : TXT (non inscrits) - commentaire du $dateFmt";
$messagerie->envoyerTxt($this->testeurCourriel, $sujet, $messageNonInscrits['txt']);
}
}
 
332,8 → 390,12
$idUtilisateurs = array_keys($this->recapitulatifAdmin);
$utilisateursIntitules = [];
foreach ($idUtilisateurs as $utilisateurId) {
$infosUtilisateur = $this->telechargerUtilisateurInfos($utilisateurId);
$intitule = $this->formaterUtilisateurInfos($infosUtilisateur);
if (is_numeric($utilisateurId)) { // inscrit
$infosUtilisateur = $this->telechargerUtilisateurInfos($utilisateurId);
$intitule = $this->formaterUtilisateurInfos($infosUtilisateur);
} else { // non-inscrit
$intitule = $utilisateurId . " - utilisateur non inscrit";
}
$utilisateursIntitules[$utilisateurId] = $intitule;
}
asort($utilisateursIntitules);
/trunk/scripts/modules/commentaires/squelettes/commentaires_non_inscrits.tpl.html
New file
0,0 → 1,116
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css">
<!--
body {
font-family: Arial,Helvetica,Verdana,sans-serif;
font-size: 14px;
}
h1 > a {
color:#fd8c13;
}
.emphase {
color: #777777;
}
h3 {
font-size:14px;
color:#454341 !important;
margin:0px;
}
h3 > a {
color:#454341;
}
h1 a, h3 a, h4 a {
color: inherit;
border-bottom: dotted 1px;
}
h3 a {
border-color:#CCCCCC;
}
a {
cursor: pointer;
color:#598000;
text-decoration:none;
border-bottom:1px dotted #95ae5d;
}
a:hover {
color:#FD8C13;
border-bottom:1px dotted #95ae5d;
}
.lire-suite {
padding-left:10px;
background:url(http://www.tela-botanica.org/sites/commun/generique/images/graphisme/petit_carre.png) no-repeat 0px 4px;
}
.description_message {
color: #333333;
font-size: 1.1em;
font-style: italic;
padding-top: 10px;
}
-->
</style>
</head>
<body>
<div>
<h1><span class="emphase">IdentiPlante</span> : un telabotaniste vous a aid&eacute; </h1>
</div>
<div class="description_message">
Bonjour <?= $auteur_formate ?>,<br />
Un Telabotaniste vient de proposer une nouvelle d&eacute;termination ou de faire un commentaire concernant vos données :<br />
<br />
</div>
 
<?php foreach ($liste_observations as $observation) : ?>
<h3>
<span class="emphase">--&gt;</span>
<a href="<?= $observation['lien']; ?>">
observation <?= $observation['id'] ?> - <em><?= $observation['nom_sci']; ?></em>
</a>
observ&eacute; le <?= $observation['date']; ?> &agrave; <?= $observation['lieu']; ?>
</h3>
<?php foreach ($observation['commentaires'] as $commentaire) : ?>
<?php if ($commentaire['nom_sel'] == '') : ?>
<div class="commentaire">
&nbsp;&nbsp;- <?= $commentaire['auteur'] ?> a &eacute;crit <em>"<?= $commentaire['texte'] ?>"</em>
</div>
<?php else : ?>
<div class="proposition">
&nbsp;&nbsp;- <?= $commentaire['auteur'] ?> a propos&eacute; <em><?= $commentaire['nom_sel'] ?></em><br />
<?php if ($commentaire['texte'] != '') : ?>
et a &eacute;crit : <em>"<?= $commentaire['texte'] ?>"</em>
<?php endif; ?>
</div>
<?php endif; ?>
<?php endforeach ; ?>
<br />
<?php endforeach ; ?>
 
<h2>Je souhaite poursuivre ma participation</h2>
<ul>
<li>
Comment m'inscrire à Tela Botanica ?
</li>
<li>
Comment utiliser Identiplante ?
</li>
<li>
Comment gérer ses données avec le Carnet en Ligne ?
</li>
</ul>
 
Bonne continuation sur nos outils botaniques !<br />
L'&eacute;quipe de Tela Botanica<br />
<div>---------</div>
<br/>
<small>
Ce message vous est envoy&eacute; par l'interm&eacute;diaire de l'application IdentiPlante du r&eacute;seau Tela Botanica.
<a href="http://www.tela-botanica.org/appli:identiplante">http://www.tela-botanica.org/appli:identiplante </a>
</small>
<br />
<small>
Si vous ne souhaitez plus recevoir ce mail d&eacute;cochez la case dans vos pr&eacute;f&eacute;rences sur l'interface d'IdentiPlante.
</small>
</body>
</html>
/trunk/scripts/modules/commentaires/squelettes/commentaires_non_inscrits.tpl.txt
New file
0,0 → 1,29
Bonjour <?= $auteur_formate ?>,
Un Telabotaniste vient de proposer une nouvelle détermination ou de faire un commentaire concernant vos données :
 
<?php foreach ($liste_observations as $observation) : ?>
--> Observation #<?= $observation['id'] ?> - <<?= $observation['lien']; ?>>
* <?= $observation['nom_sci']; ?> observée le <?= $observation['date']; ?> à <?= $observation['lieu']; ?> *
<?php foreach ($observation['commentaires'] as $commentaire) : ?>
<?php if ($commentaire['nom_sel'] == '') : ?>
- <?= $commentaire['auteur'] ?> a écrit "<?= $commentaire['texte'] ?>"
<?php else : ?>
- <?= $commentaire['auteur'] ?> a proposé "<?= $commentaire['nom_sel'] ?>"<?php if ($commentaire['texte'] != '') : ?> et a écrit : "<?= $commentaire['texte'] ?>"<?php endif; ?>
 
<?php endif; ?>
<?php endforeach ; ?>
 
 
<?php endforeach ; ?>
 
Je souhaite poursuivre ma participation :
- Comment m'inscrire à Tela Botanica ?
- Comment utiliser Identiplante ?
- Comment gérer ses données avec le Carnet en Ligne ?
 
Bonne continuation sur nos outils botaniques !
--
L'équipe de Tela Botanica
 
Ce message vous est envoyé par l'intermédiaire de l'application IdentiPlante du réseau Tela Botanica : http://www.tela-botanica.org/appli:identiplante
Si vous ne souhaitez plus recevoir ce courriel décochez la case dans vos préférences sur l'interface d'IdentiPlante.