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; }
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; }