XF 2.2 PHP 8.2. Баг с массовой обработкой пользователей

Статус
В этой теме нельзя размещать новые ответы.
Версия XenForo
2.2.12

СтарыйХ

Проверенные
Сообщения
26
Реакции
29
Баллы
720
v2.2.12 (PHP 8.2) (Не знаю про более ранние версии, как там не в курсе) Столкнулся с багом при массовой обработке пользователей. Мне нужно было массово добавить пользователей в дополнительную группу, но этого не происходило. Ни каких ошибок не появлялось, просто все действия игнорировались.
После раскопок выяснилось, что в баге виновата проверка поля "Установить звание", она не проходит, если это поле пустое. Думаю, что и все другие операции на этой странице из-за этого пустого поля не пройдут.
Лечится след. образом: В файле \src\XF\Job\UserAction.php со стр. 144 найти и закомментировать эти три строчки
PHP:
        if ($customTitle !== '')
        {
            $user->custom_title = $customTitle;
        }
После этого, ниже добавить след. код.
PHP:
$user->custom_title = $customTitle ?? '';
Когда поле "Установить звание" не заполнено, переменная $customTitle имеет значение "null" и не проходит валидацию, т. к. ее тип д. б. "string"
Заплатка, которая работает, если кто-то встретился с подобным багом
 
Последнее редактирование:
А на какой версии PHP это ломается-то?
Я сейчас перепроверил у себя, прогнав несколько локальных тестов: на 7.4 всё отлично, за счёт того, что ValueFormatter движковый кастует в дебрях энтити при получении null как нового значения для свойства -- в пустую строку.

И узлом ошиблись. К слову.
 
Поддержку 8.2 пока потихоньку завозят. То там, то тут - будет что-то вылезать, это нормально.
По этой причине, прод форумы пока запускать на ней не рекомендуется.
 
на разрешенной версии PHP вылезает эта бяка
8.1 ещё не рекомендуется использовать, 8.0 с осторожностью, а у вас 8.2
Куда лезть вперёд паровоза...тема офф. Если надо - пишите баг репорты на официальном форума.
 
Статус
В этой теме нельзя размещать новые ответы.
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу