function chosen_generate_forms in Chosen 7.3
Implementation of chosen_generate_forms().
Generates a completed configuration form out of the plugin options.
Parameters
$default_values: The default values which will be present in the form.
Return value
The completed form.
2 calls to chosen_generate_forms()
- chosen_admin_settings in ./
chosen.admin.inc - Returns with the general configuration form.
- chosen_field_widget_settings_form in ./
chosen.module - Implementation of chosen_field_widget_settings_form().
File
- ./
chosen.module, line 455 - General functions and hook implementations.
Code
function chosen_generate_forms($default_values) {
ctools_include('plugins');
foreach (ctools_get_plugins('chosen', 'library') as $plugin => $plugin_settings) {
$chosen_plugins[$plugin] = $plugin_settings['name'];
$chosen_descriptions[$plugin] = $plugin_settings['description'];
}
$form['chosen_plugin'] = array(
'#type' => 'select',
'#title' => t('Select library chosen should use'),
'#options' => $chosen_plugins,
'#default_value' => isset($default_values['chosen']['plugin']) ? $default_values['chosen']['plugin'] : 'chosen',
'#description' => $chosen_descriptions[variable_get('chosen_active_plugin', 'chosen')],
'#weight' => 20,
);
foreach (ctools_get_plugins('chosen', 'library') as $plugin_name => $plugin_settings) {
$plugin_class_name = ctools_plugin_load_class('chosen', 'library', $plugin_name, 'class');
$plugin = new $plugin_class_name();
$form[$plugin_name] = array(
'#type' => 'fieldset',
'#title' => t($plugin_settings['name'] . ' options'),
'#states' => array(
'visible' => array(
'select[name="chosen_plugin"]' => array(
'value' => $plugin_name,
),
'select[name="instance[widget][settings][chosen_wrapper][chosen_plugin]"]' => array(
'value' => $plugin_name,
),
),
),
);
$fields = _chosen_add_plugin_prefix($plugin
->options($default_values[$plugin_name]), $plugin_name);
foreach ($fields as $option => $values) {
// Iterate through $values, check if it has ?
$form[$plugin_name][$option] = $values;
$form[$plugin_name]['#weight'] = 21;
}
}
return $form;
}