Grid_Basic::precacheTemplate PHP Method

precacheTemplate() public method

Precaches template chunks.
public precacheTemplate ( )
    public function precacheTemplate()
    {
        // Extract template chunks from grid template
        // header
        $header = $this->template->cloneRegion('header');
        $header_col = $header->cloneRegion('col');
        $header_sort = $header_col->cloneRegion('sort');
        $header->del('cols');
        // data row and column
        $row = $this->row_t;
        $col = $row->cloneRegion('col');
        $row->setHTML('row_id', '{$id}');
        $row->trySetHTML('odd_even', '{$odd_even}');
        $row->del('cols');
        // totals row and column
        if ($t_row = $this->totals_t) {
            $t_col = $t_row->cloneRegion('col');
            $t_row->del('cols');
        }
        // Add requested columns to row templates
        foreach ($this->columns as $name => $column) {
            // header row
            $header_col->set('descr', $column['descr'])->trySet('type', $column['type']);
            // sorting
            // TODO: rewrite this (and move into Advanced)
            if (isset($column['sortable'])) {
                $s = $column['sortable'];
                $header_sort->trySet('order', $s[0])->trySet('sorticon', $this->sort_icons[$s[0]]);
                $header_col->trySet('sortid', $sel = $this->name . '_sort_' . $name)->setHTML('sort', $header_sort->render());
                $this->js('click', $this->js()->reload(array($this->name . '_sort' => $s[1])))->_selector('#' . $sel);
            } else {
                $header_col->del('sort')->tryDel('sortid')->tryDel('sort_del');
            }
            // add thparams for header columns
            if ($column['thparam']) {
                $header_col->trySetHTML('thparam', $column['thparam']);
            } else {
                $header_col->tryDel('thparam');
            }
            $header->appendHTML('cols', $header_col->render());
            // data row
            $col->del('content')->setHTML('content', '{$' . $name . '}')->setHTML('tdparam', '{tdparam_' . $name . '}style="white-space:nowrap"{/}');
            $row->appendHTML('cols', $col->render());
            // totals row
            if (isset($t_row) && isset($t_col)) {
                $t_col->del('content')->setHTML('content', '{$' . $name . '}')->trySetHTML('tdparam', '{tdparam_' . $name . '}style="white-space:nowrap"{/}');
                $t_row->appendHTML('cols', $t_col->render());
            }
        }
        // Generate templates from rendered strings
        // header
        $this->template->setHTML('header', $this->show_header ? $header->render() : '');
        // data row
        $this->row_t = $this->app->add('GiTemplate');
        /** @type GiTemplate $this->row_t */
        $this->row_t->loadTemplateFromString($row->render());
        // totals row
        if (isset($t_row) && $this->totals_t) {
            $this->totals_t = $this->app->add('GiTemplate');
            /** @type GiTemplate $this->totals_t */
            $this->totals_t->loadTemplateFromString($t_row->render());
        }
    }

Usage Example

Beispiel #1
0
 function precacheTemplate()
 {
     parent::precacheTemplate();
     $this->row_t->set('tdparam_value', '');
 }