@@ -16,8 +16,8 @@ |
||
16 | 16 | namespace Fisharebest\Webtrees; |
17 | 17 | |
18 | 18 | use Exception; |
19 | -use Swift_Mailer; |
|
20 | 19 | use Swift_MailTransport; |
20 | +use Swift_Mailer; |
|
21 | 21 | use Swift_Message; |
22 | 22 | use Swift_NullTransport; |
23 | 23 | use Swift_SmtpTransport; |
@@ -45,15 +45,15 @@ discard block |
||
45 | 45 | */ |
46 | 46 | public static function send(Tree $tree, $to_email, $to_name, $replyto_email, $replyto_name, $subject, $message) { |
47 | 47 | try { |
48 | - $mail = Swift_Message::newInstance() |
|
49 | - ->setSubject($subject) |
|
50 | - ->setFrom(Site::getPreference('SMTP_FROM_NAME'), $tree->getPreference('title')) |
|
51 | - ->setTo($to_email, $to_name) |
|
52 | - ->setReplyTo($replyto_email, $replyto_name) |
|
53 | - ->setBody($message, 'text/html') |
|
54 | - ->addPart(Filter::unescapeHtml($message), 'text/plain'); |
|
48 | + $mail = Swift_Message::newInstance() |
|
49 | + ->setSubject($subject) |
|
50 | + ->setFrom(Site::getPreference('SMTP_FROM_NAME'), $tree->getPreference('title')) |
|
51 | + ->setTo($to_email, $to_name) |
|
52 | + ->setReplyTo($replyto_email, $replyto_name) |
|
53 | + ->setBody($message, 'text/html') |
|
54 | + ->addPart(Filter::unescapeHtml($message), 'text/plain'); |
|
55 | 55 | |
56 | - Swift_Mailer::newInstance(self::transport())->send($mail); |
|
56 | + Swift_Mailer::newInstance(self::transport())->send($mail); |
|
57 | 57 | } catch (Exception $ex) { |
58 | 58 | Log::addErrorLog('Mail: ' . $ex->getMessage()); |
59 | 59 | |
@@ -93,20 +93,20 @@ discard block |
||
93 | 93 | case 'internal': |
94 | 94 | return Swift_MailTransport::newInstance(); |
95 | 95 | case 'external': |
96 | - $transport = Swift_SmtpTransport::newInstance() |
|
97 | - ->setHost(Site::getPreference('SMTP_HOST')) |
|
98 | - ->setPort(Site::getPreference('SMTP_PORT')) |
|
99 | - ->setLocalDomain(Site::getPreference('SMTP_HELO')); |
|
96 | + $transport = Swift_SmtpTransport::newInstance() |
|
97 | + ->setHost(Site::getPreference('SMTP_HOST')) |
|
98 | + ->setPort(Site::getPreference('SMTP_PORT')) |
|
99 | + ->setLocalDomain(Site::getPreference('SMTP_HELO')); |
|
100 | 100 | |
101 | - if (Site::getPreference('SMTP_AUTH')) { |
|
102 | - $transport |
|
103 | - ->setUsername(Site::getPreference('SMTP_AUTH_USER')) |
|
104 | - ->setPassword(Site::getPreference('SMTP_AUTH_PASS')); |
|
105 | - } |
|
101 | + if (Site::getPreference('SMTP_AUTH')) { |
|
102 | + $transport |
|
103 | + ->setUsername(Site::getPreference('SMTP_AUTH_USER')) |
|
104 | + ->setPassword(Site::getPreference('SMTP_AUTH_PASS')); |
|
105 | + } |
|
106 | 106 | |
107 | - if (Site::getPreference('SMTP_SSL') !== 'none') { |
|
108 | - $transport->setEncryption(Site::getPreference('SMTP_SSL')); |
|
109 | - } |
|
107 | + if (Site::getPreference('SMTP_SSL') !== 'none') { |
|
108 | + $transport->setEncryption(Site::getPreference('SMTP_SSL')); |
|
109 | + } |
|
110 | 110 | |
111 | 111 | return $transport; |
112 | 112 | default: |
@@ -159,7 +159,7 @@ discard block |
||
159 | 159 | * @param string $xref2 |
160 | 160 | * @param int $tree_id |
161 | 161 | * |
162 | - * @return array |
|
162 | + * @return string[] |
|
163 | 163 | */ |
164 | 164 | private function allAncestors($xref1, $xref2, $tree_id) { |
165 | 165 | $ancestors = array($xref1, $xref2); |
@@ -198,7 +198,7 @@ discard block |
||
198 | 198 | * @param string $xref2 |
199 | 199 | * @param int $tree_id |
200 | 200 | * |
201 | - * @return array |
|
201 | + * @return string[] |
|
202 | 202 | */ |
203 | 203 | private function excludeFamilies($xref1, $xref2, $tree_id) { |
204 | 204 | return Database::prepare( |
@@ -102,7 +102,8 @@ discard block |
||
102 | 102 | <td class="optionbox"> |
103 | 103 | <?php if ($ancestors_only === '1'): ?> |
104 | 104 | <input type="hidden" name="ancestors" value="1"> |
105 | - <?php else: ?> |
|
105 | + <?php else { |
|
106 | + : ?> |
|
106 | 107 | <label> |
107 | 108 | <input type="radio" name="ancestors" value="0" <?php echo $ancestors == 0 ? 'checked' : '' ?>> |
108 | 109 | <?php echo I18N::translate('Find any relationship') ?> |
@@ -114,12 +115,15 @@ discard block |
||
114 | 115 | </label> |
115 | 116 | |
116 | 117 | <hr> |
117 | - <?php endif; ?> |
|
118 | + <?php endif; |
|
119 | +} |
|
120 | +?> |
|
118 | 121 | |
119 | 122 | <?php if ($max_recursion == 0): ?> |
120 | 123 | <?php echo I18N::translate('Find the closest relationships') ?> |
121 | 124 | <input type="hidden" name="recursion" value="0"> |
122 | - <?php else: ?> |
|
125 | + <?php else { |
|
126 | + : ?> |
|
123 | 127 | <label> |
124 | 128 | <input type="radio" name="recursion" value="0" <?php echo $recursion == 0 ? 'checked' : '' ?>> |
125 | 129 | <?php echo I18N::translate('Find the closest relationships') ?> |
@@ -131,7 +135,9 @@ discard block |
||
131 | 135 | <?php echo I18N::translate('Find all possible relationships') ?> |
132 | 136 | <?php else: ?> |
133 | 137 | <?php echo I18N::translate('Find other relationships') ?> |
134 | - <?php endif; ?> |
|
138 | + <?php endif; |
|
139 | +} |
|
140 | +?> |
|
135 | 141 | </label> |
136 | 142 | <?php endif; ?> |
137 | 143 | </td> |
@@ -1717,7 +1717,7 @@ |
||
1717 | 1717 | if ($endjd === $startjd) { |
1718 | 1718 | $html .= I18N::translate('No events exist for tomorrow.'); |
1719 | 1719 | } else { |
1720 | - $html .= /* I18N: translation for %s==1 is unused; it is translated separately as “tomorrow” */ I18N::plural('No events exist for the next %s day.', 'No events exist for the next %s days.', $endjd - $startjd + 1, I18N::number($endjd - $startjd + 1)); |
|
1720 | + $html .= /* I18N: translation for %s==1 is unused; it is translated separately as “tomorrow” */ I18N::plural('No events exist for the next %s day.', 'No events exist for the next %s days.', $endjd - $startjd + 1, I18N::number($endjd - $startjd + 1)); |
|
1721 | 1721 | } |
1722 | 1722 | } else { |
1723 | 1723 | if ($endjd === $startjd) { |
@@ -154,10 +154,22 @@ discard block |
||
154 | 154 | <input type="text" id="value<?php echo $i; ?>" name="values[<?php echo $i; ?>]" value="<?php echo Filter::escapeHtml($controller->getValue($i)); ?>"<?php echo substr($controller->getField($i), -4) == 'PLAC' ? 'data-autocomplete-type="PLAC"' : ''; ?>> |
155 | 155 | <?php if (preg_match('/^NAME:/', $currentFieldSearch) > 0) { ?> |
156 | 156 | <select name="fields[<?php echo $i; ?>]"> |
157 | - <option value="<?php echo $currentField; ?>:EXACT" <?php if (preg_match('/:EXACT$/', $currentFieldSearch) > 0) echo 'selected'; ?>><?php echo I18N::translate('Exact'); ?></option> |
|
158 | - <option value="<?php echo $currentField; ?>:BEGINS" <?php if (preg_match('/:BEGINS$/', $currentFieldSearch) > 0) echo 'selected'; ?>><?php echo I18N::translate('Begins with'); ?></option> |
|
159 | - <option value="<?php echo $currentField; ?>:CONTAINS" <?php if (preg_match('/:CONTAINS$/', $currentFieldSearch) > 0) echo 'selected'; ?>><?php echo I18N::translate('Contains'); ?></option> |
|
160 | - <option value="<?php echo $currentField; ?>:SDX" <?php if (preg_match('/:SDX$/', $currentFieldSearch) > 0) echo 'selected'; ?>><?php echo I18N::translate('Sounds like'); ?></option> |
|
157 | + <option value="<?php echo $currentField; ?>:EXACT" <?php if (preg_match('/:EXACT$/', $currentFieldSearch) > 0) { |
|
158 | + echo 'selected'; |
|
159 | +} |
|
160 | +?>><?php echo I18N::translate('Exact'); ?></option> |
|
161 | + <option value="<?php echo $currentField; ?>:BEGINS" <?php if (preg_match('/:BEGINS$/', $currentFieldSearch) > 0) { |
|
162 | + echo 'selected'; |
|
163 | +} |
|
164 | +?>><?php echo I18N::translate('Begins with'); ?></option> |
|
165 | + <option value="<?php echo $currentField; ?>:CONTAINS" <?php if (preg_match('/:CONTAINS$/', $currentFieldSearch) > 0) { |
|
166 | + echo 'selected'; |
|
167 | +} |
|
168 | +?>><?php echo I18N::translate('Contains'); ?></option> |
|
169 | + <option value="<?php echo $currentField; ?>:SDX" <?php if (preg_match('/:SDX$/', $currentFieldSearch) > 0) { |
|
170 | + echo 'selected'; |
|
171 | +} |
|
172 | +?>><?php echo I18N::translate('Sounds like'); ?></option> |
|
161 | 173 | </select> |
162 | 174 | <?php } else { ?> |
163 | 175 | <input type="hidden" name="fields[<?php echo $i; ?>]" value="<?php echo $controller->getField($i); ?>"> |
@@ -166,9 +178,18 @@ discard block |
||
166 | 178 | ?> |
167 | 179 | <select name="plusminus[<?php echo $i; ?>]"> |
168 | 180 | <option value=""><?php echo I18N::translate('Exact date'); ?></option> |
169 | - <option value="2" <?php if (!empty($controller->plusminus[$i]) && $controller->plusminus[$i] == 2) echo 'selected'; ?>><?php echo I18N::plural('±%s year', '±%s years', 2, I18N::number(2)); ?></option> |
|
170 | - <option value="5" <?php if (!empty($controller->plusminus[$i]) && $controller->plusminus[$i] == 5) echo 'selected'; ?>><?php echo I18N::plural('±%s year', '±%s years', 5, I18N::number(5)); ?></option> |
|
171 | - <option value="10" <?php if (!empty($controller->plusminus[$i]) && $controller->plusminus[$i] == 10) echo 'selected'; ?>><?php echo I18N::plural('±%s year', '±%s years', 10, I18N::number(10)); ?></option> |
|
181 | + <option value="2" <?php if (!empty($controller->plusminus[$i]) && $controller->plusminus[$i] == 2) { |
|
182 | + echo 'selected'; |
|
183 | +} |
|
184 | +?>><?php echo I18N::plural('±%s year', '±%s years', 2, I18N::number(2)); ?></option> |
|
185 | + <option value="5" <?php if (!empty($controller->plusminus[$i]) && $controller->plusminus[$i] == 5) { |
|
186 | + echo 'selected'; |
|
187 | +} |
|
188 | +?>><?php echo I18N::plural('±%s year', '±%s years', 5, I18N::number(5)); ?></option> |
|
189 | + <option value="10" <?php if (!empty($controller->plusminus[$i]) && $controller->plusminus[$i] == 10) { |
|
190 | + echo 'selected'; |
|
191 | +} |
|
192 | +?>><?php echo I18N::plural('±%s year', '±%s years', 10, I18N::number(10)); ?></option> |
|
172 | 193 | </select> |
173 | 194 | <?php } ?> |
174 | 195 | </td> |
@@ -216,10 +237,22 @@ discard block |
||
216 | 237 | <td class="list_value"> |
217 | 238 | <input type="text" name="values[<?php echo $j; ?>]" value="<?php echo $controller->getValue($controller->getIndex('FAMC:HUSB:NAME:GIVN:' . $fatherGivnOption)); ?>"> |
218 | 239 | <select name="fields[<?php echo $j; ?>]"> |
219 | - <option value="FAMC:HUSB:NAME:GIVN:EXACT" <?php if ($fatherGivnOption == 'EXACT') echo 'selected'; ?>><?php echo I18N::translate('Exact'); ?></option> |
|
220 | - <option value="FAMC:HUSB:NAME:GIVN:BEGINS" <?php if ($fatherGivnOption == 'BEGINS') echo 'selected'; ?>><?php echo I18N::translate('Begins with'); ?></option> |
|
221 | - <option value="FAMC:HUSB:NAME:GIVN:CONTAINS" <?php if ($fatherGivnOption == 'CONTAINS') echo 'selected'; ?>><?php echo I18N::translate('Contains'); ?></option> |
|
222 | - <option value="FAMC:HUSB:NAME:GIVN:SDX" <?php if ($fatherGivnOption == 'SDX') echo 'selected'; ?>><?php echo I18N::translate('Sounds like'); ?></option> |
|
240 | + <option value="FAMC:HUSB:NAME:GIVN:EXACT" <?php if ($fatherGivnOption == 'EXACT') { |
|
241 | + echo 'selected'; |
|
242 | +} |
|
243 | +?>><?php echo I18N::translate('Exact'); ?></option> |
|
244 | + <option value="FAMC:HUSB:NAME:GIVN:BEGINS" <?php if ($fatherGivnOption == 'BEGINS') { |
|
245 | + echo 'selected'; |
|
246 | +} |
|
247 | +?>><?php echo I18N::translate('Begins with'); ?></option> |
|
248 | + <option value="FAMC:HUSB:NAME:GIVN:CONTAINS" <?php if ($fatherGivnOption == 'CONTAINS') { |
|
249 | + echo 'selected'; |
|
250 | +} |
|
251 | +?>><?php echo I18N::translate('Contains'); ?></option> |
|
252 | + <option value="FAMC:HUSB:NAME:GIVN:SDX" <?php if ($fatherGivnOption == 'SDX') { |
|
253 | + echo 'selected'; |
|
254 | +} |
|
255 | +?>><?php echo I18N::translate('Sounds like'); ?></option> |
|
223 | 256 | </select> |
224 | 257 | </td> |
225 | 258 | </tr> |
@@ -231,10 +264,22 @@ discard block |
||
231 | 264 | <td class="list_value"> |
232 | 265 | <input type="text" name="values[<?php echo $j; ?>]" value="<?php echo $controller->getValue($controller->getIndex('FAMC:HUSB:NAME:SURN:' . $fatherSurnOption)); ?>"> |
233 | 266 | <select name="fields[<?php echo $j; ?>]"> |
234 | - <option value="FAMC:HUSB:NAME:SURN:EXACT" <?php if ($fatherSurnOption == 'EXACT') echo 'selected'; ?>><?php echo I18N::translate('Exact'); ?></option> |
|
235 | - <option value="FAMC:HUSB:NAME:SURN:BEGINS" <?php if ($fatherSurnOption == 'BEGINS') echo 'selected'; ?>><?php echo I18N::translate('Begins with'); ?></option> |
|
236 | - <option value="FAMC:HUSB:NAME:SURN:CONTAINS" <?php if ($fatherSurnOption == 'CONTAINS') echo 'selected'; ?>><?php echo I18N::translate('Contains'); ?></option> |
|
237 | - <option value="FAMC:HUSB:NAME:SURN:SDX" <?php if ($fatherSurnOption == 'SDX') echo 'selected'; ?>><?php echo I18N::translate('Sounds like'); ?></option> |
|
267 | + <option value="FAMC:HUSB:NAME:SURN:EXACT" <?php if ($fatherSurnOption == 'EXACT') { |
|
268 | + echo 'selected'; |
|
269 | +} |
|
270 | +?>><?php echo I18N::translate('Exact'); ?></option> |
|
271 | + <option value="FAMC:HUSB:NAME:SURN:BEGINS" <?php if ($fatherSurnOption == 'BEGINS') { |
|
272 | + echo 'selected'; |
|
273 | +} |
|
274 | +?>><?php echo I18N::translate('Begins with'); ?></option> |
|
275 | + <option value="FAMC:HUSB:NAME:SURN:CONTAINS" <?php if ($fatherSurnOption == 'CONTAINS') { |
|
276 | + echo 'selected'; |
|
277 | +} |
|
278 | +?>><?php echo I18N::translate('Contains'); ?></option> |
|
279 | + <option value="FAMC:HUSB:NAME:SURN:SDX" <?php if ($fatherSurnOption == 'SDX') { |
|
280 | + echo 'selected'; |
|
281 | +} |
|
282 | +?>><?php echo I18N::translate('Sounds like'); ?></option> |
|
238 | 283 | </select> |
239 | 284 | </td> |
240 | 285 | </tr> |
@@ -252,10 +297,22 @@ discard block |
||
252 | 297 | <td class="list_value"> |
253 | 298 | <input type="text" name="values[<?php echo $j; ?>]" value="<?php echo $controller->getValue($controller->getIndex('FAMC:WIFE:NAME:GIVN:' . $motherGivnOption)); ?>"> |
254 | 299 | <select name="fields[<?php echo $j; ?>]"> |
255 | - <option value="FAMC:WIFE:NAME:GIVN:EXACT" <?php if ($motherGivnOption == 'EXACT') echo 'selected'; ?>><?php echo I18N::translate('Exact'); ?></option> |
|
256 | - <option value="FAMC:WIFE:NAME:GIVN:BEGINS" <?php if ($motherGivnOption == 'BEGINS') echo 'selected'; ?>><?php echo I18N::translate('Begins with'); ?></option> |
|
257 | - <option value="FAMC:WIFE:NAME:GIVN:CONTAINS" <?php if ($motherGivnOption == 'CONTAINS') echo 'selected'; ?>><?php echo I18N::translate('Contains'); ?></option> |
|
258 | - <option value="FAMC:WIFE:NAME:GIVN:SDX" <?php if ($motherGivnOption == 'SDX') echo 'selected'; ?>><?php echo I18N::translate('Sounds like'); ?></option> |
|
300 | + <option value="FAMC:WIFE:NAME:GIVN:EXACT" <?php if ($motherGivnOption == 'EXACT') { |
|
301 | + echo 'selected'; |
|
302 | +} |
|
303 | +?>><?php echo I18N::translate('Exact'); ?></option> |
|
304 | + <option value="FAMC:WIFE:NAME:GIVN:BEGINS" <?php if ($motherGivnOption == 'BEGINS') { |
|
305 | + echo 'selected'; |
|
306 | +} |
|
307 | +?>><?php echo I18N::translate('Begins with'); ?></option> |
|
308 | + <option value="FAMC:WIFE:NAME:GIVN:CONTAINS" <?php if ($motherGivnOption == 'CONTAINS') { |
|
309 | + echo 'selected'; |
|
310 | +} |
|
311 | +?>><?php echo I18N::translate('Contains'); ?></option> |
|
312 | + <option value="FAMC:WIFE:NAME:GIVN:SDX" <?php if ($motherGivnOption == 'SDX') { |
|
313 | + echo 'selected'; |
|
314 | +} |
|
315 | +?>><?php echo I18N::translate('Sounds like'); ?></option> |
|
259 | 316 | </select> |
260 | 317 | </td> |
261 | 318 | <?php $j++; ?> |
@@ -267,10 +324,22 @@ discard block |
||
267 | 324 | <td class="list_value"> |
268 | 325 | <input type="text" name="values[<?php echo $j; ?>]" value="<?php echo $controller->getValue($controller->getIndex('FAMC:WIFE:NAME:SURN:' . $motherSurnOption)); ?>"> |
269 | 326 | <select name="fields[<?php echo $j; ?>]"> |
270 | - <option value="FAMC:WIFE:NAME:SURN:EXACT" <?php if ($motherSurnOption == 'EXACT') echo 'selected'; ?>><?php echo I18N::translate('Exact'); ?></option> |
|
271 | - <option value="FAMC:WIFE:NAME:SURN:BEGINS" <?php if ($motherSurnOption == 'BEGINS') echo 'selected'; ?>><?php echo I18N::translate('Begins with'); ?></option> |
|
272 | - <option value="FAMC:WIFE:NAME:SURN:CONTAINS" <?php if ($motherSurnOption == 'CONTAINS') 'selected'; ?>><?php echo I18N::translate('Contains'); ?></option> |
|
273 | - <option value="FAMC:WIFE:NAME:SURN:SDX" <?php if ($motherSurnOption == 'SDX') echo 'selected'; ?>><?php echo I18N::translate('Sounds like'); ?></option> |
|
327 | + <option value="FAMC:WIFE:NAME:SURN:EXACT" <?php if ($motherSurnOption == 'EXACT') { |
|
328 | + echo 'selected'; |
|
329 | +} |
|
330 | +?>><?php echo I18N::translate('Exact'); ?></option> |
|
331 | + <option value="FAMC:WIFE:NAME:SURN:BEGINS" <?php if ($motherSurnOption == 'BEGINS') { |
|
332 | + echo 'selected'; |
|
333 | +} |
|
334 | +?>><?php echo I18N::translate('Begins with'); ?></option> |
|
335 | + <option value="FAMC:WIFE:NAME:SURN:CONTAINS" <?php if ($motherSurnOption == 'CONTAINS') { |
|
336 | + 'selected'; |
|
337 | +} |
|
338 | +?>><?php echo I18N::translate('Contains'); ?></option> |
|
339 | + <option value="FAMC:WIFE:NAME:SURN:SDX" <?php if ($motherSurnOption == 'SDX') { |
|
340 | + echo 'selected'; |
|
341 | +} |
|
342 | +?>><?php echo I18N::translate('Sounds like'); ?></option> |
|
274 | 343 | </select> |
275 | 344 | </td> |
276 | 345 | <?php $j++; ?> |
@@ -181,6 +181,7 @@ |
||
181 | 181 | /** |
182 | 182 | * A list of GEDCOM relationships (e.g. for an edit control). |
183 | 183 | * |
184 | + * @param string $relationship |
|
184 | 185 | * @return string[] |
185 | 186 | */ |
186 | 187 | public static function optionsRelationships($relationship) { |
@@ -180,8 +180,11 @@ |
||
180 | 180 | <div class="value"> |
181 | 181 | <?php if ($my_individual_record): ?> |
182 | 182 | <?php echo $my_individual_record->formatList('span'); ?> |
183 | - <?php else: ?> |
|
184 | - <?php echo I18N::translateContext('unknown people', 'Unknown'); ?> |
|
183 | + <?php else { |
|
184 | + : ?> |
|
185 | + <?php echo I18N::translateContext('unknown people', 'Unknown'); |
|
186 | +} |
|
187 | +?> |
|
185 | 188 | <?php endif; ?> |
186 | 189 | <p class="small text-muted"> |
187 | 190 | <?php echo I18N::translate('This is a link to your own record in the family tree. If this is the wrong individual, contact an administrator.'); ?> |