uLogin - новый модуль авторизации через Facebook, Vkontakte, odnoklassniki, twitter...

Аватар пользователя duozersk duozersk 12 марта 2012 в 16:31

Добрый день,

Для друпала 7 написал модуль авторизации для сервиса uLogin. Функционально очень схож с Loginza.

Реализованные возможности по состоянию beta5 (12 марта 2012), учитывались замечания и пожелания отсюда:

  • Виджет сделан в виде нового элемента - поэтому его можно использовать в любой форме:
    <?php $form['widget'] = array('#type' => 'ulogin_widget');
  • ?>

  • Его настройки по умолчанию конфигурируются через админку. Разработчики могут их переопределять, задавая эти настройки в своих формах при добавлении виджета (разработчики найдут, какие именно настройки они могут переопределять).
  • Несколько виджетов на одной странице работают корректно и не глючат.
  • Пользователи могут подключить к одному своему аккаунту несколько различных айдентити (зайкладка uLogin identitites в профиле пользователя) - и смогут логиниться в свой аккаунт используя любую из них. Так же смогут и удалить привязанные к аккаунту айдентити (при удалении айдентити, которая использовалась для создания аккаунта, требуется указать айдентити, на которую её заменить).
  • Модуль определяет токены для аккаунтов, которые были созданы с помощью айдентити - эти токены можно использовать в модулях Rules, Realname, и в других, где используются токены пользователя.
  • Также есть настройка, которая позволяет запретить регистрацию пользователей с одинаковыми мылами - в этом случае пользователю выдается ошибка и предлагается залогиниться с помощью другой айдентити либо с помощью логина и пароля.
  • В админке можно проставить, на какие их трех форм (форма логина, форма логина в блоке, форма регистрации) добавить дефолтный виджет.

Разработка модуля проспонсирована Forbes.ru, будет использоваться в новом проекте на друпале 7.

0 Thanks

Комментарии

Аватар пользователя dgastudio dgastudio 12 марта 2012 в 22:45

Еще бы возможность использования собственных иконок.. а то дефолтные страшные сильно...

Аватар пользователя duozersk duozersk 13 марта 2012 в 0:02
"kervi" wrote:

Еще бы возможность использования собственных иконок.. а то дефолтные страшные сильно...

Такое пока что технически невозможно с этим сервисом (либо я пока не нашел такого способа).
В дев только что закоммитил сохранение аватара в картинку профиля (естественно, тоже с галкой в админке).

Аватар пользователя FORTIS FORTIS 13 марта 2012 в 14:40

вчера обновлял бету2 на бету5 - авторизация через контакт не работала, ну они там и у себя на сервисе чтото правили в эти дни. откатился на бету2 все норм

Аватар пользователя FORTIS FORTIS 13 марта 2012 в 14:45
"Ch" wrote:

uLogin предлагает в конструкторе свой модуль для друпал. Я его тестировал когда то, вроде даже работоспособный модуль.

там внутри кошмар, модуль ужасный

Аватар пользователя duozersk duozersk 13 марта 2012 в 14:52
"FORTIS" wrote:

вчера обновлял бету2 на бету5 - авторизация через контакт не работала, ну они там и у себя на сервисе чтото правили в эти дни. откатился на бету2 все норм

Это точно не зависит от версии кода бета2 или бета5. Ставьте rc1 - он умеет сохранять юзерпики.

Аватар пользователя 0legka 0legka 15 марта 2012 в 11:00

мегаполезно респект!!
а на 6 друпал будешь портировать ? пока не хочу на семёрку переезжать )

Аватар пользователя duozersk duozersk 15 марта 2012 в 11:28
"0legka" wrote:

а на 6 друпал будешь портировать ?

Да, порт на 6 друпал будет, но не могу обещать по срокам.

Аватар пользователя 0legka 0legka 19 марта 2012 в 9:18
"duozersk" wrote:

Да, порт на 6 друпал будет, но не могу обещать по срокам.

Отлично !!! Отпишись по возможности )))

Аватар пользователя ferado ferado 21 марта 2012 в 23:00

duozersk Подскажите пожалуйста, ставлю ваш модуль к себе на сайт, но упорно не могу зайти на сайт с помощью соц сетей.

Нажимаю в первый раз, проходит некая "регистрация", после чего выбрасывает на начальную страницу и все, пользоватль не залогиненные, жму второй раз, вылезает ошибка о дубликате, причем вот такая: PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'ulogin_vkontakte_39623460' for key 'name': INSERT INTO {users} (uid, name, pass, mail, created, access, status, init, data) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6, :db_insert_placeholder_7, :db_insert_placeholder_8); Array ( [:db_insert_placeholder_0] => 241 [:db_insert_placeholder_1] => ulogin_vkontakte_* [:db_insert_placeholder_2] => $S$D8cDLZyTvigcs9wWaB.kJQd8joFU7fNfOAapYFZyZn1Rx2d0RfRi [:db_insert_placeholder_3] => *@mail.ru [:db_insert_placeholder_4] => 1332356235 [:db_insert_placeholder_5] => 1332356235 [:db_insert_placeholder_6] => 1 [:db_insert_placeholder_7] => ulogin_vkontakte_* [:db_insert_placeholder_8] => a:2:{s:7:"contact";i:1;s:6:"ulogin";a:15:{s:12:"access_token";s:63:"*";s:7:"network";s:9:"vkontakte";s:8:"identity";s:24:"http://vk.com/id*";s:3:"uid";i:*;s:5:"email";s:19:"*@Mail.ru";s:8:"nickname";s:3:"The";s:10:"first_name";s:3:"The";s:9:"last_name";s:6:"Ferado";s:5:"bdate";s:9:"5.11.1991";s:3:"sex";i:2;s:5:"photo";s:52:"http://cs301206.userapi.com/u39623460/e_98f1af5a.jpg";s:4:"city";s:12:"Москва";s:7:"country";s:12:"Россия";s:9:"photo_big";s:34:"http://ulogin.ru/img/photo_big.png";s:6:"manual";s:14:"email,nickname";}} ) в функции drupal_write_record() (строка 6888 в файле /home/*/data/www/*/includes/common.inc). а не предлагает заново залогиниться. Почему не происходит авторизации??

прошу помощи, я в друпал новичок )

Аватар пользователя duozersk duozersk 21 марта 2012 в 23:21

Не повезло :(

Так сразу сказать, что у вас пошло не так - не скажу. Лучше всего репортить такие вещи в ишью кью модуля. Там и версию модуля указать можно.

Для именно вашей проблемы - скорее всего придется взглянуть на сам сайт (и его базу данных), если есть такая возможность. Напишите в личку - помогу.

Аватар пользователя veleslab veleslab 23 марта 2012 в 7:50

я использую блок с кодом приветствия

<?php  
global $user;
  if (!
$user->uid) {
?>
<div id="login"> <?php print t('<a href="@login">войти</a> | <a href="@register">зарегистрироваться</a>', array('@login=> url('user/login'), '@register=> url('user/register')));
print 
t(' | <a href="@register">забыли пароль?</a>', array('@register=> url('user/password'))); ?>
</div>
<?php 
else {
?>
<div id="login">
<?php print t('Здравствуйте, <a href="@register"><b>@User</b></a> ', array('@register=> url('user/' $user->uid), '@User=> $user->name));
print 
t(' | <a href="@User">настройки</a> ', array('@User=> url('user/' $user->uid '/edit'), '@User=> $user->name));
print 
t(' | <a href="@logout">выйти</a>', array('@User=> url('user/' $user->uid '/edit'), '@logout=> url('user/logout')));
?>
</div>
<?php 
?>

если войти через соц сети, то вместо имени пользователя выводит ulogin_facebook_100000017934971, как можно это исправить?

Аватар пользователя 0legka 0legka 23 марта 2012 в 9:19
"duozersk" wrote:

From uLogin module project page:
Higly recommended - download and install Realname module to configure users display name. This module will create unique machine generated names for users and register tokens to use with Realname. More advanced way is to create several user profile fields and fill them with information from uLogin using Rules.

=)) It is better to write in Russian

Аватар пользователя 0legka 0legka 23 марта 2012 в 12:41
"duozersk" wrote:

Nope, it's better in PHP

тогда комментируй свои цитаты, здесь половина включая меня буржуйского не знает =))

Аватар пользователя duozersk duozersk 23 марта 2012 в 13:59
"0legka" wrote:

тогда комментируй свои цитаты, здесь половина включая меня буржуйского не знает =))

Откуда такая замечательная статистика? :) Про себя ещё можете утверждать, но зачем половину аудитории сайта причислять к необразованным любителям халявы, которые, вдобавок, ещё и не могут воспользоваться онлайн-переводчиком?

И да, ваш комментарий очень вдохновляет меня, как разработчика, писать модули для вас и комментировать их на русском. ГыГы. =))

Аватар пользователя 0legka 0legka 23 марта 2012 в 15:59
"duozersk" wrote:

И да, ваш комментарий очень вдохновляет меня, как разработчика, писать модули для вас и комментировать их на русском. ГыГы. =))

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

Аватар пользователя makartsoft makartsoft 10 ноября 2015 в 11:48

Всем привет. Хочу сказать, что модуль просто отличный. До него пользовался Логинзой, которая для серьёзных проектов не годится.

В процессе работы столкнулся с двумя неприятными вещами:
1. На странице user/login нельзя поменять расположение кнопок. Очень бы хотелось вынести вперед твиттер и убрать, к примеру, Майл
2. Смещенный влево блок с остальными кнопками. Если работая на компе, то это не страшно, а вот на планшетниках и телефонах ситуация плачевная

Все мои попытки что-то изменить не увенчались успехом.

Аватар пользователя duozersk duozersk 26 марта 2012 в 16:23

Привет!

Спасибо за похвалу :)

1. Пока что в админке можно только менять, какие сервисы показываются сразу, а какие в выпадашке, порядок сервисов пока менять нельзя (но вы можете это сделать в своем hook_form_alter ;)). Посмотрите внимательней админку - отдельные сервисы там можно отключать.
2. Это какой-то глюк, на стороне юлогина, весь этот виджет с иконками - их айфрейм. По хорошему, выпадашка идет после сервисов, показываемых сразу.

Аватар пользователя UksusoFF UksusoFF 26 марта 2012 в 19:01

Да, порядок модулей было бы не лишним менять, а так же возможность вывести все иконки.
Может это сделать просто с помощью ввода строки получаемой с сайта конструктора?
vkontakte,odnoklassniki,mailru,facebook,twitter,google,yandex,openid,livejournal

Очень странно что русский разработчик не выложил русский язык для модуля :)

И еще подскажите как вывести через block--user--login.tpl.php только данный виджет убрав друпаловские логин и пароль?

Аватар пользователя duozersk duozersk 26 марта 2012 в 19:33
"UksusoFF" wrote:

Да, порядок модулей было бы не лишним менять

Если сильно надо - поальтерите форму (hook_form_alter). У элемента типа ulogin-widget есть настройка, которая задает нужные сервисы и их порядок.

"UksusoFF" wrote:

Может это сделать просто с помощью ввода строки получаемой с сайта конструктора?

Идея админки в её текущем виде - исключить ручной ввод и опечатки. Но я подумаю над опцией для продвинутых :) но в то же время не доросших до hook_form_alter.

"UksusoFF" wrote:

а так же возможность вывести все иконки

Вывести все иконки вам никто не мешает - берите и выводите, в админке это настраивается (убрать галки с доп сервисов, включить их в основных сервисах).

"UksusoFF" wrote:

Очень странно что русский разработчик не выложил русский язык для модуля :)

Хм. Официального способа "выложить" русский язык сейчас уже нет, только переводить на localize.drupal.org - берите и переводите, внесите свой вклад ;) А что ты сделал для сообщества? :)

"UksusoFF" wrote:

И еще подскажите как вывести через block--user--login.tpl.php только данный виджет убрав друпаловские логин и пароль?

Через эту "жопу" не знаю как, но вообще убрать их можно через hook_form_alter().

Аватар пользователя z-s z-s 2 декабря 2012 в 15:05

«Если сильно надо - поальтерите форму (hook_form_alter). У элемента типа ulogin-widget есть настройка, которая задает нужные сервисы и их порядок.»

Немного подробнее опиши пожалуйста насчет плюшек которые задают нужный сервис и порядок..

Аватар пользователя UksusoFF UksusoFF 26 марта 2012 в 21:43
"duozersk" wrote:

Если сильно надо - поальтерите форму (hook_form_alter).

Да я уже впринципе в модуле поменял

"duozersk" wrote:

убрать галки с доп сервисов, включить их в основных сервисах

Мда, чой-то я не заметил этого :)

"duozersk" wrote:

только переводить на localize.drupal.org - берите и переводите, внесите свой вклад

Я то перевел, только я не понял как залить po файл на друпал.орг...

"duozersk" wrote:

Через эту "жопу" не знаю как, но вообще убрать их можно через hook_form_alter().

Было бы замечательно если бы оно убералось в настройках модуля :)

Бгг, если уж совсем лень заморачиваться, может кому пригодится:

#user-login-form .form-item-name, #user-login-form .form-item-pass, #user-login-form .item-list, #user-login-form .form-submit {
        display: none !important;
}
Аватар пользователя duozersk duozersk 27 марта 2012 в 1:50
"UksusoFF" wrote:

Да я уже впринципе в модуле поменял

жалко котенка... клевый был.

"UksusoFF" wrote:

Я то перевел, только я не понял как залить po файл на друпал.орг...

localize.drupal.org - enjoy!

"UksusoFF" wrote:

убералось

сильный перевод вышел, ага? ;) сорри, я малость на веселе.

"UksusoFF" wrote:

Бгг, если уж совсем лень заморачиваться, может кому пригодится:

ещё один котенок

Аватар пользователя UksusoFF UksusoFF 27 марта 2012 в 9:12
"duozersk" wrote:

жалко котенка... клевый был.

Ну, кудаж без этого.

"duozersk" wrote:

localize.drupal.org - enjoy!

вот именно туда я и не понял как загрузить po файл, а редактировать через админку перевод не удобно...

"duozersk" wrote:

сильный перевод вышел, ага? ;)

так, а вот тут не нада, я его через ворд прогнал :) кстати вот может кому пригодится http://rghost.ru/37246347 po файл имхо удобнее переводить

Единственное не понятно мне как адекватно перевести Identity, так что перевел как идентификатор

Аватар пользователя makartsoft makartsoft 27 марта 2012 в 22:46
"duozersk" wrote:

"UksusoFF" написал(а):

а так же возможность вывести все иконки

Вывести все иконки вам никто не мешает - берите и выводите, в админке это настраивается (убрать галки с доп сервисов, включить их в основных сервисах).

Вот, то что нужно! Сразу не заметил. Еще раз спасибо за модуль и дальнейших успешных разработок

Аватар пользователя Ди Атер Ди Атер 28 марта 2012 в 11:58

Не работают токины юлогин. Вывожу через следующий код

<?php
print token_replace('[user:ulogin:uid]', array('user' => $user));
?>

Любой токин, указанный в справке, работает. Не работают только токины
ulogin.
В чем может быть проблема

Аватар пользователя duozersk duozersk 28 марта 2012 в 16:00

Токены работают. Попробуйте сделать сначала user_load(). То есть так:

<?php
global $user;
$user_loaded user_load($user->uid);
print 
token_replace('[user:ulogin:uid]', array('user' => $user_loaded));
?>

Иногда объект пользователя загружен то ли неполностью, то ли не до конца - не знаю, с чем это связано. Во всяком случае, realname тоже делает форсированный вызов user_load().

Подумаю, может быть добавлю вызов user_load() в сам код обработки токенов.

Аватар пользователя duozersk duozersk 28 марта 2012 в 15:56
"Ди Атер" wrote:

не работает

Остается только один вариант - этот пользователь был зарегистрирован не через uLogin

Аватар пользователя Ди Атер Ди Атер 28 марта 2012 в 16:12
duozersk wrote:

Остается только один вариант - этот пользователь был зарегистрирован не через uLogin

дело в том что, когда значение не присвоено, то информация просто не отображается. у меня же высвечивается сам токен.
зашел через юлогин(фэйсбук) и вот как: Опубликовал(а) ********* вт, 03/27/2012 - 06:44. user:ulogin:uid

Аватар пользователя Ди Атер Ди Атер 28 марта 2012 в 17:53

заработало после отчистки кэша. спасибо. заработал и простой вывод. видимо у меня был глюк.
теперь такая же проблема только с подстановкой автора комментария.

print token_replace('[user:ulogin:uid]', array('user' => $author));

подскажите как быть?

* Available variables:
* - $author: Comment author. Can be link or plain text.

Аватар пользователя otolaa otolaa 28 марта 2012 в 19:02

потрясающий модуль огромный респект и почтение ,,,, и большое развитие вашему сервису ,,,, и чтоб все было в шоколаде

Аватар пользователя duozersk duozersk 28 марта 2012 в 19:57
"Ди Атер" wrote:

подскажите как быть?

Вам заняться больше нечем? Поставьте Realname, задайте в нем, как строить дисплей нейм для ваших пользователей - и вперед, будет работать и для авторов нод, и для авторов комментариев, и так далее.

"Ди Атер" wrote:

* Available variables:
* - $author: Comment author. Can be link or plain text.

Это означает, что $author здесь - это строка, строка либо просто с именем, либо с хтмл-ссылкой. А в token_replace() надо отдавать объект пользователя.

Аватар пользователя Ди Атер Ди Атер 29 марта 2012 в 5:31
duozersk wrote:
"Ди Атер" wrote:

подскажите как быть?

Вам заняться больше нечем? Поставьте Realname, задайте в нем, как строить дисплей нейм для ваших пользователей - и вперед, будет работать и для авторов нод, и для авторов комментариев, и так далее.

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

Аватар пользователя duozersk duozersk 29 марта 2012 в 9:53

Ок.

В общем, тебе нужен токен user:ulogin:identity (в квадратных скобках, а то тут фильтр линкует на пользаков типа). В token_replace надо скормить объект комментирующего - с этим, думаю, как-нибудь докопаешься. ;) Токены работают - тема исчерпана.

Аватар пользователя Shr3k Shr3k 29 марта 2012 в 10:06

Огромное спасибо за модуль.Все супер, но есть одна проблема. Он отображается в самом верху формы над логином и паролем, как его перенести после них вниз? Спасибо.

Аватар пользователя duozersk duozersk 29 марта 2012 в 12:39
"Shr3k" wrote:

как его перенести после них вниз?

Через админку "пока" никак (и вряд ли это изменится в ближайшем будущем). Виджет добавляется как элемент формы с весом -10. Вы можете сделать hook_form_alter на нужную вам форму и либо уменьшить вес полям, которые хотите поместить выше виджета (поставить им '#weight' => -15, например), либо увеличить вес элементу виджета.

Аватар пользователя Shr3k Shr3k 29 марта 2012 в 13:20
duozersk wrote:
"Shr3k" wrote:

как его перенести после них вниз?

Через админку "пока" никак (и вряд ли это изменится в ближайшем будущем). Виджет добавляется как элемент формы с весом -10. Вы можете сделать hook_form_alter на нужную вам форму и либо уменьшить вес полям, которые хотите поместить выше виджета (поставить им '#weight' => -15, например), либо увеличить вес элементу виджета.

Спасибо! Разобрался.

Аватар пользователя TheJuneBug TheJuneBug 31 марта 2012 в 22:15

duozersk, Ваш модуль бесценен, огромное спасибо!
Но как всегда мешает одно "но" )) И мне кажется это самая популярная жалоба - отображение имени пользователя в виде ulogin_yandex_блаблабла.

Да, это без проблем меняется в комментариях, полях, авторах нод с помощью Realname, но как победить аргументы?
Для отображения профиля у меня вьюс, в качестве аргумента использую такую схему: Пользователь->Uid->ID пользователя из url-> Переопределить заголовок -> %1

В итоге, заходя на страницу профиля пользователя, я вижу заголовок: "Профиль ulogin_yandex_блаблабла". Как с этим бороться?

Аватар пользователя UksusoFF UksusoFF 31 марта 2012 в 22:36
TheJuneBug wrote:

duozersk, Ваш модуль бесценен, огромное спасибо!
Но как всегда мешает одно "но" )) И мне кажется это самая популярная жалоба - отображение имени пользователя в виде ulogin_yandex_блаблабла.

http://drupal.org/node/1504482 нет?

Аватар пользователя TheJuneBug TheJuneBug 31 марта 2012 в 22:44
"UksusoFF" wrote:

нет?

Не, у меня RealName установлен и он работает везде, кроме аргументов вьюс.

Аватар пользователя duozersk duozersk 3 апреля 2012 в 11:40
"TheJuneBug" wrote:

Ваш модуль бесценен, огромное спасибо!

Спасибо за похвалу!

"TheJuneBug" wrote:

Но как всегда мешает одно "но" )) И мне кажется это самая популярная жалоба - отображение имени пользователя в виде ulogin_yandex_блаблабла.

К сожалению, имя пользователя должно быть уникальным (колонка name в таблице users), и выбранный способ его формирования был именно таким, он ничем не хуже других. Отображаемое имя пользователя - это уже другая тема, и оно всегда должно выводиться через format_username().

"TheJuneBug" wrote:

Для отображения профиля у меня вьюс, в качестве аргумента использую такую схему: Пользователь->Uid->ID пользователя из url-> Переопределить заголовок -> %1

Вы первая, кто обратился с такой проблемой :) Видимо, не все пользователи делают вьюху на профиль пользователя.

"TheJuneBug" wrote:

В итоге, заходя на страницу профиля пользователя, я вижу заголовок: "Профиль ulogin_yandex_блаблабла". Как с этим бороться?

Не факт, что я предложу лучший способ, но как минимум вы можете препроцессить этот вью и выставлять тайтл, который вам нужно, что-то вроде этого (нужно разобраться, откуда взять юзера, и натравить на него format_username()):

<?php
function my_module_preprocess_views_view(&$vars) {
  if (
$vars['view']->name == 'my_view') {
    
$vars['view']->build_info['title'] = $my_title;
  }
}
?>
Аватар пользователя TheJuneBug TheJuneBug 3 апреля 2012 в 11:47
"duozersk" wrote:

Видимо, не все пользователи делают вьюху на профиль пользователя

Ну да, есть на то причины ))

Спасибо за предложенный способ, попробую.

Аватар пользователя duozersk duozersk 5 апреля 2012 в 14:21
"UksusoFF" wrote:

появились новые провайдеры, неплохо бы их допилить :)

Неужели я забыл сказать, что с удовольствием принимаю патчи?... ;)

Аватар пользователя Alex_on Alex_on 7 апреля 2012 в 16:33

Не понял, а при заходе через uLogin никакого пароля не добавляется? Соответственно изменить данные в своем аккаунте нельзя?

Аватар пользователя duozersk duozersk 7 апреля 2012 в 21:46
"Alex_on" wrote:

Не понял, а при заходе через uLogin никакого пароля не добавляется? Соответственно изменить данные в своем аккаунте нельзя?

Добавляется, но он сгенерен кодом и никому не известен. Без пароля можно менять любые данные аккаунта, кроме имени пользователя (что для пользователей, созданных юлогином, делать не рекомендуется) и емейла.
Подробнее тут - http://www.drupal.ru/node/70387?page=1#comment-463842

Аватар пользователя duozersk duozersk 22 апреля 2012 в 18:17
"Olegka" wrote:

а на 6 друпал будешь портировать ? пока не хочу на семёрку переезжать )

для жаждущих друпал 6 - теперь есть базовый порт на шестерку, пока не рекомендую ставить на продакшен, ибо показываемые имена пользователей будут ужасны :)

Аватар пользователя 0legka 0legka 26 апреля 2012 в 19:44
"duozersk" wrote:

для жаждущих друпал 6 - теперь есть базовый порт на шестерку, пока не рекомендую ставить на продакшен, ибо показываемые имена пользователей будут ужасны :)

Спасибо огромное, жду окончательного варианта !!

Аватар пользователя duozersk duozersk 27 апреля 2012 в 20:07
"0legka" wrote:

Спасибо огромное, жду окончательного варианта !!

Пробуйте rc1 - сделал как мог хорошо :) Добавилась зависимость на realname.

Аватар пользователя duozersk duozersk 27 апреля 2012 в 22:58
"UksusoFF" wrote:

other добавь)

куда добавить? как чекбокс не имеет смысла... и если сильно хочется - можете сами other прописать на advanced табе.

Аватар пользователя UksusoFF UksusoFF 27 апреля 2012 в 23:18
"duozersk" wrote:

куда добавить? как чекбокс не имеет смысла... и если сильно хочется - можете сами other прописать на advanced табе.

а, ок =)

Аватар пользователя petrovnn petrovnn 1 мая 2012 в 0:27

Подпишусь, и спасибо за модуль! Он потрясающ! По сравнению с первыми версиями которые я скачивал с оф сайта прошлой осенью.

Аватар пользователя duozersk duozersk 1 мая 2012 в 0:49
"petrovnn" wrote:

Подпишусь, и спасибо за модуль! Он потрясающ! По сравнению с первыми версиями которые я скачивал с оф сайта прошлой осенью.

Те версии с офф сайта... как бы... немножко не то. Мой модуль был написан с нуля, и уже стал офф версией для семерки. Думаю, скоро и для шестерки тоже сделают - я им напишу, что порт закончен.

Аватар пользователя petrovnn petrovnn 1 мая 2012 в 1:03

я конечно извиняюсь, но нет-ли какого-нибудь изкоробочного решения как показывать нормально имя автора в RSS-ридере? Как вывести имя на сайте - разобрался быстро. Массивы есть, есть функция deserialize(), с помощью которой можно вытащить из блоба нужное имя. Но с какой стороны подступиться к RSS как-то пока не пойму...

А ведь RSS игнорить нельзя.. и я уверен у вас тоже RSS где-нить используется, как вы решали эту задачу?

Аватар пользователя duozersk duozersk 1 мая 2012 в 10:24
"petrovnn" wrote:

я конечно извиняюсь, но нет-ли какого-нибудь изкоробочного решения как показывать нормально имя автора в RSS-ридере? Как вывести имя на сайте - разобрался быстро. Массивы есть, есть функция deserialize(), с помощью которой можно вытащить из блоба нужное имя. Но с какой стороны подступиться к RSS как-то пока не пойму...
А ведь RSS игнорить нельзя.. и я уверен у вас тоже RSS где-нить используется, как вы решали эту задачу?

Не совсем понимаю, что и для чего вы нахачили... имя на сайте должно выводиться нормально (либо как "first_name last_name", либо через Realname).
Добро пожаловать в issue queue модуля.
Почему именно туда? - потому что там будет отдельная тема для вашего вопроса, там вы сможете указать версию модуля, которую используете (и будет ясно, про Д6 или Д7 идет речь), там этот вопрос после ответа останется для всего остального сообщества...
Плюс укажите, каким образом вы формируете RSS - используя возможности ядра друпала (опять-таки, какой его версии?) или views?...

Аватар пользователя Libero82 Libero82 4 мая 2012 в 20:32

Скачал модуль с друпал.орг, версию 6.x-1.0-rc2.
Установил - виджет не появился (((
Сделал удаление модуля, появилась ошибка:
"user warning: Unknown table 'ulogin_identity' query: DROP TABLE bp_ulogin_identity in ...\www\includes\database.mysql-common.inc on line 269."

Аватар пользователя petrovnn petrovnn 4 мая 2012 в 20:35

использовать шестой друпал - неправославно. Естественно что разрабы модулей уже начали забивать на шестерку. Дальше - еще больше будут забивать.

Аватар пользователя duozersk duozersk 4 мая 2012 в 23:57
"Libero82" wrote:

Скачал модуль с друпал.орг, версию 6.x-1.0-rc2.
Установил - виджет не появился (((

Надо залезть в настройки, посмотреть, на какие формы он добавляется (там можно выбрать чекбоксиками). И дать анонимусам пермишен юзать uLogin.

"Libero82" wrote:

Сделал удаление модуля, появилась ошибка:
"user warning: Unknown table 'ulogin_identity' query: DROP TABLE bp_ulogin_identity in ...\www\includes\database.mysql-common.inc on line 269."

По ошибке видно, что вы используете префикс bp_ для таблиц друпала. По идее, в модуле все сделано кошерно (через апи создания/удаления таблиц самого друпала), и он должен без проблем удалять свою таблицу из БД (она называется ulogin_identity, в вашем случае с префиксом) - можете сами её дропнуть, если не удалилась.

Аватар пользователя Libero82 Libero82 5 мая 2012 в 10:28
"duozersk" wrote:

И дать анонимусам пермишен юзать uLogin.

Ах вот как ... )))
СПАСИБО! Классный модуль!

Upd.
У меня стоит Email registration. При адресе HeroUser@mail.ru имя пользователя выглядит как HeroUser.
Pathauto также настроен и выводит в нужном мне формате: user/HeroUser.
Но при авторизации ulogina, прям беда.
Попробовал авторизоваться через маил.ру создался юзер Имя пользователя "_1".
Получается при создании пользователей хук email_registration_user не срабатывает.
Попробовал (для теста(!)) добавить db_query("UPDATE {users} SET name = '%s' WHERE uid = '%s'", $namenew, $account->uid) в ваш хук ulogin_user, но безрезультатно.
$namenew - это новое сгенерированное имя по email.

Аватар пользователя duozersk duozersk 5 мая 2012 в 11:19
"Libero82" wrote:

У меня стоит Email registration. При адресе HeroUser@mail.ru имя пользователя выглядит как HeroUser.
Pathauto также настроен и выводит в нужном мне формате: user/HeroUser.
Но при авторизации ulogina, прям беда.
Попробовал авторизоваться через маил.ру создался юзер Имя пользователя "_1".
Получается при создании пользователей хук email_registration_user не срабатывает.

Как раз оно и срабатывает. Этот модуль думает, что все регистрации всегда идут по его алгоритму (и что в массиве формы всегда придет к нему емейл, который не приходит в случае регистрации через юлогин), поэтому реагирует на регистрацию пользователей через uLogin и корячит юзернейм, сделанный юлогином (чего делать не стоит). К счастью, у него есть хук, через который ему можно сказать, какой юзернейм оставить - добавлю его в след релизе.

"Libero82" wrote:

Попробовал (для теста(!)) добавить db_query("UPDATE {users} SET name = '%s' WHERE uid = '%s'", $namenew, $account->uid) в ваш хук ulogin_user, но безрезультатно.
$namenew - это новое сгенерированное имя по email.

Мой хук раннится раньше, так как у email_registration вес больше, его хуки выполняются позже... соответственно, он все равно делает свое "грязное дело".

В общем, ждите след. релиза, в нем решу эту траблу.

Аватар пользователя Libero82 Libero82 5 мая 2012 в 11:41
"duozersk" wrote:

Как раз оно и срабатывает.

Наверно я неправильно описал.
Как раз оно НЕ срабатывает!
Мне надо было, чтобы хук срабатывал.

"duozersk" wrote:

Мой хук раннится раньше

У Вас регистрация юзера идет по API user_external_login_register
Добавил ниже нее ссылку на новую функцию:

function _ulogin_make_newusername($data) {
global $user;
// Default implementation of name generation
$namenew = preg_replace('/@.*$/', '', $data['email']);
// Remove unwanted characters
$namenew = preg_replace('/[^a-zA-Z0-9.-]/', '', $namenew);

// if username generated from email record already exists, append underscore and number eg:(chris_123)
if (db_result(db_query("SELECT count(*) FROM {users} WHERE uid <> %d AND LOWER(name) = LOWER('%s')", $user->uid, $namenew)) > 0) {
// find the next number available to append to the name
$sql = "SELECT SUBSTRING_INDEX(name,'_',-1) FROM {users} WHERE name REGEXP '%s' ORDER BY CAST(SUBSTRING_INDEX(name,'_',-1) AS UNSIGNED) DESC LIMIT 1";
$nameidx = db_result(db_query($sql, '^'. $namenew .'_[0-9]+$'));
$namenew .= '_'. ($nameidx + 1);
}

// replace with generated username
if (db_query("UPDATE {users} SET name = '%s' WHERE uid = '%s'", $namenew, $user->uid)) {
$edit['name'] = $namenew; // update in the user array for access by other modules
}
}

Думаю, что отдельной функцией будет лучше, так сказать с прицелом на будущее.
Можно же и транслитерировать имя и фамилию, ник и т.д. и сделать именем пользователя.

Но есть еще одна проблемка с pathauto.
Адреса юзеров выглядят ужасно uloginvkontakte321321
Критично ли, если изменить Вашу функцию _ulogin_make_username на мою с return newname?

Аватар пользователя duozersk duozersk 5 мая 2012 в 11:53

Ок, пусть будет так, как вы хотите думать, я не очень хочу вникать в ваши умозаключения и хаки, простите мне эту слабость ;)

Вашу проблему, связанную с модулем email_registration при регистрации пользователя через uLogin, я понял. И я её решу.
Алгоритм создания имени пользователя модулем uLogin изменяться не будет (оно всегда будет составляться по шаблону ulogin_network_userIDinNetwork), не будет в нём никакой транслитерации имён и тд.
Отображаемое же имя пользователя вы можете настроить каким хотите используя возможности модуля Realname. В модуле uLogin по умолчанию realname делается "first_name last_name".

"Libero82" wrote:

Но есть еще одна проблемка с pathauto.
Адреса юзеров выглядят ужасно uloginvkontakte321321
Критично ли, если изменить Вашу функцию _ulogin_make_username на мою с return newname?

Не проще перенастроить pathauto? Все поля, которые предоставляет uLogin, доступны в виде токенов пользователя.
Очень не рекомендую хачить код модулей - наживете больше проблем чем профита. Но выбор всегда за вами.

Аватар пользователя duozersk duozersk 9 мая 2012 в 13:19
"Libero82" wrote:

У меня стоит Email registration. При адресе HeroUser@mail.ru имя пользователя выглядит как HeroUser.
Pathauto также настроен и выводит в нужном мне формате: user/HeroUser.
Но при авторизации ulogina, прям беда.
Попробовал авторизоваться через маил.ру создался юзер Имя пользователя "_1".
Получается при создании пользователей хук email_registration_user не срабатывает.
Попробовал (для теста(!)) добавить db_query("UPDATE {users} SET name = '%s' WHERE uid = '%s'", $namenew, $account->uid) в ваш хук ulogin_user, но безрезультатно.
$namenew - это новое сгенерированное имя по email.

Попробуйте 6.x-1.0-rc3 - в нем добавлен hook_email_registration_name().

Аватар пользователя Mascher Mascher 12 мая 2012 в 12:14

Установил модуль на 6-ке версия модуля 6.x-1.0-rc3. Возникла следующая проблема:
Залогинился с учетной записи Google создался пользователь ulogin_google_1028197.....
Все бы хорошо, но это кривое имя отображается в имени пользователя на комментариях и на созданных им нодах.
В модуле RealName выбрал модуль Core Profile
В Профайле добавил новое поле profile_realname
В настройках полей RealName выбрал это поле галочкой, но ситуация не изменилась. Имена в комментариях все так же кривые. Да и поле realname остается пустым после входа новых пользователей с ulogin.

Что интересно, при редактировании профайла в хлебных крошка показывает Имя и Фамилию из соцсети, откуда оно там берется.... :)

P.S. И еще, хорошо бы было не только выбирать Запрашиваемые поля, но и выбирать соответствие им полей в профайле, чтоб эти переменные сразу в профайл и записывались.

Аватар пользователя duozersk duozersk 12 мая 2012 в 12:15
"Mascher" wrote:

Все бы хорошо, но это кривое имя отображается в имени пользователя на комментариях и на созданных им нодах.

Да, для версии под Д6 ещё есть над чем работать. :) По идее, надо найти способ нормальной интеграции с realname, но его нет... Сейчас единственная идея, которая у меня есть (все остальные уже отпали) - это сделать патч для realname, добавить в нем хук для альтера имени, которое он вычисляет, и использовать этот хук.

"Mascher" wrote:

И еще, хорошо бы было не только выбирать Запрашиваемые поля, но и выбирать соответствие им полей в профайле, чтоб эти переменные сразу в профайл и записывались.

Что же до заполнения полей профиля данными от провайдеров авторизации - в 7ке эту фишку решает модуль Rules, делает это четко и гибко... в 6ке это не работает; писать для этого свой велосипед не хочется, ищу другие способы - пока не нашёл; если и дальше не найду - придется написать, либо кто-то ещё напишет ;)

Аватар пользователя Mascher Mascher 12 мая 2012 в 12:37
duozersk wrote:

Да, для версии под Д6 ещё есть над чем работать. :) По идее, надо найти способ нормальной интеграции с realname, но его нет... Сейчас единственная идея, которая у меня есть (все остальные уже отпали) - это сделать патч для realname, добавить в нем хук для альтера имени, которое он вычисляет, и использовать этот хук.

А откуда при редактировании профайла в хлебных крошка отображается имя из соцсети? :) Где его друпал берет-то? Где-то же берет собако?

Аватар пользователя duozersk duozersk 12 мая 2012 в 12:21
"duozersk" wrote:

Сейчас единственная идея, которая у меня есть (все остальные уже отпали) - это сделать патч для realname, добавить в нем хук для альтера имени, которое он вычисляет, и использовать этот хук.

http://drupal.org/node/689642 - не один я такой страдалец... поработаю над этим патчем. Надеюсь, Дейв меня не продинамит ;)

Аватар пользователя duozersk duozersk 12 мая 2012 в 12:43
"Mascher" wrote:

А откуда при редактировании профайла в хлебных крошка отображается имя из соцсети? :) Где его друпал берет-то? Где-то же берет собако?

Это мой модуль при загрузке объекта пользователя вешается на hook_user и ставит ему принудительно realname = "first_name last_name". Но вот realname при показе имен пользователей как авторов нод и комментов использует не user_load, а свой кастомный костылек, который не зовет hook_user... очень весело :)

Аватар пользователя Mascher Mascher 12 мая 2012 в 12:48
duozersk wrote:

Это мой модуль при загрузке объекта пользователя вешается на hook_user и ставит ему принудительно realname = "first_name last_name". Но вот realname при показе имен пользователей как авторов нод и комментов использует не user_load, а свой кастомный костылек, который не зовет hook_user... очень весело :)

Я так понимаю надо ждать патча realname :) Чтож, жаль ... :( Прийдется пока без авторизации с соцсетей обойтись :)

Аватар пользователя duozersk duozersk 12 мая 2012 в 13:43
"Mascher" wrote:

Я так понимаю надо ждать патча realname :) Чтож, жаль ... :( Прийдется пока без авторизации с соцсетей обойтись :)

Не, теперь уже не надо :) Вы меня побудили попытаться найти решение ещё раз - сейчас выкачу rc4, пробуйте, должен показывать как "first_name last_name". Только надо раздать пермишен 'use realname' всем ролям (иначе не будет показывать реалнейм для нод).

Аватар пользователя Mascher Mascher 12 мая 2012 в 14:22
duozersk wrote:

Не, теперь уже не надо :) Вы меня побудили попытаться найти решение ещё раз - сейчас выкачу rc4, пробуйте, должен показывать как "first_name last_name". Только надо раздать пермишен 'use realname' всем ролям (иначе не будет показывать реалнейм для нод).

Дык оно теперь разве средствами realname делает изменение имени? Модуль realname в rc4 вообще нужен? :)
Кстати спасибо в комментариях показывает теперь нормально, но в настройках профайла и в некоторых других местах(например в блоках и в представлениях) все равно показывает кривые имена :) Только если ручками заходить и реалнейм прописывать... В Rules-ах почему-то при изменении поля профайла нельзя использовать переменные... так бы можно было и правило замутить на регистрацию новых пользователей.

Надписи в хлебных крошка типа:

Главная » Записи в блогах » Блогер ulogin_google_102819289374892734897289347 » тест » Тестовая запись в блоге

Выглядят ужасно :)

Пойду поищу где я переменную не так использую, какой переменной теперь в блоках надо выводить имя автора?

Аватар пользователя duozersk duozersk 12 мая 2012 в 15:26
"Mascher" wrote:

Дык оно теперь разве средствами realname делает изменение имени? Модуль realname в rc4 вообще нужен? :)

да, нужен.
Выводить надо либо используя theme('username', $account), либо $account->realname... во вьюхах модуль realname тоже что-то должен предоставлять. В общем, все должно быть решаемо.

Аватар пользователя Mascher Mascher 15 мая 2012 в 12:35
duozersk wrote:

да, нужен.
Выводить надо либо используя theme('username', $account), либо $account->realname... во вьюхах модуль realname тоже что-то должен предоставлять. В общем, все должно быть решаемо.

А у меня в блоках вывод сделан, дык там прямо из базы данных бралось значение имени, как в блоке вывести реальное имя если известен UID?

Аватар пользователя duozersk duozersk 15 мая 2012 в 12:38
"Mascher" wrote:

А у меня в блоках вывод сделан, дык там прямо из базы данных бралось значение имени, как в блоке вывести реальное имя если известен UID?

$account = user_load($uid); print $account->realname;

Аватар пользователя Mascher Mascher 21 мая 2012 в 10:22
duozersk wrote:
"Mascher" wrote:

А у меня в блоках вывод сделан, дык там прямо из базы данных бралось значение имени, как в блоке вывести реальное имя если известен UID?

$account = user_load($uid); print $account->realname;

Спасибо, в блоках поправил! :)
Остался еще один момент, который не хватает опыта решить.
Когда пользователь логинится по ulogin то имя пользователя присваивается uloginтратата... и соответственно, когда идешь на страницу профайла пользователя, автоматически формируется ссылка /users/uloginтратата...
Это дело можно как-то поправить?

P.S. нашел сам как исправить /admin/build/path/patterns эту проблему решает.

Аватар пользователя Vydrin_AP Vydrin_AP 18 мая 2012 в 13:18

Здравствуйте. Модуль отличный, но все же возникает проблема с email_registration в шестерке.
В хуке hook_email_registration_name условие if (!empty($ulogin_data) || !empty($account->ulogin)) не выполняется никогда, т.к. $account->ulogin не определен в объекте $account. Но даже если убрать это условие, то return $account->name; возвращает пустое значение.
Пробовал выставить для Вашего модуля больший вес, чем у email_registration - безрезультатно. Посоветуйте пожалуйста, куда копать?

Аватар пользователя Gukov Yor Gukov Yor 18 мая 2012 в 13:36

Вылазят ошибки после авторизации
Notice: Undefined index: last_name в функции ulogin_username_alter() (строка 250 в файле /home/..../domains/..../public_html/sites/all/modules/ulogin/ulogin.module).

Аватар пользователя duozersk duozersk 21 мая 2012 в 10:57
"Vydrin_AP" wrote:

Модуль отличный, но все же возникает проблема с email_registration в шестерке.

Посмотрю, что тут не так.

"Gukov Yor" wrote:

Вылазят ошибки после авторизации
Notice: Undefined index: last_name в функции ulogin_username_alter() (строка 250 в файле /home/..../domains/..../public_html/sites/all/modules/ulogin/ulogin.module).

Первый раз вижу... видимо, у вас не стоит модуль Realname и вы исключили фамилию пользователей из запрашиваемых полей. Надо подумать, как обрабатывать такую ситуацию.

Аватар пользователя duozersk duozersk 21 мая 2012 в 11:25
"Vydrin_AP" wrote:

В хуке hook_email_registration_name условие if (!empty($ulogin_data) || !empty($account->ulogin)) не выполняется никогда, т.к. $account->ulogin не определен в объекте $account. Но даже если убрать это условие, то return $account->name; возвращает пустое значение.
Пробовал выставить для Вашего модуля больший вес, чем у email_registration - безрезультатно. Посоветуйте пожалуйста, куда копать?

Только что проверил эту ситуацию - всё работает, как и должно.
Да, действительно, $account->ulogin не определён, но зато глобал $ulogin_data определён, так что условие проходит проверку (сделано именно так для одинаковости кода между версиями для Д6 и Д7). $account->name определён и возвращает то, что должен, никакой пустоты там нет (пробовал мордокнигу и твиттер - получил имена пользователей ulogin_facebook_blabla и ulogin_twitter_blabla - как и должно быть).
Вес модуля юлогина по идее не должен влиять на эту ситуацию, только если какой другой модуль тоже имплементит hook_email_registration_name - это можно проверить поиском по кодовой базе... Куда копать дальше - включать дебаггер и смотреть на массив $names в функции email_registration_user при $op = 'insert'.

Аватар пользователя Mascher Mascher 21 мая 2012 в 13:48

а почему нельзя имена пользователей делать не uloginтратата... а какое-нибудь вменяемое?
Например, сделать сочетание [user:ulogin:first_name] и [user:ulogin:last_name].
Или использовать [user:ulogin:nickname]...

Просто с этими кривыми именами куча проблем вылазит везде...

Например модули user_pane, messages, user_relationships, page_title (это только те что нашел)- не поддерживают realname в полной мере, и, соответственно, выводят кривые имена пользователей по своим ссылкам и в своих переменных.
Такая же проблема в переводах, например Send @Name a private message, имя ставится так же кривое...

Аватар пользователя Vydrin_AP Vydrin_AP 21 мая 2012 в 12:18
"duozersk" wrote:

Только что проверил эту ситуацию - всё работает, как и должно.
Да, действительно, $account->ulogin не определён, но зато глобал $ulogin_data определён, так что условие проходит проверку (сделано именно так для одинаковости кода между версиями для Д6 и Д7). $account->name определён и возвращает то, что должен, никакой пустоты там нет (пробовал мордокнигу и твиттер - получил имена пользователей ulogin_facebook_blabla и ulogin_twitter_blabla - как и должно быть).
Вес модуля юлогина по идее не должен влиять на эту ситуацию, только если какой другой модуль тоже имплементит hook_email_registration_name - это можно проверить поиском по кодовой базе... Куда копать дальше - включать дебаггер и смотреть на массив $names в функции email_registration_user при $op = 'insert'.

Большое спасибо! Буду копать.

Аватар пользователя duozersk duozersk 21 мая 2012 в 14:49
"Gukov Yor" wrote:

Вылазят ошибки после авторизации
Notice: Undefined index: last_name в функции ulogin_username_alter() (строка 250 в файле /home/..../domains/..../public_html/sites/all/modules/ulogin/ulogin.module).

Попробуйте релиз 7.x-1.5 - в нём переписал код для альтера дисплей нейма - теперь оно использует токены, позволяет задать паттерн в админке... + есть галка для оверрайдинга паттерна модуля Real name для пользователей, созданных через uLogin.

Аватар пользователя Gukov Yor Gukov Yor 21 мая 2012 в 15:52
duozersk wrote:
"Gukov Yor" wrote:

Вылазят ошибки после авторизации
Notice: Undefined index: last_name в функции ulogin_username_alter() (строка 250 в файле /home/..../domains/..../public_html/sites/all/modules/ulogin/ulogin.module).

Попробуйте релиз 7.x-1.5 - в нём переписал код для альтера дисплей нейма - теперь оно использует токены, позволяет задать паттерн в админке... + есть галка для оверрайдинга паттерна модуля Real name для пользователей, созданных через uLogin.

Спасибо, всё чётко! паттерн user:ulogin:first_name, Real name - не использую, потестирую - отпишу.

Аватар пользователя duozersk duozersk 21 мая 2012 в 15:04
"Mascher" wrote:

а почему нельзя имена пользователей делать не uloginтратата... а какое-нибудь вменяемое?
Например, сделать сочетание  ulogin:first_name и  ulogin:last_name.
Или использовать  ulogin:nickname...

Потому что что-нибудь вменяемое может совпасть у двух разных пользователей, а имя пользователя должно быть уникальным. Модуль изначально писался под 7ку, там с этим нет никаких проблем.
Для 6ки можно было понаписать извратов типа добавлять к имени пользователя _2, _3 и так далее, если другой пользователь с таким именем уже существует - но тогда была бы проблема перехода на 7ку.

"Mascher" wrote:

Просто с этими кривыми именами куча проблем вылазит везде...

Сочувствую. Имена не кривые, они просто уникальные. Всю эту кучу проблем по хорошему надо садиться и править, добавляя патчи интеграции с реалнейм в проблемные модули, извиняюсь за ваш геморрой. Либо переходить на 7ку.

Аватар пользователя Mascher Mascher 22 мая 2012 в 7:30

Как вариант придется ручками каждого пользователя переименовывать в 6.х
Но как-то это не правильно :)

Аватар пользователя duozersk duozersk 22 мая 2012 в 10:41
"Mascher" wrote:

Как вариант придется ручками каждого пользователя переименовывать в 6.х
Но как-то это не правильно :)

Выбор всегда за вами :) Мне больше импонирует вариант апгрейда до 7ки.

Аватар пользователя duozersk duozersk 22 мая 2012 в 11:58

ОК, для самых-самых страждущих победить траблы с 6кой добавил hook_ulogin_username_alter(&$name, $data) - это позволит вам сделать тот юзернейм пользователю, какой вы хотите, до его регистрации в друпале; $name - это то, что сгенерил для него мой код (то есть тут будет 'ulogin_network_blabla'); $data - массив данных от провайдера авторизации, тут есть все поля, которые запрашиваются.
Как использовать? - делаете в своем модуле функцию:

function mymodule_ulogin_username_alter(&$name, $data) {
  $name = $data['first_name'] . ' ' . $data['last_name'] . ' ' . time();
}

Ваша задача убедиться в том, что создаваемое имя уникально для вашего сайта - если этого не сделаете, то пользователь не сможет зарегаться (далее добавлю проверку, что поальтереное имя уникально - если нет, то буду создавать имя пользователя по стандартному паттерну). Как это сделать - либо добавлять какую-нить более-менее уникальную хню (в примере выше эту задачу выполняет time()), либо проверять на наличие этого имени в базе зареганых пользаков и что-то предпринимать (добавлять счетчик Андреев :)).

Этот хук появится в rc5 для 6ки.

Аватар пользователя Mascher Mascher 22 мая 2012 в 14:23
duozersk wrote:

ОК, для самых-самых страждущих победить траблы с 6кой добавил hook_ulogin_username_alter(&$name, $data) - это позволит вам сделать тот юзернейм пользователю, какой вы хотите, до его регистрации в друпале; $name - это то, что сгенерил для него мой код (то есть тут будет 'ulogin_network_blabla'); $data - массив данных от провайдера авторизации, тут есть все поля, которые запрашиваются.

На 7-ку переходит точно не вариант, а на счет хука, спасибо, теперь надо думать как это дело обработать и вообще реализовать.
По поводу реализации я бы лучше сделал проверку в модуле и возможность пользователю самому ввести нужное имя, если регистрируемое уже используется(можно еще и варианты предложить имени, как сделано на многих популярных ресурсах).

Но, на сколько я понимаю, для этого придется писать отдельный модуль. Этого я точно никогда не делал :)))

Спасибо что не оставили проблему без внимания.

Аватар пользователя duozersk duozersk 22 мая 2012 в 17:57
"Mascher" wrote:

По поводу реализации я бы лучше сделал проверку в модуле и возможность пользователю самому ввести нужное имя, если регистрируемое уже используется(можно еще и варианты предложить имени, как сделано на многих популярных ресурсах).

Идея хорошая, именно как сама идея... но идет вразрез с тем, как написан этот модуль. Его задача - как можно быстрее зарегать пользователя без лишних вопросов. Чтобы добавить функционал спрашивания - придётся кое-что дописывать, чего в версии под 7ку точно не надо.

"Mascher" wrote:

Но, на сколько я понимаю, для этого придется писать отдельный модуль. Этого я точно никогда не делал :)))

Ну да, надо. Могу включить в версию для 6ки доп модулёк, который будет составлять имя пользака как вам хочется - так что принимаю заявки ;) Ничего сложного тут нет, написать корявость в доп модуле я согласен :)

"Mascher" wrote:

Спасибо что не оставили проблему без внимания.

Да проблем-то ваще никаких нет, это только кажется. Мне очень выгодно, если мой код юзают на сайтах, желательно сайтов побольше и покрупней ;)

Аватар пользователя duozersk duozersk 22 мая 2012 в 20:45

Написал доп модуль для 6ки - при его включении имена пользователей, создаваемых юлогином, будут использовать паттерн "first_name last_name"; при совпадении к имени будет добавляться счетчик совпадений. Выложу в rc6.

Аватар пользователя Mascher Mascher 24 мая 2012 в 6:42
duozersk wrote:

Написал доп модуль для 6ки - при его включении имена пользователей, создаваемых юлогином, будут использовать паттерн "first_name last_name"; при совпадении к имени будет добавляться счетчик совпадений. Выложу в rc6.

Спасибо маэстро :)

P.S.

duozersk wrote:

Мне очень выгодно, если мой код юзают на сайтах

А в чем для вас выгода ? :)

Аватар пользователя duozersk duozersk 28 мая 2012 в 17:01
"Mascher" wrote:

А в чем для вас выгода ? :)

Как найти хорошего дева под Друпал? Контрибы кода на друпал.орге, сколько сайтов их юзает - объективный показатель, который говорит сам за себя.

Аватар пользователя duozersk duozersk 5 июня 2012 в 13:36

Модуль "uLogin username" был скрыт в последнем релизе 7.x-1.8.
Потому что в семёрке теперь есть в настройках поле "Username pattern" (скрин). Если был установлен модуль uLogin username, то этот паттерн будет соответствовать тому, что делал uLogin username (надо только запустить update.php).

Скорее всего что-то подобное будет сделано и для шестёрки.

Аватар пользователя pl2006 pl2006 19 июня 2012 в 16:12

Подскажите, а можно ли вывести виджет ulogin в произвольном блоке, а не только в форме?

Аватар пользователя duozersk duozersk 20 июня 2012 в 13:35

Можно. Начало тут.

Улучшенная версия:

<?php
if (module_exists('ulogin')) {
  $element_info = ulogin_element_info();
  $element = $element_info['ulogin_widget'];
  $element['#type'] = 'ulogin_widget';
  print render($element);
}
?>
Аватар пользователя pl2006 pl2006 19 июня 2012 в 16:48

чет не работает под 6-кой вставка в блок. Пишет:

Parse error: syntax error, unexpected T_STRING, expecting '(' in /....../includes/common.inc(1696) : eval()'d code on line 2

Аватар пользователя duozersk duozersk 19 июня 2012 в 18:08
"pl2006" wrote:

чет не работает под 6-кой вставка в блок.

Потому что приведенный выше код - для 7ки. Для 6ки надо по другому - а как именно это уже другой вопрос, сейчас нет времени смотреть.

Аватар пользователя duozersk duozersk 20 июня 2012 в 13:34
"pl2006" wrote:

К сожалению все равно не работает

Да, опечатался, забыл скобки... поправил выше.

Аватар пользователя pl2006 pl2006 22 июля 2012 в 18:07

Прошу прощения, еще вопрос:
пытаюсь через rules 'Populate new content of type profile's field' сделать заполнение в профиле пользователя поля 'field_ava' (тип поля - Файл) изображением из ulogin_photo_big. Не совсем понимаю какой для этого нужно вставить код в 'SPECIFY THE FIELDS VALUE WITH PHP CODE'?

return array(
  0 => array(что тут?),
 
);
Аватар пользователя duozersk duozersk 22 июня 2012 в 0:33

С файлами всё сложнее, токен ulogin_photo_big содержит ссылку на фотку... Для того, чтобы засунуть эту фотку в поле профиля, нужно скачать этот файл локально на веб-сервер (используя drupal_http_request или curl) и подсунуть его полю профиля в нужном ему формате.

Аватар пользователя FORTIS FORTIS 22 июня 2012 в 2:05

может пригодится, делал для oauth_connector

там при сохранении пользователя во втором параметре user_save нужно передать лишь fid аватарки
'picture' => $picture_file->fid,

предварительно получив его примерно так:

/* ... */
$picture_file = _save_image_local($picture_url);
/* ... */

function _save_image_local($url) {
  global $user;
  $hash = md5($url);
  $extensions = 'jpg jpeg png gif';
  $parsed = parse_url($url);
  $regex = '/\.(' . @ereg_replace(' +', '|', preg_quote($extensions)) . ')$/i';
  if (!preg_match($regex, $parsed['path'], $matches)) {
    watchdog('download', 'Download Image Error: Bad file extension.', array(), WATCHDOG_ERROR);
    return FALSE;
  }
 
  $extension = $matches[0];
 
  $dir = 'public://avatars';
  file_prepare_directory($dir, FILE_CREATE_DIRECTORY | FILE_MODIFY_PERMISSIONS);
 
  $filepath = file_create_filename($hash . $extension, $dir);
 
  // Download the image.
  if ($response = drupal_http_request($url)) {

    // Check response code.
    if ($response->code != 200) {
      watchdog('connector_action_register_user', 'Download Image Error: Bad response code (!code).', array('!code' => $response->code), WATCHDOG_ERROR);
      return FALSE;
    }
   
    // Check mime type.
    $types = array('image/jpeg', 'image/png', 'image/gif');
    if (!in_array($response->headers['content-type'], $types)) {
      watchdog('connector_action_register_user', 'Download Image Error: Bad Content-Type header (!type).', array('!type' => $response->headers['Content-Type']), WATCHDOG_ERROR);
      return FALSE;
    }
   
    // Save image to temp directory.
    $destination = $filepath;
    $filepath = $tmp = file_directory_temp() . '/' . $hash . $extension;
    if (!$fp = fopen($filepath, 'wb')) {
      drupal_set_message(t('The file could not be created.'), 'error');
      return FALSE;
    }
   
    fwrite($fp, $response->data);
    fclose($fp);
   
    // Build file object.
    $file = new stdClass();
    $file->filename = trim(basename($filepath));
    $file->uri = $filepath;
    $file->filemime = $response->headers['content-type'];
    $file->filesize = $filepath;
    $file->uid = $user->uid;
    $file->status = FILE_STATUS_PERMANENT;
    $file->timestamp = time();    
   
    // Validate image via getimagesize().
    if (!getimagesize($filepath)) {
      watchdog('connector_action_register_user', 'Download Image Error: Failed to validate with getimagesize().', array(), WATCHDOG_ERROR);
      return FALSE;
    }
         
    $file = file_save($file);
   

    // Move the file to destination.
    $file = file_move($file, $destination, FILE_EXISTS_RENAME);
    //drupal_unlink($tmp);
   
    if(!$file) {
      watchdog('connector_action_register_user', 'Download Image Error: Could not save data.', array(), WATCHDOG_ERROR);
      return FALSE;
    }
    else{
      return $file;
    }

  }  
 
  return FALSE;
}

Аватар пользователя KRL KRL 12 июля 2012 в 11:46

Отличный модуль! Спасибо огромное! Только есть у меня маленькая проблема. Если пользователь новый и авторизируется через ulogin - то авторизация проходит, а потом он возвращается на ту страницу где и был, но на сайте при этом не авторизируется. Чтобы авторизироваться, надо повторно воспользоваться входом через тот же сервис, через который уже пробовал зайти (Drupal 6, сайт - petbooks.ru). Можно ли как то сразу авторизировать пользователя после создания аккаунта?

Аватар пользователя duozersk duozersk 12 июля 2012 в 22:32

Кирилл,

У тебя какая-то уникальная проблема... :) Сразу понять, почему оно у тебя на сайте так происходит, я не смог :(

Добро пожаловать в issue queue модуля - http://drupal.org/node/add/project-issue/ulogin - там можно выбрать и версию модуля, которую ты используешь, и оставить опыт потомкам в виде зарегистрированной проблемы с последующим решением.

Спасибо
AndyB

Аватар пользователя FORTIS FORTIS 12 июля 2012 в 18:56

может у него аккаунты создаются с одобрением админа? тогда при создании $user->status == 0 и его не впустит в учетку, вернее разлогинит тутже

Аватар пользователя Vydrin_AP Vydrin_AP 12 июля 2012 в 19:59

Возможно это кэш. Когда пользователь авторизовался и вернулся туда, откуда начинал авторизацию - возможно он видит страницу, закэшированную для анонима, а потом снова пытается залогиниться, кэш уже очищается. Хотя, nginx там отдает 200, возможно, догадка неверна.

Аватар пользователя duozersk duozersk 12 июля 2012 в 22:32
"FORTIS" wrote:

может у него аккаунты создаются с одобрением админа? тогда при создании $user->status == 0 и его не впустит в учетку, вернее разлогинит тутже

Не, такого нет, ибо через две секунды при повторной попытке уже логинит.

Аватар пользователя KRL KRL 13 июля 2012 в 11:39

Аккаунты создаются свободно, одобрение не требуется. В issue queue отпишусь на выходных, спасибо за ответ! Используется модуль Email Registration, может он как то влияет?

Аватар пользователя Artu Artu 20 июля 2012 в 4:33

Модуль отличен.
Возникла одна проблема в 6.x-1.3.
Откуда берется email для одноклассников? Если я авторизирован в однокласниках попеременно под разными аккаунтами то у вновь созданного аккаунта Ulogin email одинаковый.

Отсюда вытекающие проблемы.

Аватар пользователя Artu Artu 20 июля 2012 в 5:08

У меня есть имя и фамилия в профиле. Как создать Rules что бы эти поля автоматом заполнялись?
Вначале сделать Load user account, а потом Modify profile fields.
Пробовал не получилось.. Подставлял токен во втором действии user:ulogin_first_name, так и вывелся..

Аватар пользователя duozersk duozersk 21 июля 2012 в 22:51
"Artu" wrote:

Откуда берется email для одноклассников?

Либо сами одноклассники его отдают, либо вводишь в сплывающей форме (конечно, если в настройках модуля стоит запрос емейла), которую сам сервис юлогина показывает для сетей, которые не отдают емейл.

"Artu" wrote:

Если я авторизирован в однокласниках попеременно под разными аккаунтами то у вновь созданного аккаунта Ulogin email одинаковый.

У модуля есть специальная настройка - не допускать создания аккаунтов с одинаковыми емейлами - если она включена (по умолчанию так и должно быть), то аккаунтов с одинаковыми имейлами не будет.

"Artu" wrote:

Отсюда вытекающие проблемы.

Что за проблемы?

"Artu" wrote:

У меня есть имя и фамилия в профиле. Как создать Rules что бы эти поля автоматом заполнялись?

Смотрите тут - http://drupal.org/node/1646004, для шестёрки может быть чуть по другому, но смысл в том, чтобы заполнять эти поля при создании аккаунта.

Аватар пользователя andreyy05 andreyy05 22 июля 2012 в 14:56

Здравствуйте. Спасибо за замечательный модуль, выручал уже не раз!
Очень надеюсь что вы найдете время ответить на мои вопросы.

использую Drupal7

1. Зачем нужна настройка "добавить виджет uLogin на эти формы - форма комментариев" . Не пойму как ее активировать чтобы глянуть. Включаю, ничего не меняется.

2. Очень долго парюсь и никак не получается вывести форму авторизации в модальном окне. По юзабилити - это то, что нужно, т.е. самый удобный вариант. Когда аноним заходит на сайт, листает огромный список коментов к статье, и решает добавить комент, но для этого ему нужно авторизоваться. Кликает по ссылке ВОЙТИ, всплывает окошко, где он авторизуется через соц сети, и остается на той же странице, но уже авторизованный.

1342954484-clip-10kb

Как такое сделать? т.е. чтобы кнопки соц сетей, работали и в модальном окне, которое подгружается аяксом при клике. Куда копать..
Насколько я выявил экспериментально, почему-то не подхватывается js файл . Либо он просто не может добавлять ифрейм с кнопками в элементы DOM которые появляются динамически.

Модальное окно делаю c помощью ctools . Т.е. просто вывожу туда форму с id user_login . Так же пробовал через модуль ajax_register (который делает почти тоже самое) .
Во всех случаях, у меня появляется div c id="uLogin" .... но iframe не добавляется.

Помогите пожалуйста разобраться.

Аватар пользователя andreyy05 andreyy05 22 июля 2012 в 15:36

Да я уже пробовал и этот модуль тоже. Проблема аналогичная. Т.е. не выводятся кнопки соц сетей

1342956630-clip-5kb

Как будто бы Javascript необходимый не срабатывает...

Аватар пользователя FORTIS FORTIS 22 июля 2012 в 17:14

с таким сталкивался, скрипт улогина, начинается с таких строк:

if(typeof uLogin=="undefined"||!uLogin.uLogin)

а на момент показа модального окна эта самая переменная uLogin определена и скрипт не выполняется, можно насильно ее прибить подгрузив прежде свой js и выполнив в нем uLogin = undefined;
ну и проверить подгружается ли вообще ulogin.js при показе модального, если нет то можно самому подгрузить

Аватар пользователя duozersk duozersk 22 июля 2012 в 17:45
"andreyy05" wrote:

1. Зачем нужна настройка "добавить виджет uLogin на эти формы - форма комментариев" . Не пойму как ее активировать чтобы глянуть. Включаю, ничего не меняется.

Чтобы добавить виджет юлогина на форму комментариев для анонима. Чтобы увидеть, нужно разрешить оставлять комментарии анонимам - тогда на форме комментов для анонима он появится.

Для модального окна нужно делать спец приседания, примерно такие:

if (typeof uLogin == 'undefined') {
  $.getScript('http://ulogin.ru/js/ulogin.js', function(data, textStatus, jqxhr) {
    uLogin.initWidget('ulogin-cobi-extras');
  });
}
else {
  uLogin.initWidget('ulogin-cobi-extras');
}

Примерно так сделано на сайте http://www.computerbild.ru - при первом нажатии на слово "Авторизация" происходит запрос формы аяксом, при повторных нажатиях просто скрывается/показывается. Подробности тут - http://www.computerbild.ru/sites/all/modules/custom/cobi_extras/js/autho...

"FORTIS" wrote:

а на момент показа модального окна эта самая переменная uLogin определена и скрипт не выполняется, можно насильно ее прибить подгрузив прежде свой js и выполнив в нем uLogin = undefined;

Не факт, что определена... Лучше сделать так, как я выше написал.

Аватар пользователя andreyy05 andreyy05 2 августа 2012 в 20:24

duozersk, так в чем же все таки причина, что не хочет работать в модальном окне? это все же связано с переменной Ulogin ?
Извините пожалуйста, за наверное глупый вопрос. Я не очень силен в джаваскрипте. Вы советовали делать спецприседания, типо:

if (typeof uLogin == 'undefined') {
$.getScript('http://ulogin.ru/js/ulogin.js', function(data, textStatus, jqxhr) {
uLogin.initWidget('ulogin-cobi-extras');
});
}
else {
uLogin.initWidget('ulogin-cobi-extras');
}

но я не совсем понимаю как этим пользоваться. Т.е. куда это добавлять. Можете дать еще пару наставлений, т.е более обобщить картину... В общем для более умственно отсталых :)

Еще раз о проблеме: нужно чтобы иконки соц сетей добавлялись на форму во всплывающем окне, которое генерируется аяксом. И главная непонятка моя в том, что не понимаю, почему когда просто вывожу форму, все работает, а когда она выводится аяксом, то нет.

Надеюсь вы найдете время и поможете разобраться . Благодарю.

Аватар пользователя duozersk duozersk 2 августа 2012 в 20:37
"andreyy05" wrote:

так в чем же все таки причина, что не хочет работать в модальном окне?

В модальном окне :) Изначально, скрипт юлогина, если он добавлен на страницу (определена переменная uLogin), обрабатывает только те элементы DOMa, что уже есть на странице, и никак не трогает те, что появляются на странице динамически (например, модальные окна).

"andreyy05" wrote:

Вы советовали делать спецприседания

Да, эти спец приседания насильно заставляют юлогин обработать элемент с id="ulogin-cobi-extras". Вам надо заменить айди на айди вашего элемента с x-ulogin-params.
Куда это добавлять - в кастомный джаваскрипт, в кастомном модуле или в теме. Если и так непонятно - либо не используйте модальные окна, либо наймите специалиста, который вам поможет.

Аватар пользователя andreyy05 andreyy05 4 августа 2012 в 15:17

а можно ли как-то проверить, иницилиализирован ли уже виджет или нет? У меня в модальном окне при валидации, второй раз добавляются кнопки соц сетей...

Аватар пользователя andreyy05 andreyy05 5 августа 2012 в 19:20

обвернул в .once() и все ок.

Еще такой вопрос. Если виджет инициализируется на странице 2 раза. Можно ли чтобы в одном месте он был скажем большими кнопками, а в другом маленькими..

Аватар пользователя duozersk duozersk 7 августа 2012 в 8:39
"andreyy05" wrote:

а можно ли как-то проверить, иницилиализирован ли уже виджет или нет? У меня в модальном окне при валидации, второй раз добавляются кнопки соц сетей...

"andreyy05" wrote:

обвернул в .once() и все ок.

Либо так, либо более ручками через добавление класса к элементу и проверки его наличия. Возможно, сам объект uLogin содержит где-то список проинициализированных элементов, но я не копался.

"andreyy05" wrote:

Еще такой вопрос. Если виджет инициализируется на странице 2 раза. Можно ли чтобы в одном месте он был скажем большими кнопками, а в другом маленькими..

Можно. Для этого надо в форме, к которой добавлен виджет, задать ему доп параметры (по умолчанию они берутся из админки настройки виджета).
Смотри тут - http://drupalcode.org/project/ulogin.git/blob/refs/heads/7.x-1.x:/ulogin... и http://drupalcode.org/project/ulogin.git/blob/refs/heads/7.x-1.x:/ulogin...

Аватар пользователя FORTIS FORTIS 7 августа 2012 в 21:40

между тем в зародыше модуль http://drupal.org/project/hybridauth
одна библиотека реализует авторизацию, без сторонних сервисов, для

Twitter, Facebook, Google, Yahoo, Windows Live, MySpace, Foursquare, Gowalla, PayPal, LinkedIn, OpenID, Tumblr, Friendster, Vimeo, AOL, Flickr, and more.

Аватар пользователя seo2z seo2z 10 августа 2012 в 4:10

Здравствуйте.
Во-первых: большое спасибо за модуль!
Во-вторых: есть вопросы, точней проблемы. Не могли бы вы помочь? Drupal 6.
1. У меня стоит стандартная регистрация и регистрация через uLogin. Так вот, у профиля есть доп. поля (пол, страна и т.д.). При редактировании полей профиля юзером, который регился через обычную форму - всё редактируется и сохраняется. При редактировании юзером, зарегиным через uLogin - поля не сохраняются (хотя пишет "сохранено"). Этот вопрос может и скорей всего пересекается со вторым (а может и нет, я полу-нуб)...
2. Как привязать дополнительные поля, созданные ССК к полям (данным), полученным после регистрации через uLogin? Ну то есть поле "Страна" как связать со страной, получаемой uLogin? И, возвращаясь к 1 вопросу, как сделать, чтобы "страна" редактировалась пользователем?

P.S. Почитал тут, видимо нужно создать правила для заполнения полей после регистрации через uLogin? А как на счёт их редактирования? Можно будет? Получится, что данные, полученные после регистрации будут просто копироваться в мои дополнительные поля и не будут связаны по-сути?

Аватар пользователя UksusoFF UksusoFF 14 августа 2012 в 18:06

2duozersk
Что-то у меня перестал модуль авторизовывать :( Версия последняя, чяднт? vzradio.ru

Аватар пользователя TheJuneBug TheJuneBug 15 августа 2012 в 14:26

Граждане, подскажите, как осуществить перевод? Через админку что-то не нахожу нужных строк. Неужели в файлах править?
(перевод сообщений, которые выдаются пользователю)

Аватар пользователя TheJuneBug TheJuneBug 15 августа 2012 в 14:56

Отбой. Нашла. Оказывается, для перевода через админку нужно чтобы фразы на англ. языке хоть раз отобразились на сайте =) Неожиданное открытие для меня.

Аватар пользователя sandman81 sandman81 6 декабря 2012 в 16:14

Подскажите при входе через uLogin ничего не меняется, юзер не авторизовывается и как была ссылка Войти так и остается вот сайт http://coolkupon.com.ua Спасибо!

Аватар пользователя z-s z-s 9 декабря 2012 в 0:38
sandman81 wrote:

Подскажите при входе через uLogin ничего не меняется, юзер не авторизовывается и как была ссылка Войти так и остается вот сайт http://coolkupon.com.ua Спасибо!

Где у тебя там вход uLogin ?

Аватар пользователя sandman81 sandman81 9 декабря 2012 в 0:41
z-s wrote:
sandman81 wrote:

Подскажите при входе через uLogin ничего не меняется, юзер не авторизовывается и как была ссылка Войти так и остается вот сайт http://coolkupon.com.ua Спасибо!

Где у тебя там вход uLogin ?

Вход в uLogin в модуле Fancy Login

Аватар пользователя z-s z-s 9 декабря 2012 в 4:37

Я особо не вдавался в одробности устройства модуля по факту потребностей смотрел - http://ulogin.ru/custom_buttons.html
фиг его знает зачем там есть файлик xd_custom.html - который надо скачать.. но у тебя его нет =) может поможет.

Если нет - то значит фэнси переопределяет своим аяксом,

Аватар пользователя Sadchenko Sadchenko 10 декабря 2012 в 12:39

Привет всем. Большое спасибо за модуль.
Вопрос:
Можно ли изменить приложение авторизации на свое собственное созданное?
Я буду использовать лишь авторизацию Вконтакте и хочу создать свое приложение для авторизации на сайте.

Аватар пользователя Megajack Megajack 11 декабря 2012 в 2:23

Привет. Может кто-то ответить на вопросы seo2z? Полагаю, что ответ в Рулсах, но как на счет редактирования полей?

Аватар пользователя duozersk duozersk 18 декабря 2012 в 23:39
"seo2z" wrote:

Почитал тут, видимо нужно создать правила для заполнения полей после регистрации через uLogin? А как на счёт их редактирования? Можно будет? Получится, что данные, полученные после регистрации будут просто копироваться в мои дополнительные поля и не будут связаны по-сути?

Да, правила через Rules. Да, поля можно будет рездактировать - данные просто копируются в них по ивенту, который вы зададите в правиле модуля Rules, и никак не связаны.

"z-s" wrote:

Немного подробнее опиши пожалуйста насчет плюшек которые задают нужный сервис и порядок..

'#ulogin_providers' => 'vkontakte,odnoklassniki,mailru,facebook'
'#ulogin_hidden' => 'twitter,google,yandex,livejournal,openid'
#ulogin_providers - то те, что показаны сразу, #ulogin_hidden - те, что скрыты в выпадашке. Эти строчки можно задать и в админке, на закладке Advanced.

"Sadchenko" wrote:

Можно ли изменить приложение авторизации на свое собственное созданное?
Я буду использовать лишь авторизацию Вконтакте и хочу создать свое приложение для авторизации на сайте.

Да, можно. Для этого надо написать команде сервиса uLogin и попросить их об этом. team@ulogin.ru
Есть и другой вариант - использовать модуль HybridAuth 7.x-2.x - этот модуль работает напрямую с социалками, не используя сторонний сервис.

"Megajack" wrote:

Привет. Может кто-то ответить на вопросы seo2z? Полагаю, что ответ в Рулсах, но как на счет редактирования полей?

Редактировать поля можно как обычно, данные в них никак не привязыны к данным, получаемым от юлогина (в них просто вставляется информация, полученная от социалок, по правилам, настроенным в Rules).

Аватар пользователя wolf1986 wolf1986 10 января 2013 в 13:12

доброго времени суток.
Модуль отличный. Хочу спросить можно ли как то, при регистрации отбирать только определенный email.
Пример только ....@kompany.ua

Аватар пользователя FORTIS FORTIS 15 января 2013 в 0:07

кажется нет способа программно определить в 6ке, что текущая авторизация или регистрация - сделаны через улогин? я имею ввиду определить из hook_user, при op=login или op=insert

тогда было бы неплохо хотябы иметь возможность вклиниться в page callback /ulogin

Аватар пользователя duozersk duozersk 15 января 2013 в 22:08

В hook_user передаётся $account - ниже проверка на то, что этот аккаунт был создан юлогином:

global $ulogin_data;
if (!empty($ulogin_data) || !empty($account->ulogin)) {
  //do the stuff
}
Аватар пользователя z-s z-s 22 января 2013 в 10:13

Появилась потребность: в общем избавляться от спама на сайте. Все кто могут оставлять коменты/материалы - зареганы через соц сеть - и вот хотелось бы если в соц сетях их залочили - то узнавать об этом как-то и удалять все сообщения этих пользователей.

поддержка вконтакте ответила что такого интерфейса у них нет. И мол если чел залочен - то js получает что они залочены (но только если ввести правильный логин пароль - если неправильные пароль - то облом - данных о блокировке нет.. )

В общем думаю как.. а ведь прикольная фишка была бы борьбы со спамом централизовать =)

Кстати если в поддержку соц сетей будет много просьб про такой апи - будет кул думаю ;)

И теперь по теме - ммм.. может я чего не знаю и это в юлогине уже реализовано?

Аватар пользователя Sadchenko Sadchenko 10 ноября 2015 в 11:49

Кто нибудь знает почему блок ulogin не выводится в модальном окне авторизации colorbox. Обычная форма авторизации появляется а иконки ulogin который по идее должны быть чуть выше не появляются.

Аватар пользователя Mr_Ser_Win Mr_Ser_Win 5 апреля 2013 в 10:21

здравствуйте.
у меня такая проблема, блок юЛогин кешируется и через некоторое время не отображается. как это бороть? в настройках движка отключил кеширование блоков, не особо помогло

Аватар пользователя duozersk duozersk 18 апреля 2013 в 1:50
"igorek" wrote:

А если стоит jquery_update версия 1.8 - может из-за этого не работать?

Не знаю.

"Sadchenko" wrote:

Кто нибудь знает почему блок ulogin не выводится в модальном окне авторизации colorbox.

Потому что модальное окно - нужны спец приседания, чтобы в нем инициализировать виджет юлогина.

"Mr_Ser_Win" wrote:

у меня такая проблема, блок юЛогин кешируется и через некоторое время не отображается. как это бороть?

Запостить ишью в ишью кью - http://drupal.org/node/add/project-issue/ulogin - указав версию модуля, что за кэширование у вас настроено, как быстро перестает работать блок юлогина, ...

Аватар пользователя wolf1986 wolf1986 17 июня 2013 в 11:40

Доброго времени суток. Хочу еще раз задать вопрос как можно заблокировать регистрацию пользователей, у которых email не сответсвует шаблону xxxxx@company.com.
То есть в каком хуке ставить проверку?

Аватар пользователя wolf1986 wolf1986 17 июня 2013 в 11:52

Или подскажите как запретить модулю создавать несколько учетных записей для одного пользователя