-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathsendReminder.php
147 lines (125 loc) · 6.31 KB
/
sendReminder.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
<?php
include_once('include/functions.php');
include_once('include/config.php');
include_once('include/config_mails.php');
include_once('include/HTML_HeaderFooter.php');
$db = connect_db();
# Omdat de server deze dagelijks moet draaien wordt toegang niet gedaan op basis
# van naam+wachtwoord maar op basis van IP-adres
if(in_array($_SERVER['REMOTE_ADDR'], $allowedIP)) {
$startTijd = mktime(0, 0, 0, date("n"), (date("j")+3), date("Y"));
$eindTijd = mktime(23, 59, 59, date("n"), (date("j")+3), date("Y"));
$diensten = getKerkdiensten($startTijd, $eindTijd);
$roosters = getRoosters(0);
# Mochten er diensten zijn, dan even alle teams opvragen
# Van deze teamID's een naam-array maken ($teamVulling).
# Deze $teamVulling wegschrijven in een array met alle team-vullingen per rooster ($teams)
foreach($diensten as $d) {
foreach($roosters as $r) {
$vulling = getRoosterVulling($r, $d);
if(is_array($vulling)) {
$teamVulling = array();
foreach($vulling as $lid) {
$teamVulling[$lid] = makeName($lid, 5);
}
$teams[$d][$r] = $teamVulling;
} else {
$teams[$d][$r] = array();
}
}
}
# Alle diensten doorlopen
foreach($diensten as $dienst) {
$dienstData = getKerkdienstDetails($dienst);
foreach($roosters as $rooster) {
$vulling = $teams[$dienst][$rooster];
if(is_array($vulling) AND count($vulling) > 0) {
$roosterData = getRoosterDetails($rooster);
# Alleen als is aangegeven dat er remindermails verstuurd moeten worden
# moet deze hele loop doorlopen worden
if($roosterData['reminder'] == 1) {
$positie = 0;
$HTMLMail = $roosterData['text_mail'];
$onderwerp = $roosterData['onderwerp_mail'];
foreach($vulling as $lid => $naam) {
$team = excludeID($vulling, $lid);
$positie++;
for($i=0 ; $i < 2 ; $i++) {
if($i==0) {
$ReplacedBericht = $HTMLMail;
} else {
$ReplacedBericht = $onderwerp;
}
$dagdeel = formatDagdeel($dienstData['start'], false);
$ReplacedBericht = str_replace ('[[voornaam]]', makeName($lid, 1), $ReplacedBericht);
$ReplacedBericht = str_replace ('[[achternaam]]', makeName($lid, 4), $ReplacedBericht);
$ReplacedBericht = str_replace ('[[dag]]', time2str ("%A", $dienstData['start']), $ReplacedBericht);
$ReplacedBericht = str_replace ('[[dagdeel]]', $dagdeel, $ReplacedBericht);
$ReplacedBericht = str_replace ('[[voorganger]]', $dienstData['voorganger'], $ReplacedBericht);
$ReplacedBericht = str_replace ('[[collecte1]]', $dienstData['collecte_1'], $ReplacedBericht);
$ReplacedBericht = str_replace ('[[collecte2]]', $dienstData['collecte_2'], $ReplacedBericht);
$ReplacedBericht = str_replace ('[[n]]', $positie, $ReplacedBericht);
$ReplacedBericht = str_replace ('[[n+1]]', ($positie+1), $ReplacedBericht);
# Als er meer dan 1 teamlid is dan een opsommingslijst, anders gewoon een vermelding
if(count($team) == 1) {
$ReplacedBericht = str_replace ('[[team]]', current($team), $ReplacedBericht);
} elseif(count($team) > 1) {
$ReplacedBericht = str_replace ('[[team]]', makeOpsomming($team), $ReplacedBericht);
} else {
$ReplacedBericht = str_replace ('[[team]]', 'onbekend', $ReplacedBericht);
}
# Als [[team|X]] voorkomt moeten deze vervangen worden
# Daarvoor worden alle roosters doorlopen en team erbij zoeken ($anderTeam)
# Als [[team|$roos]] voorkomt wordt dat vervangen door dat team
if(strpos($ReplacedBericht, '[[team|')) {
foreach($roosters as $roos) {
$anderTeam = $teams[$dienst][$roos];
if(count($anderTeam) == 1) {
$ReplacedBericht = str_replace ("[[team|$roos]]", current($anderTeam), $ReplacedBericht);
} elseif(count($anderTeam) > 1) {
$ReplacedBericht = str_replace ("[[team|$roos]]", makeOpsomming($anderTeam), $ReplacedBericht);
} else {
$ReplacedBericht = str_replace ("[[team|$roos]]", 'onbekend', $ReplacedBericht);
}
}
}
if($i==0) {
$memberData = getMemberDetails($lid);
$ReplacedBericht .= "<p>";
$ReplacedBericht .= "Ps 1. : je kan je persoonlijke 3GK-rooster opnemen in je digitale agenda door eenmalig <a href='". $ScriptURL ."ical/".$memberData['username'].'-'. $memberData['hash_short'] .".ics'>deze link</a> toe te voegen (<a href='". $ScriptURL ."ical/handleiding_ical.php'>handleiding</a>).<br>";
$ReplacedBericht .= "Ps 2. : mocht je onderling geruild hebben, wil je deze mail dan doorsturen naar de betreffende persoon?<br>";
//$ReplacedBericht .= "Ps 3. : <i>recent is de site verplaatst. Mocht je een bladwijzer hebben gemaakt voor de oude site, dan dien je deze aan te passen. Dit geldt ook voor bovenstaande digitale agenda</i><br>";
# Sommige rooster worden automatisch geimporteerd.
# Ruilen moet dus niet via de site
if(in_array($rooster, $importRoosters)) {
$ReplacedBericht .= "Als je een volgende keer de ruiling doorgeeft aan de roostermaker, zorgt die dat het op deze site ook wordt aangepast.";
} else {
$ReplacedBericht .= "In het vervolg kan je die ruiling ook doorgeven via <a href='". $ScriptURL ."showRooster.php?rooster=$rooster'>het rooster</a> zelf, dan komt de mail direct goed terecht.";
}
$FinalHTMLMail = $ReplacedBericht;
} else {
$FinalSubject = $ReplacedBericht;
}
}
unset($param);
$param['to'][] = array($lid);
$param['message'] = $FinalHTMLMail;
$param['subject'] = $FinalSubject;
$param['ReplyToName'] = $roosterData['naam_afzender'];
$param['ReplyTo'] = $roosterData['mail_afzender'];
if($RoosterData['partnerMail'] == 1) $param['partnerTo'] = true;
if($RoosterData['ouderMail'] == 1) $param['ouderCC'] = true;
if(sendMail_new($param)) {
toLog('info', $lid, 'herinnering-mail '. $roosterData['naam'] .' verstuurd');
} else {
toLog('error', $lid, 'problemen met herinnering-mail '. $roosterData['naam'] .' versturen');
}
}
}
}
}
}
} else {
toLog('error', '', 'Poging handmatige run herinneringmail, IP:'.$_SERVER['REMOTE_ADDR']);
}
?>