/** * Parses the template and executes the listing * @return void Prints the listing */ public function execute() { if ($this->template == null) { Kernel::Log('There\'s no template, cannot generate listing'); return false; } else { $columns = Text::parseStringVar($this->template); foreach ($columns as $key => $i) { if (in_array($i, array_keys($this->vars))) { unset($columns[$key]); } } if (isset($this->options['max_regs']) && isset($this->options['page_index'])) { if ($this->options['max_regs'] < 2) { Kernel::Log('The max_regs option must be higher than 1'); return false; } $rows_page = $this->options['max_regs']; $index = $this->options['page_index']; if (isset($this->options['criteria'])) { $this->options['criteria'] = ' ' . $this->options['criteria']; } else { $this->options['criteria'] = ''; } $rows = Sql::numRows('SELECT ' . implode(', ', $columns) . ' FROM ' . $this->table . $this->options['criteria']); if (!isset($this->options['template_pag'])) { $pag = new HTMLObj('div'); $pag->class = "sonicwulf_pages"; } else { $pag_html = ''; } for ($i = 0; $i <= ceil($rows / $this->options['max_regs']) - 1; $i++) { if (!isset($this->options['template_pag'])) { $div = $pag->addChild('a'); $div->addContent($i); $div->href = $_SERVER['PHP_SELF'] . '?' . $this->options['get_name'] . '=' . $i; $div->class = 'sonicwulf_pagenum'; } else { $parse = Text::parseStringVar($this->options['template_pag']); if (in_array('href', $parse)) { $pag_html .= str_replace('%page_link%', $_SERVER['PHP_SELF'] . '?' . $this->options['get_name'] . '=' . $i, $this->options['template_pag']); } else { Kernel::Log('There\'s no HREF attribute on the template, please add the atrribute'); return false; } } } if (!isset($this->options['template_pag'])) { $pag_html = $pag->executeNoFormat(); } } else { $rows_page = null; $index = null; $pag_html = null; } foreach ($this->getQuery($columns, $rows_page, $index) as $reg) { $string = $this->template; foreach ($columns as $i) { if (isset($reg[$i])) { $string = str_replace("%" . $i . "%", $reg[$i], $string); } } foreach ($this->vars as $key => $i) { if (is_array($i)) { $data = Sql::fetch("SELECT " . $i[0] . " FROM " . $i[1] . $i[2]); $string = str_replace("%" . $key . "%", $data[0][$i[0]], $string); } else { $string = str_replace("%" . $key . "%", $i, $string); } } echo $string; } echo $pag_html; } }