class gmap_plugin_style_gmap in GMap Module 7
Same name and namespace in other branches
- 6.2 gmap_plugin_style_gmap.inc \gmap_plugin_style_gmap
- 6 gmap_plugin_style_gmap.inc \gmap_plugin_style_gmap
- 7.2 gmap_plugin_style_gmap.inc \gmap_plugin_style_gmap
Style plugin to render a map.
Hierarchy
- class \views_object
- class \views_plugin
- class \views_plugin_style
- class \gmap_plugin_style_gmap
- class \views_plugin_style
- class \views_plugin
Expanded class hierarchy of gmap_plugin_style_gmap
1 string reference to 'gmap_plugin_style_gmap'
- gmap_views_plugins in ./
gmap.module - Implementation of hook_views_plugins().
File
- ./
gmap_plugin_style_gmap.inc, line 13 - GMap style plugin.
View source
class gmap_plugin_style_gmap extends views_plugin_style {
/**
* Set default options
*/
function option_definition() {
$options = parent::option_definition();
$options['macro'] = array(
'default' => '[gmap ]',
);
$options['datasource'] = array(
'default' => 'location',
);
$options['markers'] = array(
'default' => 'static',
);
$options['markertype'] = array(
'default' => 'drupal',
);
$options['latfield'] = array(
'default' => '',
);
$options['lonfield'] = array(
'default' => '',
);
$options['markerfield'] = array(
'default' => '',
);
$options['enablermt'] = array(
'default' => FALSE,
);
$options['rmtfield'] = array(
'default' => '',
);
$options['rmtcallback'] = array(
'default' => '',
);
$options['center_on_nodearg'] = array(
'default' => 0,
);
$options['center_on_nodearg_arg'] = array(
'default' => '',
);
$options['center_on_proximityarg'] = array(
'default' => 0,
);
$options['highlight_nodearg'] = array(
'default' => 0,
);
$options['highlight_nodearg_arg'] = array(
'default' => '',
);
$options['highlight_nodearg_color'] = array(
'default' => '#FF0000',
);
$options['autoclick_on_nodearg'] = array(
'default' => 0,
);
$options['autoclick_on_nodearg_arg'] = array(
'default' => '',
);
$options['tooltipenabled'] = array(
'default' => 0,
);
$options['tooltipfield'] = array(
'default' => '',
);
$options['bubbletextenabled'] = array(
'default' => 0,
);
$options['bubbletextfield'] = array(
'default' => '',
);
return $options;
}
function query() {
parent::query();
if ($this->options['datasource'] == 'location') {
$table = $this->view->query
->ensure_table('location');
$this->view->query
->add_field($table, 'latitude', 'gmap_lat');
$this->view->query
->add_field($table, 'longitude', 'gmap_lon');
}
if ($this->options['markers'] == 'nodetype') {
$this->view->query
->add_field('node', 'type', 'gmap_node_type');
}
elseif ($this->options['markers'] == 'taxonomy') {
$this->view->query
->add_field('gmap_taxonomy_node', 'marker', 'gmap_node_marker');
}
elseif ($this->options['markers'] == 'userrole') {
$this->view->query
->add_field('users_roles', 'rid', 'gmap_role_marker');
}
if (isset($this->row_plugin)) {
$this->row_plugin
->query();
}
}
/**
* Render the display in this style.
*/
function render() {
if (isset($this->view->live_preview) && $this->view->live_preview) {
return t('GMap views are not compatible with live preview.');
}
if (empty($this->row_plugin)) {
vpr('gmap_plugin_style_gmap: Missing row plugin');
return;
}
$defaults = gmap_defaults();
if ($this->options['datasource'] == 'location') {
$lat_field = 'gmap_lat';
$lon_field = 'gmap_lon';
}
else {
if ($this->options['datasource'] == 'geofield') {
$lat_field = 'lat';
$lon_field = 'lon';
}
else {
if ($this->options['datasource'] == 'fields') {
$lat_field_obj = $this->view->display_handler
->get_handler('field', $this->options['latfield']);
$lon_field_obj = $this->view->display_handler
->get_handler('field', $this->options['lonfield']);
$lat_field = $lat_field_obj->field_alias;
$lon_field = $lon_field_obj->field_alias;
}
}
}
// Determine fieldname for marker field.
if ($this->options['markers'] == 'field') {
$marker_field_obj = $this->view->display_handler
->get_handler('field', $this->options['markerfield']);
$marker_field = 'field_' . $marker_field_obj->field;
}
// Determine rmt field.
if ($this->options['enablermt']) {
$rmt_field_obj = $this->view->display_handler
->get_handler('field', $this->options['rmtfield']);
$rmt_field = $rmt_field_obj->field_alias;
}
$markername = isset($this->options['markertype']) ? $this->options['markertype'] : 'drupal';
$markertypes = variable_get('gmap_node_markers', array());
if ($this->options['markers'] == 'nodetype') {
$markertypes = variable_get('gmap_node_markers', array());
}
elseif ($this->options['markers'] == 'userrole') {
$markertypes = variable_get('gmap_role_markers', array(
DRUPAL_AUTHENTICATED_RID => 'drupal',
));
}
// Group the rows according to the grouping field, if specified.
$sets = $this
->render_grouping($this->view->result, $this->options['grouping']);
// Let's make sure the individual fields are rendered
$this
->render_fields($this->view->result);
// Render each group separately and concatenate. Plugins may override this
// method if they wish some other way of handling grouping.
$output = '';
foreach ($sets as $title => $records) {
$markers = array();
$offsets = array();
$center_lat = NULL;
$center_lon = NULL;
$center_nid = NULL;
$highlight_nid = NULL;
$autoclick_nid = NULL;
// We search nid argument used to center map, autoclick or highlight.
if ($this->options['center_on_nodearg'] && ($nodehandler = $this->view->display_handler
->get_handler('argument', $this->options['center_on_nodearg_arg']))) {
$center_nid = $nodehandler
->get_value();
}
// Use the distance contextual filter argument to center the map
if ($this->options['center_on_proximityarg'] && $this->options['datasource'] == 'location' && module_exists('location')) {
// Just grab this straight from the view
$distance_contextual_filter = $this->view->display_handler
->get_handler('argument', 'distance');
$center_lat = $distance_contextual_filter->value['latitude'];
$center_lon = $distance_contextual_filter->value['longitude'];
}
if ($this->options['highlight_nodearg'] && ($nodehandler = $this->view->display_handler
->get_handler('argument', $this->options['highlight_nodearg_arg']))) {
$highlight_nid = $nodehandler
->get_value();
}
if ($this->options['autoclick_on_nodearg'] && ($nodehandler = $this->view->display_handler
->get_handler('argument', $this->options['autoclick_on_nodearg_arg']))) {
$autoclick_nid = $nodehandler
->get_value();
}
foreach ($records as $row_index => $row) {
$this->view->row_index = $row_index;
if ($this->options['datasource'] == 'location') {
$lat = (double) $row->{$lat_field};
$lon = (double) $row->{$lon_field};
}
else {
if ($this->options['datasource'] == 'geofield') {
$geofield_name = 'field_' . $this->options['geofield'];
$geofield = isset($row->{$geofield_name}[0]['raw']) ? $row->{$geofield_name}[0]['raw'] : NULL;
if ($geofield) {
$lat = (double) $geofield[$lat_field];
$lon = (double) $geofield[$lon_field];
}
}
else {
if ($this->options['datasource'] == 'fields') {
$custom_field_latname = 'field_' . $lat_field;
$custom_field_lonname = 'field_' . $lon_field;
$custom_field_lat = isset($row->{$custom_field_latname}[0]['raw']) ? $row->{$custom_field_latname}[0]['raw'] : NULL;
$custom_field_lon = isset($row->{$custom_field_lonname}[0]['raw']) ? $row->{$custom_field_lonname}[0]['raw'] : NULL;
if ($custom_field_lat && $custom_field_lon) {
$lat = (double) $row->{$lat_field};
$lon = (double) $row->{$lon_field};
}
}
}
}
// $row->nid is present in node views, views without node as the base table must include the nid field,
// which will be in $row->node_nid if present.
// If nid for a row is required use $row_nid.
$row_nid = isset($row->nid) ? $row->nid : (isset($row->node_nid) ? $row->node_nid : NULL);
// If this row will be used as center map then we keep its lon/lat
// If there are multiple points on a single node take the first match
if (!empty($center_nid) && !empty($row_nid) && $center_nid == $row_nid && ($center_lon === NULL || $center_lat === NULL)) {
$center_lon = $lon;
$center_lat = $lat;
}
if (!empty($lat) && !empty($lon)) {
if ($this->options['markers'] == 'nodetype') {
if (isset($markertypes[$row->gmap_node_type])) {
$markername = $markertypes[$row->gmap_node_type];
}
}
elseif ($this->options['markers'] == 'taxonomy') {
if (!empty($row->gmap_node_marker)) {
$markername = $row->gmap_node_marker;
}
}
elseif ($this->options['markers'] == 'userrole') {
if (!empty($row->gmap_role_marker)) {
$markername = $markertypes[DRUPAL_AUTHENTICATED_RID];
if (isset($markertypes[$row->gmap_role_marker])) {
$markername = $markertypes[$row->gmap_role_marker];
}
}
}
elseif ($this->options['markers'] == 'field') {
if (!empty($row->{$marker_field})) {
$markername = $row->{$marker_field}[0]['raw']['value'];
}
}
if (!isset($offsets[$markername])) {
$offsets[$markername] = 0;
}
$tooltip = '';
if ($this->options['tooltipenabled'] && !empty($this->rendered_fields[$row_index][$this->options['tooltipfield']])) {
$tooltip = $this->rendered_fields[$row_index][$this->options['tooltipfield']];
}
$bubbletext = NULL;
if ($this->options['bubbletextenabled'] && !empty($bubbletext_field_alias) && !empty($row->{$bubbletext_field_alias})) {
$bubbletext = $this->rendered_fields[$row_index][$this->options['bubbletextfield']];
}
elseif ($this->options['bubbletextenabled'] && $bubbletext_field_obj->real_field == 'nothing') {
$bubbletext = $this->rendered_fields[$row_index][$this->options['bubbletextfield']];
}
$marker = array(
'latitude' => $lat,
'longitude' => $lon,
'markername' => $markername,
'offset' => $offsets[$markername],
'text' => $bubbletext,
'autoclick' => !empty($autoclick_nid) && !empty($row_nid) && $autoclick_nid == $row_nid ? 1 : 0,
'opts' => array(
'title' => $tooltip,
'highlight' => !empty($highlight_nid) && !empty($row_nid) && $highlight_nid == $row_nid ? 1 : 0,
'highlightcolor' => $this->options['highlight_nodearg_color'],
),
);
// RMT mode.
if ($this->options['enablermt']) {
$marker['rmt'] = $row->{$rmt_field};
}
elseif (!empty($defaults['markermode'])) {
// Marker mode: popup.
if ($defaults['markermode'] == 1) {
$marker['text'] = $this->row_plugin
->render($row);
}
elseif ($defaults['markermode'] == 2) {
$marker['link'] = url('node/' . $row_nid);
}
}
$markers[] = $marker;
$offsets[$markername]++;
}
}
if (!empty($markers)) {
// Don't draw empty maps.
$map = gmap_parse_macro($this->options['macro']);
if ($this->options['enablermt']) {
$map['rmtcallback'] = $this->options['rmtcallback'];
}
// If center lon/lat are not empty they are used to center map
if (!empty($center_lon) && !empty($center_lat)) {
$map['longitude'] = $center_lon;
$map['latitude'] = $center_lat;
}
$map['markers'] = $markers;
$output .= theme($this
->theme_functions(), array(
'view' => $this->view,
'options' => $this->options,
'rows' => $map,
'title' => $title,
));
}
}
unset($this->view->row_index);
return $output;
}
/**
* Render the given style.
*/
function options_form(&$form, &$form_state) {
parent::options_form($form, $form_state);
$field_options = array();
$fields = $this->display->handler
->get_handlers('field');
foreach ($fields as $id => $handler) {
$field_options[$id] = $handler
->ui_name(FALSE);
}
$argument_options = array();
$arguments = $this->display->handler
->get_handlers('argument');
foreach ($arguments as $id => $handler) {
$argument_options[$id] = $handler
->ui_name(FALSE);
}
$form['macro'] = array(
'#type' => 'textarea',
'#title' => t('Macro'),
'#rows' => 3,
'#default_value' => $this->options['macro'],
);
$form['datasource'] = array(
'#type' => 'select',
'#title' => t('Data Source'),
'#options' => array(
'location' => t('Location.module'),
'geofield' => t('Geofield.module'),
'fields' => t('Choose latitude and longitude fields'),
),
'#default_value' => $this->options['datasource'],
'#multiple' => FALSE,
);
$form['latfield'] = array(
'#title' => t('Latitude field'),
'#description' => t('Format must be degrees decimal.'),
'#type' => 'select',
'#options' => $field_options,
'#default_value' => $this->options['latfield'],
'#process' => array(
'ctools_dependent_process',
),
'#dependency' => array(
'edit-style-options-datasource' => array(
'fields',
),
),
);
$form['lonfield'] = array(
'#title' => t('Longitude field'),
'#description' => t('Format must be degrees decimal.'),
'#type' => 'select',
'#options' => $field_options,
'#default_value' => $this->options['lonfield'],
'#process' => array(
'ctools_dependent_process',
),
'#dependency' => array(
'edit-style-options-datasource' => array(
'fields',
),
),
);
$form['geofield'] = array(
'#title' => t('Geofield field'),
'#description' => t('Select the Geofield source field.'),
'#type' => 'select',
'#options' => $field_options,
'#default_value' => $this->options['geofield'],
'#process' => array(
'ctools_dependent_process',
),
'#dependency' => array(
'edit-style-options-datasource' => array(
'geofield',
),
),
);
$form['markers'] = array(
'#type' => 'select',
'#title' => t('Marker handling'),
// @@@ Detect view type automatically?
'#options' => array(
'nodetype' => t('By content type (for node views)'),
'taxonomy' => t('By term (for node views)'),
'userrole' => t('By user role (for user views)'),
'field' => t('Use marker field'),
'static' => t('Use single marker type'),
),
'#default_value' => $this->options['markers'],
);
$form['markerfield'] = array(
'#type' => 'select',
'#title' => t('Marker field'),
'#description' => t('You can use a views field to set the <em>markername</em> property of the markers.'),
'#options' => $field_options,
'#default_value' => $this->options['markerfield'],
'#process' => array(
'ctools_dependent_process',
),
'#dependency' => array(
'edit-style-options-markers' => array(
'field',
),
),
);
$form['enablermt'] = array(
'#type' => 'checkbox',
'#title' => t('Enable GMap RMT for markers'),
'#description' => t('You can pull the bodies of the markers from a callback instead of defining them inline. This is a performance feature for advanced users. <strong>NOTE:</strong> This feature is <strong>not compatible</strong> with the popup bubble feature below. Enable only one of them.'),
'#default_value' => $this->options['enablermt'],
);
$form['rmtfield'] = array(
'#type' => 'select',
'#title' => t('RMT field'),
'#description' => t('You can use a views field to define the "tail" of the path called back.'),
'#options' => $field_options,
'#default_value' => $this->options['rmtfield'],
'#process' => array(
'ctools_dependent_process',
),
'#dependency' => array(
'edit-style-options-enablermt' => array(
TRUE,
),
),
);
$form['rmtcallback'] = array(
'#type' => 'textfield',
'#title' => t('RMT callback path'),
'#description' => t('Define the base path to the callback here. The value of the rmt field will be appended.'),
'#default_value' => $this->options['rmtcallback'],
'#process' => array(
'ctools_dependent_process',
),
'#dependency' => array(
'edit-style-options-enablermt' => array(
TRUE,
),
),
);
// Hide the taxonomy handling if gmap_taxonomy.module isn't installed.
if (!module_exists('gmap_taxonomy')) {
unset($form['markers']['#options']['taxonomy']);
}
$form['markertype'] = array(
'#type' => 'gmap_markerchooser',
'#title' => t('Marker / fallback marker to use'),
'#default_value' => $this->options['markertype'],
);
$form['center_on_nodearg'] = array(
'#type' => 'checkbox',
'#title' => t('Center on node argument'),
'#default_value' => $this->options['center_on_nodearg'],
'#description' => $this->view->base_table == 'node' ? t('Note: The view must contain an argument whose value is a node ID.') : t('Note: The view must contain an argument whose value is a node ID.') . '<br />' . t("The view must contain 'Node: nid' as one of its fields because the view type is not 'Node'."),
);
$form['center_on_nodearg_arg'] = array(
'#title' => t('Argument'),
'#description' => empty($argument_options) ? t("The value of the selected argument must be a number that matches a node ID. Use the 'Global: Null' argument if you don't want to also restrict results to that node ID. You must have added arguments to the view to use this option.") : t("The selected argument must be a number that matches a node ID. Use the 'Global: Null' argument if you don't want to also restrict results to that node ID."),
'#type' => 'select',
'#options' => $argument_options,
'#default_value' => $this->options['center_on_nodearg_arg'],
'#process' => array(
'ctools_dependent_process',
),
'#dependency' => array(
'edit-style-options-center-on-nodearg' => array(
TRUE,
),
),
);
if (module_exists('location')) {
$form['center_on_proximityarg'] = array(
'#type' => 'checkbox',
'#title' => t('Center on proximity contextual filter'),
'#default_value' => $this->options['center_on_proximityarg'],
'#description' => t('Note: The view must contain a "Location: Distance / Proximity" contextual filter'),
);
}
$form['highlight_nodearg'] = array(
'#type' => 'checkbox',
'#title' => t('Highlight marker for node argument'),
'#default_value' => $this->options['highlight_nodearg'],
'#description' => $this->view->base_table == 'node' ? t('Note: The view must contain an argument whose value is a node ID.') : t('Note: The view must contain an argument whose value is a node ID.') . '<br />' . t("The view must contain 'Node: nid' as one of its fields because the view type is not 'Node'."),
);
$form['highlight_nodearg_arg'] = array(
'#title' => t('Argument'),
'#description' => empty($argument_options) ? t("The value of the selected argument must be a number that matches a node ID. Use the 'Global: Null' argument if you don't want to also restrict results to that node ID. You must have added arguments to the view to use this option.") : t("The value of the selected argument must be a number that matches a node ID. Use the 'Global: Null' argument if you don't want to also restrict results to that node ID."),
'#type' => 'select',
'#options' => $argument_options,
'#default_value' => $this->options['highlight_nodearg_arg'],
'#process' => array(
'ctools_dependent_process',
),
'#dependency' => array(
'edit-style-options-highlight-nodearg' => array(
TRUE,
),
),
);
$form['highlight_nodearg_color'] = array(
'#title' => t('Highlight color'),
'#description' => t("A 6 digit hex color value to use for the highlight. Include preceding hash. Example #FF0000"),
'#type' => 'textfield',
'#size' => 7,
'#maxlength' => 7,
'#default_value' => $this->options['highlight_nodearg_color'],
'#process' => array(
'ctools_dependent_process',
),
'#dependency' => array(
'edit-style-options-highlight-nodearg' => array(
TRUE,
),
),
);
$form['autoclick_on_nodearg'] = array(
'#type' => 'checkbox',
'#title' => t('Autoclick on node argument'),
'#default_value' => $this->options['autoclick_on_nodearg'],
'#description' => $this->view->base_table == 'node' ? t('Note: The view must contain an argument whose value is a node ID.') : t('Note: The view must contain an argument whose value is a node ID.') . '<br />' . t("The view must contain 'Node: nid' as one of its fields because the view type is not 'Node'."),
);
$form['autoclick_on_nodearg_arg'] = array(
'#title' => t('Argument'),
'#description' => empty($argument_options) ? t("The value of the selected argument must be a number that matches a node ID. Use the 'Global: Null' argument if you don't want to also restrict results to that node ID. You must have added arguments to the view to use this option.") : t("The selected argument must be a number that matches a node ID. Use the 'Global: Null' argument if you don't want to also restrict results to that node ID."),
'#type' => 'select',
'#options' => $argument_options,
'#default_value' => $this->options['autoclick_on_nodearg_arg'],
'#process' => array(
'ctools_dependent_process',
),
'#dependency' => array(
'edit-style-options-autoclick-on-nodearg' => array(
TRUE,
),
),
);
$form['tooltipenabled'] = array(
'#type' => 'checkbox',
'#title' => t('Display a tooltip when hovering over markers'),
'#default_value' => $this->options['tooltipenabled'],
);
$form['tooltipfield'] = array(
'#title' => t('Tooltip field'),
'#description' => empty($field_options) ? t("The field's format must be text. You must be using the fields row style and have added fields to the view to use this option.") : t("The field's format must be text."),
'#type' => 'select',
'#options' => $field_options,
'#default_value' => $this->options['tooltipfield'],
'#process' => array(
'ctools_dependent_process',
),
'#dependency' => array(
'edit-style-options-tooltipenabled' => array(
TRUE,
),
),
);
$form['bubbletextenabled'] = array(
'#type' => 'checkbox',
'#title' => t('Display a popup bubble with additional information when a marker is clicked.'),
'#default_value' => $this->options['bubbletextenabled'],
'#description' => t('<strong>NOTE:</strong> This feauture is <strong>not compatible</strong> with the RMT option offered above. Do not use them together.'),
);
$form['bubbletextfield'] = array(
'#title' => t('Bubble pop-up field'),
'#description' => empty($field_options) ? t("The field's format must be HTML or text. You must be using the fields row style and have added fields to the view to use this option.") : t("The field's format must be HTML or text."),
'#type' => 'select',
'#options' => $field_options,
'#default_value' => $this->options['bubbletextfield'],
'#process' => array(
'ctools_dependent_process',
),
'#dependency' => array(
'edit-style-options-bubbletextenabled' => array(
TRUE,
),
),
);
}
/**
* Validate the options form.
*/
function options_validate(&$form, &$form_state) {
parent::options_validate($form, $form_state);
// Check if highlight color is a valid hex color
if (!preg_match('/^#[a-f0-9]{6}$/i', $form_state['values']['style_options']['highlight_nodearg_color'])) {
form_error($form['highlight_nodearg_color'], t('Highlight colour must be a valid hex code in the form #FF0000.'));
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
gmap_plugin_style_gmap:: |
function |
Render the given style. Overrides views_plugin_style:: |
||
gmap_plugin_style_gmap:: |
function |
Validate the options form. Overrides views_plugin_style:: |
||
gmap_plugin_style_gmap:: |
function |
Set default options Overrides views_plugin_style:: |
||
gmap_plugin_style_gmap:: |
function |
Add anything to the query that we might need to. Overrides views_plugin_style:: |
||
gmap_plugin_style_gmap:: |
function |
Render the display in this style. Overrides views_plugin_style:: |
||
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 | 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 | Handle any special handling on the validate form. | 9 |
views_plugin:: |
public | function | Return the human readable name of the display. | |
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_style:: |
public | property | The row plugin, if it's initialized and the style itself supports it. | |
views_plugin_style:: |
public | property | Store all available tokens row rows. | |
views_plugin_style:: |
public | function | Called by the view builder to see if this style handler wants to interfere with the sorts. If so it should build; if it returns any non-TRUE value, normal sorting will NOT be added to the query. | 1 |
views_plugin_style:: |
public | function | Called by the view builder to let the style build a second set of sorts that will come after any other sorts in the view. | 1 |
views_plugin_style:: |
public | function |
Destructor. Overrides views_object:: |
|
views_plugin_style:: |
public | function | Should the output of the style plugin be rendered even if it's empty. | 1 |
views_plugin_style:: |
public | function | Get a rendered field. | |
views_plugin_style:: |
public | function | Get the raw field value. | |
views_plugin_style:: |
public | function | Return the token replaced row class for the specified row. | |
views_plugin_style:: |
public | function | Initialize a style plugin. | |
views_plugin_style:: |
public | function | Allow the style to do stuff before each row is rendered. | |
views_plugin_style:: |
public | function | Render all of the fields for a given style and store them on the object. | |
views_plugin_style:: |
public | function | Group records as needed for rendering. | |
views_plugin_style:: |
public | function | Render the grouping sets. | |
views_plugin_style:: |
public | function | Take a value and apply token replacement logic to it. | |
views_plugin_style:: |
public | function | Return TRUE if this style also uses fields. | |
views_plugin_style:: |
public | function | Return TRUE if this style also uses a row plugin. | |
views_plugin_style:: |
public | function | Return TRUE if this style also uses a row plugin. | |
views_plugin_style:: |
public | function | Return TRUE if this style uses tokens. | |
views_plugin_style:: |
public | function |
Validate that the plugin is correct and can be saved. Overrides views_plugin:: |