-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathEmailTemplate.inc.php
377 lines (323 loc) · 7.38 KB
/
EmailTemplate.inc.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
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
<?php
/**
* @file classes/mail/EmailTemplate.inc.php
*
* Copyright (c) 2000-2013 John Willinsky
* Distributed under the GNU GPL v2. For full terms see the file docs/COPYING.
*
* @class BaseEmailTemplate
* @ingroup mail
* @see EmailTemplateDAO
*
* @brief Describes basic email template properties.
*/
/**
* Email template base class.
*/
class BaseEmailTemplate extends DataObject {
/**
* Constructor.
*/
function BaseEmailTemplate() {
parent::DataObject();
}
//
// Get/set methods
//
/**
* Get association type.
* @return int
*/
function getAssocType() {
return $this->getData('assocType');
}
/**
* Set association type.
* @param $assocType int
*/
function setAssocType($assocType) {
return $this->setData('assocType', $assocType);
}
/**
* Get ID of journal/conference/...
* @return int
*/
function getAssocId() {
return $this->getData('assocId');
}
/**
* Set ID of journal/conference/...
* @param $assocId int
*/
function setAssocId($assocId) {
return $this->setData('assocId', $assocId);
}
/**
* Determine whether or not this is a custom email template
* (ie one that was created by the journal/conference/... manager and
* is not part of the system upon installation)
*/
function isCustomTemplate() {
return false;
}
/**
* Get sender role ID.
*/
function getFromRoleId() {
return $this->getData('fromRoleId');
}
/**
* Get sender role name.
*/
function &getFromRoleName() {
$roleDao =& DAORegistry::getDAO('RoleDAO');
return $roleDao->getRoleName($this->getFromRoleId());
}
/**
* Set sender role ID.
* @param $fromRoleId int
*/
function setFromRoleId($fromRoleId) {
$this->setData('fromRoleId', $fromRoleId);
}
/**
* Get recipient role ID.
*/
function getToRoleId() {
return $this->getData('toRoleId');
}
/**
* Get recipient role name.
*/
function &getToRoleName() {
$roleDao =& DAORegistry::getDAO('RoleDAO');
return $roleDao->getRoleName($this->getToRoleId());
}
/**
* Set recipient role ID.
* @param $toRoleId int
*/
function setToRoleId($toRoleId) {
$this->setData('toRoleId', $toRoleId);
}
/**
* Get ID of email template.
* @return int
*/
function getEmailId() {
return $this->getData('emailId');
}
/**
* Set ID of email template.
* @param $emailId int
*/
function setEmailId($emailId) {
return $this->setData('emailId', $emailId);
}
/**
* Get key of email template.
* @return string
*/
function getEmailKey() {
return $this->getData('emailKey');
}
/**
* Set key of email template.
* @param $emailKey string
*/
function setEmailKey($emailKey) {
return $this->setData('emailKey', $emailKey);
}
/**
* Get the enabled setting of email template.
* @return boolean
*/
function getEnabled() {
return $this->getData('enabled');
}
/**
* Set the enabled setting of email template.
* @param $enabled boolean
*/
function setEnabled($enabled) {
return $this->setData('enabled', $enabled);
}
/**
* Check if email template is allowed to be disabled.
* @return boolean
*/
function getCanDisable() {
return $this->getData('canDisable');
}
/**
* Set whether or not email template is allowed to be disabled.
* @param $canDisable boolean
*/
function setCanDisable($canDisable) {
return $this->setData('canDisable', $canDisable);
}
}
/**
* Email template with data for all supported locales.
*/
class LocaleEmailTemplate extends BaseEmailTemplate {
/** @var $localeData array of localized email template data */
var $localeData;
/**
* Constructor.
*/
function LocaleEmailTemplate() {
parent::BaseEmailTemplate();
$this->localeData = array();
}
/**
* Set whether or not this is a custom template.
*/
function setCustomTemplate($isCustomTemplate) {
$this->isCustomTemplate = $isCustomTemplate;
}
/**
* Determine whether or not this is a custom email template
* (ie one that was created by the journal/conference/... manager and
* is not part of the system upon installation)
*/
function isCustomTemplate() {
return $this->isCustomTemplate;
}
/**
* Add a new locale to store data for.
* @param $locale string
*/
function addLocale($locale) {
$this->localeData[$locale] = array();
}
/**
* Get set of supported locales for this template.
* @return array
*/
function getLocales() {
return array_keys($this->localeData);
}
//
// Get/set methods
//
/**
* Get description of email template.
* @param $locale string
* @return string
*/
function getDescription($locale) {
return isset($this->localeData[$locale]['description']) ? $this->localeData[$locale]['description'] : '';
}
/**
* Set description of email template.
* @param $locale string
* @param $description string
*/
function setDescription($locale, $description) {
$this->localeData[$locale]['description'] = $description;
}
/**
* Get subject of email template.
* @param $locale string
* @return string
*/
function getSubject($locale) {
return isset($this->localeData[$locale]['subject']) ? $this->localeData[$locale]['subject'] : '';
}
/**
* Set subject of email template.
* @param $locale string
* @param $subject string
*/
function setSubject($locale, $subject) {
$this->localeData[$locale]['subject'] = $subject;
}
/**
* Get body of email template.
* @param $locale string
* @return string
*/
function getBody($locale) {
return isset($this->localeData[$locale]['body']) ? $this->localeData[$locale]['body'] : '';
}
/**
* Set body of email template.
* @param $locale string
* @param $body string
*/
function setBody($locale, $body) {
$this->localeData[$locale]['body'] = $body;
}
}
/**
* Email template for a specific locale.
*/
class EmailTemplate extends BaseEmailTemplate {
/**
* Constructor.
*/
function EmailTemplate() {
parent::BaseEmailTemplate();
}
/**
* Set whether or not this is a custom template.
*/
function setCustomTemplate($isCustomTemplate) {
$this->isCustomTemplate = $isCustomTemplate;
}
/**
* Determine whether or not this is a custom email template
* (ie one that was created by the journal/conference/... manager and
* is not part of the system upon installation)
*/
function isCustomTemplate() {
return $this->isCustomTemplate;
}
//
// Get/set methods
//
/**
* Get locale of email template.
* @return string
*/
function getLocale() {
return $this->getData('locale');
}
/**
* Set locale of email template.
* @param $locale string
*/
function setLocale($locale) {
return $this->setData('locale', $locale);
}
/**
* Get subject of email template.
* @return string
*/
function getSubject() {
return $this->getData('subject');
}
/**
* Set subject of email.
* @param $subject string
*/
function setSubject($subject) {
return $this->setData('subject', $subject);
}
/**
* Get body of email template.
* @return string
*/
function getBody() {
return $this->getData('body');
}
/**
* Set body of email template.
* @param $body string
*/
function setBody($body) {
return $this->setData('body', $body);
}
}
?>