/**
  * 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;
 }