diff options
| author | Greg Roach <fisharebest@gmail.com> | 2013-12-05 18:02:31 +0000 |
|---|---|---|
| committer | Greg Roach <fisharebest@gmail.com> | 2013-12-05 18:02:57 +0000 |
| commit | 098dfcf88797113622e7f1841a14b93f2a4f458a (patch) | |
| tree | ad054947253d8b2a83736672c18039ee9b77392b | |
| parent | 8abaf83024d0edb6f6bab8dd0ee55130c4db2073 (diff) | |
| download | webtrees-098dfcf88797113622e7f1841a14b93f2a4f458a.tar.gz webtrees-098dfcf88797113622e7f1841a14b93f2a4f458a.tar.bz2 webtrees-098dfcf88797113622e7f1841a14b93f2a4f458a.zip | |
Advanced/phonetic search fails for searches with no phonetic content
| -rw-r--r-- | library/WT/Controller/AdvancedSearch.php | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/library/WT/Controller/AdvancedSearch.php b/library/WT/Controller/AdvancedSearch.php index c6f06d03fa..767c8524a0 100644 --- a/library/WT/Controller/AdvancedSearch.php +++ b/library/WT/Controller/AdvancedSearch.php @@ -164,7 +164,7 @@ class WT_Controller_AdvancedSearch extends WT_Controller_Search { } function getLabel($tag) { - return WT_Gedcom_Tag::getLabel(str_replace(':SDX', '', $tag)); + return WT_Gedcom_Tag::getLabel(preg_replace('/:(SDX|BEGINS|EXACT|CONTAINS)$/', '', $tag)); } function reorderFields() { @@ -328,6 +328,10 @@ class WT_Controller_AdvancedSearch extends WT_Controller_Search { $bind[] = $v; } $sql .= ' AND (' . implode(' OR ', $sdx) . ')'; + } else { + // No phonetic content? Use a substring match + $sql .= " AND i_n.n_givn LIKE CONCAT('%', ?, '%')"; + $bind[] = $value; } break; case 'SDX': // SDX uses DM by default. @@ -340,6 +344,10 @@ class WT_Controller_AdvancedSearch extends WT_Controller_Search { $bind[] = $v; } $sql .= ' AND (' . implode(' OR ', $sdx) . ')'; + } else { + // No phonetic content? Use a substring match + $sql .= " AND i_n.n_givn LIKE CONCAT('%', ?, '%')"; + $bind[] = $value; } break; } @@ -367,6 +375,10 @@ class WT_Controller_AdvancedSearch extends WT_Controller_Search { $bind[] = $v; } $sql .= " AND (" . implode(' OR ', $sdx) . ")"; + } else { + // No phonetic content? Use a substring match + $sql .= " AND i_n.n_surn LIKE CONCAT('%', ?, '%')"; + $bind[] = $value; } break; case 'SDX': // SDX uses DM by default. @@ -380,6 +392,10 @@ class WT_Controller_AdvancedSearch extends WT_Controller_Search { } $sql .= " AND (" . implode(' OR ', $sdx) . ")"; break; + } else { + // No phonetic content? Use a substring match + $sql .= " AND i_n.n_surn LIKE CONCAT('%', ?, '%')"; + $bind[] = $value; } } break; @@ -466,6 +482,10 @@ class WT_Controller_AdvancedSearch extends WT_Controller_Search { $bind[] = $v; } $sql .= ' AND (' . implode(' OR ', $sdx) . ')'; + } else { + // No phonetic content? Use a substring match + $sql .= " AND {$table}.n_givn = LIKE CONCAT('%', ?, '%')"; + $bind[] = $value; } break; case 'SDX': // SDX uses DM by default. @@ -479,6 +499,10 @@ class WT_Controller_AdvancedSearch extends WT_Controller_Search { } $sql .= ' AND (' . implode(' OR ', $sdx) . ')'; break; + } else { + // No phonetic content? Use a substring match + $sql .= " AND {$table}.n_givn = LIKE CONCAT('%', ?, '%')"; + $bind[] = $value; } } break; @@ -505,6 +529,10 @@ class WT_Controller_AdvancedSearch extends WT_Controller_Search { $bind[] = $v; } $sql .= ' AND (' . implode(' OR ', $sdx) . ')'; + } else { + // No phonetic content? Use a substring match + $sql .= " AND {$table}.n_surn = LIKE CONCAT('%', ?, '%')"; + $bind[] = $value; } break; case 'SDX': // SDX uses DM by default. @@ -517,6 +545,10 @@ class WT_Controller_AdvancedSearch extends WT_Controller_Search { $bind[] = $v; } $sql .= ' AND (' . implode(' OR ', $sdx) . ')'; + } else { + // No phonetic content? Use a substring match + $sql .= " AND {$table}.n_surn = LIKE CONCAT('%', ?, '%')"; + $bind[] = $value; } break; } |
