From bad5efe819ab3af68f5e6fccb0ebab3c659bb0d2 Mon Sep 17 00:00:00 2001 From: Hugo Sales Date: Sat, 11 Dec 2021 20:56:47 +0000 Subject: [PATCH] [COMPONENT][Search] Be explicit about including : --- components/Language/Language.php | 8 ++++---- components/Tag/Tag.php | 11 ++++++----- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/components/Language/Language.php b/components/Language/Language.php index 1d71f5995a..cbfb53b517 100644 --- a/components/Language/Language.php +++ b/components/Language/Language.php @@ -74,17 +74,17 @@ class Language extends Component $temp_actor_expr = $eb->startsWith('language.locale', $search_term); } - if (Formatting::startsWith($term, ['lang', 'language'])) { + if (Formatting::startsWith($term, ['lang:', 'language:'])) { $note_expr = $temp_note_expr; $actor_expr = $temp_actor_expr; return Event::stop; - } elseif (Formatting::startsWith($term, GSF::cartesianProduct(['-', '_'], ['note', 'post'], ['lang', 'language']))) { + } elseif (Formatting::startsWith($term, GSF::cartesianProduct(['-', '_'], ['note', 'post'], ['lang', 'language'], [':']))) { $note_expr = $temp_note_expr; return Event::stop; - } elseif (Formatting::startsWith($term, GSF::cartesianProduct(['-', '_'], ['note', 'post'], ['author', 'actor', 'people', 'person'], ['lang', 'language']))) { + } elseif (Formatting::startsWith($term, GSF::cartesianProduct(['-', '_'], ['note', 'post'], ['author', 'actor', 'people', 'person'], ['lang', 'language'], [':']))) { $note_expr = $temp_note_actor_expr; return Event::stop; - } elseif (Formatting::startsWith($term, GSF::cartesianProduct(['-', '_'], ['actor', 'people', 'person'], ['lang', 'language']))) { + } elseif (Formatting::startsWith($term, GSF::cartesianProduct(['-', '_'], ['actor', 'people', 'person'], ['lang', 'language'], [':']))) { $actor_expr = $temp_actor_expr; return Event::stop; } diff --git a/components/Tag/Tag.php b/components/Tag/Tag.php index 781cdc5ebc..aa2278dc0c 100644 --- a/components/Tag/Tag.php +++ b/components/Tag/Tag.php @@ -30,6 +30,7 @@ use function App\Core\I18n\_m; use App\Core\Modules\Component; use App\Core\Router\Router; use App\Entity\Actor; +use App\Entity\ActorTag; use App\Entity\Language; use App\Entity\Note; use App\Entity\NoteTag; @@ -158,11 +159,11 @@ class Tag extends Component $canon_search_term = self::canonicalTag($search_term, $language); $temp_note_expr = $eb->eq('note_tag.canonical', $canon_search_term); $temp_actor_expr = $eb->eq('actor_tag.canonical', $canon_search_term); - if (Formatting::startsWith($term, ['note', 'tag'])) { + if (Formatting::startsWith($term, ['note:', 'tag:', 'people:'])) { $note_expr = $temp_note_expr; - } elseif (Formatting::startsWith($term, ['people', 'actor'])) { + } elseif (Formatting::startsWith($term, ['people:', 'actor:'])) { $actor_expr = $temp_actor_expr; - } else { + } elseif (str_contains($term, '#')) { $note_expr = $temp_note_expr; $actor_expr = $temp_actor_expr; return Event::next; @@ -172,8 +173,8 @@ class Tag extends Component public function onSearchQueryAddJoins(QueryBuilder &$note_qb, QueryBuilder &$actor_qb): bool { - $note_qb->leftJoin('App\Entity\NoteTag', 'note_tag', Expr\Join::WITH, 'note_tag.note_id = note.id'); - $actor_qb->leftJoin('App\Entity\ActorTag', 'actor_tag', Expr\Join::WITH, 'actor_tag.tagger = actor.id'); + $note_qb->leftJoin(NoteTag::class, 'note_tag', Expr\Join::WITH, 'note_tag.note_id = note.id'); + $actor_qb->leftJoin(ActorTag::class, 'actor_tag', Expr\Join::WITH, 'actor_tag.tagger = actor.id'); return Event::next; }