Contao\ContentTable::compile PHP Метод

compile() защищенный Метод

Generate the content element
protected compile ( )
    protected function compile()
    {
        $rows = \StringUtil::deserialize($this->tableitems);
        $this->Template->id = 'table_' . $this->id;
        $this->Template->summary = \StringUtil::specialchars($this->summary);
        $this->Template->useHeader = $this->thead ? true : false;
        $this->Template->useFooter = $this->tfoot ? true : false;
        $this->Template->useLeftTh = $this->tleft ? true : false;
        $this->Template->sortable = $this->sortable ? true : false;
        $arrHeader = array();
        $arrBody = array();
        $arrFooter = array();
        // Table header
        if ($this->thead) {
            foreach ($rows[0] as $i => $v) {
                // Set table sort cookie
                if ($this->sortable && $i == $this->sortIndex) {
                    $co = 'TS_TABLE_' . $this->id;
                    $so = $this->sortOrder == 'descending' ? 'desc' : 'asc';
                    if (\Input::cookie($co) == '') {
                        \System::setCookie($co, $i . '|' . $so, 0);
                    }
                }
                // Add cell
                $arrHeader[] = array('class' => 'head_' . $i . ($i == 0 ? ' col_first' : '') . ($i == count($rows[0]) - 1 ? ' col_last' : '') . ($i == 0 && $this->tleft ? ' unsortable' : ''), 'content' => $v != '' ? nl2br_html5($v) : ' ');
            }
            array_shift($rows);
        }
        $this->Template->header = $arrHeader;
        $limit = $this->tfoot ? count($rows) - 1 : count($rows);
        // Table body
        for ($j = 0; $j < $limit; $j++) {
            $class_tr = '';
            if ($j == 0) {
                $class_tr .= ' row_first';
            }
            if ($j == $limit - 1) {
                $class_tr .= ' row_last';
            }
            $class_eo = $j % 2 == 0 ? ' odd' : ' even';
            foreach ($rows[$j] as $i => $v) {
                $class_td = '';
                if ($i == 0) {
                    $class_td .= ' col_first';
                }
                if ($i == count($rows[$j]) - 1) {
                    $class_td .= ' col_last';
                }
                $arrBody['row_' . $j . $class_tr . $class_eo][] = array('class' => 'col_' . $i . $class_td, 'content' => $v != '' ? nl2br_html5($v) : '&nbsp;');
            }
        }
        $this->Template->body = $arrBody;
        // Table footer
        if ($this->tfoot) {
            foreach ($rows[count($rows) - 1] as $i => $v) {
                $arrFooter[] = array('class' => 'foot_' . $i . ($i == 0 ? ' col_first' : '') . ($i == count($rows[count($rows) - 1]) - 1 ? ' col_last' : ''), 'content' => $v != '' ? nl2br_html5($v) : '&nbsp;');
            }
        }
        $this->Template->footer = $arrFooter;
    }
ContentTable