예제 #1
0
 /**
  * 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;
 }