/** * Adds a page. * * @param Page $page the page * @throws Exception if a page with the same ID already exists */ public function addPage(Page $page) { if (isset($this->pages[$page->getID()])) { throw new Exception("Page {$page->getID()} already exists"); } $this->pages[$page->getID()]['id'] = $page->getID(); $this->pages[$page->getID()]['title'] = $page->getTitle(); $this->pages[$page->getID()]['module'] = $page->getModule(); $this->pages[$page->getID()]['defaultTask'] = $page->getDefaultTask(); $this->pages[$page->getID()]['defaultParameter'] = $page->getDefaultParameter(); $this->pages[$page->getID()]['defaultFormat'] = $page->getDefaultFormat(); $this->pages[$page->getID()]['template'] = $page->getTemplate(); $this->pages[$page->getID()]['needsHTTPS'] = $page->needsHTTPS(); $gid = $page->getGID(); if ($gid === null) { $gid = $this->gid->encode($this->gid->getType('page'), $page->getID()); } $this->pages[$page->getID()]['gid'] = $gid; $this->store(); }