вставка Ulogin в произвольное место

Главные вкладки

Комментарии

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

"Пацаны ваще ребята" (с)

Чтобы вставить виджет юлогина в произвольное место, нужно сначала понять, что это за место. Модуль поддерживает вставку виджета только как элемента формы, созданной через Forms API Друпала.
Поэтому, если вам нужно вставить его в уже существующую форму, то нужно реализовать hook_form_alter() или hook_form_FORM_ID_alter(), что и делает модуль юлогина с 4мя стандартными формами друпала (при соответствующих настройках). В этих хуках нужно добавить элемент формы, используя '#type' => 'ulogin_widget'. (для примера - смотрите листинг кода тут, строки 130-152: http://drupalcode.org/project/ulogin.git/blob/refs/heads/7.x-1.x:/ulogin...).
Если же там, где вы его хотите увидеть, формы нет - нужно её создать, опять-таки добавив туда элемент с '#type' => 'ulogin_widget', пример также доступен в самом модуле юлогина: http://drupalcode.org/project/ulogin.git/blob/refs/heads/7.x-1.x:/ulogin... - смотрите функцию ulogin_user_identity(), строки 140-147 добавляют виджет юлогина.

Аватар пользователя drupby drupby 10 июня 2012 в 14:09

я бы еще упомянул тогда про
#ulogin_providers
#ulogin_hidden
а вот про
#ulogin_display ,#ulogin_optional ,#ulogin_destination ,#ulogin_redirect интересно , где узнать возможные значения ?

Аватар пользователя duozersk duozersk 10 июня 2012 в 15:44

drupby,

Простите мне моё любопытство, а оно вам надо? Хотя... может быть и надо Smile Ну а если надо - посмотрите форму настроек модуля: http://drupalcode.org/project/ulogin.git/blob/refs/heads/7.x-1.x:/ulogin...

Есть ещё один способ (и, наверняка, можно найти и ещё несколько) заставить виджет появиться на сайте, уже не в составе формы. Можно напрямую отрендерить только его и вывести на печать в шаблоне. Выглядеть это будет примерно так:

<?php
$element_info 
ulogin_element_info();
$element $element_info['ulogin_widget'];
$element['#type'] = 'ulogin_widget';
print 
render($element);
?>
Аватар пользователя drupby drupby 10 июня 2012 в 15:40

"duozersk" wrote:

drupby,
Простите мне моё любопытство, а оно вам надо?

Простите , но вопроса Вашего не понял ?
Да и негоже отвечать вопросом на вопрос ?
Если у вашего элемента формы есть какие то параметры дополнительные ,
то вполне резонное желание услышать про них поподробнее.
Ну к примеру destination и redirect вроде как понятно ,а
#ulogin_display ,#ulogin_optional можно и поподробнее.
Я просто перешел на /devel/elements и в ulogin_widget увидел параметры , о которых приходится только догадываться .
А к сожалению в Form API их нету(даже вот и не знаю почему Smile ,как и элемента ,что и естественно .

Аватар пользователя duozersk duozersk 10 июня 2012 в 16:14

drupby,

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

"drupby" wrote:
Простите , но вопроса Вашего не понял ?
...
Если у вашего элемента формы есть какие то параметры дополнительные ,
то вполне резонное желание услышать про них поподробнее.

Объясняю - вопрос подразумевал, что я хочу понять, зачем вам знать про допустимые значения этих параметров. "Зачем" в смысле как вы их собираетесь использовать... Человек же существо разумное, не все свои _желания_ наружу выпускающее (поясню - не бегущее в туалет по первому позыву, не бросающееся на симпотичных девушек на улице, и тд.). Применительно к нашей ситуации - если вы не разработчик, то вам лучше ничего не знать про эти магические штуки (ибо если вы узнаете, то потом жизни не дадите нормальным пацанам, будете флудить на форумах, что вот есть такие клевые штуки, заваливать новичков неквалифицированными советами, как случилось выше с drupal_render и drupal_get_form); если разработчик - то вы и сами сможете понять, что эти параметры значат и для чего нужны.
Ещё раз извините, если оскорбил вас своим интересом к вашим желаниям.

"drupby" wrote:
Да и негоже отвечать вопросом на вопрос ?

Ремарку про негожесть я бы не направлял в мою сторону. Негоже советовать людям, ищущим ответа, решения, которые и близко им не помогут. Если же вы думаете, что вежливые люди, как мы с вами, не должны позволять себе задавать друг другу встречные вопросы, то как же нам общаться?

"drupby" wrote:
Ну к примеру destination и redirect вроде как понятно

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

"drupby" wrote:
Я просто перешел на /devel/elements и в ulogin_widget увидел параметры , о которых приходится только догадываться .

Закройте и больше не переходите.

"drupby" wrote:
А к сожалению в Form API их нету(даже вот и не знаю почему Smile ,как и элемента ,что и естественно .

Сарказм засчитан Smile

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

Спасибо

Аватар пользователя xenax xenax 10 июня 2012 в 16:23

использовала
<?php
$element_info = ulogin_element_info();
$element = $element_info['ulogin_widget'];
$element['#type'] = 'ulogin_widget';
print render($element);
?>

большое спасибо drupby

Аватар пользователя drupby drupby 11 июня 2012 в 12:07

"duozersk" wrote:
Давайте закончим эту ни к чему не ведущую дискуссию.

Закончим ,когда напишите readme.txt (к модулю естественно).
Не сочтите за наглость.

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

"drupby" wrote:
Закончим ,когда напишите readme.txt (к модулю естественно).
Не сочтите за наглость.

Добро пожаловать в ишью кью модуля Wink И да, я принимаю патчи, хорошо написанные патчи.