@@ -104,7 +104,7 @@ discard block |
||
| 104 | 104 | |
| 105 | 105 | $this->checkModuleIsActive($tree, 'ancestors_chart'); |
| 106 | 106 | |
| 107 | - $xref = $request->get('xref'); |
|
| 107 | + $xref = $request->get('xref'); |
|
| 108 | 108 | $individual = Individual::getInstance($xref, $tree); |
| 109 | 109 | |
| 110 | 110 | $this->checkIndividualAccess($individual); |
@@ -122,7 +122,7 @@ discard block |
||
| 122 | 122 | |
| 123 | 123 | $ancestors = $this->sosaStradonitzAncestors($individual, $generations); |
| 124 | 124 | |
| 125 | - switch($chart_style) { |
|
| 125 | + switch ($chart_style) { |
|
| 126 | 126 | case self::CHART_STYLE_LIST: |
| 127 | 127 | default: |
| 128 | 128 | return $this->ancestorsList($individual, $generations); |
@@ -239,7 +239,7 @@ discard block |
||
| 239 | 239 | } |
| 240 | 240 | } |
| 241 | 241 | |
| 242 | - $html = FunctionsPrintLists::familyTable($families); |
|
| 242 | + $html = FunctionsPrintLists::familyTable($families); |
|
| 243 | 243 | |
| 244 | 244 | return new Response($html); |
| 245 | 245 | } |
@@ -58,7 +58,7 @@ discard block |
||
| 58 | 58 | $maximum_generations = (int) $tree->getPreference('MAX_DESCENDANCY_GENERATIONS', self::DEFAULT_MAXIMUM_GENERATIONS); |
| 59 | 59 | $default_generations = (int) $tree->getPreference('DEFAULT_PEDIGREE_GENERATIONS', self::DEFAULT_GENERATIONS); |
| 60 | 60 | |
| 61 | - $generations = (int) $request->get('generations', $default_generations); |
|
| 61 | + $generations = (int) $request->get('generations', $default_generations); |
|
| 62 | 62 | |
| 63 | 63 | $generations = min($generations, $maximum_generations); |
| 64 | 64 | $generations = max($generations, self::MINIMUM_GENERATIONS); |
@@ -220,7 +220,7 @@ discard block |
||
| 220 | 220 | echo '<table cellspacing="0" cellpadding="0" border="0" style="position: relative; top: auto; float: ' . $tablealign . ';">'; |
| 221 | 221 | for ($i = 0; $i < $ct; $i++) { |
| 222 | 222 | $individual2 = $children[$i]; |
| 223 | - $chil = $individual2->getXref(); |
|
| 223 | + $chil = $individual2->getXref(); |
|
| 224 | 224 | echo '<tr>'; |
| 225 | 225 | echo '<td id="td_', e($chil), '" class="', I18N::direction(), '" style="text-align:', $otablealign, '">'; |
| 226 | 226 | $this->printDescendency($individual2, $generation + 1, $generations, $show_spouse, false); |
@@ -116,18 +116,18 @@ |
||
| 116 | 116 | ]; |
| 117 | 117 | |
| 118 | 118 | const DMY_SHORTCUTS = [ |
| 119 | - '11 DEC 1913' => ['11/12/1913', '11-12-1913', '11.12.1913',], |
|
| 120 | - '01 FEB 2003' => ['01/02/03', '01-02-03', '01.02.03',], |
|
| 119 | + '11 DEC 1913' => ['11/12/1913', '11-12-1913', '11.12.1913', ], |
|
| 120 | + '01 FEB 2003' => ['01/02/03', '01-02-03', '01.02.03', ], |
|
| 121 | 121 | ]; |
| 122 | 122 | |
| 123 | 123 | const MDY_SHORTCUTS = [ |
| 124 | - '11 DEC 1913' => ['12/11/1913', '12-11-1913', '12.11.1913',], |
|
| 125 | - '01 FEB 2003' => ['02/01/03', '02-01-03', '02.01.03',], |
|
| 124 | + '11 DEC 1913' => ['12/11/1913', '12-11-1913', '12.11.1913', ], |
|
| 125 | + '01 FEB 2003' => ['02/01/03', '02-01-03', '02.01.03', ], |
|
| 126 | 126 | ]; |
| 127 | 127 | |
| 128 | 128 | const YMD_SHORTCUTS = [ |
| 129 | - '11 DEC 1913' => ['11/12/1913', '11-12-1913', '11.12.1913',], |
|
| 130 | - '01 FEB 2003' => ['03/02/01', '03-02-01', '03.02.01',], |
|
| 129 | + '11 DEC 1913' => ['11/12/1913', '11-12-1913', '11.12.1913', ], |
|
| 130 | + '01 FEB 2003' => ['03/02/01', '03-02-01', '03.02.01', ], |
|
| 131 | 131 | ]; |
| 132 | 132 | |
| 133 | 133 | /** |
@@ -526,7 +526,7 @@ |
||
| 526 | 526 | $html = ''; |
| 527 | 527 | |
| 528 | 528 | foreach ($list as $id => $facts) { |
| 529 | - $tmp = GedcomRecord::getInstance($id, $tree); |
|
| 529 | + $tmp = GedcomRecord::getInstance($id, $tree); |
|
| 530 | 530 | $html .= $tag1 . '<a href="' . e($tmp->url()) . '">' . $tmp->getFullName() . '</a> '; |
| 531 | 531 | $html .= '<div class="indent">' . $facts . '</div>' . $tag2; |
| 532 | 532 | } |
@@ -287,7 +287,7 @@ discard block |
||
| 287 | 287 | } |
| 288 | 288 | // Don't sublists short lists. |
| 289 | 289 | if ($count < $tree->getPreference('SUBLIST_TRIGGER_I')) { |
| 290 | - $falpha = ''; |
|
| 290 | + $falpha = ''; |
|
| 291 | 291 | } else { |
| 292 | 292 | $givn_initials = $this->givenAlpha($surname, $alpha, $show_marnm === 'yes', $families); |
| 293 | 293 | // Break long lists by initial letter of given name |
@@ -508,7 +508,7 @@ discard block |
||
| 508 | 508 | */ |
| 509 | 509 | private function allMedia(Tree $tree, string $folder, string $subfolders, string $sort, string $filter, string $form_type): array { |
| 510 | 510 | // All files in the folder, plus external files |
| 511 | - $sql = |
|
| 511 | + $sql = |
|
| 512 | 512 | "SELECT m_id AS xref, m_gedcom AS gedcom" . |
| 513 | 513 | " FROM `##media`" . |
| 514 | 514 | " JOIN `##media_file` USING (m_id, m_file)" . |
@@ -527,11 +527,11 @@ discard block |
||
| 527 | 527 | // Include / exclude subfolders (but always include external) |
| 528 | 528 | switch ($subfolders) { |
| 529 | 529 | case 'include': |
| 530 | - $sql .= " AND (multimedia_file_refn LIKE CONCAT(?, '%') $sql_external)"; |
|
| 530 | + $sql .= " AND (multimedia_file_refn LIKE CONCAT(?, '%') $sql_external)"; |
|
| 531 | 531 | $args[] = Database::escapeLike($folder); |
| 532 | 532 | break; |
| 533 | 533 | case 'exclude': |
| 534 | - $sql .= " AND (multimedia_file_refn LIKE CONCAT(?, '%') AND multimedia_file_refn NOT LIKE CONCAT(?, '%/%') $sql_external)"; |
|
| 534 | + $sql .= " AND (multimedia_file_refn LIKE CONCAT(?, '%') AND multimedia_file_refn NOT LIKE CONCAT(?, '%/%') $sql_external)"; |
|
| 535 | 535 | $args[] = Database::escapeLike($folder); |
| 536 | 536 | $args[] = Database::escapeLike($folder); |
| 537 | 537 | break; |
@@ -539,13 +539,13 @@ discard block |
||
| 539 | 539 | |
| 540 | 540 | // Apply search terms |
| 541 | 541 | if ($filter) { |
| 542 | - $sql .= " AND (SUBSTRING_INDEX(multimedia_file_refn, '/', -1) LIKE CONCAT('%', ?, '%') OR descriptive_title LIKE CONCAT('%', ?, '%'))"; |
|
| 542 | + $sql .= " AND (SUBSTRING_INDEX(multimedia_file_refn, '/', -1) LIKE CONCAT('%', ?, '%') OR descriptive_title LIKE CONCAT('%', ?, '%'))"; |
|
| 543 | 543 | $args[] = Database::escapeLike($filter); |
| 544 | 544 | $args[] = Database::escapeLike($filter); |
| 545 | 545 | } |
| 546 | 546 | |
| 547 | 547 | if ($form_type) { |
| 548 | - $sql .= " AND source_media_type = ?"; |
|
| 548 | + $sql .= " AND source_media_type = ?"; |
|
| 549 | 549 | $args[] = $form_type; |
| 550 | 550 | } |
| 551 | 551 | |
@@ -1457,7 +1457,7 @@ discard block |
||
| 1457 | 1457 | ]; |
| 1458 | 1458 | |
| 1459 | 1459 | foreach ($this->getAlphabetForLocale(WT_LOCALE) as $n => $letter) { |
| 1460 | - $sql .= " AND n_surn COLLATE :collate_" . $n . " NOT LIKE :letter_" . $n; |
|
| 1460 | + $sql .= " AND n_surn COLLATE :collate_" . $n . " NOT LIKE :letter_" . $n; |
|
| 1461 | 1461 | $args['collate_' . $n] = I18N::collation(); |
| 1462 | 1462 | $args['letter_' . $n] = $letter . '%'; |
| 1463 | 1463 | } |
@@ -1542,7 +1542,7 @@ discard block |
||
| 1542 | 1542 | ]; |
| 1543 | 1543 | |
| 1544 | 1544 | if ($surn) { |
| 1545 | - $sql .= " AND n_surn COLLATE :collate_1 = :surn"; |
|
| 1545 | + $sql .= " AND n_surn COLLATE :collate_1 = :surn"; |
|
| 1546 | 1546 | $args['collate_1'] = I18N::collation(); |
| 1547 | 1547 | $args['surn'] = $surn; |
| 1548 | 1548 | } elseif ($salpha === ',') { |
@@ -1593,7 +1593,7 @@ discard block |
||
| 1593 | 1593 | ]; |
| 1594 | 1594 | |
| 1595 | 1595 | if ($surn) { |
| 1596 | - $sql .= " AND n_surn COLLATE :collate_1 = :surn"; |
|
| 1596 | + $sql .= " AND n_surn COLLATE :collate_1 = :surn"; |
|
| 1597 | 1597 | $args['collate_1'] = I18N::collation(); |
| 1598 | 1598 | $args['surn'] = $surn; |
| 1599 | 1599 | } elseif ($salpha === ',') { |
@@ -1606,7 +1606,7 @@ discard block |
||
| 1606 | 1606 | // All surnames |
| 1607 | 1607 | $sql .= " AND n_surn NOT IN ('', '@N.N.')"; |
| 1608 | 1608 | } |
| 1609 | - $sql .= " GROUP BY n_surn COLLATE :collate_2, n_file) AS n2 ON (n1.n_surn = n2.n_surn COLLATE :collate_3 AND n1.n_file = n2.n_file)"; |
|
| 1609 | + $sql .= " GROUP BY n_surn COLLATE :collate_2, n_file) AS n2 ON (n1.n_surn = n2.n_surn COLLATE :collate_3 AND n1.n_file = n2.n_file)"; |
|
| 1610 | 1610 | $args['collate_2'] = I18N::collation(); |
| 1611 | 1611 | $args['collate_3'] = I18N::collation(); |
| 1612 | 1612 | |
@@ -1646,7 +1646,7 @@ discard block |
||
| 1646 | 1646 | ]; |
| 1647 | 1647 | |
| 1648 | 1648 | if ($surn) { |
| 1649 | - $sql .= " AND n_surn COLLATE :collate_1 = :surn"; |
|
| 1649 | + $sql .= " AND n_surn COLLATE :collate_1 = :surn"; |
|
| 1650 | 1650 | $args['collate_1'] = I18N::collation(); |
| 1651 | 1651 | $args['surn'] = $surn; |
| 1652 | 1652 | } elseif ($salpha === ',') { |
@@ -1663,7 +1663,7 @@ discard block |
||
| 1663 | 1663 | $sql .= " AND " . $this->getInitialSql('n_givn', $galpha); |
| 1664 | 1664 | } |
| 1665 | 1665 | |
| 1666 | - $sql .= " ORDER BY CASE n_surn WHEN '@N.N.' THEN 1 ELSE 0 END, n_surn COLLATE :collate_2, CASE n_givn WHEN '@P.N.' THEN 1 ELSE 0 END, n_givn COLLATE :collate_3"; |
|
| 1666 | + $sql .= " ORDER BY CASE n_surn WHEN '@N.N.' THEN 1 ELSE 0 END, n_surn COLLATE :collate_2, CASE n_givn WHEN '@P.N.' THEN 1 ELSE 0 END, n_givn COLLATE :collate_3"; |
|
| 1667 | 1667 | $args['collate_2'] = I18N::collation(); |
| 1668 | 1668 | $args['collate_3'] = I18N::collation(); |
| 1669 | 1669 | |
@@ -105,7 +105,7 @@ discard block |
||
| 105 | 105 | $recursion = (int) $request->get('recursion', '0'); |
| 106 | 106 | $ancestors = (bool) $request->get('ancestors', '0'); |
| 107 | 107 | |
| 108 | - $max_recursion = (int) $tree->getPreference('RELATIONSHIP_RECURSION', RelationshipsChartModule::DEFAULT_RECURSION); |
|
| 108 | + $max_recursion = (int) $tree->getPreference('RELATIONSHIP_RECURSION', RelationshipsChartModule::DEFAULT_RECURSION); |
|
| 109 | 109 | |
| 110 | 110 | $recursion = min($recursion, $max_recursion); |
| 111 | 111 | |
@@ -153,14 +153,14 @@ discard block |
||
| 153 | 153 | case 'sis': |
| 154 | 154 | case 'sib': |
| 155 | 155 | $table[$x + 1][$y] = '<div style="background:url(' . Theme::theme()->parameter('image-hline') . ') repeat-x center; width: 94px; text-align: center"><div class="hline-text" style="height: 32px;">' . Functions::getRelationshipNameFromPath($relationships[$n], Individual::getInstance($path[$n - 1], $tree), Individual::getInstance($path[$n + 1], $tree)) . '</div><div style="height: 32px;">' . FontAwesome::decorativeIcon('arrow-end') . '</div></div>'; |
| 156 | - $x += 2; |
|
| 156 | + $x += 2; |
|
| 157 | 157 | break; |
| 158 | 158 | case 'son': |
| 159 | 159 | case 'dau': |
| 160 | 160 | case 'chi': |
| 161 | 161 | if ($n > 2 && preg_match('/fat|mot|par/', $relationships[$n - 2])) { |
| 162 | 162 | $table[$x + 1][$y - 1] = '<div style="background:url(' . $diagonal2 . '); width: 64px; height: 64px; text-align: center;"><div style="height: 32px; text-align: end;">' . Functions::getRelationshipNameFromPath($relationships[$n], Individual::getInstance($path[$n - 1], $tree), Individual::getInstance($path[$n + 1], $tree)) . '</div><div style="height: 32px; text-align: start;">' . FontAwesome::decorativeIcon('arrow-down') . '</div></div>'; |
| 163 | - $x += 2; |
|
| 163 | + $x += 2; |
|
| 164 | 164 | } else { |
| 165 | 165 | $table[$x][$y - 1] = '<div style="background:url(' . Theme::theme() |
| 166 | 166 | ->parameter('image-vline') . ') repeat-y center; height: 64px; text-align: center;"><div class="vline-text" style="display: inline-block; width:50%; line-height: 64px;">' . Functions::getRelationshipNameFromPath($relationships[$n], Individual::getInstance($path[$n - 1], $tree), Individual::getInstance($path[$n + 1], $tree)) . '</div><div style="display: inline-block; width:50%; line-height: 64px;">' . FontAwesome::decorativeIcon('arrow-down') . '</div></div>'; |
@@ -172,7 +172,7 @@ discard block |
||
| 172 | 172 | case 'par': |
| 173 | 173 | if ($n > 2 && preg_match('/son|dau|chi/', $relationships[$n - 2])) { |
| 174 | 174 | $table[$x + 1][$y + 1] = '<div style="background:url(' . $diagonal1 . '); background-position: top right; width: 64px; height: 64px; text-align: center;"><div style="height: 32px; text-align: start;">' . Functions::getRelationshipNameFromPath($relationships[$n], Individual::getInstance($path[$n - 1], $tree), Individual::getInstance($path[$n + 1], $tree)) . '</div><div style="height: 32px; text-align: end;">' . FontAwesome::decorativeIcon('arrow-down') . '</div></div>'; |
| 175 | - $x += 2; |
|
| 175 | + $x += 2; |
|
| 176 | 176 | } else { |
| 177 | 177 | $table[$x][$y + 1] = '<div style="background:url(' . Theme::theme() |
| 178 | 178 | ->parameter('image-vline') . ') repeat-y center; height: 64px; text-align:center; "><div class="vline-text" style="display: inline-block; width: 50%; line-height: 32px;">' . Functions::getRelationshipNameFromPath($relationships[$n], Individual::getInstance($path[$n - 1], $tree), Individual::getInstance($path[$n + 1], $tree)) . '</div><div style="display: inline-block; width: 50%; line-height: 32px">' . FontAwesome::decorativeIcon('arrow-up') . '</div></div>'; |
@@ -10,13 +10,13 @@ |
||
| 10 | 10 | |
| 11 | 11 | <?php if ($media->isPendingDeletion()): ?> |
| 12 | 12 | <?php if (Auth::isModerator($media->getTree())): ?> |
| 13 | - <?= view('alerts/warning-dissmissible', ['alert' => /* I18N: %1$s is “accept”, %2$s is “reject”. These are links. */ I18N::translate( 'This media object has been deleted. You should review the deletion and then %1$s or %2$s it.', '<a href="#" class="alert-link" onclick="accept_changes(\'' . e($media->getXref()) . '\', \'' . e($media->getTree()->getName()) . '\');">' . I18N::translateContext('You should review the deletion and then accept or reject it.', 'accept') . '</a>', '<a href="#" class="alert-link" onclick="reject_changes(\'' . e($media->getXref()) . '\', \'' . e($media->getTree()->getName()) . '\');">' . I18N::translateContext('You should review the deletion and then accept or reject it.', 'reject') . '</a>') . ' ' . FunctionsPrint::helpLink('pending_changes')]) ?> |
|
| 13 | + <?= view('alerts/warning-dissmissible', ['alert' => /* I18N: %1$s is “accept”, %2$s is “reject”. These are links. */ I18N::translate('This media object has been deleted. You should review the deletion and then %1$s or %2$s it.', '<a href="#" class="alert-link" onclick="accept_changes(\'' . e($media->getXref()) . '\', \'' . e($media->getTree()->getName()) . '\');">' . I18N::translateContext('You should review the deletion and then accept or reject it.', 'accept') . '</a>', '<a href="#" class="alert-link" onclick="reject_changes(\'' . e($media->getXref()) . '\', \'' . e($media->getTree()->getName()) . '\');">' . I18N::translateContext('You should review the deletion and then accept or reject it.', 'reject') . '</a>') . ' ' . FunctionsPrint::helpLink('pending_changes')]) ?> |
|
| 14 | 14 | <?php elseif (Auth::isEditor($media->getTree())): ?> |
| 15 | 15 | <?= view('alerts/warning-dissmissible', ['alert' => I18N::translate('This media object has been deleted. The deletion will need to be reviewed by a moderator.') . ' ' . FunctionsPrint::helpLink('pending_changes')]) ?> |
| 16 | 16 | <?php endif ?> |
| 17 | 17 | <?php elseif ($media->isPendingAddition()): ?> |
| 18 | 18 | <?php if (Auth::isModerator($media->getTree())): ?> |
| 19 | - <?= view('alerts/warning-dissmissible', ['alert' => /* I18N: %1$s is “accept”, %2$s is “reject”. These are links. */ I18N::translate( 'This media object has been edited. You should review the changes and then %1$s or %2$s them.', '<a href="#" class="alert-link" onclick="accept_changes(\'' . e($media->getXref()) . '\', \'' . e($media->getTree()->getName()) . '\');">' . I18N::translateContext('You should review the changes and then accept or reject them.', 'accept') . '</a>', '<a href="#" class="alert-link" onclick="reject_changes(\'' . e($media->getXref()) . '\', \'' . e($media->getTree()->getName()) . '\');">' . I18N::translateContext('You should review the changes and then accept or reject them.', 'reject') . '</a>' ) . ' ' . FunctionsPrint::helpLink('pending_changes')]) ?> |
|
| 19 | + <?= view('alerts/warning-dissmissible', ['alert' => /* I18N: %1$s is “accept”, %2$s is “reject”. These are links. */ I18N::translate('This media object has been edited. You should review the changes and then %1$s or %2$s them.', '<a href="#" class="alert-link" onclick="accept_changes(\'' . e($media->getXref()) . '\', \'' . e($media->getTree()->getName()) . '\');">' . I18N::translateContext('You should review the changes and then accept or reject them.', 'accept') . '</a>', '<a href="#" class="alert-link" onclick="reject_changes(\'' . e($media->getXref()) . '\', \'' . e($media->getTree()->getName()) . '\');">' . I18N::translateContext('You should review the changes and then accept or reject them.', 'reject') . '</a>') . ' ' . FunctionsPrint::helpLink('pending_changes')]) ?> |
|
| 20 | 20 | <?php elseif (Auth::isEditor($media->getTree())): ?> |
| 21 | 21 | <?= view('alerts/warning-dissmissible', ['alert' => I18N::translate('This media object has been edited. The changes need to be reviewed by a moderator.') . ' ' . FunctionsPrint::helpLink('pending_changes')]) ?> |
| 22 | 22 | <?php endif ?> |
@@ -43,14 +43,14 @@ |
||
| 43 | 43 | <?php endforeach ?> |
| 44 | 44 | </td> |
| 45 | 45 | |
| 46 | - <td class="text-center" data-sort="<?= array_sum(array_map(function(array $x) { return count($x); }, $surns)) ?>"> |
|
| 46 | + <td class="text-center" data-sort="<?= array_sum(array_map(function (array $x) { return count($x); }, $surns)) ?>"> |
|
| 47 | 47 | <?php foreach ($surns as $indis): ?> |
| 48 | 48 | <?= I18N::number(count($indis)) ?> |
| 49 | 49 | <br> |
| 50 | 50 | <?php endforeach ?> |
| 51 | 51 | |
| 52 | 52 | <?php if (count($surns) > 1): ?> |
| 53 | - <?= I18N::number(array_sum(array_map(function(array $x) { return count($x); }, $surns))) ?> |
|
| 53 | + <?= I18N::number(array_sum(array_map(function (array $x) { return count($x); }, $surns))) ?> |
|
| 54 | 54 | <?php endif ?> |
| 55 | 55 | </td> |
| 56 | 56 | </tr> |
@@ -603,7 +603,7 @@ discard block |
||
| 603 | 603 | |
| 604 | 604 | foreach ($search_terms as $n => $q) { |
| 605 | 605 | $queryregex[] = preg_quote(I18N::strtoupper($q), '/'); |
| 606 | - $sql .= " AND f_gedcom COLLATE :collate_" . $n . " LIKE CONCAT('%', :query_" . $n . ", '%')"; |
|
| 606 | + $sql .= " AND f_gedcom COLLATE :collate_" . $n . " LIKE CONCAT('%', :query_" . $n . ", '%')"; |
|
| 607 | 607 | $args['collate_' . $n] = I18N::collation(); |
| 608 | 608 | $args['query_' . $n] = Database::escapeLike($q); |
| 609 | 609 | } |
@@ -650,7 +650,7 @@ discard block |
||
| 650 | 650 | * @return Family[] |
| 651 | 651 | */ |
| 652 | 652 | private function searchFamilyNames(array $search_terms, array $search_trees): array { |
| 653 | - $sql = |
|
| 653 | + $sql = |
|
| 654 | 654 | "SELECT DISTINCT f_id AS xref, f_file AS gedcom_id, f_gedcom AS gedcom" . |
| 655 | 655 | " FROM `##families`" . |
| 656 | 656 | " LEFT JOIN `##name` husb ON f_husb = husb.n_id AND f_file = husb.n_file" . |
@@ -659,7 +659,7 @@ discard block |
||
| 659 | 659 | $args = []; |
| 660 | 660 | |
| 661 | 661 | foreach ($search_terms as $n => $q) { |
| 662 | - $sql .= " AND (husb.n_full COLLATE :husb_collate_" . $n . " LIKE CONCAT('%', :husb_query_" . $n . ", '%') OR wife.n_full COLLATE :wife_collate_" . $n . " LIKE CONCAT('%', :wife_query_" . $n . ", '%'))"; |
|
| 662 | + $sql .= " AND (husb.n_full COLLATE :husb_collate_" . $n . " LIKE CONCAT('%', :husb_query_" . $n . ", '%') OR wife.n_full COLLATE :wife_collate_" . $n . " LIKE CONCAT('%', :wife_query_" . $n . ", '%'))"; |
|
| 663 | 663 | $args['husb_collate_' . $n] = I18N::collation(); |
| 664 | 664 | $args['husb_query_' . $n] = Database::escapeLike($q); |
| 665 | 665 | $args['wife_collate_' . $n] = I18N::collation(); |
@@ -710,7 +710,7 @@ discard block |
||
| 710 | 710 | |
| 711 | 711 | foreach ($search_terms as $n => $q) { |
| 712 | 712 | $queryregex[] = preg_quote(I18N::strtoupper($q), '/'); |
| 713 | - $sql .= " AND i_gedcom COLLATE :collate_" . $n . " LIKE CONCAT('%', :query_" . $n . ", '%')"; |
|
| 713 | + $sql .= " AND i_gedcom COLLATE :collate_" . $n . " LIKE CONCAT('%', :query_" . $n . ", '%')"; |
|
| 714 | 714 | $args['collate_' . $n] = I18N::collation(); |
| 715 | 715 | $args['query_' . $n] = Database::escapeLike($q); |
| 716 | 716 | } |
@@ -855,7 +855,7 @@ discard block |
||
| 855 | 855 | } |
| 856 | 856 | |
| 857 | 857 | // Add the where clause |
| 858 | - $sql .= " WHERE ind.i_file=?"; |
|
| 858 | + $sql .= " WHERE ind.i_file=?"; |
|
| 859 | 859 | $bind[] = $this->tree()->getTreeId(); |
| 860 | 860 | |
| 861 | 861 | foreach ($fields as $field_name => $field_value) { |
@@ -866,15 +866,15 @@ discard block |
||
| 866 | 866 | case 'GIVN': |
| 867 | 867 | switch ($modifiers[$field_name]) { |
| 868 | 868 | case 'EXACT': |
| 869 | - $sql .= " AND i_n.n_givn=?"; |
|
| 869 | + $sql .= " AND i_n.n_givn=?"; |
|
| 870 | 870 | $bind[] = $field_value; |
| 871 | 871 | break; |
| 872 | 872 | case 'BEGINS': |
| 873 | - $sql .= " AND i_n.n_givn LIKE CONCAT(?, '%')"; |
|
| 873 | + $sql .= " AND i_n.n_givn LIKE CONCAT(?, '%')"; |
|
| 874 | 874 | $bind[] = $field_value; |
| 875 | 875 | break; |
| 876 | 876 | case 'CONTAINS': |
| 877 | - $sql .= " AND i_n.n_givn LIKE CONCAT('%', ?, '%')"; |
|
| 877 | + $sql .= " AND i_n.n_givn LIKE CONCAT('%', ?, '%')"; |
|
| 878 | 878 | $bind[] = $field_value; |
| 879 | 879 | break; |
| 880 | 880 | case 'SDX_STD': |
@@ -888,7 +888,7 @@ discard block |
||
| 888 | 888 | $sql .= ' AND (' . implode(' OR ', $sdx) . ')'; |
| 889 | 889 | } else { |
| 890 | 890 | // No phonetic content? Use a substring match |
| 891 | - $sql .= " AND i_n.n_givn LIKE CONCAT('%', ?, '%')"; |
|
| 891 | + $sql .= " AND i_n.n_givn LIKE CONCAT('%', ?, '%')"; |
|
| 892 | 892 | $bind[] = $field_value; |
| 893 | 893 | } |
| 894 | 894 | break; |
@@ -904,7 +904,7 @@ discard block |
||
| 904 | 904 | $sql .= ' AND (' . implode(' OR ', $sdx) . ')'; |
| 905 | 905 | } else { |
| 906 | 906 | // No phonetic content? Use a substring match |
| 907 | - $sql .= " AND i_n.n_givn LIKE CONCAT('%', ?, '%')"; |
|
| 907 | + $sql .= " AND i_n.n_givn LIKE CONCAT('%', ?, '%')"; |
|
| 908 | 908 | $bind[] = $field_value; |
| 909 | 909 | } |
| 910 | 910 | break; |
@@ -913,15 +913,15 @@ discard block |
||
| 913 | 913 | case 'SURN': |
| 914 | 914 | switch ($modifiers[$field_name]) { |
| 915 | 915 | case 'EXACT': |
| 916 | - $sql .= " AND i_n.n_surname=?"; |
|
| 916 | + $sql .= " AND i_n.n_surname=?"; |
|
| 917 | 917 | $bind[] = $field_value; |
| 918 | 918 | break; |
| 919 | 919 | case 'BEGINS': |
| 920 | - $sql .= " AND i_n.n_surname LIKE CONCAT(?, '%')"; |
|
| 920 | + $sql .= " AND i_n.n_surname LIKE CONCAT(?, '%')"; |
|
| 921 | 921 | $bind[] = $field_value; |
| 922 | 922 | break; |
| 923 | 923 | case 'CONTAINS': |
| 924 | - $sql .= " AND i_n.n_surname LIKE CONCAT('%', ?, '%')"; |
|
| 924 | + $sql .= " AND i_n.n_surname LIKE CONCAT('%', ?, '%')"; |
|
| 925 | 925 | $bind[] = $field_value; |
| 926 | 926 | break; |
| 927 | 927 | case 'SDX_STD': |
@@ -935,7 +935,7 @@ discard block |
||
| 935 | 935 | $sql .= " AND (" . implode(' OR ', $sdx) . ")"; |
| 936 | 936 | } else { |
| 937 | 937 | // No phonetic content? Use a substring match |
| 938 | - $sql .= " AND i_n.n_surn LIKE CONCAT('%', ?, '%')"; |
|
| 938 | + $sql .= " AND i_n.n_surn LIKE CONCAT('%', ?, '%')"; |
|
| 939 | 939 | $bind[] = $field_value; |
| 940 | 940 | } |
| 941 | 941 | break; |
@@ -952,7 +952,7 @@ discard block |
||
| 952 | 952 | break; |
| 953 | 953 | } else { |
| 954 | 954 | // No phonetic content? Use a substring match |
| 955 | - $sql .= " AND i_n.n_surn LIKE CONCAT('%', ?, '%')"; |
|
| 955 | + $sql .= " AND i_n.n_surn LIKE CONCAT('%', ?, '%')"; |
|
| 956 | 956 | $bind[] = $field_value; |
| 957 | 957 | } |
| 958 | 958 | } |
@@ -961,7 +961,7 @@ discard block |
||
| 961 | 961 | case '_MARNM': |
| 962 | 962 | case '_HEB': |
| 963 | 963 | case '_AKA': |
| 964 | - $sql .= " AND i_n.n_type=? AND i_n.n_full LIKE CONCAT('%', ?, '%')"; |
|
| 964 | + $sql .= " AND i_n.n_type=? AND i_n.n_full LIKE CONCAT('%', ?, '%')"; |
|
| 965 | 965 | $bind[] = $parts[1]; |
| 966 | 966 | $bind[] = $field_value; |
| 967 | 967 | break; |
@@ -971,7 +971,7 @@ discard block |
||
| 971 | 971 | $date = new Date($field_value); |
| 972 | 972 | if ($date->isOK()) { |
| 973 | 973 | $delta = 365 * ($modifiers[$field_name] ?? 0); |
| 974 | - $sql .= " AND i_d.d_fact=? AND i_d.d_julianday1>=? AND i_d.d_julianday2<=?"; |
|
| 974 | + $sql .= " AND i_d.d_fact=? AND i_d.d_julianday1>=? AND i_d.d_julianday2<=?"; |
|
| 975 | 975 | $bind[] = $parts[0]; |
| 976 | 976 | $bind[] = $date->minimumJulianDay() - $delta; |
| 977 | 977 | $bind[] = $date->maximumJulianDay() + $delta; |
@@ -981,7 +981,7 @@ discard block |
||
| 981 | 981 | $date = new Date($field_value); |
| 982 | 982 | if ($date->isOK()) { |
| 983 | 983 | $delta = 365 * $modifiers[$field_name]; |
| 984 | - $sql .= " AND f_d.d_fact=? AND f_d.d_julianday1>=? AND f_d.d_julianday2<=?"; |
|
| 984 | + $sql .= " AND f_d.d_fact=? AND f_d.d_julianday1>=? AND f_d.d_julianday2<=?"; |
|
| 985 | 985 | $bind[] = $parts[1]; |
| 986 | 986 | $bind[] = $date->minimumJulianDay() - $delta; |
| 987 | 987 | $bind[] = $date->maximumJulianDay() + $delta; |
@@ -989,12 +989,12 @@ discard block |
||
| 989 | 989 | } elseif ($parts[1] === 'PLAC') { |
| 990 | 990 | // *:PLAC |
| 991 | 991 | // SQL can only link a place to a person/family, not to an event. |
| 992 | - $sql .= " AND i_p.place LIKE CONCAT('%', ?, '%')"; |
|
| 992 | + $sql .= " AND i_p.place LIKE CONCAT('%', ?, '%')"; |
|
| 993 | 993 | $bind[] = $field_value; |
| 994 | 994 | } elseif ($parts[0] === 'FAMS' && $parts[2] === 'PLAC') { |
| 995 | 995 | // FAMS:*:PLAC |
| 996 | 996 | // SQL can only link a place to a person/family, not to an event. |
| 997 | - $sql .= " AND f_p.place LIKE CONCAT('%', ?, '%')"; |
|
| 997 | + $sql .= " AND f_p.place LIKE CONCAT('%', ?, '%')"; |
|
| 998 | 998 | $bind[] = $field_value; |
| 999 | 999 | } elseif ($parts[0] === 'FAMC' && $parts[2] === 'NAME') { |
| 1000 | 1000 | $table = $parts[1] === 'HUSB' ? 'f_n' : 'm_n'; |
@@ -1003,15 +1003,15 @@ discard block |
||
| 1003 | 1003 | case 'GIVN': |
| 1004 | 1004 | switch ($modifiers[$field_name]) { |
| 1005 | 1005 | case 'EXACT': |
| 1006 | - $sql .= " AND {$table}.n_givn=?"; |
|
| 1006 | + $sql .= " AND {$table}.n_givn=?"; |
|
| 1007 | 1007 | $bind[] = $field_value; |
| 1008 | 1008 | break; |
| 1009 | 1009 | case 'BEGINS': |
| 1010 | - $sql .= " AND {$table}.n_givn LIKE CONCAT(?, '%')"; |
|
| 1010 | + $sql .= " AND {$table}.n_givn LIKE CONCAT(?, '%')"; |
|
| 1011 | 1011 | $bind[] = $field_value; |
| 1012 | 1012 | break; |
| 1013 | 1013 | case 'CONTAINS': |
| 1014 | - $sql .= " AND {$table}.n_givn LIKE CONCAT('%', ?, '%')"; |
|
| 1014 | + $sql .= " AND {$table}.n_givn LIKE CONCAT('%', ?, '%')"; |
|
| 1015 | 1015 | $bind[] = $field_value; |
| 1016 | 1016 | break; |
| 1017 | 1017 | case 'SDX_STD': |
@@ -1025,7 +1025,7 @@ discard block |
||
| 1025 | 1025 | $sql .= ' AND (' . implode(' OR ', $sdx) . ')'; |
| 1026 | 1026 | } else { |
| 1027 | 1027 | // No phonetic content? Use a substring match |
| 1028 | - $sql .= " AND {$table}.n_givn = LIKE CONCAT('%', ?, '%')"; |
|
| 1028 | + $sql .= " AND {$table}.n_givn = LIKE CONCAT('%', ?, '%')"; |
|
| 1029 | 1029 | $bind[] = $field_value; |
| 1030 | 1030 | } |
| 1031 | 1031 | break; |
@@ -1042,7 +1042,7 @@ discard block |
||
| 1042 | 1042 | break; |
| 1043 | 1043 | } else { |
| 1044 | 1044 | // No phonetic content? Use a substring match |
| 1045 | - $sql .= " AND {$table}.n_givn = LIKE CONCAT('%', ?, '%')"; |
|
| 1045 | + $sql .= " AND {$table}.n_givn = LIKE CONCAT('%', ?, '%')"; |
|
| 1046 | 1046 | $bind[] = $field_value; |
| 1047 | 1047 | } |
| 1048 | 1048 | } |
@@ -1050,15 +1050,15 @@ discard block |
||
| 1050 | 1050 | case 'SURN': |
| 1051 | 1051 | switch ($modifiers[$field_name]) { |
| 1052 | 1052 | case 'EXACT': |
| 1053 | - $sql .= " AND {$table}.n_surname=?"; |
|
| 1053 | + $sql .= " AND {$table}.n_surname=?"; |
|
| 1054 | 1054 | $bind[] = $field_value; |
| 1055 | 1055 | break; |
| 1056 | 1056 | case 'BEGINS': |
| 1057 | - $sql .= " AND {$table}.n_surname LIKE CONCAT(?, '%')"; |
|
| 1057 | + $sql .= " AND {$table}.n_surname LIKE CONCAT(?, '%')"; |
|
| 1058 | 1058 | $bind[] = $field_value; |
| 1059 | 1059 | break; |
| 1060 | 1060 | case 'CONTAINS': |
| 1061 | - $sql .= " AND {$table}.n_surname LIKE CONCAT('%', ?, '%')"; |
|
| 1061 | + $sql .= " AND {$table}.n_surname LIKE CONCAT('%', ?, '%')"; |
|
| 1062 | 1062 | $bind[] = $field_value; |
| 1063 | 1063 | break; |
| 1064 | 1064 | case 'SDX_STD': |
@@ -1072,7 +1072,7 @@ discard block |
||
| 1072 | 1072 | $sql .= ' AND (' . implode(' OR ', $sdx) . ')'; |
| 1073 | 1073 | } else { |
| 1074 | 1074 | // No phonetic content? Use a substring match |
| 1075 | - $sql .= " AND {$table}.n_surn = LIKE CONCAT('%', ?, '%')"; |
|
| 1075 | + $sql .= " AND {$table}.n_surn = LIKE CONCAT('%', ?, '%')"; |
|
| 1076 | 1076 | $bind[] = $field_value; |
| 1077 | 1077 | } |
| 1078 | 1078 | break; |
@@ -1088,7 +1088,7 @@ discard block |
||
| 1088 | 1088 | $sql .= ' AND (' . implode(' OR ', $sdx) . ')'; |
| 1089 | 1089 | } else { |
| 1090 | 1090 | // No phonetic content? Use a substring match |
| 1091 | - $sql .= " AND {$table}.n_surn = LIKE CONCAT('%', ?, '%')"; |
|
| 1091 | + $sql .= " AND {$table}.n_surn = LIKE CONCAT('%', ?, '%')"; |
|
| 1092 | 1092 | $bind[] = $field_value; |
| 1093 | 1093 | } |
| 1094 | 1094 | break; |
@@ -1097,17 +1097,17 @@ discard block |
||
| 1097 | 1097 | } |
| 1098 | 1098 | } elseif ($parts[0] === 'FAMS') { |
| 1099 | 1099 | // e.g. searches for occupation, religion, note, etc. |
| 1100 | - $sql .= " AND fam.f_gedcom REGEXP CONCAT('\n[0-9] ', ?, '(.*\n[0-9] CONT)* [^\n]*', ?)"; |
|
| 1100 | + $sql .= " AND fam.f_gedcom REGEXP CONCAT('\n[0-9] ', ?, '(.*\n[0-9] CONT)* [^\n]*', ?)"; |
|
| 1101 | 1101 | $bind[] = $parts[1]; |
| 1102 | 1102 | $bind[] = $field_value; |
| 1103 | 1103 | } elseif ($parts[1] === 'TYPE') { |
| 1104 | 1104 | // e.g. FACT:TYPE or EVEN:TYPE |
| 1105 | - $sql .= " AND ind.i_gedcom REGEXP CONCAT('\n1 ', ?, '.*(\n[2-9] .*)*\n2 TYPE .*', ?)"; |
|
| 1105 | + $sql .= " AND ind.i_gedcom REGEXP CONCAT('\n1 ', ?, '.*(\n[2-9] .*)*\n2 TYPE .*', ?)"; |
|
| 1106 | 1106 | $bind[] = $parts[0]; |
| 1107 | 1107 | $bind[] = $field_value; |
| 1108 | 1108 | } else { |
| 1109 | 1109 | // e.g. searches for occupation, religion, note, etc. |
| 1110 | - $sql .= " AND ind.i_gedcom REGEXP CONCAT('\n[0-9] ', ?, '(.*\n[0-9] CONT)* [^\n]*', ?)"; |
|
| 1110 | + $sql .= " AND ind.i_gedcom REGEXP CONCAT('\n[0-9] ', ?, '(.*\n[0-9] CONT)* [^\n]*', ?)"; |
|
| 1111 | 1111 | $bind[] = $parts[0]; |
| 1112 | 1112 | $bind[] = $field_value; |
| 1113 | 1113 | } |
@@ -1185,7 +1185,7 @@ discard block |
||
| 1185 | 1185 | $sql .= ")"; |
| 1186 | 1186 | |
| 1187 | 1187 | if ($givn_sdx !== '') { |
| 1188 | - $sql .= " AND ("; |
|
| 1188 | + $sql .= " AND ("; |
|
| 1189 | 1189 | $givn_sdx = explode(':', $givn_sdx); |
| 1190 | 1190 | foreach ($givn_sdx as $n => $sdx) { |
| 1191 | 1191 | $sql .= $n > 0 ? " OR " : ""; |
@@ -1203,7 +1203,7 @@ discard block |
||
| 1203 | 1203 | } |
| 1204 | 1204 | |
| 1205 | 1205 | if ($surn_sdx !== '') { |
| 1206 | - $sql .= " AND ("; |
|
| 1206 | + $sql .= " AND ("; |
|
| 1207 | 1207 | $surn_sdx = explode(':', $surn_sdx); |
| 1208 | 1208 | foreach ($surn_sdx as $n => $sdx) { |
| 1209 | 1209 | $sql .= $n ? " OR " : ""; |
@@ -1221,7 +1221,7 @@ discard block |
||
| 1221 | 1221 | } |
| 1222 | 1222 | |
| 1223 | 1223 | if ($plac_sdx !== '') { |
| 1224 | - $sql .= " AND ("; |
|
| 1224 | + $sql .= " AND ("; |
|
| 1225 | 1225 | $plac_sdx = explode(':', $plac_sdx); |
| 1226 | 1226 | foreach ($plac_sdx as $n => $sdx) { |
| 1227 | 1227 | $sql .= $n ? " OR " : ""; |
@@ -1267,7 +1267,7 @@ discard block |
||
| 1267 | 1267 | |
| 1268 | 1268 | foreach ($search_terms as $n => $q) { |
| 1269 | 1269 | $queryregex[] = preg_quote(I18N::strtoupper($q), '/'); |
| 1270 | - $sql .= " AND o_gedcom COLLATE :collate_" . $n . " LIKE CONCAT('%', :query_" . $n . ", '%')"; |
|
| 1270 | + $sql .= " AND o_gedcom COLLATE :collate_" . $n . " LIKE CONCAT('%', :query_" . $n . ", '%')"; |
|
| 1271 | 1271 | $args['collate_' . $n] = I18N::collation(); |
| 1272 | 1272 | $args['query_' . $n] = Database::escapeLike($q); |
| 1273 | 1273 | } |
@@ -1322,7 +1322,7 @@ discard block |
||
| 1322 | 1322 | |
| 1323 | 1323 | foreach ($search_terms as $n => $q) { |
| 1324 | 1324 | $queryregex[] = preg_quote(I18N::strtoupper($q), '/'); |
| 1325 | - $sql .= " AND o_gedcom COLLATE :collate_" . $n . " LIKE CONCAT('%', :query_" . $n . ", '%')"; |
|
| 1325 | + $sql .= " AND o_gedcom COLLATE :collate_" . $n . " LIKE CONCAT('%', :query_" . $n . ", '%')"; |
|
| 1326 | 1326 | $args['collate_' . $n] = I18N::collation(); |
| 1327 | 1327 | $args['query_' . $n] = Database::escapeLike($q); |
| 1328 | 1328 | } |
@@ -1377,7 +1377,7 @@ discard block |
||
| 1377 | 1377 | |
| 1378 | 1378 | foreach ($search_terms as $n => $q) { |
| 1379 | 1379 | $queryregex[] = preg_quote(I18N::strtoupper($q), '/'); |
| 1380 | - $sql .= " AND s_gedcom COLLATE :collate_" . $n . " LIKE CONCAT('%', :query_" . $n . ", '%')"; |
|
| 1380 | + $sql .= " AND s_gedcom COLLATE :collate_" . $n . " LIKE CONCAT('%', :query_" . $n . ", '%')"; |
|
| 1381 | 1381 | $args['collate_' . $n] = I18N::collation(); |
| 1382 | 1382 | $args['query_' . $n] = Database::escapeLike($q); |
| 1383 | 1383 | } |