Прикрепление админом файла к заказу

Приветствую, уважаемое сообщество и @Andchir.
Пару раз здесь всплывала эта тема, и вы указали, что такого функционала нет.
Я попробовал сам реализовать эту возможность, но, так как знаний недостаточно, немного забуксовал.
Порядок моих действий:

  • Создал новую колонку files в таблице БД
  • В файле core/components/shopkeeper3/model/shopkeeper3/mysql/shk_order.map.inc.php я создал новое поле files.
  • Добавил в шаблон (core/components/shopkeeper3/templates/home.tpl) новое поле (скопировал note, по сути). Выглядит вот так:
                    <!div class="alert alert-sm alert-info" role="alert">
                        <table style="width:100%;">
                            <tr>
                                <td style="width:20px;">
                                    <span class="glyphicon glyphicon-paperclip"></span>
                                </td>
                                <td style="padding-left:10px;">
                                    <input type="text" name = "uploadfile" placeholder = "Добавьте файлы к заказу" class="form-control input-sm" ng-model="data.order.files">
                                    <p>{{data.order.files}}</p>
                                </td>
                            </tr>
                        </table>
                    </div>

Всё сохраняется, если у input указан type=text. Однако, если указать type=file, значение перестаёт сохраняться.
Прошу совета, куда примерно копать дальше, чтобы можно было сохранить файл в это поле. Т.е. я понимаю, что где-то нужно написать обработчик, который создаст каталог, сохранит файл и т.д. Но вот где - и как примерно - буду очень благодарен за совет.

Всё сохраняется, если у input указан type=text.

У вас добавлен атрибут enctype="multipart/form-data" для формы?

https://www.w3schools.com/php/php_file_upload.asp

@andchir ,
Конечно. В core/components/shopkeeper3/templates/home.tpl я добавил этот атрибут для формы.

В админке данные отправляются аяксом. А для отправки файла аяксом надо переделывать функцию. Переписать её на FormData
https://developer.mozilla.org/en-US/docs/Web/API/FormData/FormData

Похоже, подключение к Форум | MODX Shopkeeper было разорвано, подождите, пока мы пытаемся восстановить соединение.