phpbbuLogin — это сервис, который предоставляет пользователям получить единый доступ к сайту или форуму через свою социальную сеть (Google, Яндекс, Mail.ru, ВКонтакте, Facebook и др.), без необходимости повторной регистрации. А хозяин (вебмастер) сайта - получит дополнительный приток "ленивых" пользователей из социальных сетей.

 

Установка виджета uLogin:
Скачайте архив к себе на компьютер http://ulogin.ru/constructor.php предварительно отметив платформу сайта. В нашем случае phpBB.

Разархивируйте и скопируйте всю папку ulogin которая находится в root -> includes в корневой каталог phpbb в папку includes

1 Создать в базе данных таблицу:

  CREATE TABLE phpBB_ulogin (
    `id` int(10) unsigned NOT NULL auto_increment,
    `userid` int(10) NOT NULL,
    `identity` text,
    PRIMARY KEY (`id`)
  ) ENGINE=MyISAM;

Для начинающих становится вопросом как создать таблицу. Просто войдя в базу данных нажмите на значок sql , скопируйте выше приведенный код и нажмите ОК

 

2 Измените следующие файлы в каталоге форума:

файл includes/functions.php:
находим:

    'SITE_LOGO_IMG'			=> $user->img('site_logo'),

добавляем ниже:

		'ULOGIN'	=> urlencode( append_sid(generate_board_url() . "/ucp.$phpEx", 'mode=register') ),
		'ULOGIN_SHOWN' 	=> 'vkontakte,odnoklassniki,mailru,facebook', /* Сервисы, выводимые сразу */
		'ULOGIN_HIDDEN'	=> 'other', /* Сервисы, выводимые при наведении */
		/* полный список сервисов по адрес: http://ulogin.ru/ */

 

3 далее правим файл ucp.php (находится в корне):
находим строчку:

    $module->load('ucp', 'register');

заменяем на:

	if (isset($config['ulogin_enable']) && $config['ulogin_enable'] && isset($_POST['token']) && $_POST['token'])
	{
	    $module->load('ulogin', 'register');
	}
	else
	{
	    $module->load('ucp', 'register');
	}

 

4 ищем файл: styles/prosilver/template/overall_header.html (на примере шаблона prosilver):
находим:

                <!-- IF not S_IS_BOT -->
                    <!-- IF S_DISPLAY_MEMBERLIST --><li><a href="/{U_MEMBERLIST}" title="{L_MEMBERLIST_EXPLAIN}">{L_MEMBERLIST}</a></li><!-- ENDIF -->
                    <!-- IF not S_USER_LOGGED_IN and S_REGISTER_ENABLED and not (S_SHOW_COPPA or S_REGISTRATION) --><li><a href="/{U_REGISTER}">{L_REGISTER}</a></li><!-- ENDIF -->
                    <li><a href="/{U_LOGIN_LOGOUT}" title="{L_LOGIN_LOGOUT}" accesskey="x">{L_LOGIN_LOGOUT}</a></li>
                <!-- ENDIF -->

добавляем ниже:

<!-- IF not S_USER_LOGGED_IN and not S_IS_BOT -->
    <li style="margin-top: 5px;">
      <script src="http://ulogin.ru/js/ulogin.js"></script>
      <div id="uLogin" x-ulogin-params="display=small&fields=first_name,last_name,email,photo&optional=bdate,country,city&providers={ULOGIN_SHOWN}&hidden={ULOGIN_HIDDEN}&redirect_uri={ULOGIN}"></div>
    </li>
    <!-- ENDIF -->

 

5 находим файл: styles/prosilver/template/login_body.html (на примере шаблона prosilver):

находим строки:

<!-- IF LOGIN_ERROR --><div>{LOGIN_ERROR}</div><!-- ENDIF -->

добавляем ниже:

<dl>
      <dt><label for="ulogin2">Войти через:</label></dt>
          <dd>
        <div id="ulogin2" x-ulogin-params="display=small&fields=first_name,last_name,email,photo&optional=bdate,country,city&providers={ULOGIN_SHOWN}&hidden={ULOGIN_HIDDEN}&redirect_uri={ULOGIN}"></div>
      </dd>
    </dl>

 

6Обязательно: После редактирования шаблонов не забудьте сбросить кэш

 

Возможные ошибки:

Ошибка при входе

У некоторых пользователей, да и у меня тоже при первых испытаниях мода, при попытке войти через любую представленную социальную сеть, банально перебрасывает на страницу ознакомления с правилами форума, перед тем как зарегистрироваться. Возможно, это случается по причине версии форума или по причине разработчиков мода.

Исправляем

в файле ucp.php, находящийся в корне форума.

находим:

            if (isset($config['ulogin_enable']) && $config['ulogin_enable'] && isset($_POST['token']) && $_POST['token'])
            {
                $module->load('ulogin', 'register');
            }
            else
            {
                $module->load('ucp', 'register');
            } 

заменяем на:

            if (isset($_POST['token']) && $_POST['token'])
            {
                $module->load('ulogin', 'register');
            }
            else
            {
                $module->load('ucp', 'register');
            } 

 


Поделиться:

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