DLE+IPS/IPB Интеграция

Maxim

Active member
Команда форума
Не в сети

  • Автор: Maxim Harder, Celsoft
  • Версия DLE: 15.x
  • Версия IPS: 4.6.х (Проверялось на 4.6.11)
  • Версия: 1.1
Это небольшая инструкция по созданию общей авторизации между двумя системами - Datalife Engine и Invision Power Suite.
Данный метод будет работать только если ваши базы данных на локальном сервере и для подключения вы используете localhost, либо знаете точный адрес до базы данных - иначе не сработает.

Что может эта интеграция?
  • Если есть пользователь в базе данных DLE, то система IPS авторизует его без проблем
  • IPS создаёт пользователя на основе данных в базе DLE
  • IPS управляет пользователем из своей системы

Установка
Устанавливаем движки куда угодно, на ваше усмотрение. Не важно, в одну базу данных или в разные - IPS на это всёравно.

База данных

Осторожно, если устанавливаете движки на разные серверы, то настройте базу данных так, чтобы доступ из вне был возможен, иначе - размещайте всё на одном сервере.


После установки IPS переходим в админпанель. На локальном сервер очень плохо устанавливается русский язык. Поэтому, на скринах будет микс

Пользователи

Для теста я создал нескольких пользователей через админпанель DLE.



В админпанеле IPS переходим в раздел "Авторизация и регистрация".


Нажимаем на "+ Создать".

Из списка обработчиков выбираем "База данных":


В "название" раздела "Основные настройки" прописываем любое угодное вам значение.
Пример: При помощи DLE

В разделе "Детали соединения с базой данных" заполняем данные для подключения к базе данных самой DLE.


В разделе "Детали схемы базы данных" вводим данные о таблице с пользователями DLE.


Таблица dle_users (Если префикс отличается, то указываем его)
Столбец с ID
Колонка имён
Колонка Email адресов
Колонка паролей password
Тип шифрования паролейPHP функция password_hash()
Дополнительное условие banned<>1 (Необязательно, можно добавить несколько значений с синтаксисом SQL. К примеру: если не забанен

В разделе "Авторизация" выбираем тип авторизации. Делайте так, как у вас настроено на DLE.
В поле "URL-адрес восстановления пароля" добавить ссылку на восстановление пароля от DLE: http://site.ru/index.php?do=lostpassword .

В разделе "Управление аккаунтом" настроить под себя.


Настраивайте под себя! Удачи!
 
Последнее редактирование:

catyr

New member
Не в сети
Что то на IPS Community Suite 4.3.6 не работает интеграция и выше. Хотя на 4.2.8 все прекрасно.
 
АТ

Maxim

Active member
Команда форума
Не в сети
  • Автор темы
  • #4
Обновил инструкцию для версии IPS 4.4.4
 

Serviak

New member
Не в сети
А аватар? Как сделать так, что бы использовался общий аватар? Или придётся оставить так как есть? Просто хотелось бы экономить место на диске)
 
АТ

Maxim

Active member
Команда форума
Не в сети
  • Автор темы
  • #9
для этого нужно писать мост между движками
 

Serviak

New member
Не в сети
Всё сделал. Отлично работает) Спасибо) Не хватает вот только общего аватара)
 
АТ

Maxim

Active member
Команда форума
Не в сети
  • Автор темы
  • #14
Проверяю на версии IPS 4.5.4 и DLE 14.1







Проверяем
 

Lorian

New member
Не в сети
АТ

Maxim

Active member
Команда форума
Не в сети
  • Автор темы
  • #16
@Lorian,
скриншот 1
Выставляю имя соединения, выбираю пункт "создать аккаунт", вместо "отклонить вход"

скриншот 2
указываю подключение к базе данных DLE

скриншот 3
указываю нужные переменные.
Таблица, где хранятся пользователи: dle_users (нужно быть осторожным, если префикс отличается от стандартного)
Колонка с ID пользователями: user_id
колонка с именем пользователя: name
Колонка почтой пользователя: email
Колонка с паролем пользователя: password
Тип шифрования пароля: Другой

Скриншот 4
Указываю тип хеша для пароля, а так-же возврат проверки пароля (данные можно взят во вкладке 4.4.4)

Скриншот 5
Указываю дополнительное условие (можно пропустить). В моём случае - игнорировать забанненых
: banned <>1
Вид авторизации: при помощи имени или почты
Адрес для восстановления пароля: сайт.ру/?do=lostpassword
Если отображаемое имя локально (т.е. на форуме) измениться: Синхронизация с удалённой базой данных
Если почта локально (т.е. на форуме) измениться: Синхронизация с удалённой базой данных
Если пароль локально (т.е. на форуме) измениться: Синхронизация с удалённой базой данных

Скриншот 6
Показывать в настройках
: только, если аккаунты соединены
Если имя измениться в подключённой базе данных: спрашивать пользователя, что делать
Если почта измениться в подключённой базе данных: синхронизировать с локальными данными

Скриншоты 7 и 8
Я создал пользователя в DLE и зашёл им на форуме для проверки
 

mihadmitriev

New member
Не в сети
Вечер добрый. Ребята скажите пожалуйста как Вы вообще установили форум с dle 14.1?
Подскажите пожалуйста что я не так сделал?
Залил файлы https://site.ru/forum/
Двиг не устанавливается пока не удалишь в .htaccess строку.
RewriteRule ^([^.]+)/?$ index.php?do=cat&category=$1 [L] (полностью офф код в файле ничего не менял)
Только тогда он видит двиг и можно установить.
Установил двиг форума, полет нормальный.
Но при переходе на основной сайт. В категории "https://site.ru/categorii/ Выдает ошибку 404"
Ставлю назад RewriteRule ^([^.]+)/?$ index.php?do=cat&category=$1 [L]

Уже не видит форум
"Внимание! Обнаружена ошибка
По данному адресу публикаций на сайте не найдено, либо у Вас нет доступа для просмотра информации по данному адресу
."
Страницы видит, но проблема в категориях. Скажите пожалуйста, как или в чем я накосячил, что такая проблема.
Основной сайт и тем более любые ссылки вообще трогать нельзя.
Помогите пожалуйста, кто может.
 
АТ

Maxim

Active member
Команда форума
Не в сети
  • Автор темы
  • #18
@mihadmitriev, не стоило ставить форум в корень сайта. Я не помню, есть ли в IPS в корне файл .htaccess. Если есть, то добавить в самое начало
.htaccess:
DirectoryIndex index.php
Должно помочь.

Если не помогло, то в корне DLE открыть .htaccess и в самый конец добавить
.htaccess (DLE):
 RewriteRule ^forum/?$ forum/ [L, R=302]
 

mihadmitriev

New member
Не в сети
Да, спасибо большое.
Скажите пожалуйста почему не могу найти форум/system/Login/External.php
External.php такого файла нет.
Exception.php такой есть.
Но в нем даже приблизительной сточки нет, чтобы далее добавлять код.
Скажите пожалуйста, как дальше связать Dle и форм.
Сообщение автоматически объединено:

Да по стандарту в корне его нет.
 
Последнее редактирование:
АТ

Maxim

Active member
Команда форума
Не в сети
  • Автор темы
  • #20
форум/system/Login/External.php
Это актуально для версии 4.2.5, для новых версий всё делается через админку

Да по стандарту в корне его нет.
значит, надо создать

пока только так


Exception.php такой есть.
это файл классов с исключениями. он никак не связан с внешней авторизацией