Поиск html теги и переход к результату

InstantCMS 2.X

Поиск html теги и переход к результату

#1 7 декабря 2024 в 04:46

Всем мира!
последняя версия движка, ребята подскажите вот эти моменты, если можно как то решить, если платно то в личку стоимость прошу озвучить, спасибо! 
есть тип контента Страницы, там поле content, у этого поля включена настройка — «Участвует в полнотекстовом поиске»
при поиске :

1. как ограничить поиск что бы не искал если просто в поиске ввести html теги ?, например вписываю в поиске <div> и выдаёт некоторые страницы, да понимаю что в этом поле я делал разметку и там есть этот <div>, как то можно ограничить что бы не искал если ввести html теги ?

2. как можно сделать — вписал в поиске слово, поиск его нашёл и дал ссылку на эту страницу, при переходе по этой ссылке что бы прокручивал к этому слову, такое как то вообще можно сделать ?

#2 7 декабря 2024 в 09:00

1. А это зачем? Зачем решать проблему, которую сами себе создаете. Обычный пользователь, которых 99%, не будет заниматься этим...

#3 7 декабря 2024 в 10:46

ну да по первому пункту, это я заморочися, просто в поиске ввел div и поиск выдал мне
а как Вы думаете по второму пункту ?

#4 7 декабря 2024 в 19:10

а как Вы думаете по второму пункту ?

No Name

тут надо менять ссылку на результаты поиска, добавляя в нее фрагмент

  1. #:~:text=искомый_текст

Теория на эту тему mgearon.com/html/text-fragments/

Откройте файл templates/ваш_шаблон/controllers/search/index.tpl.php

и ПОСЛЕ

  1. <?php foreach($search_data['items'] as $item){

добавьте строку

  1. $item['url'] = $item['url'] . '#:~:text=' . urlencode($query);

и будет вам прокрутка

Изображение

Изображение

Но все не работает, если запрос пользователя более менее сложный, или задан с ошибкой, например тут

Изображение

По итогу, видимо, полностью рабочее решение выглядит как js скрипт, который пробежится по результатам, и слово, выделенное курсивом и красным прибавит подобным образом к ссылке.

Но и это решение не будет работать всегда. Потому что в результатах поиска вообще может и не быть совпадения, вот, например

Изображение

#5 8 декабря 2024 в 07:44

 Zau4man, Большое спасибо, работает
но что бы прокручивало не только к одному слову но и фразе целиком я сделал так
$zapross = str_replace("+", " ", urlencode($query));            
$item['url'] = $item['url']. '#:~:text='. $zapross;

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.