class views_plugin_argument_validate_field_extractor in Views Arguments Extras 7
Provide PHP code to validate whether or not an argument is ok.
Hierarchy
- class \views_object
Expanded class hierarchy of views_plugin_argument_validate_field_extractor
1 string reference to 'views_plugin_argument_validate_field_extractor'
File
- ./
views_arguments_extras_plugin_argument_validate_field.inc, line 12 - Contains the php code argument validator plugin.
View source
class views_plugin_argument_validate_field_extractor extends views_plugin_argument_validate {
function option_definition() {
$options = parent::option_definition();
$options['entity_type'] = array(
'default' => '',
);
$options['field'] = array(
'default' => '',
);
$options['settings'] = array(
'default' => array(),
);
return $options;
}
function options_form(&$form, &$form_state) {
$entity_infos = entity_get_info();
foreach ($entity_infos as $key => $info) {
$entity_options[$key] = $info['label'];
}
$form['entity_type'] = array(
'#title' => 'Entity Type',
'#type' => 'select',
'#options' => $entity_options,
'#default_value' => $this->options['entity_type'],
);
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_validator_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>',
);
if ($this->options['field']) {
$plugins = views_plugin_argument_default_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];
}
}
}
}
/**
* We are going to take the current argument, find the enitity object to which it relates
* and then change the argument to reflect a value from one if its fields
*/
function validate_argument(&$argument) {
// set up variables to make it easier to reference during the argument.
// TODO parse arguement on , and allow for multiple values
$view =& $this->view;
$handler =& $this->argument;
$id = $handler->argument;
if ($this->options['field']) {
global $language;
list($plugin_id, $field_name) = explode("::", $this->options['field']);
if ($this->options['entity_type'] == 'entity_boxes' && !is_numeric($id)) {
$entity = array_pop(entity_boxes_load_delta($id));
}
else {
$entity = array_pop(entity_load($this->options['entity_type'], array(
$id,
)));
}
$lang = isset($entity->{$field_name}[$language->language]) ? $language->language : LANGUAGE_NONE;
$field = isset($entity->{$field_name}[$lang]) ? $entity->{$field_name}[$lang] : array();
module_load_include("inc", "views_arguments_extras", "views_arguments_extras.field_plugins");
module_load_include("inc", "views_arguments_extras", "views_plugin_argument_default_field");
$plugin = views_plugin_argument_default_field($plugin_id);
if ($arg_fun = ctools_plugin_get_function($plugin, "argument callback")) {
$return = $arg_fun($field, $this->options['settings'], $entity, $this);
$handler->argument = $return;
return TRUE;
}
}
return FALSE;
}
}
Members
Name![]() |
Modifiers | Type | Description | Overrides |
---|---|---|---|---|
views_object:: |
public | property | Handler's definition. | |
views_object:: |
public | property | Except for displays, options for the object will be held here. | 1 |
views_object:: |
function | Collect this handler's option definition and alter them, ready for use. | ||
views_object:: |
public | function | Views handlers use a special construct function. | 4 |
views_object:: |
public | function | Destructor. | 2 |
views_object:: |
public | function | 1 | |
views_object:: |
public | function | ||
views_object:: |
public | function | Always exports the option, regardless of the default value. | |
views_object:: |
public | function | Set default options on this object. | 1 |
views_object:: |
public | function | Set default options. | |
views_object:: |
public | function | Let the handler know what its full definition is. | |
views_object:: |
public | function | Unpack options over our existing defaults, drilling down into arrays so that defaults don't get totally blown away. | |
views_object:: |
public | function | Unpack a single option definition. | |
views_object:: |
public | function | Unpacks each handler to store translatable texts. | |
views_object:: |
public | function | ||
views_plugin:: |
public | property | The current used views display. | |
views_plugin:: |
public | property | The plugin name of this plugin, for example table or full. | |
views_plugin:: |
public | property | The plugin type of this plugin, for example style or query. | |
views_plugin:: |
public | property |
The top object of a view. Overrides views_object:: |
1 |
views_plugin:: |
public | function | Provide a list of additional theme functions for the theme info page. | |
views_plugin:: |
public | function | Return the human readable name of the display. | |
views_plugin:: |
public | function | Add anything to the query that we might need to. | 7 |
views_plugin:: |
public | function | Returns the summary of the settings in the display. | 8 |
views_plugin:: |
public | function | Provide a full list of possible theme templates used by this style. | |
views_plugin:: |
public | function | Validate that the plugin is correct and can be saved. | 3 |
views_plugin_argument_validate:: |
public | function | Determine if the administrator has the privileges to use this plugin. | 1 |
views_plugin_argument_validate:: |
public | function | If we don't have access to the form but are showing it anyway, ensure that the form is safe and cannot be changed from user input. | |
views_plugin_argument_validate:: |
public | function | Convert options from the older style. | 4 |
views_plugin_argument_validate:: |
public | function | Initialize this plugin with the view and the argument it is linked to. | 1 |
views_plugin_argument_validate:: |
public | function |
Provide the default form form for submitting options Overrides views_plugin:: |
3 |
views_plugin_argument_validate:: |
public | function |
Provide the default form form for validating options. Overrides views_plugin:: |
|
views_plugin_argument_validate:: |
public | function | Process the summary arguments for displaying. | 2 |
views_plugin_argument_validate_field_extractor:: |
function |
Provide the default form for setting options. Overrides views_plugin_argument_validate:: |
||
views_plugin_argument_validate_field_extractor:: |
function |
Retrieve the options when this is a new access control plugin. Overrides views_plugin_argument_validate:: |
||
views_plugin_argument_validate_field_extractor:: |
function |
We are going to take the current argument, find the enitity object to which it relates
and then change the argument to reflect a value from one if its fields Overrides views_plugin_argument_validate:: |