Бесплатные CMS > Установка и расширения PunBB > Добавление изображения на форум

Punbb: как загружать картинки

niikto хочет иметь удобный механизм иллюстрирования статей, чтобы в статье

1. список встроенных картинок не должен прилагаться как "вложения" в теме
2. вставляемые картинки могли быть произвольного размера, на усмотрение автора

Заковыка вот в чем: на сегодняшний день мы можем сохранять файлы, в т.ч. картинки только как вложения к сообщению. И эти картинки либо грузятся целиком через скрипт download.php, либо масштабируются к одному из предустановленных размеров и тогда выводятся уменьшенные копии "напрямую" из файла.

Для настоящих иллюстраций, как хочет niikto, надо расширять механизм upload/download.
Для иллюстраций
- не понадобится контроль прав на download. оригинальное изображение можно выводить всем
- нет необходимости привязывать их к конкретному посту. они могут присутствовать в нескольких постах и не должны пропадать при удалении любого из них. то есть картинка сама по-себе. а если нет привязки к теме/форуму, то нет и механизма прав!

Форма создания сообщения имеет поле загрузки картинки.

После добавления картинки она появляется в уменьшенном виде в окне картинок над формой ввода сообщения, у картинки появляется реальный адрес и ее можно вставить бб-кодом, в случае если это бб-редактор, или драг-дропом или тэгом img, если это WYSIWYG. Т.е. отправив картинку(и) сообщение не отсылается для публикации, отправка картинки - отдельный предварительный этап, который можно выполнить в любой момент в процессе создания публикации, без потери данных.

После создания сообщения (отправки формы на сервер) в таблицу файлов вносится запись о картинке - ид картинки (автоматом), ид сообщения, реальное имя файла. По этим признакам была организована очистка от старых картинок - удаляется сообщение, следом все картинки с ид-сообщения.

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

Изменение размеров картинки - на стороне сервера, с добавление постфикса к картинке вида (_ширинаХдлинна) и помещать это в кэш. Персональный размер можно хранить в той же таблице соответсвий [id-публикации id-картинки], специальный механизм либо достанет картинку из кэша, либо сгенерит новую при отсутствии в кэше, исходя и зразмера для конкретной публикации используя оригинал.

Oк. а ты можешь поделиться кодом для изучения? или хотябы сохраненными копиями страниц - сам интерфейс поглядеть.

Так как я буду прикручивать "иллюстратора" (пусть так называется) к PE, то конечно хочется по-максимуму использовать существующие процедуры. Даже если мне в руки попадет отличный инструмент, мне придется этот инструмент скрещивать с моим EFU чтобы не было повторов.

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

У пользователя есть лимит на количество и максимальный размер файлов. Любые upload-ы должны проходить через этот "шлюз" и любые файлы пользователя должны быть в списке "личных файлов", только там будет еще один раздел файлов, не привязанных ни к чему. Надо добавить сюда генератор BBcode для вставки в сообщения.


Меню сайта

Punbb: как загружать картинки
Punbb: как загружать картинки