Поиск в админке

4.14.1.SP1
Если в поле поиска в админке ввести данные, начиная с пробела и в тексте также есть пробел, то в режиме отладки видна ошибка:

Undefined offset: 0
Error at
app/functions/fn.cart.php, line: 7309

Например введите в поле поиска " Имя Фамилия"

Здравствуйте, @da3020
Спасибо за ваше обращение.
Мне не удалось воспроизвести проблему в чистой установке, возможно она возникает только в вашем магазине.
Если проблема ещё актуальна, я рекомендую вам обратиться в Help Desk, чтобы мои коллеги изучили её в вашей установке.

Ну как же?
вот на dev.demo - в быстрый поиск ввел : (пробел)Имя(пробел)Фамилия - " Имя Фамилия"
https://dev.demo.cs-cart.ru/stores/7eff37704ebf33b9/admin.php?dispatch=search.results&compact=Y&q=+Имя+Фамилия&security_hash=0c478cf2ae3a7e8965a9f28fde4a4e2c

Summary

PHP Notice
Message
Undefined offset: 0

Error at
/srv/projects/dev.demo.cs-cart.ru/files/releases/ult_ver5340/app/functions/fn.cart.php, line: 7378

Backtrace
File: /srv/projects/dev.demo.cs-cart.ru/files/releases/ult_ver5340/app/functions/fn.cart.php
Line: 7378
Function: {closure}
File: /srv/projects/dev.demo.cs-cart.ru/files/releases/ult_ver5340/app/functions/fn.search.php
Line: 468
Function: fn_get_orders
File: /srv/projects/dev.demo.cs-cart.ru/files/releases/ult_ver5340/app/functions/fn.search.php
Line: 169
Function: fn_create_orders_condition
File: /srv/projects/dev.demo.cs-cart.ru/files/releases/ult_ver5340/app/controllers/backend/search.php
Line: 29
Function: fn_search
File: /srv/projects/dev.demo.cs-cart.ru/files/releases/ult_ver5340/app/functions/fn.control.php
Line: 722
Function: include
File: /srv/projects/dev.demo.cs-cart.ru/files/releases/ult_ver5340/app/functions/fn.control.php
Line: 458
Function: fn_run_controller
File: admin.php
Line: 27
Function: fn_dispatch
PHP Notice
Message
Undefined offset: 0

Error at
/srv/projects/dev.demo.cs-cart.ru/files/releases/ult_ver5340/app/functions/fn.cart.php, line: 7381

Backtrace
File: /srv/projects/dev.demo.cs-cart.ru/files/releases/ult_ver5340/app/functions/fn.cart.php
Line: 7381
Function: {closure}
File: /srv/projects/dev.demo.cs-cart.ru/files/releases/ult_ver5340/app/functions/fn.search.php
Line: 468
Function: fn_get_orders
File: /srv/projects/dev.demo.cs-cart.ru/files/releases/ult_ver5340/app/functions/fn.search.php
Line: 169
Function: fn_create_orders_condition
File: /srv/projects/dev.demo.cs-cart.ru/files/releases/ult_ver5340/app/controllers/backend/search.php
Line: 29
Function: fn_search
File: /srv/projects/dev.demo.cs-cart.ru/files/releases/ult_ver5340/app/functions/fn.control.php
Line: 722
Function: include
File: /srv/projects/dev.demo.cs-cart.ru/files/releases/ult_ver5340/app/functions/fn.control.php
Line: 458
Function: fn_run_controller
File: admin.php
Line: 27
Function: fn_dispatch
PHP Notice
Message
Undefined offset: 0

Error at
/srv/projects/dev.demo.cs-cart.ru/files/releases/ult_ver5340/app/functions/fn.users.php, line: 1642

Backtrace
File: /srv/projects/dev.demo.cs-cart.ru/files/releases/ult_ver5340/app/functions/fn.users.php
Line: 1642
Function: {closure}
File: /srv/projects/dev.demo.cs-cart.ru/files/releases/ult_ver5340/app/functions/fn.search.php
Line: 516
Function: fn_get_users
File: /srv/projects/dev.demo.cs-cart.ru/files/releases/ult_ver5340/app/functions/fn.search.php
Line: 169
Function: fn_create_users_condition
File: /srv/projects/dev.demo.cs-cart.ru/files/releases/ult_ver5340/app/controllers/backend/search.php
Line: 29
Function: fn_search
File: /srv/projects/dev.demo.cs-cart.ru/files/releases/ult_ver5340/app/functions/fn.control.php
Line: 722
Function: include
File: /srv/projects/dev.demo.cs-cart.ru/files/releases/ult_ver5340/app/functions/fn.control.php
Line: 458
Function: fn_run_controller
File: admin.php
Line: 27
Function: fn_dispatch
PHP Notice
Message
Undefined offset: 0

Error at
/srv/projects/dev.demo.cs-cart.ru/files/releases/ult_ver5340/app/functions/fn.users.php, line: 1645

Backtrace
File: /srv/projects/dev.demo.cs-cart.ru/files/releases/ult_ver5340/app/functions/fn.users.php
Line: 1645
Function: {closure}
File: /srv/projects/dev.demo.cs-cart.ru/files/releases/ult_ver5340/app/functions/fn.search.php
Line: 516
Function: fn_get_users
File: /srv/projects/dev.demo.cs-cart.ru/files/releases/ult_ver5340/app/functions/fn.search.php
Line: 169
Function: fn_create_users_condition
File: /srv/projects/dev.demo.cs-cart.ru/files/releases/ult_ver5340/app/controllers/backend/search.php
Line: 29
Function: fn_search
File: /srv/projects/dev.demo.cs-cart.ru/files/releases/ult_ver5340/app/functions/fn.control.php
Line: 722
Function: include
File: /srv/projects/dev.demo.cs-cart.ru/files/releases/ult_ver5340/app/functions/fn.control.php
Line: 458
Function: fn_run_controller
File: admin.php
Line: 27
Function: fn_dispatch
Перейти на Панель инструментов
Витрина
Панель администратора
Настройки
Помощь
Скрыть меню администратора
Витрина: Simtech
Модули
Администрирование
Настройки
Дизайн
RU

Имя Фамилия

Быстрый старт
Заказы
Товары
Покупатели
Маркетинг
Веб-сайт

Результаты поиска по Имя Фамилия
Сохранить
Страницы (1)
Товары (3)
Поз. Название Статус
0
Политика конфиденциальности #3, Страница
Вкл.

1 лайк

просто после фильтрации масиива customer_name кто-то поленился переиндексировать функцией array_values ))

вместо:

$customer_name = array_filter($customer_name, ‘fn_string_not_empty’);

сделать:

$customer_name = array_values(array_filter($customer_name, ‘fn_string_not_empty’));

да и ещё в fn.users.php после конструкции

foreach ($arr as $k => $v) {
        if (!fn_string_not_empty($v)) {
            unset($arr[$k]);
        }
}

можно сделать красивое

$arr = array_values($arr);

но всё надо тестировать, вдруг такие правки потянут какие-то секретные алгоритмы ))

2 лайка

или еще чего проще - делать trim на поля ввода перед отправкой формы

2 лайка

Мне даже стыдно стало, что не подумал про trim )) это всегда казалось чем-то из разряда “обработка формы для чайников” )) вот по привычке и полез в самую чащу… всё, на выходных никакого кода! ))

Здравствуйте, @alex_vp
Да, действительно, проверила ещё раз - проблема воспроизвелась.
Спасибо.
Передала информацию разработчикам.

1 лайк

Здравствуйте.
Проблему исправили, исправление войдет в следующую версию.
Для того, чтобы внести исправления, не дожидаясь выхода следующей версии, воспользуйтесь diff-файлом: search.zip (1,2 КБ)

О том, как применить .diff-файл, можно прочитать в нашей документации: Как применить diff-файл — Документация docs.cs-cart.ru 4.15.x