mode = $mode; } public function set_type($type) { $this->type = $type; } // ============================================== // data var $data = ""; var $filename = null; public function set_data($data) { $this->data = $data; } public function set_filename($filename) { $this->filename = $filename; } // ============================================== // redirect var $redirect = ""; public function set_redirect($redirect) { $this->redirect = $redirect; } // ============================================== // page var $title = ""; var $heading = ""; var $subheading = ""; var $quicknav = ""; var $headers = array(); var $blocks = array(); public function set_title($title) { $this->title = $title; } public function set_heading($heading) { $this->heading = $heading; } public function set_subheading($subheading) { $this->subheading = $subheading; } public function add_header($line, $position=50) { while(isset($this->headers[$position])) $position++; $this->headers[$position] = $line; } public function add_block($block) { $this->blocks[] = $block; } // ============================================== public function display($context) { header("Content-type: {$this->type}"); header("X-Powered-By: SCore-".SCORE_VERSION); switch($this->mode) { case "page": header("Cache-control: no-cache"); usort($this->blocks, "blockcmp"); $layout = new Layout(); $layout->display_page($context); break; case "data": if(!is_null($this->filename)) { header('Content-Disposition: attachment; filename='.$this->filename); } print $this->data; break; case "redirect": header("Location: {$this->redirect}"); print "You should be redirected to {$this->redirect}"; break; default: print "Invalid page mode"; break; } } } ?>