class DrupalTableExporter in Loft Data Grids 6.2
Same name and namespace in other branches
- 7.2 src/AKlump/LoftDataGrids/DrupalTableExporter.php \AKlump\LoftDataGrids\DrupalTableExporter
Class DrupalTableExporter
Hierarchy
- class \AKlump\LoftDataGrids\Exporter implements ExporterInterface
- class \AKlump\LoftDataGrids\DrupalTableExporter implements ExporterInterface
Expanded class hierarchy of DrupalTableExporter
1 string reference to 'DrupalTableExporter'
- _loft_data_grids_get_exporter_names in ./
loft_data_grids.module - Return an array of Exporter classnames dynamically loaded and cached
File
- includes/
DrupalTableExporter.php, line 7
Namespace
AKlump\LoftDataGridsView source
class DrupalTableExporter extends Exporter implements ExporterInterface {
public $format;
protected $extension = '.html';
public function getInfo() {
$info = parent::getInfo();
$info = array(
'name' => 'Drupal table formatter',
'shortname' => 'theme_table',
'description' => 'Export data using theme_table().',
) + $info;
return $info;
}
public function compile($page_id = NULL) {
$pages = $this
->getData()
->get();
if ($page_id && array_key_exists($page_id, $pages)) {
$pages = array(
$pages[$page_id],
);
}
$build = '';
$page_ct = 0;
foreach ($pages as $page_id => $data) {
$vars['#ExportData'] = $this;
$vars['#page_id'] = $page_id;
$vars['attributes'] = array();
$vars['caption'] = !empty($page_id) ? $page_id : NULL;
$vars['header'] = array();
$column_no = 1;
foreach ($this
->getHeader($page_id) as $header_key => $value) {
$header_classes = array();
$header_classes[] = 'column-' . $column_no;
if ($column_no === count(reset($data)) - 1) {
$header_classes[] = 'last';
}
elseif ($column_no === 0) {
$header_classes[] = 'first';
}
$string = preg_replace('/[^a-z0-9\\-\\.]/', '-', strtolower($header_key));
$string = preg_replace('/^\\d/', 'c-\\0', $string);
$header_classes[] = preg_replace('/-{2,}/', '-', $string);
$vars['header'][] = array(
'data' => t($value),
'class' => $this
->tableClassesHandler($header_classes),
);
$column_no++;
}
$vars['rows'] = array();
foreach (array_values($data) as $row_no => $row) {
$row_classes = array();
$row_classes[] = 'row-' . $row_no;
if ($row_no === count($data) - 1) {
$row_classes[] = 'last';
}
elseif ($row_no === 0) {
$row_classes[] = 'first';
}
$columns = array();
$array_keys = array_keys($row);
foreach (array_values($row) as $column_no => $column) {
$column_classes = array();
$column_classes[] = 'column-' . $column_no;
if ($column_no === count($row) - 1) {
$column_classes[] = 'last';
}
elseif ($column_no === 0) {
$column_classes[] = 'first';
}
$string = preg_replace('/[^a-z0-9\\-\\.]/', '-', strtolower($array_keys[$column_no]));
$string = preg_replace('/^\\d/', 'c-\\0', $string);
$column_classes[] = preg_replace('/-{2,}/', '-', $string);
$columns[] = array(
'data' => $column,
'class' => $this
->tableClassesHandler($column_classes),
);
}
$vars['rows'][] = array(
'data' => $columns,
'class' => $this
->tableClassesHandler($row_classes),
);
}
drupal_alter('loft_data_grids_table', $vars, $this, $page_id);
$build .= theme('table', $vars['header'], $vars['rows'], $vars['attributes'], $vars['caption']);
}
$this->output = $build;
}
/**
* Theme table handled classes differently across versions, so this is a
* helper.
*
* @param $classes
*
* @return string|array
*/
protected function tableClassesHandler($classes) {
return implode(' ', $classes);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DrupalTableExporter:: |
protected | property | ||
DrupalTableExporter:: |
public | property | ||
DrupalTableExporter:: |
public | function |
Build $this->output in prep for export/save Overrides Exporter:: |
|
DrupalTableExporter:: |
public | function |
Return info about this class Overrides Exporter:: |
|
DrupalTableExporter:: |
protected | function | Theme table handled classes differently across versions, so this is a helper. | |
Exporter:: |
protected | property | ||
Exporter:: |
protected | property | ||
Exporter:: |
protected | property | ||
Exporter:: |
public | function |
Adds/Updates a single setting by name. Overrides ExporterInterface:: |
|
Exporter:: |
protected | function | ||
Exporter:: |
public | function |
Export data as a string Overrides ExporterInterface:: |
1 |
Exporter:: |
protected | function | Return a string as a safe filename | |
Exporter:: |
public | function |
Format a single column with format by string Overrides ExporterInterface:: |
1 |
Exporter:: |
public | function |
Return the ExportDataInterface object Overrides ExporterInterface:: |
|
Exporter:: |
public | function |
Get the filename Overrides ExporterInterface:: |
|
Exporter:: |
public | function |
Return an array containing the header row values for a page Overrides ExporterInterface:: |
|
Exporter:: |
public | function |
Return the settings object. Overrides ExporterInterface:: |
|
Exporter:: |
public | function |
Return the showPageIds. Overrides ExporterInterface:: |
|
Exporter:: |
public | function |
Overrides ExporterInterface:: |
|
Exporter:: |
public | function |
Set the exporter to hide page ids. Overrides ExporterInterface:: |
|
Exporter:: |
public | function |
Save as a file to the server Overrides ExporterInterface:: |
1 |
Exporter:: |
public | function |
Set the export data object Overrides ExporterInterface:: |
|
Exporter:: |
public | function |
Getter/Setter for the filename Overrides ExporterInterface:: |
|
Exporter:: |
public | function |
Set the settings object. Overrides ExporterInterface:: |
|
Exporter:: |
protected | function | Setup default values on object data. | 1 |
Exporter:: |
public | function |
Set a title for the exported document Overrides ExporterInterface:: |
1 |
Exporter:: |
public | function |
Set the exporter to display page ids. Overrides ExporterInterface:: |
|
Exporter:: |
public | function | Constructor | 4 |