function lang_dropdown_block_configure in Language Switcher Dropdown 7.2
Same name and namespace in other branches
- 7 lang_dropdown.module \lang_dropdown_block_configure()
Implements hook_block_configure().
File
- ./
lang_dropdown.module, line 92 - Language dropdown select module main file.
Code
function lang_dropdown_block_configure($delta = '') {
$settings = _lang_dropdown_get_settings($delta);
$form = array();
$form['lang_dropdown'] = array(
'#type' => 'fieldset',
'#title' => t('Language switcher dropdown settings'),
'#weight' => 0,
'#tree' => TRUE,
);
$form['lang_dropdown']['showall'] = array(
'#type' => 'checkbox',
'#title' => t('Show all enabled languages'),
'#description' => t('Show all languages in the switcher no matter if there is a translation for the node or not. For languages without translation the switcher will redirect to homepage.'),
'#default_value' => $settings['showall'],
);
$form['lang_dropdown']['tohome'] = array(
'#type' => 'checkbox',
'#title' => t('Redirect to home on switch'),
'#description' => t('When you change language the switcher will redirect to homepage.'),
'#default_value' => $settings['tohome'],
);
$form['lang_dropdown']['width'] = array(
'#type' => 'textfield',
'#title' => t('Width of dropdown element'),
'#size' => 8,
'#maxlength' => 3,
'#required' => TRUE,
'#field_suffix' => 'px',
'#default_value' => $settings['width'],
);
$form['lang_dropdown']['display'] = array(
'#type' => 'select',
'#title' => t('Display format'),
'#options' => array(
LANG_DROPDOWN_DISPLAY_TRANSLATED => t('Translated into Current Language'),
LANG_DROPDOWN_DISPLAY_NATIVE => t('Native Name'),
LANG_DROPDOWN_DISPLAY_LANGCODE => t('Language Code'),
),
'#default_value' => $settings['display'],
);
$form['lang_dropdown']['widget'] = array(
'#type' => 'select',
'#title' => t('Output type'),
'#options' => array(
LANG_DROPDOWN_SIMPLE_SELECT => t('Simple HTML select'),
LANG_DROPDOWN_MSDROPDOWN => t('Marghoob Suleman Dropdown jquery library'),
LANG_DROPDOWN_CHOSEN => t('Chosen jquery library'),
LANG_DROPDOWN_DDSLICK => t('ddSlick library'),
),
'#default_value' => $settings['widget'],
'#element_validate' => array(
'_lang_dropdown_validate_output_value',
),
);
$form['lang_dropdown']['msdropdown'] = array(
'#type' => 'fieldset',
'#title' => t('Marghoob Suleman Dropdown Settings'),
'#weight' => 1,
'#states' => array(
'visible' => array(
':input[name="lang_dropdown[widget]"]' => array(
'value' => LANG_DROPDOWN_MSDROPDOWN,
),
),
),
);
if (!module_exists('languageicons')) {
$form['lang_dropdown']['msdropdown']['#description'] = t('This looks better with !languageicons module.', array(
'!languageicons' => l(t('language icons'), LANG_DROPDOWN_LANGUAGEICONS_MOD_URL),
));
}
if (_lang_dropdown_get_msdropdown_path()) {
$num_rows = array(
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
);
$form['lang_dropdown']['msdropdown']['visible_rows'] = array(
'#type' => 'select',
'#title' => t('Maximum number of visible rows'),
'#options' => array_combine($num_rows, $num_rows),
'#default_value' => $settings['msdropdown']['visible_rows'],
);
$form['lang_dropdown']['msdropdown']['rounded'] = array(
'#type' => 'checkbox',
'#title' => t('Rounded corners.'),
'#default_value' => $settings['msdropdown']['rounded'],
);
$form['lang_dropdown']['msdropdown']['animation'] = array(
'#type' => 'select',
'#title' => t('Animation style for dropdown'),
'#options' => array(
'slideDown' => t('Slide down'),
'fadeIn' => t('Fade in'),
'show' => t('Show'),
),
'#default_value' => $settings['msdropdown']['animation'],
);
$form['lang_dropdown']['msdropdown']['event'] = array(
'#type' => 'select',
'#title' => t('Event that opens the menu'),
'#options' => array(
'click' => t('Click'),
'mouseover' => t('Mouse Over'),
),
'#default_value' => $settings['msdropdown']['event'],
);
$msdSkinOptions = array();
foreach (_lang_dropdown_get_msdropdown_skins() as $key => $value) {
$msdSkinOptions[$key] = $value['text'];
}
$form['lang_dropdown']['msdropdown']['skin'] = array(
'#type' => 'select',
'#title' => t('Skin'),
'#options' => $msdSkinOptions,
'#default_value' => $settings['msdropdown']['skin'],
);
$form['lang_dropdown']['msdropdown']['custom_skin'] = array(
'#type' => 'textfield',
'#title' => t('Custom skin name'),
'#size' => 80,
'#maxlength' => 55,
'#default_value' => $settings['msdropdown']['custom_skin'],
'#states' => array(
'visible' => array(
':input[name="lang_dropdown[msdropdown][skin]"]' => array(
'value' => 'custom',
),
),
),
);
}
else {
$form['lang_dropdown']['msdropdown']['#description'] = t('You need to download the !msdropdown and extract the entire contents of the archive into the %path directory on your server.', array(
'!msdropdown' => l(t('Marghoob Suleman Dropdown JavaScript library'), LANG_DROPDOWN_MSDROPDOWN_URL),
'%path' => 'sites/all/libraries',
));
}
$form['lang_dropdown']['languageicons'] = array(
'#type' => 'fieldset',
'#title' => t('Language icons settings'),
'#weight' => 1,
'#states' => array(
'visible' => array(
':input[name="lang_dropdown[widget]"]' => array(
'OR',
array(
'value' => LANG_DROPDOWN_SIMPLE_SELECT,
),
array(
'value' => LANG_DROPDOWN_CHOSEN,
),
array(
'value' => LANG_DROPDOWN_MSDROPDOWN,
),
),
),
),
);
$form['lang_dropdown']['languageicons']['enable_icons'] = array(
'#type' => 'checkbox',
'#title' => t('Enable language icons'),
'#default_value' => module_exists('languageicons') && !empty($settings['languageicons']['enable_icons']),
'#disabled' => !module_exists('languageicons'),
'#description' => !module_exists('languageicons') ? t('Enable !languageicons module to get opportunity show a flag of the selected language before or after the select box.', array(
'!languageicons' => l(t('language icons'), LANG_DROPDOWN_LANGUAGEICONS_MOD_URL),
)) : '',
);
if (module_exists('languageicons')) {
$form['lang_dropdown']['languageicons']['flag_position'] = array(
'#type' => 'select',
'#title' => t('Position of the flag when the dropdown is show just as a select'),
'#options' => array(
LANG_DROPDOWN_FLAG_POSITION_BEFORE => t('Before'),
LANG_DROPDOWN_FLAG_POSITION_AFTER => t('After'),
),
'#default_value' => $settings['languageicons']['flag_position'],
'#states' => array(
'visible' => array(
':input[name="lang_dropdown[languageicons][enable_icons]"]' => array(
'checked' => TRUE,
),
':input[name="lang_dropdown[widget]"]' => array(
'OR',
array(
'value' => LANG_DROPDOWN_SIMPLE_SELECT,
),
array(
'value' => LANG_DROPDOWN_CHOSEN,
),
),
),
),
);
}
$form['lang_dropdown']['chosen'] = array(
'#type' => 'fieldset',
'#title' => t('Chosen settings'),
'#weight' => 1,
'#states' => array(
'visible' => array(
':input[name="lang_dropdown[widget]"]' => array(
'value' => LANG_DROPDOWN_CHOSEN,
),
),
),
);
if (module_exists('chosen')) {
$form['lang_dropdown']['chosen']['#description'] = t('If you are already using the !chosenmod you must just choose to output language dropdown as a simple HTML select and allow !chosenmod to turn it into a chosen style select.', array(
'!chosenmod' => l(t('Chosen module'), LANG_DROPDOWN_CHOSEN_MOD_URL),
));
}
elseif (_lang_dropdown_get_chosen_path()) {
$form['lang_dropdown']['chosen']['disable_search'] = array(
'#type' => 'checkbox',
'#title' => t('Disable search box'),
'#default_value' => $settings['chosen']['disable_search'],
);
$form['lang_dropdown']['chosen']['no_results_text'] = array(
'#type' => 'textfield',
'#title' => t('No Result Text'),
'#description' => t('Text to show when no result is found on search.'),
'#default_value' => $settings['chosen']['no_results_text'],
'#states' => array(
'visible' => array(
':input[name="lang_dropdown[chosen][disable_search]"]' => array(
'checked' => FALSE,
),
),
),
);
}
else {
$form['lang_dropdown']['chosen']['#description'] = t('You need to download the !chosen and extract the entire contents of the archive into the %path directory on your server.', array(
'!chosen' => l(t('Chosen library'), LANG_DROPDOWN_CHOSEN_WEB_URL),
'%path' => 'sites/all/libraries',
));
}
$form['lang_dropdown']['ddslick'] = array(
'#type' => 'fieldset',
'#title' => t('ddSlick settings'),
'#weight' => 1,
'#states' => array(
'visible' => array(
':input[name="lang_dropdown[widget]"]' => array(
'value' => LANG_DROPDOWN_DDSLICK,
),
),
),
);
if (_lang_dropdown_get_ddslick_path()) {
$form['lang_dropdown']['ddslick']['ddslick_height'] = array(
'#type' => 'textfield',
'#title' => t('Height'),
'#description' => t('Height in px for the drop down options i.e. 300. The scroller will automatically be added if options overflows the height. Use 0 for full height.'),
'#default_value' => $settings['ddslick']['ddslick_height'],
'#size' => 8,
'#maxlength' => 3,
'#field_suffix' => 'px',
);
if (module_exists('languageicons')) {
$form['lang_dropdown']['ddslick']['showSelectedHTML'] = array(
'#type' => 'checkbox',
'#title' => t('Show Flag'),
'#default_value' => $settings['ddslick']['showSelectedHTML'],
);
$form['lang_dropdown']['ddslick']['imagePosition'] = array(
'#type' => 'select',
'#title' => t('Flag Position'),
'#options' => array(
LANG_DROPDOWN_DDSLICK_LEFT => t('left'),
LANG_DROPDOWN_DDSLICK_RIGHT => t('right'),
),
'#default_value' => $settings['ddslick']['imagePosition'],
'#states' => array(
'visible' => array(
':input[name="lang_dropdown[ddslick][showSelectedHTML]"]' => array(
'checked' => TRUE,
),
),
),
);
}
else {
$form['lang_dropdown']['ddslick']['#description'] = t('This looks better with !languageicons module.', array(
'!languageicons' => l(t('language icons'), LANG_DROPDOWN_LANGUAGEICONS_MOD_URL),
));
}
$ddsSkinOptions = array();
foreach (_lang_dropdown_get_ddslick_skins() as $key => $value) {
$ddsSkinOptions[$key] = $value['text'];
}
$form['lang_dropdown']['ddslick']['skin'] = array(
'#type' => 'select',
'#title' => t('Skin'),
'#options' => $ddsSkinOptions,
'#default_value' => $settings['ddslick']['skin'],
);
$form['lang_dropdown']['ddslick']['custom_skin'] = array(
'#type' => 'textfield',
'#title' => t('Custom skin name'),
'#size' => 80,
'#maxlength' => 55,
'#default_value' => $settings['ddslick']['custom_skin'],
'#states' => array(
'visible' => array(
':input[name="lang_dropdown[ddslick][skin]"]' => array(
'value' => 'custom',
),
),
),
);
}
else {
$form['lang_dropdown']['ddslick']['#description'] = t('You need to download the !ddslick and extract the entire contents of the archive into the %path directory on your server.', array(
'!ddslick' => l(t('ddSlick library'), LANG_DROPDOWN_DDSLICK_WEB_URL),
'%path' => 'sites/all/libraries/ddslick',
));
}
return $form;
}