function addAPage($ncat, $unixName, $source, $title) { $now = new ODate(); $nsource = new DB_PageSource(); $nsource->setText($source); $nsource->save(); $nmeta = new DB_PageMetadata(); $nmeta->setTitle($title); $nmeta->setUnixName($unixName); $nmeta->setOwnerUserId(1); $nmeta->save(); $nrev = new DB_PageRevision(); $nrev->setSiteId(1); $nrev->setSourceId($nsource->getSourceId()); $nrev->setMetadataId($nmeta->getMetadataId()); $nrev->setFlagNew(true); $nrev->setDateLastEdited($now); $nrev->setUserId(1); $nrev->obtainPK(); $npage = new DB_Page(); $npage->setSiteId(1); $npage->setCategoryId($ncat->getCategoryId()); $npage->setRevisionId($nrev->getRevisionId()); $npage->setSourceId($nsource->getSourceId()); $npage->setMetadataId($nmeta->getMetadataId()); $npage->setTitle($title); $npage->setUnixName($unixName); $npage->setDateLastEdited($now); $npage->setDateCreated($now); $npage->setLastEditUserId(1); $npage->setOwnerUserId(1); $npage->save(); $nrev->setPageId($npage->getPageId()); $nrev->save(); $ncomp = new DB_PageCompiled(); $ncomp->setPageId($npage->getPageId()); $ncomp->setDateCompiled($now); $ncomp->save(); }
public function restoreSite($nsite, $dump) { $superSettings = $dump['superSettings']; $settings = $dump['settings']; $superSettings->setNew(true); $superSettings->setSiteId($nsite->getSiteId()); $superSettings->save(); // site_settings $settings->setNew(true); $settings->setSiteId($nsite->getSiteId()); $settings->save(); $forumSettings = $dump['forumSettings']; $forumSettings->setNew(true); $forumSettings->setSiteId($nsite->getSiteId()); $forumSettings->save(); // add user as admin $owner = $this->owner; if ($owner) { $admin = new DB_Admin(); $admin->setSiteId($nsite->getSiteId()); $admin->setUserId($owner->getUserId()); $admin->setFounder(true); // will be nonremovable ;-) $admin->save(); $member = new DB_Member(); $member->setSiteId($nsite->getSiteId()); $member->setUserId($owner->getUserId()); $member->setDateJoined(new ODate()); $member->save(); } $categories = $dump['categories']; foreach ($categories as $category) { $cat = clone $category; $cat->setNew(true); $cat->setCategoryId(null); $cat->setSiteId($nsite->getSiteId()); $cat->save(); // get pages $pages = $dump['pages'][$category->getCategoryId()]; foreach ($pages as $page) { $newUnixName = $page->getUnixName(); $now = new ODate(); // create new page object based on the existing page $nsource = new DB_PageSource(); $nsource->setText($page->getTemp("source")); $nsource->save(); $meta = $page->getTemp("meta"); $nmeta = new DB_PageMetadata(); $nmeta->setTitle($meta->getTitle()); $nmeta->setUnixName($newUnixName); if ($owner) { $nmeta->setOwnerUserId($owner->getUserId()); } else { $nmeta->setOwnerUserId($meta->getOwnerUserId()); } $nmeta->save(); $nrev = new DB_PageRevision(); $nrev->setSiteId($nsite->getSiteId()); $nrev->setSourceId($nsource->getSourceId()); $nrev->setMetadataId($nmeta->getMetadataId()); $nrev->setFlagNew(true); $nrev->setDateLastEdited($now); $nrev->setUserId($owner->getUserId()); $nrev->obtainPK(); $npage = new DB_Page(); $npage->setSiteId($nsite->getSiteId()); $npage->setCategoryId($cat->getCategoryId()); $npage->setRevisionId($nrev->getRevisionId()); $npage->setSourceId($nsource->getSourceId()); $npage->setMetadataId($nmeta->getMetadataId()); $npage->setTitle($page->getTitle()); $npage->setUnixName($newUnixName); $npage->setDateLastEdited($now); $npage->setLastEditUserId($owner->getUserId()); $npage->setOwnerUserId($owner->getUserId()); $npage->save(); $nrev->setPageId($npage->getPageId()); $nrev->save(); $ncomp = new DB_PageCompiled(); $ncomp->setPageId($npage->getPageId()); $ncomp->setDateCompiled($now); $ncomp->save(); } } $od = new Outdater(); $od->recompileWholeSite($nsite); }