Skip to content

fix(mixedimage): удаление и замена файлов TV (#17) - #46

Open
Ibochkarev wants to merge 1 commit into
webinmd:masterfrom
Ibochkarev:fix/issue-17-file-remove-replace
Open

fix(mixedimage): удаление и замена файлов TV (#17)#46
Ibochkarev wants to merge 1 commit into
webinmd:masterfrom
Ibochkarev:fix/issue-17-file-remove-replace

Conversation

@Ibochkarev

@Ibochkarev Ibochkarev commented Aug 9, 2026

Copy link
Copy Markdown

Исправлены проблемы из #17: файл не удалялся с диска по кнопке «Очистить», при загрузке нового изображения старый оставался на сервере.

Зачем

remove.class.php был пустым stub на modBrowserFileRemoveProcessor. Родитель инициализирует media source только по ID источника, без контекста TV. Путь файла и basePath не совпадали, removeObject() не находил файл.

Upload не удалял предыдущий файл при смене пути (orphan .png.jpg при prefixFilename). Клиент не передавал tv_id, formdata и previous_value.

Что сделано

Backend

  • remove.class.php — bootstrap, возвращает FQCN processor (PSR-1).
  • BrowserFileRemoveProcessor — загружает TV по tv_id, media source из context_key в formdata, проверяет removeFile, удаляет через removeObject().
  • MixedImageTvMediaSource — helper для remove и upload: нормализация пути, загрузка TV, init source.
  • upload.class.phpremovePreviousFileIfReplaced() при разных путях и previous_value от клиента. Ошибка удаления не отменяет upload.

Frontend (mixedimage.js)

  • getRemoveParams()tv_id, formdata, HTTP_MODAUTH, file через getValue().
  • getPreviousFileValue() + previous_value в upload (desktop, drag-and-drop, URL).
  • clearField() через setValueInput('') и MODx.fireResourceFormChange().
  • isYesOption() для removeFile (MODX 3 хранит 1/0).
  • Исправлена перестановка tv_id / tvId в окне загрузки по URL.

PHP / tpl

  • toJsBoolean() только для опции removeFile в mixedimage.class.php.
  • jsonlex в tpl для окна upload по URL.

Scope

Ветка содержит только изменения для #17. Превью после reload — отдельный PR #45. Crop и docs — #44.

Рекомендуемый порядок merge: #45#44#46 (rebase на master после каждого).

На ревью

  • FQCN в return remove processor для MODX 2/3.
  • Leading \ у \modProcessor, \modTemplateVar, \modMediaSource в helper.
  • Orphan cleanup при replace срабатывает при разных путях, не только при removeFile=Да.

Fixes #17

@Ibochkarev
Ibochkarev marked this pull request as ready for review August 9, 2026 04:16
TV media source context for delete, orphan cleanup when upload paths
differ, and manager connector params (tv_id, formdata, previous_value).

Fixes webinmd#17
@Ibochkarev
Ibochkarev force-pushed the fix/issue-17-file-remove-replace branch from ebf3c5e to aaeb96d Compare August 9, 2026 04:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant