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

Maxim

Active member
Команда форума
Не в сети
1510831226_dleips.png
  • Автор: 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.
2b1fab3b332d8facd00524108e9224d0.pnge294383b5b1d67b3da0b79f8e84a066c.png


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

Нажимаем на "+ Создать".
8e756e811d0c739ec31b5b7683111e33.png
Из списка обработчиков выбираем "База данных":
ac8e3a65b34b73d29dcd43e00bb07f48.png

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

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

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

Таблица 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

Maxim

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

Serviak

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

Maxim

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

Serviak

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

Maxim

Active member
Команда форума
Не в сети
Проверяю на версии IPS 4.5.4 и DLE 14.1
55159a2268031a2fc843ef5aa63fd663.png
ce6d90828f18916535f442c2fc627023.png
e0437aed8e244c661a982a7cf6249a84.png
9cc566e80e7921217a4c258dd3e9d293.png
624c35b00522f6086aea592fe5361f0e.png
8fbdaba5c0cb65390b7b56b62bd2c6b7.png

Проверяем
6be4cbb9f956fac94aa69343d59b9e6e.png6c190d6652470290d5e2fe9806d4deba.png
 

Lorian

New member
Не в сети
АТ
Maxim

Maxim

Active member
Команда форума
Не в сети
@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

Maxim

Active member
Команда форума
Не в сети
@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 и форм.
Сообщение автоматически объединено:

@mihadmitriev, не стоило ставить форум в корень сайта. Я не помню, есть ли в IPS в корне файл .htaccess. Если есть, то добавить в самое начало
.htaccess:
DirectoryIndex index.php
Должно помочь.

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

Maxim

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

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

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


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