protected function renderHorizontalContents($writer, $user)
{
$tableLayout = $this->_repeatLayout === TRepeatLayout::Table;
$hasSeparators = $user->getHasSeparators();
$itemCount = $user->getItemCount();
$columns = $this->_repeatColumns === 0 ? $itemCount : $this->_repeatColumns;
$totalColumns = $hasSeparators ? $columns + $columns : $columns;
$needBreak = $columns < $itemCount;
if ($user->getHasHeader()) {
$this->renderHeader($writer, $user, $tableLayout, $totalColumns, $needBreak);
}
// render items
if ($tableLayout) {
$writer->renderBeginTag('tbody');
$column = 0;
for ($i = 0; $i < $itemCount; ++$i) {
if ($column == 0) {
$writer->renderBeginTag('tr');
}
if (($style = $user->generateItemStyle('Item', $i)) !== null) {
$style->addAttributesToRender($writer);
}
$writer->renderBeginTag('td');
$user->renderItem($writer, $this, 'Item', $i);
$writer->renderEndTag();
$writer->writeLine();
if ($hasSeparators && $i != $itemCount - 1) {
if (($style = $user->generateItemStyle('Separator', $i)) !== null) {
$style->addAttributesToRender($writer);
}
$writer->renderBeginTag('td');
$user->renderItem($writer, $this, 'Separator', $i);
$writer->renderEndTag();
$writer->writeLine();
}
$column++;
if ($i == $itemCount - 1) {
$restColumns = $columns - $column;
if ($hasSeparators) {
$restColumns = $restColumns ? $restColumns + $restColumns + 1 : 1;
}
for ($j = 0; $j < $restColumns; ++$j) {
$writer->write("<td></td>\n");
}
}
if ($column == $columns || $i == $itemCount - 1) {
$writer->renderEndTag();
$writer->writeLine();
$column = 0;
}
}
$writer->renderEndTag();
} else {
$column = 0;
for ($i = 0; $i < $itemCount; ++$i) {
$user->renderItem($writer, $this, 'Item', $i);
if ($hasSeparators && $i != $itemCount - 1) {
$user->renderItem($writer, $this, 'Separator', $i);
}
$column++;
if ($column == $columns || $i == $itemCount - 1) {
if ($needBreak) {
$writer->writeBreak();
}
$column = 0;
}
$writer->writeLine();
}
}
if ($user->getHasFooter()) {
$this->renderFooter($writer, $user, $tableLayout, $totalColumns, $needBreak);
}
}