@@ -142,7 +142,7 @@ |
||
| 142 | 142 | * |
| 143 | 143 | * @param int $fetch_style |
| 144 | 144 | * |
| 145 | - * @return \stdClass|array|null |
|
| 145 | + * @return \stdClass |
|
| 146 | 146 | */ |
| 147 | 147 | public function fetchOneRow($fetch_style = PDO::FETCH_OBJ) { |
| 148 | 148 | if (!$this->executed) { |
@@ -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++; ?> |