class views_pdf_plugin_style_grid in Views PDF 7.3
This class holds all the funtionality used for the grid style plugin.
Hierarchy
- class \views_object
- class \views_plugin
- class \views_plugin_style
- class \views_pdf_plugin_style_grid
- class \views_plugin_style
- class \views_plugin
Expanded class hierarchy of views_pdf_plugin_style_grid
1 string reference to 'views_pdf_plugin_style_grid'
- views_pdf_views_plugins in ./
views_pdf.views.inc - Implements hook_views_plugins().
File
- ./
views_pdf_plugin_style_grid.inc, line 13 - Grid PDF style
View source
class views_pdf_plugin_style_grid extends views_plugin_style {
/**
* Render the style.
*
* @see views_pdf_views_plugins()
*/
function render() {
$options = $this->options['info'];
$cols = $options['columns'];
$colspace = $options['column_space'];
$rows = $options['rows'];
$rowspace = $options['row_space'];
// Need to add the first page here to get dimensions.
$this->view->pdf
->addPage();
$fullpage = FALSE;
// Calculate grid parameters - cell size and offsets.
$pgdim = $this->view->pdf
->getPageDimensions();
$cell_width = ($pgdim['wk'] - $pgdim['lm'] - $pgdim['rm'] - $colspace * ($cols - 1)) / $cols;
$cell_height = ($pgdim['hk'] - $pgdim['tm'] - $pgdim['bm'] - $rowspace * ($rows - 1)) / $rows;
$this->row_plugin->options['grid'] = array(
'w' => $cell_width,
'h' => $cell_height,
);
// Set up indirect variables so as to iterate row-wise or column-wise.
if ($options['col_wise']) {
$first = $rows;
$second = $cols;
$first_idx = 'rowidx';
$second_idx = 'colidx';
}
else {
$first = $cols;
$second = $rows;
$first_idx = 'colidx';
$second_idx = 'rowidx';
}
$colidx = $rowidx = 0;
$this->view->row_index = 0;
foreach ($this->view->result as $row) {
if ($fullpage) {
$this->view->pdf
->addPage();
$fullpage = FALSE;
}
// Calculate co-ordinates of top left corner of current grid cell.
$this->row_plugin->options['grid']['x'] = $colidx * ($cell_width + $colspace);
$this->row_plugin->options['grid']['y'] = $rowidx * ($cell_height + $rowspace);
$this->row_plugin->options['grid']['new_cell'] = TRUE;
$this->row_plugin
->render($row);
$this->view->row_index++;
// Use variable-variables to run row or column wise.
if (++${$first_idx} == $first) {
${$first_idx} = 0;
if (++${$second_idx} == $second) {
${$second_idx} = 0;
$fullpage = TRUE;
}
}
}
}
/**
* Option definitions
*/
function option_definition() {
$options = parent::option_definition();
// Grouping not supported.
$this->definition['uses grouping'] = FALSE;
$options['info'] = array(
'columns' => 2,
'column_space' => 0,
'rows' => 8,
'row_space' => 0,
'col_wise' => 0,
);
return $options;
}
/**
* Options form
*/
function options_form(&$form, &$form_state) {
parent::options_form($form, $form_state);
$attached = array(
'css' => array(
drupal_get_path('module', 'views_pdf') . '/theme/admin.css',
),
);
$form['#attached'] = $attached;
if (empty($this->options['info'])) {
$this->options = $this
->option_definition();
}
$form['info']['columns'] = array(
'#type' => 'textfield',
'#attributes' => array(
'type' => 'number',
'min' => 1,
),
'#size' => 4,
'#title' => t('Grid columns'),
'#default_value' => $this->options['info']['columns'],
);
$form['info']['column_space'] = array(
'#type' => 'textfield',
'#attributes' => array(
'type' => 'number',
'min' => 0,
),
'#size' => 4,
'#title' => t('Column spacing'),
'#default_value' => $this->options['info']['column_space'],
);
$form['info']['rows'] = array(
'#type' => 'textfield',
'#attributes' => array(
'type' => 'number',
'min' => 1,
),
'#size' => 4,
'#title' => t('Grid rows'),
'#default_value' => $this->options['info']['rows'],
);
$form['info']['row_space'] = array(
'#type' => 'textfield',
'#attributes' => array(
'type' => 'number',
'min' => 0,
),
'#size' => 4,
'#title' => t('Row spacing'),
'#default_value' => $this->options['info']['row_space'],
);
$form['info']['col_wise'] = array(
'#type' => 'radios',
'#title' => t('Layout order'),
'#options' => array(
'Row-first',
'Column-first',
),
'#default_value' => $this->options['info']['col_wise'],
);
}
/**
* Attach this view to another display.
*/
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 |
---|---|---|---|---|
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_pdf_plugin_style_grid:: |
function | Attach this view to another display. | ||
views_pdf_plugin_style_grid:: |
function |
Options form Overrides views_plugin_style:: |
||
views_pdf_plugin_style_grid:: |
function |
Option definitions Overrides views_plugin_style:: |
||
views_pdf_plugin_style_grid:: |
function |
Render the style. Overrides views_plugin_style:: |
||
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 |
Validate the options form. Overrides views_plugin:: |
|
views_plugin_style:: |
public | function | Allow the style to do stuff before each row is rendered. | |
views_plugin_style:: |
public | function |
Add anything to the query that we might need to. Overrides views_plugin:: |
2 |
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:: |