function fancy_login_form_alter in Fancy Login 6.2
Same name and namespace in other branches
- 8.2 fancy_login.module \fancy_login_form_alter()
- 7.3 fancy_login.module \fancy_login_form_alter()
- 7.2 fancy_login.module \fancy_login_form_alter()
- 3.0.x fancy_login.module \fancy_login_form_alter()
Implementation of hook_form_alter()
File
- ./
fancy_login.module, line 114
Code
function fancy_login_form_alter(&$form, &$form_state, $form_id) {
global $base_url;
if ($form_id == 'fancy_login_user_login_block') {
// Invoke all instances of hook_form_user_login_block_alter()
foreach (module_implements('form_user_login_block_alter') as $module) {
$function = $module . '_form_user_login_block_alter';
$function($form, $form_state);
}
// Invoke all instances of hook_form_alter() with a $form_id
// of 'user_login_block'
$id = 'user_login_block';
foreach (module_implements('form_alter') as $module) {
$function = $module . '_form_alter';
$function($form, $form_state, $id);
}
// If the SSL icon is to be shown on the form, insert it into
// the form in the relevant location
$icon_position = variable_get('fancy_login_icon_position', 0);
if ($icon_position && strpos($base_url, 'https:') !== 0) {
$icon = theme('ssl_icon', array(
'base_url' => $base_url,
));
$form['ssl_logo'] = array(
'#value' => $icon,
);
if ($icon_position == 1) {
$form['ssl_logo']['#weight'] = -100;
$form['#attributes'] = array(
'class' => 'ssl_icon_above',
);
}
elseif ($icon_position == 2) {
$form['ssl_logo']['#weight'] = 100;
$form['#attributes'] = array(
'class' => 'ssl_icon_below',
);
}
}
// Store the current path and set it before all other validation so that
// any modules (such as Login Destination) that depend on the current
// path will respond properly
$form['current_path'] = array(
'#type' => 'value',
'#value' => drupal_get_path_alias($_GET['q']),
);
array_unshift($form['#validate'], 'fancy_login_insert_current_path');
// Add a wrapper for our #ahah callback
if (!isset($form['#prefix'])) {
$form['#prefix'] = '';
}
$form['#prefix'] = '<div id="fancy_login_user_login_block_wrapper">';
if (!isset($form['#suffix'])) {
$form['#suffix'] = '';
}
$form['#suffix'] = '</div>';
// If Fancy Login is set to use https, change the
// protocol of the form action if necessary.
if (variable_get('fancy_login_https', 0) && strpos($base_url, 'https:') !== 0) {
if (strpos($form['#action'], 'https') !== 0) {
if (strpos($form['#action'], 'http') === 0) {
$form['#action'] = preg_replace('/^http:/', 'https:', $form['#action']);
}
elseif (strpos($form['#action'], '//') === 0) {
$form['#action'] = 'https:' . $form['#action'];
}
else {
$form['#action'] = preg_replace('/^http:/', 'https:', $base_url) . $form['#action'];
}
}
}
else {
// Set the submit button of the forum to submit with #ahah
$form['submit']['#ahah'] = array(
'wrapper' => 'fancy_login_user_login_block_wrapper',
'path' => 'fancy_login/ahah/fancy_login_user_login_block_ahah_callback',
);
// The #ahah on submit buttons loaded using AJAX will not work with the current
// form key if that form has previously been loaded, as the system thinks
// that the #ahah has already been applied to the given submit button and therefore
// skips it. This next step ensures that the submit button has a unique key
// every time the button is loaded, so that the system does not think the #ahah
// is already applied.
$form['submit_' . time()] = $form['submit'];
$form['submit']['#access'] = FALSE;
}
}
elseif ($form_id == 'fancy_login_user_pass') {
module_load_include('inc', 'user', 'user.pages');
if (!isset($form['#validate'])) {
$form['#validate'][] = 'user_pass_validate';
}
if (!isset($form['#submit'])) {
$form['#submit'][] = 'user_pass_submit';
}
// Invoke all instances of hook_form_user_pass_alter()
foreach (module_implements('form_user_pass_alter') as $module) {
$function = $module . '_form_user_pass_alter';
$function($form, $form_state);
}
// Invoke all instances of hook_form_alter() with a $form_id
// of 'user_pass'
$id = 'user_pass';
foreach (module_implements('form_alter') as $module) {
$function = $module . '_form_alter';
$function($form, $form_state, $id);
}
// Add a wrapper for our #ahah callback
if (!isset($form['#prefix'])) {
$form['#prefix'] = '';
}
$form['#prefix'] = '<div id="fancy_login_user_pass_block_wrapper">';
if (!isset($form['#suffix'])) {
$form['#suffix'] = '';
}
$form['#suffix'] = '</div>';
// Store the current path and set it before all other validation so that
// any modules that depend on the current
// path will respond properly
$form['current_path'] = array(
'#type' => 'value',
'#value' => drupal_get_path_alias($_GET['q']),
);
array_unshift($form['#validate'], 'fancy_login_insert_current_path');
// Add links to be used in our Fancy Login block, allowing the states to be changed
// between login, register, and recover password
$items = array();
$items[] = l(t('Sign in'), 'user/login', array(
'attributes' => array(
'title' => t('Log in to !site_name.', array(
'!site_name' => variable_get('site_name', t('this site')),
)),
),
));
if (variable_get('user_register', 1)) {
$items[] = l(t('Create new account'), 'user/register', array(
'attributes' => array(
'title' => t('Create a new user account.'),
),
));
}
$form['links'] = array(
'#value' => theme('item_list', $items),
);
// If Fancy Login is set to use https, change the
// protocol of the form action if necessary.
if (variable_get('fancy_login_https', 0) && strpos($base_url, 'https:') !== 0) {
if (strpos($form['#action'], 'https') !== 0) {
if (strpos($form['#action'], 'http') === 0) {
$form['#action'] = preg_replace('/^http:/', 'https:', $form['#action']);
}
elseif (strpos($form['#action'], '//') === 0) {
$form['#action'] = 'https:' . $form['#action'];
}
else {
$form['#action'] = preg_replace('/^http:/', 'https:', $base_url) . $form['#action'];
}
}
}
else {
// Set the submit button of the forum to submit with #ahah
$form['submit']['#ahah'] = array(
'wrapper' => 'fancy_login_user_pass_block_wrapper',
'path' => 'fancy_login/ahah/fancy_login_user_pass_ahah_callback',
);
// The #ahah on submit buttons loaded using AJAX will not work with the current
// form key if that form has previously been loaded, as the system thinks
// that the #ahah has already been applied to the given submit button and therefore
// skips it. This next step ensures that the submit button has a unique key
// every time the button is loaded, so that the system does not think the #ahah
// is already applied.
$form['submit_' . time()] = $form['submit'];
$form['submit']['#access'] = FALSE;
}
}
elseif ($form_id == 'fancy_login_user_register') {
if (!isset($form['#validate'])) {
$form['#validate'][] = 'user_register_validate';
}
if (!isset($form['#submit'])) {
$form['#submit'][] = 'user_register_submit';
}
// Invoke all instances of hook_form_user_register_alter()
foreach (module_implements('form_user_register_alter') as $module) {
$function = $module . '_form_user_register_alter';
$function($form, $form_state);
}
// Invoke all instances of hook_form_alter() with a $form_id
// of 'user_register'
$id = 'user_register';
foreach (module_implements('form_alter') as $module) {
$function = $module . '_form_alter';
$function($form, $form_state, $id);
}
// Add a wrapper for our #ahah callback
if (!isset($form['#prefix'])) {
$form['#prefix'] = '';
}
$form['#prefix'] = '<div id="fancy_login_user_register_block_wrapper">';
if (!isset($form['#suffix'])) {
$form['#suffix'] = '';
}
$form['#suffix'] = '</div>';
// Store the current path and set it before all other validation so that
// any modules that depend on the current
// path will respond properly
$form['current_path'] = array(
'#type' => 'value',
'#value' => drupal_get_path_alias($_GET['q']),
);
array_unshift($form['#validate'], 'fancy_login_insert_current_path');
// Add links to be used in our Fancy Login block, allowing the states to be changed
// between login, register, and recover password
$items = array();
$items[] = l(t('Sign in'), 'user/login', array(
'attributes' => array(
'title' => t('Log in to !site_name.', array(
'!site_name' => variable_get('site_name', t('this site')),
)),
),
));
$items[] = l(t('Request new password'), 'user/password', array(
'attributes' => array(
'title' => t('Request new password via e-mail.'),
),
));
$form['links'] = array(
'#value' => theme('item_list', $items),
);
// If Fancy Login is set to use https, change the
// protocol of the form action if necessary.
if (variable_get('fancy_login_https', 0) && strpos($base_url, 'https:') !== 0) {
if (strpos($form['#action'], 'https') !== 0) {
if (strpos($form['#action'], 'http') === 0) {
$form['#action'] = preg_replace('/^http:/', 'https:', $form['#action']);
}
elseif (strpos($form['#action'], '//') === 0) {
$form['#action'] = 'https:' . $form['#action'];
}
else {
$form['#action'] = preg_replace('/^http:/', 'https:', $base_url) . $form['#action'];
}
}
}
else {
// Set the submit button of the forum to submit with #ahah
$form['submit']['#ahah'] = array(
'wrapper' => 'fancy_login_user_register_block_wrapper',
'path' => 'fancy_login/ahah/fancy_login_user_register_ahah_callback',
);
// The #ahah on submit buttons loaded using AJAX will not work with the current
// form key if that form has previously been loaded, as the system thinks
// that the #ahah has already been applied to the given submit button and therefore
// skips it. This next step ensures that the submit button has a unique key
// every time the button is loaded, so that the system does not think the #ahah
// is already applied.
$form['submit_' . time()] = $form['submit'];
$form['submit']['#access'] = FALSE;
}
}
}