Added name highlighting in search results

This commit is contained in:
Dan Brown 2021-11-13 12:44:27 +00:00
parent f30b937bb0
commit ab4e99bb18
No known key found for this signature in database
GPG Key ID: 46D9F943C24A2EF9
2 changed files with 11 additions and 5 deletions

View File

@ -30,11 +30,17 @@ class SearchResultsFormatter
$textContent = $entity->$textProperty;
$terms = array_merge($options->exacts, $options->searches);
$matchRefs = $this->getMatchPositions($textContent, $terms);
$mergedRefs = $this->sortAndMergeMatchPositions($matchRefs);
$content = $this->formatTextUsingMatchPositions($mergedRefs, $textContent);
$originalContentByNewAttribute = [
'preview_name' => $entity->name,
'preview_content' => $textContent,
];
$entity->setAttribute('preview_content', new HtmlString($content));
foreach ($originalContentByNewAttribute as $attributeName => $content) {
$matchRefs = $this->getMatchPositions($content, $terms);
$mergedRefs = $this->sortAndMergeMatchPositions($matchRefs);
$formatted = $this->formatTextUsingMatchPositions($mergedRefs, $content);
$entity->setAttribute($attributeName, new HtmlString($formatted));
}
}
/**

View File

@ -2,7 +2,7 @@
<a href="{{ $entity->getUrl() }}" class="{{$type}} {{$type === 'page' && $entity->draft ? 'draft' : ''}} {{$classes ?? ''}} entity-list-item" data-entity-type="{{$type}}" data-entity-id="{{$entity->id}}">
<span role="presentation" class="icon text-{{$type}}">@icon($type)</span>
<div class="content">
<h4 class="entity-list-item-name break-text">{{ $entity->name }}</h4>
<h4 class="entity-list-item-name break-text">{{ $entity->preview_name ?? $entity->name }}</h4>
{{ $slot ?? '' }}
</div>
</a>