Esempio n. 1
0
 protected static function doCreatePage($oPageGroup, $sPageName, $sPageLang, $oContent, $oContentSimilar, $bSecurityChecks, $nChangeType, $nTime, $sChangeComment)
 {
     if (!self::isAvailablePageName($sPageName)) {
         throw new AnwPageAlreadyExistsException();
     }
     $oNewPage = new AnwPageByName($sPageName);
     $oNewPage->setLang($sPageLang);
     $oNewPage->setPageGroupBeforePageCreation($oPageGroup);
     $oNewPage->_setContent($oContent, $oContentSimilar, $bSecurityChecks);
     $oNewPage->nCreationTime = $nTime;
     //update some attributes
     $oNewPage->touchInfos($nTime);
     //get new change ID
     $oChange = new AnwChange($nChangeType, $oNewPage, $nTime, $sChangeComment);
     AnwStorage::transactionStart();
     try {
         //save
         AnwStorage::createPage($oNewPage, $oChange, '_storage_cbk_create');
         //set id
         //notify change
         $oNewPage->notifyChanged();
         AnwStorage::transactionCommit();
         // wait for commit success before notifying the pagegroup
         $oNewPage->setPageGroupAfterPageCreation($oPageGroup);
     } catch (AnwException $e) {
         AnwStorage::transactionRollback();
         throw $e;
     }
     return $oNewPage;
 }