class chado_views_handler_field
- 3.x tripal_chado/views_handlers/chado_views_handler_field.inc chado_views_handler_field
- 1.x tripal_views/views/handlers/chado_views_handler_field.inc chado_views_handler_field
@file A chado wrapper for the views_handler_field.
Handles fields which may be aggregated during the chado join process. This field will render an aggregated field as a pre_rendered list and will dynamically detect whether the field is aggregated or not.
Hierarchy
- class \views_object
- class \views_handler
- class \views_handler_field
- class \chado_views_handler_field
- class \views_handler_field
- class \views_handler
Expanded class hierarchy of chado_views_handler_field
3 string references to 'chado_views_handler_field'
- tripal_views_get_integration_array_for_chado_table in tripal_views/
api/ tripal_views.api.inc - Returns the array needed to integrate a given chado table with views
- tripal_views_integration_form in tripal_views/
includes/ tripal_views_integration.inc - Purpose: defines the web form used for specifing the base table, joins and handlers when integrating a table with views. This form is used for both creating a new record and editing an existing record.
- tripal_views_views_handlers in tripal_views/
tripal_views.views.inc - Implements hook_views_handlers()
File
- tripal_views/
views/ handlers/ chado_views_handler_field.inc, line 11 - A chado wrapper for the views_handler_field.
View source
class chado_views_handler_field extends views_handler_field {
function init(&$view, $options) {
include_once ('chado_wrapper_functions.inc');
parent::init($view, $options);
}
/**
* Defines the defaults for the options form
*/
function option_definition() {
$options = parent::option_definition();
$options['type'] = array('default' => 'separator');
$options['separator'] = array('default' => ', ');
return $options;
}
/**
* Defines the options form (form available to admin when they add a field to a view)
*/
function options_form(&$form, &$form_state) {
parent::options_form($form, $form_state);
// Add a link to node checkbox
// but only if this base table is linked to a node and this field is from the base_table
if (tripal_core_is_tripal_node_type($this->table) && $this->table == $this->view->base_table) {
// If there is a Node: NID field then show a link to node checkbox
if (isset($this->view->display['default']->display_options['fields']['nid'])) {
$form['link_to_node'] = array(
'#type' => 'checkbox',
'#title' => t('Link to Node'),
'#description' => t('If a given row is associated with a drupal node then '
. 'this field will appear as a link, linking the user to that node. Otherwise,'
. ' no link will be displayed.'),
'#default_value' => $this->options['link_to_node'],
);
}
// Otherwise inform the user that they need to add a Node:Nid field
// to get this functionality
else {
$form['link_to_node'] = array(
'#type' => 'item',
'#value' => "This field has the ability to link to it's corresponding node. "
. "However, you first need to add the NID field associated with the node. "
. "Simple set the NID field to hidden when adding it to ensure it's not "
. "shown in the resulting view."
);
}
}
$form['type'] = array(
'#type' => 'radios',
'#title' => t('Display type'),
'#options' => array(
'ul' => t('Unordered list'),
'ol' => t('Ordered list'),
'separator' => t('Simple separator'),
),
'#default_value' => $this->options['type'],
);
$form['separator'] = array(
'#type' => 'textfield',
'#title' => t('Separator'),
'#default_value' => $this->options['separator'],
'#process' => array('views_process_dependency'),
'#dependency' => array('radio:options[type]' => array('separator')),
);
}
/**
* Determines whether the current field is aggregated or not
* Note: The parent::query() takes care of adding the field to the query, etc.
*/
function query() {
parent::query();
$this->aggregated = chado_wrapper_is_aggregated_by_join($this);
}
/**
* Splits the aggregated values up for use in rendering
*/
function pre_render($values) {
// further check the results to see if this field is a postgresql array
$this->aggregated = chado_wrapper_is_aggregated_by_result($this, $values);
// Split Aggregated Results
chado_wrapper_split_array_agg_results($this, $values);
}
/**
* Render the field.
*
* Note: Checks to see if we have an array or simple field. If we have an array, then
* split it up and render each part using the parent render functionality.
*
* @param $values
* The values retrieved from the database.
*/
function render($values) {
if ($this->options['link_to_node']) {
$link_text = chado_wrapper_render_items($this, $values);
return $this->render_node_link($link_text, $values);
}
else {
return chado_wrapper_render_items($this, $values);
}
}
/**
* Will render the supplied text as a link to the node
*
* @param $link_text
* The text to render as a link (ie; the text that would normally become underlined
*
* @return
* A rendered link to the node based on the nid field
*/
function render_node_link($link_text, $values) {
$node_field = $this->view->field['nid'];
if (isset($node_field->aliases['nid'])) {
$nid = $values->{$node_field->aliases['nid']};
}
if ($nid) {
return l($link_text, 'node/' . $nid);
}
else {
return $link_text;
}
}
function parent_render($val) {
return parent::render($val);
}
}
Members
Name | Modifiers | Type | Description |
---|---|---|---|
chado_views_handler_field:: |
function |
init the handler with necessary data. Overrides views_handler_field:: |
|
chado_views_handler_field:: |
function |
Defines the options form (form available to admin when they add a field to a view) Overrides views_handler_field:: |
|
chado_views_handler_field:: |
function |
Defines the defaults for the options form Overrides views_handler_field:: |
|
chado_views_handler_field:: |
function | ||
chado_views_handler_field:: |
function |
Splits the aggregated values up for use in rendering Overrides views_handler_field:: |
|
chado_views_handler_field:: |
function |
Determines whether the current field is aggregated or not
Note: The parent::query() takes care of adding the field to the query, etc. Overrides views_handler_field:: |
|
chado_views_handler_field:: |
function |
Render the field. Overrides views_handler_field:: |
|
chado_views_handler_field:: |
function | Will render the supplied text as a link to the node | |
views_handler:: |
function | Take input from exposed filters and assign to this handler, if necessary. | |
views_handler:: |
function | Check whether current user has access to this handler. | |
views_handler:: |
function | Determine if the handler is considered 'broken', meaning it's a a placeholder used when a handler can't be found. | |
views_handler:: |
function | Determine if a handler can be exposed. | |
views_handler:: |
function | Ensure the main table for this handler is in the query. This is used a lot. | |
views_handler:: |
function | Render our chunk of the exposed filter form when selecting | |
views_handler:: |
function | Get information about the exposed form for the form renderer. | |
views_handler:: |
function | Submit the exposed filter form | |
views_handler:: |
function | Validate the exposed filter form | |
views_handler:: |
function | Set new exposed option defaults when exposed setting is flipped on. | |
views_handler:: |
function | Provide defaults for the handler. | |
views_handler:: |
function | Provide a form for setting options. | |
views_handler:: |
function | Perform any necessary changes to the form values prior to storage. There is no need for this function to actually store the data. | |
views_handler:: |
function | Validate the options form. | |
views_handler:: |
function | Get the join object that should be used for this handler. | |
views_handler:: |
function | If a handler has 'extra options' it will get a little settings widget and another form called extra_options. | |
views_handler:: |
function | Determine if this item is 'exposed', meaning it provides form elements to let users modify the view. | |
views_handler:: |
function | Determine if the argument needs a style plugin. | |
views_handler:: |
function | Perform any necessary changes to the form values prior to storage. There is no need for this function to actually store the data. | |
views_handler:: |
function | Validate the options form. | |
views_handler:: |
function | Run before the view is built. | |
views_handler:: |
function | Called just prior to query(), this lets a handler set up any relationship it needs. | |
views_handler:: |
function | If set to remember exposed input in the session, store it there. | |
views_handler:: |
function | Return a string representing this handler's name in the UI. | |
views_handler:: |
function | Validates the handler against the complete View. | |
views_handler_field:: |
function | Add 'additional' fields to the query. | |
views_handler_field:: |
function | Add any special tokens this field might use for itself. | |
views_handler_field:: |
function |
Provide extra data to the administration form Overrides views_handler:: |
|
views_handler_field:: |
function | Render a field using advanced settings. | |
views_handler_field:: |
function | Determine if this field can allow advanced rendering. | |
views_handler_field:: |
function | Called to determine what to tell the clicksorter. | |
views_handler_field:: |
function | Determine if this field is click sortable. | |
views_handler_field:: |
function |
Construct a new field handler. Overrides views_object:: |
|
views_handler_field:: |
function | Document any special tokens this field might use for itself. | |
views_handler_field:: |
function | Return DIV or SPAN based upon the field's element type. | |
views_handler_field:: |
function | Get the 'render' tokens to use for advanced rendering. | |
views_handler_field:: |
function | Get this field's label. | |
views_handler_field:: |
function | Render this field as altered text, from a fieldset set by the user. | |
views_handler_field:: |
function | Render this field as a link, with the info from a fieldset set by the user. | |
views_handler_field:: |
function | Perform an advanced text render for the item. | |
views_handler_field:: |
function | Trim the field down to the specified length. | |
views_handler_field:: |
function | Call out to the theme() function, which probably just calls render() but allows sites to override output fairly easily. | |
views_handler_field:: |
function | ||
views_object:: |
function | ||
views_object:: |
function | Set default options on this object. Called by the constructor in a complex chain to deal with backward compatibility. | |
views_object:: |
function | Set default options. For backward compatibility, it sends the options array; this is a feature that will likely disappear at some point. | |
views_object:: |
function | Let the handler know what its full definition is. | |
views_object:: |
function | Unpack options over our existing defaults, drilling down into arrays so that defaults don't get totally blown away. | |
views_object:: |
function |