Автологин на форум при посещении главной страницы

Serg1234

Заблокирован
Сообщения
70
Реакции
38
Баллы
8,115
Форум расположен не в корне сайта а в папке "/forum/"
Хотелось бы чтобы при заходе на главную "/" происходил вход на форум.
Например у пользователя включена настройка "запомнить меня". При входе на форум он автоматически считается активным.

В каком файле находится класс, который отвечает за авторизацию через cookie?
 
Последнее редактирование:
Там не cms, самописная страничка из одного файла index.php :)

Я предполагаю, что можно при входе на главную передать запрос на форум и получить авторизацию, но пока не представлю как именно это сделать.
 
Собственно чем и занимаюсь, но надеюсь найдутся добрые и знающие люди, которые помогут не изобретать велосипед, а подскажут какой класс нужно включить в php на главной, чтобы цеплялась авторизация через cookie.
 
Авторизацию в таком случае вам придется делать задом наперед, через XenForo. Точно реализацию сказать не могу, смотрите код контроллера ControllerPublic/Login.php, функция actionLogin, из нее берите код авторизации и всего связанного. Конкретно за авторизацию там отвечает вызов
PHP:
$userModel = $this->_getUserModel();

$userId = $userModel->validateAuthentication($data['login'], $data['password'], $error);
, все что до и после - это валидации ввода разного рода и обработка ошибок. Ах да, чтобы подцепить классовую систему ксены, можно либо воспользоваться Kotomi (http://xenforo.info/resources/kotomi-generic-script-bridge.2245/), либо заинклюдить вручную
PHP:
$startTime = microtime(true);
$fileDir = dirname(__FILE__) . '/forum';

require($fileDir . '/library/XenForo/Autoloader.php');
XenForo_Autoloader::getInstance()->setupAutoloader($fileDir . '/library');

XenForo_Application::initialize($fileDir . '/library', $fileDir);
XenForo_Application::set('page_start_time', $startTime);

$deps = new XenForo_Dependencies_Public();
$deps->preLoadData();

// ваш код

А еще, для получения текущей сессии функция
PHP:
XenForo_Application::getSession();

Для проверки состояния логина функция
PHP:
XenForo_Visitor::getUserId();
Если результат 0 - то гость, если не 0 - то пользователь.
 
Спасибо огромное! :thumbsup:
Там еще что-то должно отвечать за сессию, вроде
PHP:
public static function startPublicSession(Zend_Controller_Request_Http $request = null)
В общем, класс XenForo_Session в вашем распоряжении тоже.
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу