/** * If configured, prints the table pagination to navigate to a next set of data * @param Table $tableHelper * @return string */ public static function printPagination(Table $tableHelper) { $maxPages = $tableHelper->getTableModel()->getMaxPageNumber(); $currentPage = $tableHelper->getTableModel()->getPageNumber(); $html = '<nav class="text-center"><ul class="pagination">'; $html .= sprintf('<li class="%s"><a href="%s" aria-label="Previous"><span aria-hidden="true">«</span></a></li>', $currentPage <= 1 ? 'disabled' : '', $tableHelper->getView()->UrlWithQuery(array('page' => $currentPage - 1))); for ($i = 1; $i <= $maxPages; $i++) { $html .= $i == $currentPage ? '<li class="active">' : '<li>'; $html .= sprintf('<a href="%s">%d</a></li>', $tableHelper->getView()->UrlWithQuery(array('page' => $i)), $i); } $html .= sprintf('<li class="%s"><a href="%s" aria-label="Next"><span aria-hidden="true">»</span></a></li>', $currentPage >= $maxPages ? 'disabled' : '', $tableHelper->getView()->UrlWithQuery(array('page' => $currentPage + 1))); $html .= '</ul></nav>'; return $html; }
/** * 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; }
/** * If the TableModel contains FilterData this method will fill the element with these values * * @param ElementInterface $element * @param $fieldName * @param Table $tableHelper * @return Element */ public static function setElementValues(ElementInterface $element, $fieldName, Table $tableHelper) { $values = $tableHelper->getTableModel()->getPrefetchedValuesByName($fieldName); if ($values && method_exists($element, 'setValueOptions')) { $valueOptions = array(); foreach ($values as $value) { if ($value instanceof \DateTime) { $valueOptions[$value->format('Y-m-d')] = $value->format('Y-m-d'); continue; } $valueOptions[$value] = $value; } $element->setValueOptions($valueOptions); } if (method_exists($element, 'setEmptyOption')) { $emptyLabel = $tableHelper->getView()->Translate('Select') . ' ' . $tableHelper->getView()->Translate($fieldName); $element->setEmptyOption($emptyLabel); } return $element; }