コード例 #1
0
    function show($return_string = false)
    {
        // make sure we have a columns array
        if (!isset($this->conf['columns']) || !is_array($this->conf['columns'])) {
            $this->conf['columns'] = array();
        }
        if (!isset($this->conf['template'])) {
            $this->conf['template'] = '';
        }
        if (!isset($this->conf['rowtemplate'])) {
            $this->conf['rowtemplate'] = '';
        }
        // get compound template class
        $_list = new xoxCompoundTemplate($this->conf['template'], $this->conf['rowtemplate'], '');
        // build default master template if none is set
        if (empty($this->conf['template'])) {
            $_master = '<style type="text/css">
				td { background-color: #fff; }
				td.odd { background-color: #eee; }
				td a { text-decoration:none; display:block; }
				td a:hover { background-color: #ffe; }
				</style><table>';
            if (count($this->conf['columns']) > 0) {
                $_master .= '<tr>';
                foreach ($this->conf['columns'] as $name => $column) {
                    if (!preg_match('/^\\^/', $column->name)) {
                        $_caption = empty($column->title) ? $name : $column->title;
                        $_width = $column->width > 0 ? ' width="' . $column->width . '"' : '';
                        $_master .= '<th' . $_width . '>' . $_caption . '</th>';
                        $_list->setVar('ls_' . $name, $_caption, 0);
                    }
                }
                $_master .= '</tr>';
            }
            $_master .= '%SUB0001%</table>';
            $_list->templates[0]->parsed_template = $_master;
        }
        // build default sub template if none is set
        if (empty($this->conf['rowtemplate'])) {
            if (count($this->conf['columns']) > 0) {
                $_sub = '';
                $_link = '';
                $_unlink = '';
                foreach ($this->conf['columns'] as $name => $column) {
                    if (preg_match('/^\\^/', $column->name)) {
                        $_link = '<a href="' . $this->linkurl . $name . '=%' . $name . '%" target="' . $this->linktarget . '" title="' . $this->linktooltip . '">';
                        $_unlink = '</a>';
                    } else {
                        $_align = $column->type == DCO_DATA_INTEGER ? ' align="right"' : '';
                        $_sub .= '<td%_odd_class%' . $_align . '>' . $_link . '%' . $name . '%' . $_unlink . '</td>';
                    }
                }
                $_sub = $_link . '<tr>' . $_sub . '</tr>' . $_unlink;
            }
            $_list->templates[1]->parsed_template = $_sub;
        }
        $_i = 0;
        foreach ($this->conf['data'] as $rowid => $row) {
            $_list->setVar('_odd_class', $_i++ % 2 == 0 ? ' class="odd"' : '', 1, $rowid);
            foreach ($row as $key => $value) {
                if (isset($this->conf['columns'][$key])) {
                    $this->conf['columns'][$key]->set($value);
                    #echo "Setting $key for row $rowid to ".$this->conf['columns'][$key]->get()."<br />";
                    $sval = $this->conf['columns'][$key]->get();
                    if ($this->allow_wrap) {
                        $sval = str_replace('<br>', '<br />', $sval);
                    } else {
                        $sval = str_replace('<br', '<span', $sval);
                    }
                    $_list->setVar($key, $sval, 1, $rowid);
                }
            }
        }
        if ($return_string) {
            $return_string = '';
            if ($this->paging) {
                $return_string .= showResultNavigation() . '<br />';
            }
            $return_string .= $_list->show(true);
            if ($this->paging) {
                $return_string .= '<br />' . showResultNavigation();
            }
            return $return_string;
        } else {
            if ($this->paging) {
                echo showResultNavigation() . '<br />';
            }
            $_list->show();
            if ($this->paging) {
                echo '<br />' . showResultNavigation();
            }
        }
        return true;
    }
コード例 #2
0
function drawList($data, $showHeader = true)
{
    $show_pagenav = FALSE;
    //mydump($data, "data");
    if (!is_array($data['data'])) {
        $data['data'] = getResultList($data['data']);
        $show_pagenav = TRUE;
    }
    //mydump($data, "data");
    if ($data['link'] == 0) {
        $data['link'] = array('new' => '#', 'edit' => '#', 'detail' => '#', 'delete' => '#', 'copy' => '#', 'save' => '#', 'back' => '#');
    }
    $num_entries = $GLOBALS['num_results'];
    // is_array($entries)?count($entries):0;
    $list = '';
    $sortdata = empty($data['sort']) ? '' : $data['sort'];
    if ($sortdata) {
        $list .= '<form name="sort" method="POST" action="' . $data['link']['save'] . '"><input type="hidden" name="p" value="" />';
    }
    if ($showHeader) {
        $list .= drawListHeader($data['headline'], $data['body'], $num_entries, $data['link']);
    }
    $list .= drawListEntries($data['tablehead'], $data['data'], $data['buttons'], $data['link'], $sortdata);
    if ($sortdata) {
        $list .= '</form>';
    }
    if ($show_pagenav) {
        $list .= showResultNavigation();
    }
    return $list;
}