Lately I have been busy with a project involving a lot of custom coding and programming (mainly because of existing complex web-design)
So at the finish line - there are still few things we must to finish - And one of them involves Facebook Login button to Drupal site.
See: Simple FB connect Drupal 8 Mapping custom fields from Facebook
There are plenty of modules offering such kind of behavior - but problem with those modules - not always they are updated to the latest Facebook API versions. Speaking of what - ahhh - Facebook sets the rules, when to update and how to update their API - leaving developers to be forced to upgrade for newer versions of their API.
So a while ago I compared 3 Drupal modules offering Facebook connect - in that article I found following:
Simple FB connect seems the easiest one to install and setup:
Sounds like a great module - i actually installed and used it - didn't like that couldn't find an easy way to implement Facebook connect button on Ajax Popup form, don't like the path for user linking - /user/simple-fb-connect
- Create a image and upload it to server
- Theme user-login.tpl.php and user-register-form.tpl.php
<?php function YOUR-THEME_theme() { $items = array(); $items['user-login'] = array( 'render element' => 'form', 'path' => drupal_get_path('theme', 'YOUR-THEME') . '/templates', 'template' => 'user_login', 'preprocess functions' => array( 'YOUR-THEME_preprocess_user_login' ), ); $items['user_register_form'] = array( 'render element' => 'form', 'path' => drupal_get_path('theme', 'YOUR-THEME') . '/templates', 'template' => 'user-register-form', 'preprocess functions' => array( 'YOUR-THEME_preprocess_user_register_form' ), ); $items['user_pass'] = array( 'render element' => 'form', 'path' => drupal_get_path('theme', 'YOUR-THEME') . '/templates', 'template' => 'user-pass', 'preprocess functions' => array( 'YOUR-THEME_preprocess_user_pass' ), ); return $items; } ?> <?php function YOUR-THEME_preprocess_user_login(&$vars) { $vars['intro_text'] = t('This is my awesome login form'); } function YOUR-THEME_preprocess_user_register_form(&$vars) { $vars['intro_text'] = t('This is my super awesome reg form'); } function YOUR-THEME_preprocess_user_pass(&$vars) { $vars['intro_text'] = t('This is my super awesome request new password form'); } ?>
Now, what this code does - it provides a custom tpl.php files where you can theme your login/register pages (works for popups as well).
Here are three functions - user-login, user-register-form and user-pass, so for each of them you must create a new files - user-login.tpl.php user-register-form.tpl.php and user-pass.tpl.php.
I'm actually interested just in two of them - login and register forms, so I'm not creating any user-pass.tpl.php page (for now)
Now the tricky part comes here - I found no problem to render user-login.tpl.php, but for some reason I haven't yet found to get this work on user-register-form.tpl.php
So for user-login.tpl.php add this code
<p><?php print $intro_text; ?></p> <div class="fb_user-login-button-wrapper"><a href="/user/simple-fb-connect"><img src="source-to-image-file"/></a></div> <div class="yourtheme-user-login-form-wrapper"> <?php print drupal_render_children($form) ?> </div>
Now it's just a matter of CSS to style your form! Enjoy!