Если кто-то ждет в этом топике готового рецепта — увы, его не будет. Но будет полезный инструментарий, который поможет эту самую интеграцию построить.
Иногда, при создании сайта на ЛС, возникает задача интеграции с какими-нибудь сторонними движками. Иногда к форумам каким-нибудь, иногда — иные скрипты. Например, Sypex Dumper.
Что обычно нужно, чтобы написать какой-то модуль/плагин интеграции? Как правило, надо узнать, залогинен ли юзер и/или является ли он админом, и дополнительно — получить параметры конфигурации. Если с первой частью еще худо-бедно можно разобраться в несколько строк скрипта, то со второй — не все так просто. Ведь конфигов — целая куча, причем, параметры могут еще и переопределяться в активированных плагинах. А нормальный доступ к этим параметрам возможен только через специально обученный класс Config.
И вот, чтобы решить разом все эти задачи, решил я написать хелпер API, который это все и делает, и включил его в состав админки (плагина aceAdminPanel), начиная с версии 1.4.70.
Итак, инструкции по использованию.
Для начала в вашем скрипте надо подключить файл: /plugins/aceadminpanel/include/adm_helper_api.php
И вам становятся доступны следующие функции:
1) HelperApi::IsUser() — залогинен ли текущий пользователь
2) HelperApi::IsAdministrator() — залогинен ли текущий пользователь и является ли он администратором сайта
3) HelperApi::GetConfig(_ключ_конфигурации_) — возвращает параметр конфигурации (но только в том случае, если текущий пользователь — администратор, в противном случае вернет null)
4) HelperApi::GetUserLogin() — возвращает логин текущего пользователя (или false, если пользователь не залогинен)
5) HelperApi::Login(_логин_, _пароль_) — авторизует пользователя по логину и паролю; возвращает true в случае успеха или false, если логин/пароль ошибочны или аккаунт пользователя не активирован
6) HelperApi::Logout() — разлогинивает текущего пользователя
Например, следующий код проверит, залогинен ли юзер, как админ, и если да, то получает параметры для подключения к базе данных (считаем, что скрипт интеграции лежит в корне сайта):
А почему на LiveStreet 0.42 не работает?
Я в классах не понимаю, для меня пока не представляется возможным такое самому написать, но очень нужна интеграция с двумя CMS одновременно, но сейчас задача состоит в том, чтобы можно было авторизироваться, и выходить с аккаунта через отдельный файл GET запросом, не правив файлов ядра.
Буду очень признателен за любую помощь!
Желательно часть кода, или очень простой пример, как для не совсем чайника в программировании.
Так подключай ядро и вызывай методы из его, а лучше просто в 2 системы поставить 2 способа, так намного производительней. Я, к примеру, просто заменил способ авторизации с одной cms на та что в лс, а сам вход обрабатывался только на лс
А как именно происходит авторизация В ЛС?
Вчера читал о классах, но не всё понял.
Можно привести пару строчек с подключением ядра и вызовом авторизации/выхода пользователя?
Я то сделал, но некрасиво…
ЛС не принимает по-умолчанию данные с $_GET, а с $_POST, поэтому через адресную строку так просто не получается, только с правкой ядра…
Нужен просто небольшой пример, которого нигде в сети найти не получается(
А что мешает через пост отправить? Но всё же разве не лучше в другой cms найти место где происходит активация и установить одинаковый способ редактированием первой или второй cms?
Авторизация происходит в трёх системах сразу: Портале, ЛС, и форуме, такая уж нужна конструкция, поэтому отправленная форма передается на страницу, на которой 3
Хороший плагин. Спасибо.
Но есть проблемка. Когда юзер видит сразу не ЛС, а какой-то другой скрипт, то adm_helper_api.php отдает значения, что он незалогинен.
Это как-то можно исправить?
21 комментарий
Я в классах не понимаю, для меня пока не представляется возможным такое самому написать, но очень нужна интеграция с двумя CMS одновременно, но сейчас задача состоит в том, чтобы можно было авторизироваться, и выходить с аккаунта через отдельный файл GET запросом, не правив файлов ядра.
Буду очень признателен за любую помощь!
Желательно часть кода, или очень простой пример, как для не совсем чайника в программировании.
Вчера читал о классах, но не всё понял.
Можно привести пару строчек с подключением ядра и вызовом авторизации/выхода пользователя?
Я то сделал, но некрасиво…
ЛС не принимает по-умолчанию данные с $_GET, а с $_POST, поэтому через адресную строку так просто не получается, только с правкой ядра…
Нужен просто небольшой пример, которого нигде в сети найти не получается(
Что тебе мешает использовать одни куки???
PHP-Nuke
LiveStreet
PhpBB
СОВСЕМ разные (все размещаются на корневом домене, но что это дает?)
Вместе с плагином идет тестовый пример: test-api.php
Это всё, что мне нужно было услышать)
Теперь всё работает!
Но есть проблемка. Когда юзер видит сразу не ЛС, а какой-то другой скрипт, то adm_helper_api.php отдает значения, что он незалогинен.
Это как-то можно исправить?