Перейти к содержанию

Все разделы сайта

Написать о задаче

Content Image Upload 2.0: картинки материалов Joomla 6 — броском, в WebP и с водяным знаком, который снимается

Вышел Content Image Upload — системный плагин Joomla 6 для редактора материалов. Картинку загружают кнопкой или бросают на панель, а плагин сам кладёт её в папку по дате, уменьшает, переводит в WebP или AVIF и по желанию закрывает водяным знаком, который потом можно снять.

Панель Content Image Upload на вкладке «Изображения и ссылки»
Панель плагина в редакторе материала: слева — загрузка, превью и водяной знак, справа — описание, классы и подпись.

Картинка — в один бросок

Панель встаёт на вкладку «Изображения и ссылки». Файл загружают кнопкой или просто бросают мышью на левую половину панели — она подсвечивается пунктиром, и страница не перезагружается. Файл, отпущенный мимо панели, не откроется во вкладке браузера и не уведёт со страницы с несохранённым материалом.

  • Папка складывается сама по шаблону, например images/2026/10/22; дата берётся в часовом поясе редактора.
  • Имя файла всегда уникальное: случайное, по дате или транслит исходного, с хвостом из 16 случайных знаков — существующий файл никогда не перезаписывается.
  • Одна картинка сразу встаёт во вводный и полный текст. Если полному тексту нужна своя, синхронизацию выключают одним переключателем.
  • Описание, классы и подпись вписываются в той же панели, и плагин переносит их в поля Joomla. Значение поля он пишет так же, как сама Joomla, поэтому на сайте у картинки есть ширина, высота и ленивая загрузка.
Файл перетаскивают на панель плагина
Бросок файла: левая половина панели подсвечивается пунктиром.

Обработка при загрузке

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

WebP — формат, который Google представил в 2010 году; название читается как «веб-картинка». При том же качестве снимок в WebP заметно легче JPEG, и страница грузится быстрее. AVIF — AV1 Image File Format: картинка на кодеке AV1 от Alliance for Open Media, союза интернет-компаний, который выпустил его в 2019 году. AVIF сжимает ещё плотнее, но кодирует медленнее. Какие форматы доступны, решает сборка библиотеки GD на сервере.

EXIF — Exchangeable image file format, японский стандарт 1995 года, по которому камера и телефон записывают в файл модель аппарата, дату, координаты и то, как держали телефон при съёмке. Плагин поворачивает снимок по этой метке, а при перекодировании убирает метаданные, в том числе GPS: адрес, где снимал корреспондент, на сайт не уходит.

Настройки обработки изображения
Пример: картинки уменьшаются до 1 600 пикселей по ширине и переводятся в WebP.

Водяной знак, который снимается

Водяной знак пришёл из бумажного дела: так называли рисунок в толще листа, видный на просвет, — знак мельницы, а позже защиту банкнот. На сайте это логотип поверх снимка. Обычно его кладут навсегда; здесь знак ставится галочкой и снимается тою же галочкой.

Перед первым наложением плагин сохраняет оригинал в закрытую папку images/.contentimageupload. Имя копии — HMAC, хэш от пути картинки, смешанный с секретом сайта из configuration.php: по публичному адресу картинки адрес чистого оригинала не вычислить. Галочка показывает, что на самом деле лежит в файле, а подсказка под ней — что случится при сохранении. После смены знака плагин удаляет миниатюры JUImage этой картинки, и шаблон, например Wmarka, сразу рисует новые.

Галочка водяного знака и подсказка о сохранении
Подсказка под галочкой: знак будет наложен при сохранении материала.
Настройки водяного знака
Файл знака, позиция, непрозрачность, ширина и отступы.

Чем отличается от медиа-менеджера

Медиа-менеджер JoomlaContent Image Upload
Где загружатьраздел или окно поля «Изображение»кнопкой или броском прямо в материале
Папкавыбирается вручнуюсоздаётся сама по шаблону
Файл с таким именем уже естьспрашивает, заменить лине бывает: имя каждый раз новое
Обработкатолько уменьшение, через отдельный плагинпять режимов размера, WebP, AVIF, поворот по EXIF
Метаданные и GPSсохраняютсяпри обработке удаляются
Водяной знакнетесть, со снятием

Проверки

Загрузка идёт только в панели управления, только от вошедшего пользователя с правом загружать в медиа-менеджер и правом на сам материал, с токеном формы. Файл с двойным расширением вроде photo.php.jpg отклоняется, как и файл со строкой <?php внутри; тип определяется по содержимому, а не по имени. Картинки больше 25 млн пикселей не принимаются, а перед обработкой плагин сверяется с лимитом памяти PHP и вместо белого экрана говорит, что не так.

Установка

Нужны Joomla 6.0 и новее и PHP 8.3 и новее с расширением GD; для WebP и AVIF — сборка GD с их поддержкой, для поворота снимков — расширение exif. Архив ставится обычным установщиком Joomla, второй архив распаковывается прямо в корень сайта. После первой установки плагин выключен: его включают в «Система → Плагины». Новые версии Joomla предложит сама, из сервера обновлений в репозитории. Интерфейс — на русском, казахском и английском, подробная инструкция со снимками — в README на трёх языках.

Плагин вырос из Content Image Upload 1.6 агентства «Хабар», а обработка при загрузке опирается на подходы плагина WT Image Resize and Convert от WebTolk. Обе работы выпущены под GNU GPL, и версия 2 — на тех же условиях.

Content Image Upload на GitHub · все модули и плагины на webmarka.kz

Список использованных источников

  1. Content Image Upload — репозиторий на GitHub
  2. Content Image Upload 2.0.1 — выпуск на GitHub