class Table in Views PDF 8
Style plugin to render each item as a row in a table.
Plugin annotation
@ViewsStyle(
id = "Table",
title = @Translation("Table"),
help = @Translation("Render a table."),
theme = "views_view_pdf_table",
display_types = { "normal" }
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\views\Plugin\views\PluginBase implements DependentPluginInterface, ContainerFactoryPluginInterface, TrustedCallbackInterface, ViewsPluginInterface
- class \Drupal\views\Plugin\views\style\StylePluginBase
- class \Drupal\tardis\Plugin\views\style\Table
- class \Drupal\views\Plugin\views\style\StylePluginBase
- class \Drupal\views\Plugin\views\PluginBase implements DependentPluginInterface, ContainerFactoryPluginInterface, TrustedCallbackInterface, ViewsPluginInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of Table
1 string reference to 'Table'
- views_pdf_views_plugins in ./
views_pdf.views.inc - Implements hook_views_plugins().
File
- src/
Plugin/ views/ style/ Table.php, line 21
Namespace
Drupal\tardis\Plugin\views\styleView source
class Table extends StylePluginBase {
/**
* @inheritDoc
*/
public function defineOptions() {
$options = parent::defineOptions();
$options['info'] = [
'default' => [],
];
$options['position'] = [
'default' => [],
];
return $options;
}
/**
* @inheritDoc
*/
public function buildOptionsForm(&$form, FormStateInterface $form_state) {
parent::buildOptionsForm($form, $form_state);
$handlers = $this->display->handler
->get_handlers('field');
if (empty($handlers)) {
$form['error_markup'] = array(
'#markup' => '<div class="error messages">' . t('You need at least one field before you can configure your table settings') . '</div>',
);
return;
}
$attached = array(
'css' => array(
drupal_get_path('module', 'views_pdf') . '/theme/admin.css',
),
);
$form['#theme'] = 'views_pdf_plugin_style_table';
$form['#attached'] = $attached;
$columns = $this->display->handler
->get_field_labels();
$fields = $this->display->handler
->get_option('fields');
$fonts = array_merge(array(
'default' => t('-- Default --'),
), ViewsPdfBase::getAvailableFontsCleanList());
$font_styles = array(
'b' => t('Bold'),
'i' => t('Italic'),
'u' => t('Underline'),
'd' => t('Line through'),
'o' => t('Overline'),
);
$align = array(
'L' => t('Left'),
'C' => t('Center'),
'R' => t('Right'),
'J' => t('Justify'),
);
$hyphenate = array(
'none' => t('None'),
'auto' => t('Detect automatically'),
);
$hyphenate = array_merge($hyphenate, ViewsPdfBase::getAvailableHyphenatePatterns());
foreach ($columns as $field => $column) {
if ($fields[$field]['exclude'] == 1) {
continue;
}
$safe = str_replace(array(
'][',
'_',
' ',
), '-', $field);
// The $id of the column for dependency checking.
$id = 'edit-style-options-columns-' . $safe;
// Markup for the field name.
$form['info'][$field]['name'] = array(
'#markup' => $column,
);
$form['info'][$field]['header_style']['text'] = array(
'#type' => 'fieldset',
'#title' => t('Text Settings'),
'#collapsed' => FALSE,
'#collapsible' => TRUE,
);
$form['info'][$field]['header_style']['text']['font_size'] = array(
'#type' => 'textfield',
'#size' => 10,
'#title' => t('Font Size'),
'#title' => t('Alignment'),
'#options' => $align,
'#default_value' => $this->options['info'][$field]['header_style']['text']['align'] == NULL ? $this->display->handler
->get_option('default_text_align') : $this->options['info'][$field]['header_style']['text']['align'],
);
$form['info'][$field]['header_style']['text']['hyphenate'] = array(
'#type' => 'select',
'#title' => t('Text Hyphenation'),
'#options' => $hyphenate,
'#description' => t('upload patterns from <a href="@url">ctan.org</a> to <br />sites/libraries/tcpdf/hyphenate_patterns', array(
'@url' => 'http://www.ctan.org/tex-archive/language/hyph-utf8/tex/generic/hyph-utf8/patterns/tex',
)),
'#default_value' => $this->options['info'][$field]['header_style']['text']['hyphenate'] == NULL ? $this->display->handler
->get_option('default_text_hyphenate') : $this->options['info'][$field]['header_style']['text']['hyphenate'],
);
$form['info'][$field]['header_style']['text']['color'] = array(
'#type' => 'textfield',
'#title' => t('Text Color'),
'#description' => t('Enter Any format: <br />000000 (HexRGB) - 000,000,000 (RGB) - 000,000,000,000 (CMYK)'),
'#size' => 10,
'#default_value' => $this->options['info'][$field]['header_style']['text']['color'] == NULL ? $this->display->handler
->get_option('default_text_color') : $this->options['info'][$field]['header_style']['text']['color'],
);
$form['info'][$field]['header_style']['render'] = array(
'#type' => 'fieldset',
'#title' => t('Render Settings'),
'#collapsed' => FALSE,
'#collapsible' => TRUE,
);
$form['info'][$field]['header_style']['render']['is_html'] = array(
'#type' => 'checkbox',
'#title' => t('Render As HTML'),
'#default_value' => isset($this->options['info'][$field]['header_style']['render']['is_html']) ? $this->options['info'][$field]['header_style']['render']['is_html'] : 1,
);
$form['info'][$field]['header_style']['render']['eval_before'] = array(
'#type' => 'textarea',
'#title' => t('PHP Code Before Output'),
'#default_value' => isset($this->options['info'][$field]['header_style']['render']['eval_before']) ? $this->options['info'][$field]['header_style']['render']['eval_before'] : '',
);
$form['info'][$field]['header_style']['render']['eval_after'] = array(
'#type' => 'textarea',
'#title' => t('PHP Code After Output'),
'#default_value' => isset($this->options['info'][$field]['header_style']['render']['eval_after']) ? $this->options['info'][$field]['header_style']['render']['eval_after'] : '',
);
$form['info'][$field]['body_style']['text'] = array(
'#type' => 'fieldset',
'#title' => t('Text Settings'),
'#collapsed' => FALSE,
'#collapsible' => TRUE,
);
$form['info'][$field]['body_style']['text']['font_size'] = array(
'#type' => 'textfield',
'#size' => 10,
'#title' => t('Font Size'),
'#default_value' => isset($this->options['info'][$field]['body_style']['text']['font_size']) ? $this->options['info'][$field]['body_style']['text']['font_size'] : '',
);
$form['info'][$field]['body_style']['text']['font_family'] = array(
'#type' => 'select',
'#title' => t('Font Family'),
'#required' => TRUE,
'#options' => $fonts,
'#size' => 5,
'#default_value' => !empty($this->options['info'][$field]['body_style']['text']['font_family']) ? $this->options['info'][$field]['body_style']['text']['font_family'] : 'default',
);
$form['info'][$field]['body_style']['text']['font_style'] = array(
'#type' => 'checkboxes',
'#title' => t('Font Style'),
'#options' => $font_styles,
'#size' => 10,
'#default_value' => $this->options['info'][$field]['body_style']['text']['font_style'] == NULL ? $this->display->handler
->get_option('default_font_style') : $this->options['info'][$field]['body_style']['text']['font_style'],
);
$form['info'][$field]['body_style']['text']['align'] = array(
'#type' => 'radios',
'#title' => t('Alignment'),
'#options' => $align,
'#default_value' => $this->options['info'][$field]['body_style']['text']['align'] == NULL ? $this->display->handler
->get_option('default_text_align') : $this->options['info'][$field]['body_style']['text']['align'],
);
$form['info'][$field]['body_style']['text']['hyphenate'] = array(
'#type' => 'select',
'#title' => t('Text Hyphenation'),
'#options' => $hyphenate,
'#description' => t('upload patterns from <a href="@url">ctan.org</a> to <br />sites/libraries/tcpdf/hyphenate_patterns', array(
'@url' => 'http://www.ctan.org/tex-archive/language/hyph-utf8/tex/generic/hyph-utf8/patterns/tex',
)),
'#default_value' => $this->options['info'][$field]['body_style']['text']['hyphenate'] == NULL ? $this->display->handler
->get_option('default_text_hyphenate') : $this->options['info'][$field]['body_style']['text']['hyphenate'],
);
$form['info'][$field]['body_style']['text']['color'] = array(
'#type' => 'textfield',
'#title' => t('Text Color'),
'#description' => t('Enter Any format: <br />000000 (HexRGB) - 000,000,000 (RGB) - 000,000,000,000 (CMYK)'),
'#size' => 20,
'#default_value' => $this->options['info'][$field]['body_style']['text']['color'] == NULL ? $this->display->handler
->get_option('default_text_color') : $this->options['info'][$field]['body_style']['text']['color'],
);
$form['info'][$field]['body_style']['render'] = array(
'#type' => 'fieldset',
'#title' => t('Render Settings'),
'#collapsed' => FALSE,
'#collapsible' => TRUE,
);
$form['info'][$field]['body_style']['render']['is_html'] = array(
'#type' => 'checkbox',
'#title' => t('Render As HTML'),
'#default_value' => isset($this->options['info'][$field]['body_style']['render']['is_html']) ? $this->options['info'][$field]['body_style']['render']['is_html'] : 1,
);
$form['info'][$field]['body_style']['render']['eval_before'] = array(
'#type' => 'textarea',
'#title' => t('PHP Code Before Output'),
'#default_value' => isset($this->options['info'][$field]['body_style']['render']['eval_before']) ? $this->options['info'][$field]['body_style']['render']['eval_before'] : '',
);
$form['info'][$field]['body_style']['render']['eval_after'] = array(
'#type' => 'textarea',
'#title' => t('PHP Code After Output'),
'#default_value' => isset($this->options['info'][$field]['body_style']['render']['eval_after']) ? $this->options['info'][$field]['body_style']['render']['eval_after'] : '',
);
$form['info'][$field]['position']['width'] = array(
'#type' => 'textfield',
'#size' => 10,
'#title' => t('Width'),
'#default_value' => isset($this->options['info'][$field]['position']['width']) ? $this->options['info'][$field]['position']['width'] : '',
);
}
// Some general options.
$form['position'] = array(
'#type' => 'fieldset',
'#title' => t('Table Position'),
'#collapsed' => FALSE,
'#collapsible' => TRUE,
);
$form['position']['last_writing_position'] = array(
'#type' => 'checkbox',
'#title' => t('Relative to last writing position'),
'#default_value' => isset($this->options['position']['last_writing_position']) ? $this->options['position']['last_writing_position'] : 1,
);
$form['position']['x'] = array(
'#type' => 'textfield',
'#size' => 10,
'#title' => t('X'),
'#description' => t('X Coordinate (relative to page with margins)'),
'#default_value' => isset($this->options['position']['x']) ? $this->options['position']['x'] : '',
);
$form['position']['y'] = array(
'#type' => 'textfield',
'#size' => 10,
'#title' => t('Y'),
'#description' => t('Y Coordinate (relative to page with margins)'),
'#default_value' => isset($this->options['position']['y']) ? $this->options['position']['y'] : '',
);
$form['position']['width'] = array(
'#type' => 'textfield',
'#size' => 10,
'#title' => t('Table Width'),
'#default_value' => isset($this->options['position']['width']) ? $this->options['position']['width'] : '',
);
$form['position']['row_height'] = array(
'#type' => 'textfield',
'#size' => 10,
'#title' => t('Row Height'),
'#default_value' => isset($this->options['position']['row_height']) ? $this->options['position']['row_height'] : '',
);
}
/**
* Options form storage.
*/
function options_submit(&$form, &$form_state) {
$default_font_style = $this->display->handler
->get_option('default_font_style');
foreach ($form_state['values']['style_options']['info'] as $id => $field) {
// Reset to default, if the elements are equal to the default settings.
if (count(array_diff($default_font_style, $field['header_style']['text']['font_style'])) == 0 && count(array_diff($field['header_style']['text']['font_style'], $default_font_style)) == 0) {
$form_state['values']['style_options']['info'][$id]['header_style']['text']['font_style'] = NULL;
}
if ($field['header_style']['text']['align'] == $this->display->handler
->get_option('default_text_align')) {
$form_state['values']['style_options']['info'][$id]['header_style']['text']['align'] = NULL;
}
if ($field['header_style']['text']['hyphenate'] == $this->display->handler
->get_option('default_text_hyphenate')) {
$form_state['values']['style_options']['info'][$id]['header_style']['text']['hyphenate'] = NULL;
}
// Reset to default, if the elements are equal to the default settings.
if (count(array_diff($default_font_style, $field['body_style']['text']['font_style'])) == 0 && count(array_diff($field['body_style']['text']['font_style'], $default_font_style)) == 0) {
$form_state['values']['style_options']['info'][$id]['body_style']['text']['font_style'] = NULL;
}
if ($field['body_style']['text']['align'] == $this->display->handler
->get_option('default_text_align')) {
$form_state['values']['style_options']['info'][$id]['body_style']['text']['align'] = NULL;
}
if ($field['body_style']['text']['hyphenate'] == $this->display->handler
->get_option('default_text_hyphenate')) {
$form_state['values']['style_options']['info'][$id]['body_style']['text']['hyphenate'] = NULL;
}
}
}
/**
* Attach this view to another display as a feed.
*
* Provide basic functionality for all export style views like attaching a
* feed image link.
*/
function attach_to($display_id, $path, $title) {
$display = $this->view->display[$display_id]->handler;
$url_options = array();
$input = $this->view
->get_exposed_input();
if ($input) {
$url_options['query'] = $input;
}
if (empty($this->view->feed_icon)) {
$this->view->feed_icon = '';
}
$this->view->feed_icon .= theme('views_pdf_icon', array(
'path' => $this->view
->get_url(NULL, $path),
'title' => $title,
'options' => $url_options,
));
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
public | property | Plugins's definition | |
PluginBase:: |
public | property | The display object this plugin is for. | |
PluginBase:: |
public | property | Options for this plugin will be held here. | |
PluginBase:: |
protected | property | The plugin implementation definition. | 1 |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
protected | property | Stores the render API renderer. | 3 |
PluginBase:: |
public | property | The top object of a view. | 1 |
PluginBase:: |
public | function |
Calculates dependencies for the configured plugin. Overrides DependentPluginInterface:: |
14 |
PluginBase:: |
public static | function |
Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface:: |
62 |
PluginBase:: |
constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
PluginBase:: |
protected | function | Do the work to filter out stored options depending on the defined options. | |
PluginBase:: |
public | function |
Filter out stored options depending on the defined options. Overrides ViewsPluginInterface:: |
|
PluginBase:: |
public | function |
Returns an array of available token replacements. Overrides ViewsPluginInterface:: |
|
PluginBase:: |
public | function |
Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: |
3 |
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function |
Returns the plugin provider. Overrides ViewsPluginInterface:: |
|
PluginBase:: |
protected | function | Returns the render API renderer. | 1 |
PluginBase:: |
public | function |
Adds elements for available core tokens to a form. Overrides ViewsPluginInterface:: |
|
PluginBase:: |
public | function |
Returns a string with any core tokens replaced. Overrides ViewsPluginInterface:: |
|
PluginBase:: |
constant | Include entity row languages when listing languages. | ||
PluginBase:: |
constant | Include negotiated languages when listing languages. | ||
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
PluginBase:: |
protected | function | Makes an array of languages, optionally including special languages. | |
PluginBase:: |
public | function |
Return the human readable name of the display. Overrides ViewsPluginInterface:: |
|
PluginBase:: |
public static | function |
Moves form elements into fieldsets for presentation purposes. Overrides ViewsPluginInterface:: |
|
PluginBase:: |
public static | function |
Flattens the structure of form elements. Overrides ViewsPluginInterface:: |
|
PluginBase:: |
public static | function | Returns substitutions for Views queries for languages. | |
PluginBase:: |
protected | function | Fills up the options of the plugin with defaults. | |
PluginBase:: |
public | function |
Handle any special handling on the validate form. Overrides ViewsPluginInterface:: |
16 |
PluginBase:: |
public | function |
Returns the summary of the settings in the display. Overrides ViewsPluginInterface:: |
6 |
PluginBase:: |
public | function |
Provide a full list of possible theme templates used by this style. Overrides ViewsPluginInterface:: |
1 |
PluginBase:: |
public | function |
Unpack options over our existing defaults, drilling down into arrays
so that defaults don't get totally blown away. Overrides ViewsPluginInterface:: |
|
PluginBase:: |
public | function |
Returns the usesOptions property. Overrides ViewsPluginInterface:: |
8 |
PluginBase:: |
protected | function | Replaces Views' tokens in a given string. The resulting string will be sanitized with Xss::filterAdmin. | 1 |
PluginBase:: |
constant | Query string to indicate the site default language. | ||
PluginBase:: |
public | function |
Constructs a PluginBase object. Overrides PluginBase:: |
|
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. | |
StylePluginBase:: |
protected | property | Should field labels be enabled by default. | 1 |
StylePluginBase:: |
protected | property | The theme function used to render the grouping set. | |
StylePluginBase:: |
protected | property | Stores the rendered field values, keyed by the row index and field name. | |
StylePluginBase:: |
protected | property | Store all available tokens row rows. | |
StylePluginBase:: |
protected | property | Does the style plugin for itself support to add fields to its output. | 3 |
StylePluginBase:: |
protected | property | Does the style plugin support grouping of rows. | 3 |
StylePluginBase:: |
protected | property |
Denotes whether the plugin has an additional options form. Overrides PluginBase:: |
|
StylePluginBase:: |
protected | property | Does the style plugin support custom css class for the rows. | 3 |
StylePluginBase:: |
protected | property | Whether or not this style uses a row plugin. | 10 |
StylePluginBase:: |
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 |
StylePluginBase:: |
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 |
StylePluginBase:: |
public | function | Return TRUE if this style enables field labels by default. | 1 |
StylePluginBase:: |
public | function |
Clears a plugin. Overrides PluginBase:: |
|
StylePluginBase:: |
public | function | #pre_render callback for view row field rendering. | |
StylePluginBase:: |
public | function | Should the output of the style plugin be rendered even if it's a empty view. | 2 |
StylePluginBase:: |
public | function | Gets a rendered field. | |
StylePluginBase:: |
public | function | Get the raw field value. | |
StylePluginBase:: |
public | function | Return the token replaced row class for the specified row. | |
StylePluginBase:: |
public | function |
Overrides \Drupal\views\Plugin\views\PluginBase::init(). Overrides PluginBase:: |
|
StylePluginBase:: |
public | function | Allow the style to do stuff before each row is rendered. | |
StylePluginBase:: |
public | function |
Add anything to the query that we might need to. Overrides PluginBase:: |
1 |
StylePluginBase:: |
public | function | Render the display in this style. | 7 |
StylePluginBase:: |
protected | function | Renders all of the fields for a given style and store them on the object. | |
StylePluginBase:: |
public | function | Group records as needed for rendering. | |
StylePluginBase:: |
public | function | Render the grouping sets. | |
StylePluginBase:: |
protected | function | Renders a group of rows of the grouped view. | |
StylePluginBase:: |
public | function | Take a value and apply token replacement logic to it. | |
StylePluginBase:: |
public static | function |
Lists the trusted callbacks provided by the implementing class. Overrides PluginBase:: |
|
StylePluginBase:: |
public | function | Return TRUE if this style also uses fields. | 3 |
StylePluginBase:: |
public | function | Returns the usesGrouping property. | 3 |
StylePluginBase:: |
public | function | Returns the usesRowClass property. | 3 |
StylePluginBase:: |
public | function | Returns the usesRowPlugin property. | 10 |
StylePluginBase:: |
public | function | Return TRUE if this style uses tokens. | |
StylePluginBase:: |
public | function |
Validate that the plugin is correct and can be saved. Overrides PluginBase:: |
|
StylePluginBase:: |
public | function |
Validate the options form. Overrides PluginBase:: |
|
StylePluginBase:: |
public | function | Provide a form in the views wizard if this style is selected. | |
StylePluginBase:: |
public | function | Alter the options of a display before they are added to the view. | 1 |
Table:: |
function | Attach this view to another display as a feed. | ||
Table:: |
public | function |
@inheritDoc Overrides StylePluginBase:: |
|
Table:: |
public | function |
@inheritDoc Overrides StylePluginBase:: |
|
Table:: |
function | Options form storage. | ||
TrustedCallbackInterface:: |
constant | Untrusted callbacks throw exceptions. | ||
TrustedCallbackInterface:: |
constant | Untrusted callbacks trigger silenced E_USER_DEPRECATION errors. | ||
TrustedCallbackInterface:: |
constant | Untrusted callbacks trigger E_USER_WARNING errors. |