/**
  * 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">&laquo;</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">&raquo;</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;
 }