本文整理汇总了PHP中SiteTree::lock方法的典型用法代码示例。如果您正苦于以下问题:PHP SiteTree::lock方法的具体用法?PHP SiteTree::lock怎么用?PHP SiteTree::lock使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SiteTree
的用法示例。
在下文中一共展示了SiteTree::lock方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getEditingLocks
/**
* Lock the page for editing
*
* @param SiteTree $page
* The page being edited
* @param boolean $doLock
* Whether to actually lock the page for ourselves
* @return array
* The names of any existing editors
*/
protected function getEditingLocks($page, $doLock = false)
{
$currentStage = Versioned::current_stage();
Versioned::reading_stage('Stage');
$filter = array('WikiPage.ID' => $page->ID, 'WikiLockExpiry' => date('Y-m-d H:i:s'));
$user = Member::currentUser();
$currentLock = WikiPage::get()->filter($filter)->first();
$lock = null;
if ($currentLock && $currentLock->ID) {
// if there's a current lock in place, lets return that value
$lock = array('user' => $currentLock->WikiLastEditor, 'expires' => $currentLock->WikiLockExpiry);
}
// If we're trying to take the lock, make sure that a) there's no existing
// lock or b) we currently hold the lock
if ($doLock && ($currentLock == null || !$currentLock->ID || $currentLock->WikiLastEditor == $user->Email)) {
$page->lock();
}
Versioned::reading_stage($currentStage);
return $lock;
}