1: <?php namespace mechanicious\Extensions\Bs3Table;
2:
3: use mechanicious\TablemanExtension\TablemanExtension;
4: use mechanicious\TablemanExtension\Config;
5: use mechanicious\Tableman\Tableman;
6: use Jacopo\Bootstrap3Table\BootstrapTable;
7:
8: 9: 10:
11: class Bs3Table extends TablemanExtension
12: {
13:
14: 15: 16: 17: 18: 19: 20: 21: 22:
23: public function make(Tableman &$ref, Config $conf)
24: {
25: $items = $ref->getColumns();
26: $columnNames = $ref->getColumnHeaders();
27: $rows = $ref->getRows();
28:
29: $table = new BootstrapTable();
30: $table->setConfig($conf->get('config'));
31: $table->setHeader($conf->get('header'));
32: $table->setTableExtraClasses($conf->get('extra_classes'));
33: $limit = $conf->get('limit');
34:
35: array_walk($rows, function($row, $rowIndex) use(&$table, &$columnNames, $limit) {
36: if( ! is_null($limit) && $rowIndex > $limit) return;
37:
38: foreach($columnNames as $columnName)
39: {
40: $flattenRows = array();
41: foreach($row as $columnHeader => $cell)
42: {
43: $mockedRow = array();
44: if(isset($row[$columnName]))
45: $mockedRow[] = array($row[$columnName]);
46: }
47: $flattenRows[] = $row;
48: }
49: $table->addRows(array_flatten($flattenRows));
50: });
51:
52: return (string) $table;
53: }
54: }