title, ENT_QUOTES, "UTF-8") . "\"\n"); fwrite($fp, " content=\"" . htmlspecialchars($this->content, ENT_QUOTES, "UTF-8") . "\">\n"); fwrite($fp, " \n"); } public function show() { global $DATA_DIR, $modules; $str = Markdown($this->content); if(preg_match_all("/\[\[([a-zA-Z0-9_]+)\]\]/", $str, $res)) { $modulecodes = array_unique($res[1]); foreach($modulecodes as $modulecode) { if($modules[$modulecode]) { $modulestr = $modules[$modulecode]->run($modulecode); } else { $modulestr = "

CMS ERROR: Could not find module: [[" . $modulecode . "]]

"; } $str = str_replace("[[" . $modulecode . "]]", $modulestr, $str); } } echo $str; } public function Page($title, $content) { $this->title = $title; $this->content = $content; } } class Pages { private $file; private $pages = array(); public function getPage($title) { return $this->pages[$title]; } public function add($page) { $key = $page->title; $this->pages[$key] = $page; } public function write() { $fp = fopen($this->file, "w"); fwrite($fp, "\n"); fwrite($fp, "\n"); foreach($this->pages as $page) { $page->write($fp); } fwrite($fp, "\n"); fclose($fp); } private function read() { $dom = new DomDocument; $dom->preserveWhiteSpace = TRUE; $dom->load($this->file); $pages = $dom->getElementsByTagName('page'); foreach ($pages as $p) { $page = new Page($p->getAttribute('title'), $p->textContent); $this->add($page); } } public function Pages($file) { $this->file = $file; if(file_exists($file)) $this->read(); } } ?>