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; }