function views_plugin_argument_default_field::options_form in Views Arguments Extras 7
Provide the default form for setting options.
Overrides views_plugin_argument_default::options_form
File
- ./
views_plugin_argument_default_field.inc, line 14
Class
Code
function options_form(&$form, &$form_state) {
$default_options = $this->argument->options;
$fields = field_info_fields();
$options = array();
$plugins = array();
$type_selector = array();
// find all types that are useed and which fields use them
$types = array();
foreach ($fields as $key => $field) {
$types[$field['type']][$key] = $key;
}
foreach ($plugins as $id => $plugin) {
if (array_intersect($plugin['types'], array_keys($types))) {
//build info for type select box
foreach ($plugin['types'] as $type_name) {
foreach ($types[$type_name] as $fid => $fname) {
$options[$plugin['title']]["{$id}::{$fid}"] = $fname;
}
}
}
}
module_load_include("inc", "views_arguments_extras", "views_arguments_extras.field_plugins");
$options = views_arguments_extras_get_plugin_options();
$form['field'] = array(
'#title' => 'Field',
'#type' => 'select',
'#options' => $options,
'#default_value' => $this->options['field'],
'#ajax' => array(
'callback' => 'views_plugin_argument_default_field_field_callback',
'wrapper' => 'field-settings-wrapper',
'method' => 'replace',
'effect' => 'fade',
),
);
$form['settings'] = array(
'#title' => "Settings",
'#type' => 'fieldset',
'#prefix' => '<div class="field-settings-wrapper">',
'#suffix' => '</div>',
);
$plugins = views_plugin_argument_default_field();
if ($this->options['field']) {
list($p_id, $field) = explode("::", $this->options['field']);
$plugin = $plugins[$p_id];
$form['settings']['#title'] = "Settings for {$plugin['name']}";
if ($form_fun = ctools_plugin_get_function($plugin, "form callback")) {
$plugin_form = $form_fun();
foreach ($plugin_form as $id => $form_element) {
$form['settings'][$id] = $form_element;
$form['settings'][$id]['#default_value'] = $this->options['settings'][$id];
}
}
}
}