/** * Wrapper foreach row in the table * * @param TableRowModel $tableRow * @param Table $tableHelper * @return string */ public static function printTableRow(TableRowModel $tableRow, Table $tableHelper) { $html = ''; /** @var TableHeaderCellModel $tableHeader */ foreach ($tableHelper->getDisplayedHeaders() as $tableHeader) { $cell = $tableRow->getCell($tableHeader->getSafeName()); if ($cell) { $html .= self::printTableCell($tableHelper->getDataStrategyResolver(), $cell); } else { $html .= self::printCustomTableCell($tableHeader, $tableRow); // $html .= self::printMultiDeleteCheckbox($tableRow, $tableHelper->getTableModel()); $var = 1; } } if (in_array('simpleSearch', $tableHelper->getDisplaySettings())) { /** @var TableFilterModel $filter */ foreach ($tableHelper->getAdditionalFilters() as $filter) { $html .= self::printTableCell($tableHelper->getDataStrategyResolver(), $filter->getInstance()->getFilterCellValue($tableRow)); } } if (in_array('actionRoutes', $tableHelper->getDisplaySettings())) { $links = $tableHelper->getTableModel()->getOptionRoutes(); $links = self::getLinksFromListeners($tableHelper, $tableRow, $links); $html .= '<td class="kolom rowOptions"><span class="pull-right iconenNaarLinks">'; foreach ($links as $action => $url) { $html .= self::getActionLink($action, $url, $tableRow->getCellValue('id'), $tableHelper); } $html .= '</span></td>'; } return $html; }
/** * Resolves tableHeaders and additional filters into a single array of * Zend ElementInterface forms * * @param Table $tableHelper * @return \Zend\Form\ElementInterface[] */ public static function getFilterElements(Table $tableHelper) { $elements = array(); // Get all filters that can be placed above a header foreach ($tableHelper->getDisplayedHeaders() as $tableHeader) { $filter = $tableHeader->getFilter(); if ($filter) { // 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 ($tableHelper->getTableModel()->getPrefetchedValuesByName($tableHeader->getName())) { $dataType = "Array"; } $filterName = 'search[' . $filter->getName() . ']'; $element = $tableHelper->getDataStrategyResolver()->displayFilterForDataType($filterName, $dataType); self::setElementCurrentValue($element, $tableHeader->getSafeName(), $tableHelper->getTableModel()); if ($dataType == "Array") { self::setElementValues($element, $tableHeader->getName(), $tableHelper); } } else { $element = new Element\Hidden('search[' . $tableHeader->getName() . ']'); } $elements[] = $element; } // Append additional filters foreach ($tableHelper->getAdditionalFilters() as $filter) { $filterElement = $filter->getInstance()->getFilterElement($filter); $filterElement->setName('search[' . $filterElement->getName() . ']'); $elements[] = $filterElement; continue; } return $elements; }