Prado\Web\UI\WebControls\TRepeatInfo::renderHorizontalContents PHP Method

renderHorizontalContents() protected method

Renders contents in horizontal repeat direction.
protected renderHorizontalContents ( $writer, $user )
    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);
        }
    }