Версия: 1.1.1(Начальная)
Автор: Oleg(волчара), Cursor - The AI Code Editor
Лицензия: GNU General Public License, version 2 (GPL-2.0)
Требования:PHP=7.4-8.5, phpBB >= 3.3.15
ВНИМАНИЕ! Расширение создавалось и проверялось на версии phpBB 3.3.15 и новее, PHP=7.4 и 8.5, на других версиях phpBB т.е. ниже 3.3.15 работоспособность расширения не проверялось!
Описание расширения: Расширение добавляет возможность загрузки изображений на хостинги: сервер форума(по отношению корня форума), imageban.ru, yandex.disk, google.disk, google.photos c последующей вставки тегов ссылок в форму сообщения(с превью или обычных). На страницах создания тем, личных сообщений, быстрого ответа, отображается кнопка "Добавить изображения".
Идея была позаимствована от расширения
BB3ImageUpload(SE/SE2): загрузка изображений на внешние хостинги изображений
Данное расширение создавалось с нуля.
Отличие от BB3ImageUpload(SE/SE2):
- Нет функции: Лог загрузки, Обзор изображений, для меня лично это все лишнее(имхо)
- Присутствует функция слайдер (у BB3ImageUpload(SE/SE2) нет)
- Время ожидания перенаправления страницы (у BB3ImageUpload(SE/SE2) нет)
- При выборе метода загрузки, то показывает именно тот блок который вы выбрали (у BB3ImageUpload(SE/SE2) нет)
Примечание:Сделал показ одиночного блока что бы страница в ACP не становилось портянкой, т.к. в будущем буду добавлять другие методы загрузки. - Нет функции отключения автоматической вставки изображения в сообщение (у BB3ImageUpload(SE/SE2) есть)
- Три вида вставки тега: Превью, С подключением функции слайдер и Стандартный(будет показывать размер полного изображение)(у BB3ImageUpload(SE/SE2)Превью и Стандартный, требуется отдельное расширение для показа тега с функцией слайдер)
Код: Выделить всё
[img]URL[/img] - Жесткое ограничение размера файла, максимум 10Мб на один файл(у BB3ImageUpload(SE/SE2) ограничение связаны с настройками сервера)
Примечание: Ограничение данного расширения зависят только от самого хостинга изображений, пример: если вы выставите 10Мб в расширении, а у хостинга ограничение 5мб, то файл не загрузиться и появится ошибка. - Ограничение количества загружаемых изображений: максимум 50шт в одно сообщение(у BB3ImageUpload(SE/SE2) без ограничений)
- Жесткое ограничение размера миниатюр в блоке «Предпросмотр» (от 100 до 300 px). (у BB3ImageUpload(SE/SE2) без ограничений)
- Жесткое ограничение размер превью (в сообщении): (от 100 до 300 px).(у BB3ImageUpload(SE/SE2) нет такой функции)
- Кнопка "Добавить изображения" по умолчанию добавляется в страницах создания тем, личных сообщений, быстрого ответа.(у BB3ImageUpload(SE/SE2) есть выбор где можно показывать кнопку)
- Удаление изображения из папки хостинга изображения, во всех видах загрузки(у BB3ImageUpload(SE/SE2) только для яндекс и гугл диск)
Примечание:В данном расширении полностью удаляется загруженное изображение из папки во всех видов загрузки, а так же в блоке "Предпросмотр", тег в сообщении и изображение в форме предпросмотр форума, у расширения BB3ImageUpload(SE/SE2) только тег в сообщении. - Создание папки в хостинге изображения(у BB3ImageUpload(SE/SE2) нет такой функции)
Получение данных для расширения
Загрузка на сервер:
Яндекс.Диск:
Google Drive:
Как создать Google Photos:
1) В расширении нажать на кнопку "Получить(создать)" или перейти по ссылке
2) Нажать на "CREATE PROJECT"(справа вверху)
5) На открывшейся странице в верху нажать "Create credentials"
6) Из выпадающего списка выбрать "Create OAuth client ID"
7) Нажать на "Configure consent screen"
8) На открывшейся странице нажать "Get started"
13) В появившемся окне выбрать свою почту, затем в другом окне нажать "Дополнительные настройки"
Как создать FTP загрузку:
Рекомендуется отдельная учётная запись FTP только с доступом к папке загрузок для изображений, особенно для загрузки на HDD(роутер).
- Укажите папку (относительно корня phpBB) для сохранения загруженных изображений. Если папка ещё не создана — она будет создана автоматически при нажатии «Отправить».
- Кликните по кнопке "Перейти в профиль"(вы должны быть зарегистрированы)
- Напротив CLIENT_ID и SECRET_KEY нажать кнопку "Создать новый"
- Скопировать значения в соответствующие поля в расширении
- Указать ID папки или создать новую.
Яндекс.Диск:
- Нажать на кнопку "Получить(создать)" или перейти по ссылке Получить(создать)
- Выбрать: Для доступа к API или отладки
- В поле "Название вашего сервиса" указать название вашего домена
- В поле "Почта для связи" укажите ссылку на почту(обычно подставляется автоматически)
- В поле "Доступ к данным" пропишите disk и выбрать это:
Доступ к папке приложения на Диске: cloud_api:disk.app_folder
Чтение всего Диска: cloud_api:disk.read
Запись в любом месте на Диске: cloud_api:disk.write
Доступ к информации о Диске: cloud_api:disk.info
Доступ к Яндекс.Диску для приложений: yadisk:disk - Нажать кнопку "Создать приложение", на следующей странице скопировать данные поля "ClientID" в поле "ClientID" расширения и поля "Client secret" в поле "Client secret:"
- В расширении нажать на кнопку "Получить токен"
- В появившемся окне скопировать код подтверждения и скопировать в поле ввода "Код подтверждения:"
- Нажать на кнопку "Получить токен" после он автоматически вставится в поле ввода "OAuth токен:"
- Указать существующую папку или создайте новую.
Google Drive:
- В расширении нажать на кнопку "Получить(создать) или перейти по ссылке Получить(создать)1
- Нажать на "CREATE PROJECT"(справа вверху)
- В поле "Project name" указать "uploadingimages"
- Нажать "Create"
- Нажать "+ ENABLE APIS AND SERVICES" (сверху)
- Найти и нажать "Google Drive API"
- Нажать "Enable"
- На открывшейся странице-Нажать "Create credentials"
- В поле "Select an API" выбрать "Google Drive API"(обычно уже автоматически выбран )
- В поле "What data will you be accessing?" выбрать "User data"
- Нажать "Next"
- В поле "App name" указать "uploadingimages"
- В поле "User support email" выбрать email адрес
- В поле "Developer contact information" указать email адрес тот же email адрес что выбрали в поле "User support email"
- Нажать "Save and continue"
- Ещё раз нажать "Save and continue"
- В поле "Application type" выбрать "Web application"
- В поле "Name" указать "uploadingimages
- В поле "Authorized JavaScript origins" нажать "ADD URIs" и добавить имя домена на котором установлено расширение(как ссылку без последнего слеша)"
- В поле "Authorized redirect URIs" нажать "ADD URIs" и добавить ссылку указанную в ClientID:, не забудьте в ссылке название домена заменить на свой, должно выглядеть так.

- Нажать "Create"
- ВАЖНО! Нужно скачать файл с данными, т.к. возможность скопировать Client secret: дано один раз, но можно будет создать новый.
- Нажать "Done"
- На открывшейся странице выбрать вкладку "CREDENTIALS"
- В поле "OAuth 2.0 Client IDs" нажать ссылку "uploadingimages"
- На открывшейся странице скопировать данные из полей в расширение:"Client ID" в поле "Client ID" и "Client secret" в поле "Client secret"
- Нажать на "Audience" или перейти по ссылке
- В поле "Publishing status" нажать "Publish app", затем нажать "confirm"
- В расширении кликните по кнопке "Получить токен"
- В открывшемся окне выберите почту что указали при создании данных API
- Укажите ID папки Google Drive для загрузки. Можно вставить полную ссылку на папку — останется только ID. Пустое поле — загрузка в корень «Мой диск» или создайте новую папку
Как создать Google Photos:
1) В расширении нажать на кнопку "Получить(создать)" или перейти по ссылке
Получить(создать)
12) Нажать на "CREATE PROJECT"(справа вверху)
- В поле "Project name" указать "uploadingimages"
- Нажать "Create"
- В поисковом поле(Вверху) ввести "Photos Library API" и нажать Enter
- Выбрать "Google Photos Library API"
- Нажать "Enable"
5) На открывшейся странице в верху нажать "Create credentials"
6) Из выпадающего списка выбрать "Create OAuth client ID"
7) Нажать на "Configure consent screen"
8) На открывшейся странице нажать "Get started"
- В поле "App name" прописать "uploadingimages"
- В поле "User support email" выбрать свою почту
- Нажать "Next"
- Выбрать "Internal"(Если доступно), если нет то "External"
- Нажать "Next"
- В поле "Email addresses" прописываем свою почту
- Нажать "Next"
- Принимаем соглашение "I agree to the Google API Services: User Data Policy." установив галочку
- Нажать "Continue"
- Нажать "Create"
- В поле "Application type" выбрать "Web application"
- В поле "Name" указать "uploadingimages"
- В поле "Authorized JavaScript origins" нажать "ADD URIs" и добавить имя домена на котором установлено расширение(как ссылку без последнего слеша)
- В поле "Authorized redirect URIs" нажать "ADD URIs" и добавить ссылку указанную в ClientID:, не забудьте в ссылке название домена заменить на свой, должно выглядеть так.

- Нажать "Create"
- Скопировать данные из полей в расширение:"Client ID" в поле "Client ID" и "Client secret" в поле "Client secret"
- В поле "Publishing status" нажать "Publish app", затем нажать "confirm"
13) В появившемся окне выбрать свою почту, затем в другом окне нажать "Дополнительные настройки"
- Нажать "Перейти на страницу "main.ru" (небезопасно)"
- В появившемся окне установите галочку "Выбрать все" и нажать "Продолжить"
Как создать FTP загрузку:
Рекомендуется отдельная учётная запись FTP только с доступом к папке загрузок для изображений, особенно для загрузки на HDD(роутер).
- В поле ввода FTP-хост: указываем данные IP/ имя FTP-сервера.
- Для загрузки на HDD, подключенный к роутеру: укажите белый статический IP-адрес, который вам выдал ваш провайдер.
- Для загрузки на сервер, например VDS: укажите имя FTP-сервера, которое было присвоено при создании FTP-аккаунта.
- В поле ввода Порт: ни чего не меняем
- В поле ввода Логин FTP: указываем данные логин/ имя пользователя FTP-сервера.
- Для загрузки на HDD, подключенный к роутеру: укажите логин учётной записи с правами только на папку загрузок для изображений.
- Для загрузки на сервер, например VDS: укажите имя пользователя, которое было присвоено при создании FTP-аккаунта.
- В поле ввода Пароль FTP: указываем пароль.
- Для загрузки на HDD, подключенный к роутеру: укажите пароль, который присвоен учётной записи с правами только на папку загрузок для изображений.
- Для загрузки на сервер, например VDS: укажите пароль, который присвоен при создании FTP-аккаунта.
- В поле ввода Папка на FTP-сервере: указываем папку.
- Для загрузки на HDD, подключенный к роутеру: укажите название папки, например: images или images/upload; если папки нет, она будет создана.
- Для загрузки на сервер, например VDS: укажите полный путь на диске до папки images или images/upload, который показывает FileZilla или Total Commander, например: home/(имя пользователя FTP-аккаунта). Примерно должно быть так с папкой для загрузки изображений: home/dims-admin/images. Допускаются латинские буквы, цифры, «_», «-», «/».
- В поле ввода Публичный URL картинок: указываем ссылки.
- Для загрузки на HDD, подключенный к роутеру: включите на роутере «Сервер WebDAV» (или аналог) и укажите здесь HTTP(S)-адрес папки, из которой картинки доступны из интернета — тот же базовый URL, по которому файл открывается в браузере после загрузки по FTP. FTP и WebDAV — разные протоколы: форум загружает по FTP, а в сообщениях и слайдере используется этот публичный WebDAV/HTTP-адрес.
Пример ссылки:https://vask.keenetic.name/webdav/images - Для загрузки на сервер, например VDS: укажите HTTP(S)-адрес, по которому файлы открываются в браузере,(без завершающего «/») например: https://my-site.ru/images.
- Для загрузки на HDD, подключенный к роутеру: включите на роутере «Сервер WebDAV» (или аналог) и укажите здесь HTTP(S)-адрес папки, из которой картинки доступны из интернета — тот же базовый URL, по которому файл открывается в браузере после загрузки по FTP. FTP и WebDAV — разные протоколы: форум загружает по FTP, а в сообщениях и слайдере используется этот публичный WebDAV/HTTP-адрес.
Расширение платное, цена: 650 руб.
Перейти в магазин
2Обновление:
Версия 1.1.2
Добавлена загрузка Google Photos


Версия 1.1.3
Изменения:
- Теперь при выборе пункта метода загрузки изображения из впадающего списка, появляется выбранный блок, т.е. если вы выбрали "Загрузка на сервер", то именно этот блок с опциями будет показан. При выборе "Отключено" все блоки скрыты.

- Добавлена функция автоперехода с указанием времени(в миллисекундах) ожидания, если в поле ввода пустое или установлено 0, то включается ручной режим и вам самим нужно будет нажимать кнопки "Отправить" и "« Вернуться на предыдущую страницу"

ПРИМЕЧАНИЕ! работает только при выборе метода загрузки
Версия 1.1.4
Добавил загрузку по FTP

