Ошибка в коде модуля "Прикрепленные файлы"

CS-Cart 4.7.4 В модуле “Прикрепленные файлы” (Attachments) файл func.php строка 74

'description' => is_array($attachment_data['description']) ? $attachment_data['description'][$lang_code] : $attachment_data['description']

Это функция fn_update_attachments и $attachment_data передаваемый параметр. Если передать в эту функцию $attachment_data[‘description’] как массив, но только для 1 из 2-х установленных в магазине языков то получим ошибку, т.к. для отсутствующего языка
$attachment_data['description'][$lang_code] == null

Как можно воспроизвести такую ситуацию?

Обязательно воспроизводить? :slight_smile: В коде проверка на то, что $attachment_data[‘description’] - массив, и тогда подставляете значение из ключа этого массива. А где гарантия, что ключ существует? Предлагаю заменить на такой вариант:
if (is_array($attachment_data[‘description’]){
if (empty($attachment_data[‘description’][$lang_code])){
$description = !empty($attachment_data[‘description’][DEFAULT_LANGUAGE]) ? $attachment_data[‘description’][DEFAULT_LANGUAGE] : $uploaded_data[$attachment_id][‘name’];
}else{
$description = $attachment_data[‘description’][$lang_code];
}
}else{
$description = $attachment_data[‘description’];
}
Тами образом $description всегда будет со значением: либо то что передано в функцию, если его нет то значение языка по умолчанию, если нет то с названием файла.

Если проблему никак нельзя воспроизвести в магазине, то это не баг. Мы можем создать задачу на рефакторинг этого кода, но у нее будет гораздо меньший приоритет