/trunk/scripts/configurations/config.defaut.ini |
---|
74,9 → 74,9 |
adresse_destinataire_recapitulatif_determination = "determination_plantes@tela-botanica.org" |
; Titre du message de récapitulatif d'identiplante |
titre_message_recapitulatif = "Récapitulatif des derniers commentaires et propositions"; |
titre_message_recapitulatif = "Récapitulatif des derniers commentaires et propositions du %s"; |
; titre du message de récapitulatif des obs à déterminer |
titre_message_recapitulatif_obs = "Récapitulatif des dernières observations à déterminer" |
titre_message_recapitulatif_obs = "Récapitulatif des dernières observations à déterminer du %s" |
; +------------------------------------------------------------------------------------------------------+ |
; Espaces de noms |
/trunk/scripts/tb_del.sh |
---|
New file |
0,0 → 1,65 |
#!/bin/sh |
### BEGIN INIT INFO |
# Provides: tb_del |
# Required-Start: $local_fs $remote_fs |
# Required-Stop: $local_fs $remote_fs |
# Should-Start: $all |
# Should-Stop: $all |
# Default-Start: 2 3 4 5 |
# Default-Stop: 0 1 6 |
# Short-Description: Start/stop scripts maintenance et emails DEL |
# Description: Start/stop les scripts de maintenance et d'envoie d'emails de DEL. |
### END INIT INFO |
# Script de lancement des scripts d'identiPlante et pictoFlora. |
# À placer dans /etc/init.d/ puis à lancer : service tb_del start |
# Log : |
# - 2011-04-07 [Aurélien Peronnet] : création de lancement des scripts d'identiPlante et pictoFlora. |
# |
case "$1" in |
start) |
echo "Demarrage de del_mail_recapitulatif_obs :" |
nohup /usr/local/sbin/del_mail_recapitulatif_obs 1>/dev/null 2>/dev/null & |
echo "Demarrage de del_mail_recapitulatif_commentaires :" |
nohup /usr/local/sbin/del_mail_recapitulatif_commentaires 1>/dev/null 2>/dev/null & |
;; |
stop) |
echo "Arret de del_mail_recapitulatif_obs" |
PID=`ps -eaf | grep del_mail_recapitulatif_obs | grep -v grep | tr -s ' ' | cut -d' ' -f2 | head -n1` |
kill -9 ${PID} |
echo "Arret de del_mail_recapitulatif_commentaires" |
PID=`ps -eaf | grep del_mail_recapitulatif_commentaires | grep -v grep | tr -s ' ' | cut -d' ' -f2 | head -n1` |
kill -9 ${PID} |
;; |
status) |
echo -n "Voici les PID du processus del_mail_recapitulatif_obs :" |
PID=`ps -eaf | grep del_mail_recapitulatif_obs | grep -v grep | tr -s ' ' | cut -d' ' -f2 | head -n1` |
echo ${PID} |
echo -n "Voici les PID du processus del_mail_recapitulatif_commentaires :" |
PID=`ps -eaf | grep del_mail_recapitulatif_commentaires | grep -v grep | tr -s ' ' | cut -d' ' -f2 | head -n1` |
echo ${PID} |
;; |
*) |
echo "Usage: {start|stop|status}" |
exit 1 |
;; |
esac |
Property changes: |
Added: svn:executable |
+* |
\ No newline at end of property |
Added: svn:eol-style |
+native |
\ No newline at end of property |
/trunk/scripts/modules/commentaires/AlerteMailCommentaires.php |
---|
20,6 → 20,8 |
private $recapitulatifAdmin = []; |
private $messageRecapitulatif = null; |
private $dateRenvoi = null; |
private $observations_concernees = array(); |
private $correspondance_id_obs_auteurs = array(); |
private $utilisateursInfos = array(); |
31,6 → 33,7 |
public function executer() { |
try { |
$this->verifierModeUtilisation(); |
$this->verifierDateRenvoi(); |
$observations = $this->chargerObservationsCommentees(); |
if (!empty($observations)) { |
$this->formaterObservations($observations); |
55,9 → 58,23 |
} |
} |
private function verifierDateRenvoi() { |
$dateRenvoi = $this->conteneur->getParametre('d'); |
if ($dateRenvoi) { |
if (preg_match('/^[0-9]{4}-[0-1][0-9]-[0-3][0-9]$/', $dateRenvoi)) { |
$this->dateRenvoi = $dateRenvoi; |
} else { |
$msg = "Veuillez indiquer une date au format yyyy-mm-dd valide à la suite du paramètre «-d»."; |
new Exception($msg); |
} |
} |
} |
private function chargerObservationsCommentees() { |
// Seuls les utilisateurs ayant explicitement refusé le mail sont ignorés |
$preferences = $this->conteneur->getBdd()->proteger('%"mail_notification_mes_obs":"0"%'); |
$date = ($this->dateRenvoi == null) ? 'NOW()' : "'$this->dateRenvoi'"; |
//TODO: optimiser la requête si beaucoup de mails sont envoyés |
$requete = "SELECT * FROM del_observation AS do ". |
"WHERE do.id_observation IN ". |
74,7 → 91,7 |
" AND dc.ce_utilisateur = dob.ce_utilisateur ". |
" AND dc.ce_observation = dob.id_observation ". |
") ". |
"AND TO_DAYS(NOW()) - TO_DAYS(dc.date) <= 1 ". |
"AND TO_DAYS($date) - TO_DAYS(dc.date) IN (0, 1) ". |
") ". |
"AND do.ce_utilisateur NOT IN ". |
"( ". |
157,6 → 174,8 |
protected function chargerCommentairesDuJour() { |
$preferences = $this->conteneur->getBdd()->proteger('%"mail_notification_mes_obs":"0"%'); |
$date = ($this->dateRenvoi == null) ? 'NOW()' : "'$this->dateRenvoi'"; |
// TODO: optimiser la requête si beaucoup de mails sont envoyés |
$requete = "SELECT * ". |
"FROM del_commentaire AS dc ". |
175,7 → 194,7 |
" FROM del_utilisateur_infos ". |
" WHERE preferences LIKE $preferences ". |
") ". |
"AND TO_DAYS(NOW()) - TO_DAYS(dc.date) <= 1 ". |
"AND TO_DAYS($date) - TO_DAYS(dc.date) IN (0, 1) ". |
"ORDER BY dc.ce_observation"; |
$commentaires = $this->conteneur->getBdd()->recupererTous($requete); |
return $commentaires; |
244,10 → 263,12 |
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); |
$donnees = array( |
'utilisateur_courriel' => $this->conteneur->getParametre('adresse_expediteur_recapitulatif'), |
'format' => 'html', |
'sujet' => $this->conteneur->getParametre('titre_message_recapitulatif'), |
'sujet' => $sujet, |
'message' => $messageHtml, |
'message_txt' => $messageTxt |
); |
256,9 → 277,16 |
$clientRest->modifier($url, $donnees); |
} |
private function formaterDateCourante() { |
$date = ($this->dateRenvoi == null) ? time() : strtotime($this->dateRenvoi); |
$dateFmt = date('d-m-Y', $date); |
return $dateFmt; |
} |
private function envoyerMessageRecap() { |
$msgRecap = $this->obtenirMessageRecap(); |
$sujet = "IdentiPlante : récapitulatif envoies alertes commentaires"; |
$dateFmt = $this->formaterDateCourante(); |
$sujet = "IdentiPlante : récapitulatif envoies alertes commentaires du $dateFmt"; |
$messagerie = $this->conteneur->getMessagerie(); |
$destinataire = $this->conteneur->getParametre('email_recap'); |
$messagerie->envoyerTxt($destinataire, $sujet, $msgRecap); |
285,16 → 313,17 |
private function envoyerMessagesTesteur() { |
if ($this->testeurCourriel != null) { |
$messagerie = $this->conteneur->getMessagerie(); |
$dateFmt = $this->formaterDateCourante(); |
$sujet = "TESTEUR : récapitulatif envoies alertes commentaires"; |
$sujet = "TESTEUR : récapitulatif envoies alertes commentaires - $dateFmt"; |
$msgRecap = $this->obtenirMessageRecap(); |
$messagerie->envoyerTxt($this->testeurCourriel, $sujet, $msgRecap); |
$message = $this->recapitulatifAdmin[array_rand($this->recapitulatifAdmin)]; |
$sujet = "TESTEUR : exemple message HTML - alerte commentaire"; |
$sujet = "TESTEUR : exemple message HTML - alerte commentaire - $dateFmt"; |
$messagerie->envoyerHtml($this->testeurCourriel, $sujet, $message['html'], $message['txt']); |
$sujet = "TESTEUR : exemple message TXT - alerte commentaire"; |
$sujet = "TESTEUR : exemple message TXT - alerte commentaire - $dateFmt"; |
$messagerie->envoyerTxt($this->testeurCourriel, $sujet, $message['txt']); |
} |
} |
/trunk/scripts/modules/commentaires/Commentaires.php |
---|
15,7 → 15,8 |
class Commentaires extends DelScript { |
protected $parametres_autorises = array( |
'-t' => array(false, true, 'pour tester le script indiquer votre e-mail')); |
'-t' => array(false, true, 'Indiquez votre e-mail pour tester le script.'), |
'-d' => array(false, true, "Indiquer une date au format yyyy-mm-dd pour renvoyer l'alerte de cette date.")); |
public function executer() { |
try { |
/trunk/scripts/modules/commentaires/del_mail_recapitulatif_commentaires.sh |
---|
New file |
0,0 → 1,20 |
#!/bin/bash |
# |
# /etc/init.d/del_mail_recapitulatif : traitement des mails récapitulatifs d'identiplante |
# - 2014-03-20 [Jean-Pascal Milcent] : ajout gestion de l'heure d'execution |
# - 2012-07-03 [Aurélien Peronnet] : on |
# |
while true |
do |
HEURE=$(date "+%H") |
# Si nous sommes à 18h nous lançons le script |
if [$HEURE -eq 18 ] ; then |
logger "Lancement script del::alerteMailCommentaires" |
sudo -u apitela /usr/local/bin/php-cli-55 -f /home/apitela/www/scripts/del/cli.php commentaires -a alerteMail |
logger "Arret script referentiel::alerteMailCommentaires" |
sleep 1d |
else |
# Tentative toutes les heures jusqu'à la bonne heure |
sleep 1h |
fi |
done |
Property changes: |
Added: svn:executable |
+* |
\ No newline at end of property |
Added: svn:eol-style |
+native |
\ No newline at end of property |
/trunk/scripts/modules/adeterminer/Adeterminer.php |
---|
15,7 → 15,8 |
class Adeterminer extends DelScript { |
protected $parametres_autorises = array( |
'-t' => array(false, true, 'pour tester le script indiquer votre e-mail')); |
'-t' => array(false, true, 'Indiquez votre e-mail pour tester le script.'), |
'-d' => array(false, true, "Indiquer une date au format yyyy-mm-dd pour renvoyer l'alerte de cette date.")); |
public function executer() { |
try { |
/trunk/scripts/modules/adeterminer/AlerteMailADeterminer.php |
---|
20,6 → 20,8 |
private $recapitulatifAdmin = []; |
private $messageRecapitulatif = null; |
private $dateRenvoi = null; |
private $observations_concernees = array(); |
private $messageHtml = null; |
private $messageTxt = null; |
32,6 → 34,7 |
public function executer() { |
try { |
$this->verifierModeUtilisation(); |
$this->verifierDateRenvoi(); |
$observations = $this->chargerObsADeterminer(); |
if (!empty($observations)) { |
$this->formaterObservations($observations); |
55,8 → 58,21 |
} |
} |
private function verifierDateRenvoi() { |
$dateRenvoi = $this->conteneur->getParametre('d'); |
if ($dateRenvoi) { |
if (preg_match('/^[0-9]{4}-[0-1][0-9]-[0-3][0-9]$/', $dateRenvoi)) { |
$this->dateRenvoi = $dateRenvoi; |
} else { |
$msg = "Veuillez indiquer une date au format yyyy-mm-dd valide à la suite du paramètre «-d»."; |
new Exception($msg); |
} |
} |
} |
protected function chargerObsADeterminer() { |
//TODO: optimiser la requête si beaucoup de mails sont envoyés |
$date = ($this->dateRenvoi == null) ? 'CURDATE()' : "'$this->dateRenvoi'"; |
$requete = "SELECT * ". |
"FROM del_obs_image AS doi ". |
" INNER JOIN del_observation AS do ON doi.id_observation = do.id_observation ". |
65,9 → 81,9 |
' OR nom_sel IS NULL OR nom_sel = "" '. |
' OR nom_ret IS NULL OR nom_ret = "") '. |
' AND ('. |
' do.date_transmission > DATE_SUB(CURDATE(), INTERVAL 1 DAY) '. |
' OR do.date_creation > DATE_SUB(CURDATE(), INTERVAL 1 DAY) '. |
' OR do.date_modification > DATE_SUB(CURDATE(), INTERVAL 1 DAY) '. |
" TO_DAYS($date) - TO_DAYS(do.date_transmission) IN (0, 1) ". |
" OR TO_DAYS($date) - TO_DAYS(do.date_creation) IN (0, 1) ". |
" OR TO_DAYS($date) - TO_DAYS(do.date_modification) IN (0, 1) ". |
' ) '. |
"ORDER BY do.id_observation "; |
$obs = $this->conteneur->getBdd()->recupererTous($requete); |
162,8 → 178,8 |
private function envoyerMessageAuxUtilisateurs() { |
$utilisateurs = $this->obtenirDestinatairesMailsRecapitulatif(); |
foreach ($utilisateurs as $utilisateur) { |
$this->envoyerMessage($utilisateur['id_utilisateur']); |
foreach ($utilisateurs as $idUtilisateur) { |
$this->envoyerMessage($idUtilisateur); |
} |
} |
191,10 → 207,13 |
*/ |
private function envoyerMessage($id_destinataire) { |
$url = sprintf($this->conteneur->getParametre('url_service_messagerie'), $id_destinataire); |
$dateFmt = $this->formaterDateCourante(); |
$sujet = sprintf($this->conteneur->getParametre('titre_message_recapitulatif_obs'), $dateFmt); |
$donnees = array( |
'utilisateur_courriel' => $this->conteneur->getParametre('adresse_expediteur_recapitulatif'), |
'format' => 'html', |
'sujet' => $this->conteneur->getParametre('titre_message_recapitulatif_obs'), |
'sujet' => $sujet, |
'message' => $this->messageHtml, |
'message_txt' => $this->messageTxt |
); |
203,6 → 222,12 |
$clientRest->modifier($url, $donnees); |
} |
private function formaterDateCourante() { |
$date = ($this->dateRenvoi == null) ? time() : strtotime($this->dateRenvoi); |
$dateFmt = date('d-m-Y', $date); |
return $dateFmt; |
} |
/** La liste détermination n'étant pas un membre de tela botanica, |
* on lui envoie un message directement |
* @return boolean true ou false suivant le succès ou non de l'envoi |
209,7 → 234,8 |
*/ |
private function envoyerMessageListeDetermination() { |
$destinataires = $this->conteneur->getParametre('adresse_destinataire_recapitulatif_determination'); |
$sujet = $this->conteneur->getParametre('titre_message_recapitulatif_obs'); |
$dateFmt = $this->formaterDateCourante(); |
$sujet = sprintf($this->conteneur->getParametre('titre_message_recapitulatif_obs'), $dateFmt); |
$messagerie = $this->conteneur->getMessagerie(); |
$envoieStatut = $messagerie->envoyerHtml($destinataires, $sujet, $this->messageHtml, $this->messageTxt); |
218,7 → 244,8 |
private function envoyerMessageRecap() { |
$msgRecap = $this->obtenirMessageRecap(); |
$sujet = "IdentiPlante : récapitulatif envoies alertes à déterminer"; |
$dateFmt = $this->formaterDateCourante(); |
$sujet = "IdentiPlante : récapitulatif envoies alertes à déterminer du $dateFmt"; |
$messagerie = $this->conteneur->getMessagerie(); |
$destinataire = $this->conteneur->getParametre('email_recap'); |
$messagerie->envoyerTxt($destinataire, $sujet, $msgRecap); |
275,15 → 302,16 |
private function envoyerMessageTesteur() { |
if ($this->testeurCourriel != null) { |
$messagerie = $this->conteneur->getMessagerie(); |
$dateFmt = $this->formaterDateCourante(); |
$sujet = "TESTEUR : récapitulatif envoies alertes à déterminer"; |
$sujet = "TESTEUR : récapitulatif envoies alertes à déterminer - $dateFmt"; |
$msgRecap = $this->obtenirMessageRecap(); |
$messagerie->envoyerTxt($this->testeurCourriel, $sujet, $msgRecap); |
$sujet = "TESTEUR : exemple message HTML - alerte à déterminer"; |
$sujet = "TESTEUR : exemple message HTML - alerte à déterminer - $dateFmt"; |
$messagerie->envoyerHtml($this->testeurCourriel, $sujet, $this->messageHtml, $this->messageTxt); |
$sujet = "TESTEUR : exemple message TXT - alerte à déterminer"; |
$sujet = "TESTEUR : exemple message TXT - alerte à déterminer - $dateFmt"; |
$messagerie->envoyerTxt($this->testeurCourriel, $sujet, $this->messageTxt); |
} |
} |
/trunk/scripts/modules/adeterminer/del_mail_recapitulatif_obs.sh |
---|
New file |
0,0 → 1,20 |
#!/bin/bash |
# |
# /etc/init.d/del_mail_recapitulatif : traitement des mails récapitulatifs d'identiplante |
# - 2014-03-20 [Jean-Pascal Milcent] : ajout gestion de l'heure d'execution |
# - 2012-07-03 [Aurélien Peronnet] : création |
# |
while true |
do |
HEURE=$(date "+%H") |
# Si nous sommes à 18h nous lançon le script |
if [$HEURE -eq 18 ] ; then |
logger "Lancement script del::alerteMailADeterminer" |
sudo -u apitela /usr/local/bin/php-cli-55 -f /home/apitela/www/scripts/del/cli.php adeterminer -a alerteMail |
logger "Arret script del::alerteMailaDeterminer" |
sleep 1d |
else |
# Tentative toutes les heures jusqu'à la bonne heure |
sleep 1h |
fi |
done |
Property changes: |
Added: svn:executable |
+* |
\ No newline at end of property |
Added: svn:eol-style |
+native |
\ No newline at end of property |
/trunk/scripts/. |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /branches/v1.3-beryllium/scripts:r1741-1746 |