Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
aLEX49566

Кнопка в профиле (авторизация с яндекс)

Рекомендованные сообщения

10/19/24 11:17 (изменено)

Всем привет!

У меня на сайте у тех, кто авторизироваля сторонними способами, при помощи Discord, vkontakte, steam, выводится в профиле кнопка на их профиль. Может кто помочь сделать подобную кнопку при авторизации через яндекс?

Вот пример :

<!--Ссылка на профиль Steam-->

{{if $member->steamid }}

<li>

<h4 class='ipsType_minorHeading'>Профиль</h4>

<span><a href='https://steamcommunity.com/profiles/{$data="$member->steamid"}' target="_blank" rel="noopener">STEAM <i class="fa fa-steam "></i></a></span>

</li>

{{endif}}

<!--//Ссылка на профиль Steam-->

 

Ссылка на профиль вконтакте:

{{try { $vk = \IPS\Db::i()->select( 'token_identifier', 'core_login_links', array( 'token_login_method=? AND token_member=?', 7, $member->member_id ) )->first(); } catch( \Exception $e ) { $vk = 0; } }}

{{if $vk > 0}}

<li>

<h4 class='ipsType_minorHeading'>Профиль</h4>

<span><a href="https://vk.com/id{$vk}">VK <i class="fa fa-vk"></i></a></span>

</li>

{{endif}}

 

Изменено пользователем Lesovsky
Используйте тег - код

Поделиться сообщением


Ссылка на сообщение

Приветствую!
А какой модуль для интеграции с яндексом используется? И да, там нет аналогичного свойства -

$member->steamid

?

  • Like 1

Поделиться сообщением


Ссылка на сообщение
3 часа назад, Lesovsky сказал:

Приветствую!
А какой модуль для интеграции с яндексом используется? И да, там нет аналогичного свойства -


$member->steamid

?

Я в таком коде не очень силен) 

yandexoauth.tar

Поделиться сообщением


Ссылка на сообщение

Я не уверен что токен авторизации на яндексе равен логину-id, нужно тестировать и смотреть, а так вот вам заготовка для нескольких методов.

{{$methods = [];}}
{{try { $methods = iterator_to_array(\IPS\Db::i()->select( ['token_identifier', 'token_login_method'], 'core_login_links', array( 'token_login_method IN ('.implode( ',' , [7, 8, 9] ).') AND token_member=? AND `token_linked` = 1', $member->member_id ) )); } catch( \Exception $e ) {} }}

{{if \count( $methods ) > 0}}
<li>
	<h4 class='ipsType_minorHeading'>Профиль</h4>
	{{foreach $methods as $method }}
  		{{if $method['token_login_method'] == 7}}
  			<span><a href="https://vk.com/id{$method['token_identifier']}">VK <i class="fa fa-vk"></i></a></span>
  		{{elseif $method['token_login_method'] == 8}}
  			....
  		{{endif}}
	{{endif}}
</li>
{{endif}}

Где [7, 8, 9] - это массив с id с необходимым методами авторизации, чтобы найти id метода можете выполнить запрос к базе данных (это чтобы не делать подзапрос):

SELECT * FROM `core_login_methods` WHERE `login_classname` = 'IPS\\yandexoauth\\YandexOAuth';

 Вам необходимо значение login_id.

Поделиться сообщением


Ссылка на сообщение

Завтра попробую и отпишусь. Спасибо! Если все выйдет, с меня копейка)

Поделиться сообщением


Ссылка на сообщение

Ничего из вышеперечисленного не сработало

 


login_id 	login_classname 	login_order 	login_acp 	login_settings 	login_enabled 	login_register
4
	
IPS\yandexoauth\YandexOAuth
	
4
	
0
	
{"real_name":"0","client_id":"e558765786795876856787ca","client_secret":"39276587873a2","show_in_ucp":"always","update_name_changes":"disabled","update_email_changes":"optional"}
	
1
	
1 

 

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...