Технический сбой

Сайт временно работает в режиме только для чтения, идут восстановительные работы. Приносим свои извинения за неудобства.
DLE FAQ » Все вопросы » Общие вопросы по PHP » Как сделать поиск по дополнительным полям только из определенных категорий?

Как сделать поиск по дополнительным полям только из определенных категорий?


     Общие вопросы по PHP, Хаки    1077

вопрос
Как сделать, чтобы при поиске по дополнительным полям (значения используются как перекрестные ссылки) на странице /xfsearch/pole/bla-bla выводились новости только из двух категорий с id 2 и 3?

Ответил: PunPun


В /engine/engine.php найти
if (count ( $xf_array )) {
Выше вставить

1. Для всех доп полей будет только категория с id 2 и 3.
$stop_list = "category regexp '[[:<:]](2|3)[[:>:]]' AND ";


2. Для определенного доп. поля
if ($xfname == 'pole') {
    $stop_list = "category regexp '[[:<:]](2|3)[[:>:]]' AND ";
}


3. Для определенного доп. поля и его значения
if ($_GET['xf'] == 'pole/bla-bla/') {
    $stop_list = "category regexp '[[:<:]](2|3)[[:>:]]' AND ";
}

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

maks
Юзер

maks - -

Можно пункт 2 несколько раз использовать?

if ($xfname == 'pole') {
    $stop_list = "category regexp '[[:<:]](2|3)[[:>:]]' AND ";
}
if ($xfname == 'pole2') {
    $stop_list = "category regexp '[[:<:]](4|5)[[:>:]]' AND ";
}

LazyDev
PHP-developer

LazyDev - -

maks, сколько угодно.

Мой блог: LazyDev.pro

Помогаю с решением проблем на платной основе.

super120
Юзер

super120 - -

PUNPUN, Все сработало, спасибо большое

maks
Юзер

maks - -

А несколько полей как можно использовать?

if ($xfname == 'pole', 'pole2') {
    $stop_list = "category regexp '[[:<:]](2|3)[[:>:]]' AND ";
}

LazyDev
PHP-developer

LazyDev - -

Цитата: maks
А несколько полей как можно использовать?

if (in_array($xfname,['pole', 'pole2'])) {
    $stop_list = "category regexp '[[:<:]](2|3)[[:>:]]' AND ";
}

Мой блог: LazyDev.pro

Помогаю с решением проблем на платной основе.

Похожие вопросы

наверх