hybridauth_bonus.module in HybridAuth Social Login 7.2
Main file for the HybridAuth Bonus module.
File
hybridauth_bonus/hybridauth_bonus.moduleView source
<?php
/**
* @file
* Main file for the HybridAuth Bonus module.
*/
/**
* Implements hook_form_FORM_ID_alter().
*/
function hybridauth_bonus_form_hybridauth_admin_settings_alter(&$form, &$form_state, $form_id) {
$roles = user_roles(TRUE);
unset($roles[DRUPAL_AUTHENTICATED_RID]);
if ($roles) {
$form['vtabs']['fset_bonus_roles'] = array(
'#type' => 'fieldset',
'#title' => t('HybridAuth Bonus') . ': ' . t('Roles'),
);
$form['vtabs']['fset_bonus_roles']['hybridauth_bonus_registration_role_choice'] = array(
'#type' => 'checkbox',
'#title' => t('Suggest role choice when registering'),
'#description' => t('Allow users to choose their roles when registering through HybridAuth.'),
'#default_value' => variable_get('hybridauth_bonus_registration_role_choice', 0),
);
$form['vtabs']['fset_bonus_roles']['hybridauth_bonus_registration_roles'] = array(
'#type' => 'checkboxes',
'#title' => t('Roles to choose from'),
'#description' => t('Select roles to suggest to new users when registering through HybridAuth.'),
'#options' => $roles,
'#default_value' => variable_get('hybridauth_bonus_registration_roles', array()),
'#states' => array(
'visible' => array(
':input[name="hybridauth_bonus_registration_role_choice"]' => array(
'checked' => TRUE,
),
),
),
);
$form['vtabs']['fset_bonus_roles']['hybridauth_bonus_registration_roles_required'] = array(
'#type' => 'checkbox',
'#title' => t('Make role selection required'),
'#description' => t('Force users to select a role when registering through HybridAuth.'),
'#default_value' => variable_get('hybridauth_bonus_registration_roles_required', 0),
'#states' => array(
'visible' => array(
':input[name="hybridauth_bonus_registration_role_choice"]' => array(
'checked' => TRUE,
),
),
),
);
$form['vtabs']['fset_bonus_roles']['hybridauth_bonus_registration_roles_multiple'] = array(
'#type' => 'checkbox',
'#title' => t('Allow several roles selection'),
'#description' => t('Allow users to select several roles when registering through HybridAuth.'),
'#default_value' => variable_get('hybridauth_bonus_registration_roles_multiple', 1),
'#states' => array(
'visible' => array(
':input[name="hybridauth_bonus_registration_role_choice"]' => array(
'checked' => TRUE,
),
),
),
);
}
$form['vtabs']['fset_bonus_forms'] = array(
'#type' => 'fieldset',
'#title' => t('HybridAuth Bonus') . ': ' . t('Forms'),
);
$form['vtabs']['fset_bonus_forms']['hybridauth_bonus_customize_widget_per_form'] = array(
'#type' => 'checkbox',
'#title' => t('Customize HybridAuth widget per form'),
'#default_value' => variable_get('hybridauth_bonus_customize_widget_per_form', 0),
);
foreach (hybridauth_forms_list() as $f_id => $f_name) {
$form['vtabs']['fset_bonus_forms'][$f_id] = array(
'#type' => 'fieldset',
'#title' => $f_name,
'#collapsible' => TRUE,
'#collapsed' => TRUE,
'#states' => array(
'visible' => array(
':input[name="hybridauth_bonus_customize_widget_per_form"]' => array(
'checked' => TRUE,
),
),
),
);
foreach (element_children($form['vtabs']['fset_widget']) as $key) {
$value = $form['vtabs']['fset_widget'][$key];
$new_key = str_replace('hybridauth_', 'hybridauth_bonus_', $key) . '_' . $f_id;
$form['vtabs']['fset_bonus_forms'][$f_id][$new_key] = $value;
$form['vtabs']['fset_bonus_forms'][$f_id][$new_key]['#default_value'] = variable_get($new_key, $value['#default_value']);
if ($key == 'hybridauth_widget_use_overlay' || $key == 'hybridauth_widget_link_title') {
$form['vtabs']['fset_bonus_forms'][$f_id][$new_key]['#states'] = array(
'invisible' => array(
':input[name="hybridauth_bonus_widget_type_' . $f_id . '"]' => array(
'value' => 'list',
),
),
);
}
if ($key == 'hybridauth_widget_link_text') {
$form['vtabs']['fset_bonus_forms'][$f_id][$new_key]['#states'] = array(
'visible' => array(
':input[name="hybridauth_bonus_widget_type_' . $f_id . '"]' => array(
'value' => 'link',
),
),
);
}
}
}
}
/**
* Implements hook_hybridauth_registration_form().
*/
function hybridauth_bonus_hybridauth_registration_form($data) {
if (empty($data['roles']) && variable_get('hybridauth_bonus_registration_role_choice', 0)) {
return TRUE;
}
return FALSE;
}
/**
* Implements hook_form_FORM_ID_alter().
*/
function hybridauth_bonus_form_hybridauth_additional_info_form_alter(&$form, &$form_state, $form_id) {
if (variable_get('hybridauth_bonus_registration_role_choice', 0)) {
$roles = array_intersect_key(user_roles(TRUE), array_filter(variable_get('hybridauth_bonus_registration_roles', array())));
$form['fset']['roles'] = array(
'#type' => variable_get('hybridauth_bonus_registration_roles_multiple', 1) ? 'checkboxes' : 'radios',
'#title' => t('Roles'),
'#options' => $roles,
'#required' => variable_get('hybridauth_bonus_registration_roles_required', 0),
);
// $form['#validate'][] = 'hybridauth_bonus_form_hybridauth_additional_info_form_validate';
array_unshift($form['#submit'], 'hybridauth_bonus_form_hybridauth_additional_info_form_submit');
}
}
/*function hybridauth_bonus_form_hybridauth_additional_info_form_validate($form, &$form_state) {
}*/
function hybridauth_bonus_form_hybridauth_additional_info_form_submit($form, &$form_state) {
if (isset($form_state['values']['roles'])) {
if (is_array($form_state['values']['roles'])) {
$form_state['values']['data']['roles'] = $form_state['values']['roles'];
}
else {
$form_state['values']['data']['roles'] = array(
$form_state['values']['roles'] => $form_state['values']['roles'],
);
}
if (!isset($form_state['values']['data']['manual']) || is_array($form_state['values']['data']['manual'])) {
$form_state['values']['data']['manual'][] = 'roles';
}
}
}
/**
* Implements hook_hybridauth_userinfo_alter().
*/
function hybridauth_bonus_hybridauth_userinfo_alter(&$userinfo, $data) {
if (array_key_exists('roles', $data)) {
$userinfo['roles'] = $data['roles'];
}
}
/**
* Implements hook_form_alter().
*/
function hybridauth_bonus_form_alter(&$form, &$form_state, $form_id) {
_hybridauth_bonus_form_alter($form, $form_state, $form_id);
}
/**
* Implements hook_form_FORM_ID_alter().
*/
function hybridauth_bonus_form_comment_form_alter(&$form, &$form_state, $form_id) {
_hybridauth_bonus_form_alter($form, $form_state, 'comment_form');
}
function _hybridauth_bonus_form_alter(&$form, &$form_state, $form_id) {
if (!variable_get('hybridauth_bonus_customize_widget_per_form', 0) || !array_key_exists($form_id, hybridauth_forms_list())) {
return;
}
if (isset($form['hybridauth'])) {
$form['hybridauth']['#title'] = variable_get('hybridauth_bonus_widget_title_' . $form_id, 'Or log in with...');
$form['hybridauth']['#hybridauth_widget_type'] = variable_get('hybridauth_bonus_widget_type_' . $form_id, 'list');
$form['hybridauth']['#hybridauth_widget_use_overlay'] = variable_get('hybridauth_bonus_widget_use_overlay_' . $form_id, 1);
$form['hybridauth']['#hybridauth_widget_link_text'] = variable_get('hybridauth_bonus_widget_link_text_' . $form_id, 'Social network account');
$form['hybridauth']['#hybridauth_widget_link_title'] = variable_get('hybridauth_bonus_widget_link_title_' . $form_id, 'Social network account');
$form['hybridauth']['#hybridauth_widget_icon_pack'] = variable_get('hybridauth_bonus_widget_icon_pack_' . $form_id, 'hybridauth_32');
$form['hybridauth']['#weight'] = variable_get('hybridauth_bonus_widget_weight_' . $form_id, 100);
}
}