public static function setupRevisionByPage(Xcck_PageObject $page) { $handler = Legacy_Utils::getModuleHandler('revision', $page->getDirname()); $revision = $handler->get($page->get('page_id')); if (!$revision instanceof Xcck_RevisionObject) { $revision = $handler->create(); } else { $revision->setNew(); $revision->set('revision_id', 0); } $revision->set('page_id', $page->get('page_id')); $revision->set('title', $page->get('title')); $revision->set('category_id', $page->get('category_id')); $revision->set('maintable_id', $page->get('maintable_id')); $revision->set('p_id', $page->get('p_id')); $revision->set('descendant', $page->get('descendant')); $revision->set('uid', $page->get('uid')); $revision->set('status', $page->get('status')); $revision->set('weight', $page->get('weight')); $revision->set('updatetime', $page->get('updatetime')); $revision->mImage = $page->mImage; $revision->mTag = $page->mTag; $revision->mLatlng = $page->mLatlng; $page->loadDefinition(); foreach ($page->mDef as $def) { $revision->set($def->getShow('field_name'), $page->get($def->getShow('field_name'))); } return $revision; }
/** * @return bool */ protected function _deleteSubtable(Xcck_PageObject $obj) { //delete subtable $dirnames = Legacy_Utils::getDirnameListByTrustDirname('xcck'); foreach ($dirnames as $dirname) { if (Xcck_Utils::getModuleConfig($dirname, 'maintable') == $obj->getDirname()) { return Legacy_Utils::getModuleHandler('page', $dirname)->deleteAll(new Criteria('maintable_id', $obj->get('page_id'))); } } }