File "locks.php"
Full Path: /home/jlklyejr/public_html/wp-content/test/test/wp-content/plugins/bbpress/includes/common/locks.php
File size: 1.82 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* bbPress Locking
*
* @package bbPress
* @subpackage Common
*/
// Exit if accessed directly
defined( 'ABSPATH' ) || exit;
/**
* Check to see if the post is currently being edited by another user.
*
* @see wp_check_post_lock()
*
* @since 2.6.0 bbPress (r6340)
*
* @param int $post_id ID of the post to check for editing
* @return integer False: not locked or locked by current user. Int: user ID of user with lock.
*/
function bbp_check_post_lock( $post_id = 0 ) {
// Bail if no post
if ( !$post = get_post( $post_id ) ) {
return false;
}
// Bail if no lock
if ( !$lock = get_post_meta( $post->ID, '_edit_lock', true ) ) {
return false;
}
// Get lock
$lock = explode( ':', $lock );
$time = $lock[0];
$user = (int) isset( $lock[1] )
? $lock[1]
: get_post_meta( $post->ID, '_edit_last', true );
// Filter editing window duration
$time_window = apply_filters( 'bbp_check_post_lock_window', 3 * MINUTE_IN_SECONDS );
// Return user who is or last edited
if ( ! empty( $time ) && ( $time > ( time() - $time_window ) ) && ( $user !== bbp_get_current_user_id() ) ) {
return (int) $user;
}
return false;
}
/**
* Mark the post as currently being edited by the current user
*
* @since 2.6.0 bbPress (r6340)
*
* @param int $post_id ID of the post to being edited
* @return bool|array Returns false if the post doesn't exist of there is no current user, or
* an array of the lock time and the user ID.
*/
function bbp_set_post_lock( $post_id = 0 ) {
// Bail if no post
if ( !$post = get_post( $post_id ) ) {
return false;
}
// Bail if no user
if ( 0 == ( $user_id = get_current_user_id() ) ) {
return false;
}
// Get time & lock value
$now = time();
$lock = "{$now}:{$user_id}";
// Set lock value
update_post_meta( $post->ID, '_edit_lock', $lock );
return array( $now, $user_id );
}