function lang_dropdown_hideout_form_block_admin_configure_alter in Language Switcher Dropdown 7.2
Implements hook_form_alter().
File
- lang_dropdown_hideout/
lang_dropdown_hideout.module, line 11 - LSD Hideout main module file.
Code
function lang_dropdown_hideout_form_block_admin_configure_alter(&$form, &$form_state, $form_id) {
if ($form['module']['#value'] == 'lang_dropdown' || $form['module']['#value'] == 'locale') {
$type = $form['delta']['#value'];
$languages = locale_language_list('native');
$settings = _lang_dropdown_hideout_get_settings($type);
$form['lang_dropdown']['hideout'] = array(
'#type' => 'fieldset',
'#title' => t('Hide language settings'),
'#description' => t('Select which languages you want to hide to specific roles.'),
'#weight' => 1,
'#tree' => TRUE,
'#parents' => array(
'lang_dropdown',
'hideout',
),
);
// Retrieve role names for columns.
$role_names = user_roles();
// Fetch language switcher dropdown hideout settings.
$hidden_languages = $settings['hidden_languages'];
// Store $role_names for use when saving the data.
$form['lang_dropdown']['hideout']['role_names'] = array(
'#type' => 'value',
'#value' => $role_names,
);
$form['lang_dropdown']['hideout']['languages'] = array(
'#theme' => 'lang_dropdown_hideout_hiddenlanguages',
);
foreach ($languages as $code => $name) {
$options[$code] = '';
$form['lang_dropdown']['hideout']['languages']['language'][$code] = array(
'#type' => 'item',
'#markup' => $name,
);
foreach ($role_names as $rid => $name) {
// Builds arrays for checked boxes for each role.
if (isset($hidden_languages[$rid][$code])) {
$status[$rid][] = $code;
}
}
}
// Have to build checkboxes here after checkbox arrays are built.
foreach ($role_names as $rid => $name) {
$form['lang_dropdown']['hideout']['languages']['checkboxes'][$rid] = array(
'#type' => 'checkboxes',
'#options' => $options,
'#default_value' => isset($status[$rid]) ? $status[$rid] : array(),
'#attributes' => array(
'class' => array(
'rid-' . $rid,
),
),
);
$form['lang_dropdown']['hideout']['languages']['role_names'][$rid] = array(
'#markup' => check_plain($name),
'#tree' => TRUE,
);
}
$form['#submit'][] = 'lang_dropdown_hideout_submit';
}
}