Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Стол заказов » XFSEARCH с указанием категории

XFSEARCH с указанием категории


 ychelovek    13.04.2015    Стол заказов    2241    10 комментариев

Здравствуйте. Хотелось бы заказать внесение изменений в стандартные функции движка, что бы можно было использовать поиск по дополнительным полям вот так:
site.ru/xfsearch/СЛОВО - по всем категориям
site.ru/КАТЕГОРИЯ/xfsearch/СЛОВО - по одной категории ( и категориям входящим в нее )

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

10 комментариев

vitnet
PHP-developer

vitnet - 13 апреля 2015 18:03 -

Так есть же такое уже.

ychelovek
Юзер

ychelovek - 13 апреля 2015 18:34 -

Я вот пытаюсь так сделать:
В htaccess прописал:
RewriteRule ^find/([^/]*)/cat/([0-9]+)(/?)+$ index.php?do=xfsearch&xf=$1&cat=$2 [L]


В engine.php вставляю перед запросом:
$my_where = "";
            if (isset($_POST['cat']))
            {
                    $cat_s = $mysqli->real_escape_string($_POST['cat']);
                $cat_s=(int)$cat_s;
                $my_where = ($cat_s==0) ? "" : " AND p.category = {$cat_s} ";                
            }

ну и в запросе ниже добавляю свой $my_where
Пытаюсь использовать так:
site.ru/find/СЛОВО/cat/ИД_КАТЕГОРИИ

Но, чет нифига не работает(((
Не подскажете? вы же шарите :)

vitnet
PHP-developer

vitnet - 13 апреля 2015 18:37 -

Пару мин. доберусь домой, напишу.

---------------------------------------------------------

engine/engine.php
найти
            $xf = @$db->safesql ( htmlspecialchars ( strip_tags ( stripslashes ( trim ( $xf ) ) ), ENT_QUOTES, $config['charset'] ) );
            $url_page = $config['http_home_url'] . "xfsearch/" . urlencode ( str_replace("'", "'", $xf) );
            $user_query = "do=xfsearch&xf=" . urlencode ( str_replace("'", "'", $xf) );

добавить ниже
Внимание! У вас нет прав для просмотра скрытого текста.

далее найти
WHERE {$stop_list}xfields LIKE '%{$xf}%'

заменить на
Внимание! У вас нет прав для просмотра скрытого текста.

найти
            $cache_prefix = "_xfsearch_" . $xf;

заменить на
            $cache_prefix = ($_GET['cat'] != '') ? "_xfsearch_" . $xf . "_" . $_GET['cat'] : "_xfsearch_" . $xf;

Готово!

ychelovek
Юзер

ychelovek - 13 апреля 2015 18:38 -

Спасибо большое)

ychelovek
Юзер

ychelovek - 13 апреля 2015 20:35 -

$cache_prefix = "_xfsearch_" . $xf;

Не находит

vitnet
PHP-developer

vitnet - 13 апреля 2015 20:40 -

10.0, 10.4

PS: demo

ychelovek
Юзер

ychelovek - 13 апреля 2015 21:02 -

А вот что бы еще навигация появлялась так правильно в htaccess?
RewriteRule ^find/([^/]*)/cat/([0-9]+)/page/([0-9]+)(/?)+$ index.php?do=xfsearch&cstart=$2&xf=$1&cat=$3 [L]

vitnet
PHP-developer

vitnet - 13 апреля 2015 21:07 -

find/1 позиция слово/cat/2 позиция категория/page/3 позиция номер страницы(/?)
index.php?do=xfsearch&xf=$1&cat=$2&cstart=$3

ychelovek
Юзер

ychelovek - 13 апреля 2015 21:17 -

Спасибо!)

ychelovek
Юзер

ychelovek - 14 апреля 2015 00:49 -

Как изменить ссылки в fullstory с site.ru/find/СЛОВО/ на site.ru/find/СЛОВО/cat/id_текущей_категории/?

Сделал средствами JQuery, но думаю это не очень хорошо:
<script>    
    $("#doppolya a").each(function (i) {
        str = $(this).attr('href');
    if(str.indexOf('http://site.ru/find/') + 1) {
        $(this).attr('href', str+ 'cat/{category-id}/')
    }
    });
</script>

#doppolya - блок, в котором находятся ссылки с доп-полями
Но оно работает))

Чтобы комментировать - войдите или зарегистрируйтесь на сайте
наверх