code/pages/WikiPage.php
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;
	}
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;
	}
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 ; }
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
Lock the page for editing