/** * Save new page. * * @param array $values * @return Page */ public static function saveNewPage(array $values) { $subpage = new Page(); $subpage->setUid(Curry_Util::getUniqueId()); $subpage->setVisible($values['visible']); $subpage->setEnabled($values['enabled']); $subpage->setIncludeInIndex($values['index']); if ($values['parent_page_id'] == '@root' && !PageQuery::create()->findRoot()) { // Create root node $subpage->makeRoot(); $subpage->setName($values['name']); $subpage->setUrl('/'); // Grant everyone access $pageAccess = new PageAccess(); $pageAccess->setPage($subpage); $permissions = PageAccess::getPermissionTypes(); $grant = array_fill(0, count($permissions), true); $pageAccess->fromArray(array_combine($permissions, $grant)); } else { $parentPage = PageQuery::create()->findPk($values['parent_page_id']); $subpage->insertAsLastChildOf($parentPage); $subpage->setAutoName($values['name']); } $subpage->save(); return $subpage; }