Удаление дублей в поиске

Материал из Umicms
Перейти к:навигация, поиск

Актуально для версии 2.9

Существует более правильное решение, не имеющее недостатков этого решения - Как_убрать_виртуальные_копии_из_результатов_поиска

При использовании виртуальных копий для размещения одного и того же объекта в разные категории можно столкнутся с такой ситуацией, когда при использовании поиска, в результат попадают все копии объекта. Чтобы этого избежать, можно воспользоваться JavaScript для скрытия таких копий.

Код можно вставить в любое место, главное чтобы он сработал на странице поиска. Код примерно следующий:

<script language="javascript" type="text/javascript">
jQuery(document).ready(function(){
    var arrDt = jQuery('dt').map(function(){
       return jQuery('dt a:contains(' + jQuery('a', this).text() + ')').not(':eq(0)')
            .closest('dt').hide();
    });

    var arrDd = jQuery('dd').map(function(){
        return jQuery('dd p:contains(' + jQuery('p', this).text() + ')').not(':eq(0)')
            .closest('dd').hide();
    });
});
</script>

У данного скрипта есть две характерных черты (плюсы это или минусы решать вам).

1. В количестве результатов поиска останется действительное число найденных объектов.

2. Порядковый ID также сохранится.

Если вас такой вариант не устраивает, не используйте данный скрипт или допишите его самостоятельно. Свой вариант этого скрипта можете оставить на странице обсуждения статьи, в случае его актуальности он будет так же добавлен.