function views_pdf_plugin_style_grid::render in Views PDF 7.3
Render the style.
Overrides views_plugin_style::render
See also
File
- ./
views_pdf_plugin_style_grid.inc, line 20 - Grid PDF style
Class
- views_pdf_plugin_style_grid
- This class holds all the funtionality used for the grid style plugin.
Code
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;
}
}
}
}