public function testTdClassNamesRendererGetsView() { $this->assertInstanceOf('Dewdrop\\View\\View', $this->helper->getTdClassNamesRenderer()->getView()); }
/** * Render the <tbody> with the TableCell.Content helper to allow * each field's cell content to be modified. * * @param Fields $fields * @param array $data * @param TableCellHelper $renderer * @return string */ public function renderBody(Fields $fields, array $data, TableCellHelper $renderer) { $rowIndex = 0; $out = '<tbody>'; foreach ($data as $row) { $classes = $renderer->getRowClasses($row); if (!is_array($classes) || !count($classes)) { $out .= '<tr>'; } else { $out .= sprintf('<tr class="%s">', implode(' ', array_map([$this->view, 'escapeHtmlAttr'], $classes))); } $columnIndex = 0; foreach ($fields as $field) { $out .= sprintf('<td class="%s">', $renderer->getTdClassNamesRenderer()->render($field, $row, $rowIndex, $columnIndex)); $out .= $renderer->getContentRenderer()->render($field, $row, $rowIndex, $columnIndex); $out .= '</td>'; $columnIndex += 1; } $out .= '</tr>'; $rowIndex += 1; } $out .= '</tbody>'; return $out; }
/** * Render the supplied non-grouped fields in a Bootstrap table. * * @param Fields $fields * @param array $data * @param Renderer $renderer * @return string */ protected function renderFields(Fields $fields, array $data, Renderer $renderer) { $rowIndex = 0; $out = '<div class="table-responsive">'; $out .= '<table class="table">'; foreach ($fields->getVisibleFields() as $field) { $out .= '<tr>'; $content = $renderer->getContentRenderer()->render($field, $data, $rowIndex, 1); $classNames = $renderer->getTdClassNamesRenderer()->render($field, $data, $rowIndex, 1); $header = $renderer->getHeaderRenderer()->render($field); if (false !== stripos($content, '<table ')) { $out .= $this->renderTableContentInPanel($header, $classNames, $content); } else { $out .= $this->renderHeaderAndContent($header, $classNames, $content); } $out .= '</tr>'; $rowIndex += 1; } $out .= '</table>'; $out .= '</div>'; return $out; }