/** * Execution of the view helper * * @param TableModel $tableModel * @param array $displaySettings * @return null|string */ public function __invoke(TableModel $tableModel, $displaySettings = array('columnsForm', 'pagination', 'ordering', 'simpleSearch', 'actionRoutes')) { $this->escaper = new Escaper('utf-8'); $this->translator = $this->getView()->plugin('translate')->getTranslator(); $this->setTableModel($tableModel); $this->displaySettings = $displaySettings; $this->dataStrategyResolver = new StrategyResolver($tableModel->getDataTypes()); $this->dataStrategyResolver->addDependency($this->getView(), 'Zend\\View\\Renderer\\RendererInterface'); $output = $this->printSettings(); $output .= $this->printTable(); $output .= $this->printPaginator(); $this->addStylingToView(); return $output; }
/** * Resolves tableHeaders and additional filters into a single array of * Zend ElementInterface forms * * @return ElementInterface[] */ protected function getFilterElements() { $elements = array(); // Get all filters that can be placed above a header foreach ($this->tableHeaders as $tableHeader) { $filter = $tableHeader->getFilter(); // Are you a extra configured filter, good we'll call you directly if (!is_null($filter->getInstance())) { $filterElement = $filter->getInstance()->getFilterElement(); $filterElement->setName('search[' . $filterElement->getName() . ']'); $elements[] = $filterElement; continue; } // No filter instance has been configured, create a new FormElement throughout the strategy resolver $dataType = $tableHeader->getDataType(); if ($this->tableModel->getPrefetchedValuesByName($tableHeader->getName())) { $dataType = "Array"; } $filterName = 'search[' . $filter->getName() . ']'; $element = $this->dataStrategyResolver->displayFilterForDataType($filterName, $dataType); $this->setElementCurrentValue($element, $tableHeader->getSafeName()); if ($dataType == "Array") { $this->setElementValues($element, $tableHeader->getName()); } $elements[] = $element; } // Append additional filters foreach ($this->additionalFilters as $filter) { $filterElement = $filter->getInstance()->getFilterElement($filter); $filterElement->setName('search[' . $filterElement->getName() . ']'); $elements[] = $filterElement; continue; } return $elements; }
/** * Wraps the content cell in a <td> element * * @param TableCellModel $cell * @param string $tdClass * @return string * @internal param $cellValue * @internal param string $cellName */ protected function printTableContentCell(TableCellModel $cell = null, $tdClass = "kolom") { $html = '<td class="' . $tdClass . '">'; if (!is_null($cell)) { $html = sprintf("<td class=\"%s\">", $tdClass . " " . $cell->getSafeName()); $html .= $this->dataStrategyResolver->resolveAndParse($cell->getValue(), $cell->getName()); } $html .= '</td>'; return $html; }
/** * Wraps the content cell in a <td> element * * @param $dataStrategyResolver * @param TableCellModel $cell * @param string $tdClass * @return string */ public static function printTableCell(StrategyResolver $dataStrategyResolver, TableCellModel $cell, $tdClass = "kolom") { return sprintf("<td class=\"%s\">", $tdClass . " " . $cell->getSafeName()) . $dataStrategyResolver->resolveAndParse($cell->getValue(), $cell->getName()) . '</td>'; }