Небольшой баг в загрузке изображений в типе поля Текст html

+14
530

В процессе разработки одного дополнения обнаружил, что загруженные в процессе создания записи картинки не удаляются. Если вы загружаете картинки в поле в процессе редактирования, то с ними все в порядке.

Речь идет о загрузке через эту кнопку и любую подобную в других редакторах.

Изображение

Немного подробностей

При загрузке картинки в процессе добавления новости загрузчик не знает, к какой новости ее привязать. Этой привязкой занимается уже само поле. Вот тут github.com/instantsoft/icms2/blob/0a0dbd62e7dc882925e525a3d75d2a87de287ae5/system/fields/html.php#L256

Но в процессе загрузки, если target_id не известен (а он не известен в момент создания новой записи), движок ставит вместо него 0. Вот тут github.com/instantsoft/icms2/blob/0a0dbd62e7dc882925e525a3d75d2a87de287ae5/system/controllers/images/frontend.php#L169

Решение

Решений я вижу два. А какое пойдет в движок, узнаем позже в коммитах. Выбирайте на вкус. 

Самое короткое, это поправить загрузчик.

Изображение

В файле system\controllers\images\frontend.php заменить

  1. 'target_id' => $this->request->get('target_id', 0)

на

  1. 'target_id' => $this->request->get('target_id', 0) ?: null

Или длиннее, поправить обновление target_id в поле.

Изображение

Для этого в файле system\fields\html.php замените

  1. $model->filterEqual('path', $path)->filterIsNull('target_id');

на

  1. $model->filterEqual('path', $path)
  2. ->filterStart()
  3. ->filterIsNull('target_id')
  4. ->filterOr()
  5. ->filterEqual('target_id',0)
  6. ->filterEnd();

В 2.18.2 исправлено github.com/instantsoft/icms2/blob/dc8e5319239785cd6c2ccbbab9a1ae32427d7de0/system/controllers/images/frontend.php#L169

Нет комментариев. Ваш будет первым!

Еще от автора

Выбор пользователем количества записей на странице
Небольшой компонент, который позволяет пользователям выбирать, по сколько записей выводить на странице.
Вышло обновление афиши 1.2.2
В обновлении новый современный дизайн всех страниц афиши, новый блок места проведения в афише, возможность указать несколько изображений, поддержка ко
Управление персональным меню v.1.0.2
Небольшое обновление компонента, в котором стало удобнее выбирать иконку пункта меню, а также добавлена опция, разрешающая пользователю добавление ссы
🍪Мы используем файлы cookie для работы сайта. Читать подробнее.