Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
cyrax_02

Автоматическая загрузка изображений при их вставке в сообщение

Рекомендованные сообщения

Каким образом можно заставить CKE автоматически загружать изображения при их вставке в сообщение ?

Это принципиальный вопрос.

 

Причины:

1) Такова бизнес-логика в нашей конторе

2) Сторонние ресурсы могут закрыться или "лечь"

3) Сторонние ресурсы могут поставить в .htaccess запрет на загрузку изображений с других ресурсов (широкая практика)

 

P.S. Что-то слишком слаб CKE Editor по сравнению с TinyMCE. Ужас...

Поделиться сообщением


Ссылка на сообщение

Следует понимать, что CKE это всего лишь визуальный редактор на клиентском языке, и сам по себе на сервер он ничего загружать не может. Возможно есть какие-то специальные плагины с дополнительными php скриптами/библиотеками которые загружают файлы на сервер. Но лично я таких не встречал, да и особо не искал (есть Inline Image Uploader для IPB от ritsuka, но он не автоматический).

Нужно написать хук, который при отправке поста спарсит все теги img и загрузит их на свой сервер. Если говорить о плагине к редактору то - он должен отправить запрос на загрузку изображения, php скрипт который загрузит изображение на сервер, получить ссылку к загруженному изображению и встроить в редактор - много лишних движений.

Поделиться сообщением


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

К примеру, TinyMCE при вставке изображения через буфер вставляет его как base64. Впрочем, такой вариант не очень хорош, т.к. БД быстро распухнет + не будет возможности раздельно бэкапить такие изображения и прочие данные из БД (изображения - реже, остальное - чаще).

 

Возможно есть какие-то специальные плагины с дополнительными php скриптами/библиотеками которые загружают файлы на сервер. Но лично я таких не встречал, да и особо не искал (есть Inline Image Uploader для IPB от ritsuka, но он не автоматический).

Но коли CKE интегрирован в IP.Board "из коробки", то вполне логична опциональная реализация такой загрузки. А загрузку можно реализовать через те же самые javascrip'ы на клиенте (которые выполняют коннект с сервером и выполняют загрузку). Не может быть такого, чтобы CKE не предоставлял возможность добавлять свой (ака бордовский) javascript-функционал через плагины, события или иной механизм.

 

Нужно написать хук, который при отправке поста спарсит все теги img и загрузит их на свой сервер.

Не так всё просто. Нужно не только загрузить и получить ссылку, но ещё и в полной мере реализовать логику квотирования пользователя.

 

Если говорить о плагине к редактору то - он должен отправить запрос на загрузку изображения, php скрипт который загрузит изображение на сервер, получить ссылку к загруженному изображению и встроить в редактор - много лишних движений.

Много движений пользователя (если делать всё это вручную), но только не для программного кода. Он всё стерпит.

Поделиться сообщением


Ссылка на сообщение
К примеру, TinyMCE при вставке изображения через буфер вставляет его как base64.

Именно что из буффера. При желание, такое можно реализовать и на CKE.

 

А загрузку можно реализовать через те же самые javascrip'ы на клиенте (которые выполняют коннект с сервером и выполняют загрузку).

Это если локальные файлы, здесь речь о удаленных. При том, js на сервер файлы сохранять не может, нужен серверный обработчик. А CKE в первую очередь редактор, его назначение не загрузка удаленных файлов а форматирование текста на уровне клиента (браузера).

 

Не так всё просто. Нужно не только загрузить и получить ссылку, но ещё и в полной мере реализовать логику квотирования пользователя.

Тем более это не прерогатива редактора. Это находится на уровне форума, поэтому логичнее делать там. С редактором все равно придется подключать форум, что вместе с редактором в двойне усложняет задачу. Это делается в обработчике, парсингом img и загрузкой удаленных изображений на сервер - либо как аттачей, либо просто как сторонние файлы.

Поделиться сообщением


Ссылка на сообщение
02/26/15 19:17 (изменено)
Это если локальные файлы, здесь речь о удаленных. При том, js на сервер файлы сохранять не может, нужен серверный обработчик.

Под "выполнением загрузки" я как раз и имею ввиду запрос некоторого серверного скрипта с передачей тому url-ссылки, который (запрос) и выполнит физическую загрузку.

 

А CKE в первую очередь редактор, его назначение не загрузка удаленных файлов а форматирование текста на уровне клиента (браузера).
Тем более это не прерогатива редактора. Это находится на уровне форума, поэтому логичнее делать там. С редактором все равно придется подключать форум, что вместе с редактором в двойне усложняет задачу.

Но ведь никто не мешает выполнять загрузку не в момент вставки изображения на клиенте, а в момент сохранения сообщения на сервере. Скажем, CKE вставляет изображение как base64 (как TinyMCE), а сервер при получении текста сообщения выполняет сохранение у себя в папке uploads всех base64-изображений из полученного html-текста сообщения.

Изменено пользователем cyrax_02

Поделиться сообщением


Ссылка на сообщение

Скажем, CKE вставляет изображение как base64 (как TinyMCE)

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

Поделиться сообщением


Ссылка на сообщение

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

(DP34) Download Images

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

Нашелся и хук. И помнил что гдето подобное видел.

Поделиться сообщением


Ссылка на сообщение

(DP34) Download Images

Насколько я понял, этот хук:

а) не реализует логику квотирования

б) не реализует миниатюры (как в случае с изображениями, прикреплёнными стандартными средствами)

 

Может быть, в IP.Board 4 подобное реализовано "из коробки" ?

Поделиться сообщением


Ссылка на сообщение
а) не реализует логику квотирования

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

 

не реализует миниатюры (как в случае с изображениями, прикреплёнными стандартными средствами)

Миниатюр нет и у стандартных inline-изображений, там ресайз на js + css. Тумбы есть только у аттачей.

 

Может быть, в IP.Board 4 подобное реализовано "из коробки" ?

Можно надеяться, но я сомневаюсь.

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...