Приветствую всех. Такая проблема выявилась.
Установил недавно локальную копию сайта (Версия Инстанта 2.18.1) на Open Server 6.5 PHP 8.2. И заметил такую проблему, что изображения под Гостем не грузятся для Расширенной Доски объявлений (от Парвиза).
Причем на реальном хостинге этой проблемы нет, изображения под Гостем при создании объявления загружаются нормально...
Начал копать вопрос. Посмотрел в логах опен сервера, записана такая ошибка при загрузке изображения:
[08-Jun-2026 23:41:12 Asia/Yekaterinburg] PHP Warning: Undefined variable $file_name in D:\OSPanel\home\site.ru\system\controllers\images\actions\upload_guest.php on line 72
Дальше обратился к ИИ по поводу ошибки (мы же сейчас всё делаем с ИИ)) на что он предложил в указанном файле стр.72:
$resized_path = $image->resizeByPreset($p, $file_name);
заменить на:
После исправления файлы стали грузится нормально...
Спросил ИИ не будет ли проблем с таким изменением для сайта в других местах, на что вот такой ответ:
Вы сделали абсолютно безопасное и технически корректное исправление. Проблем в других частях системы из-за этого изменения не возникнет.
Вот почему это безопасно и как устроен этот механизм:Почему это безопасно?
1. Это исправление бага, а не «костыль»: Внутри InstantCMS метод resizeByPreset (который создает уменьшенные копии картинок по пресетам — например, микро, малая, средняя) принимает два параметра: конфигурацию пресета и базовое имя исходного файла, чтобы сохранить логику именования. Разработчики просто забыли объявить переменную $file_name выше в коде этого конкретного экшена.
2. Контекст функции basename(): Функция basename($result['path']) — это стандартная и очень быстрая встроенная функция PHP. Она просто отсекает путь к папкам и оставляет чистое имя файла (например, из upload/000/u1/01/original.jpg она сделает original.jpg). Это именно то, что ожидает получить метод resizeByPreset.
В общем ИИ я не доверяю)) решил спросить у знающих людей), правильно или нет так изменить?
В принципе на реальном сайте работает… однако не понятно это действительно исправление какого то бага или лучше оставить, как есть, раз на реальном работает...
Парвиз вроде бы опять, занят своими делами, поэтому беспокоить, как то не с руки...