You are here

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;
}