wenpai.org/wp-content/plugins/bbp-style-pack/modtools/bbpress-modtools.php
2024-06-21 23:57:39 +08:00

100 lines
No EOL
2.1 KiB
PHP

<?php
class bspbbPressModToolsPlugin {
protected $plugin_slug = 'moderation-tools-bbpress';
protected $version = '1.2.0';
public function __construct() {
add_action( 'init', array( $this, 'on_loaded' ) );
}
public function on_loaded() {
$this->update();
}
/**
* perform any updates needed where database changes have happened
* @since 1.0.0
*/
private function update() {
$current_version = get_option( $this->plugin_slug . '-version' );
if ( version_compare( $current_version, '0.1.3' ) == -1 ) {
// Change moderation options
$moderation_type = get_option( '_bbp_moderation_type' );
if( 'links' == $moderation_type || 'users' == $moderation_type ) {
update_option( '_bbp_moderation_type', 'custom' );
update_option( '_bbp_moderation_custom', array( $moderation_type ) );
}
}
if ( $current_version >= '1.1.0' && get_option( '_bbp_active_notification_post_held' ) === false ) {
update_option( '_bbp_active_notification_post_held', 1 );
}
if ( get_option( '_bbp_moderation_post_types' ) === false ) {
update_option( '_bbp_moderation_post_types', array( 'topic', 'reply' ) );
}
update_option( $this->plugin_slug . '-version', $this->version );
}
/**
* Function to check whether user can moderate the current forum. Added ready for bbPress 2.6
* @since 1.0.0
* @param $user_id
* @param $forum_id
* @return bool
*/
protected function user_can_moderate( $user_id = 0, $forum_id = 0 ) {
if ( ! $user_id ) {
$user_id = get_current_user_ID();
}
if ( ! $forum_id ) {
$forum_id = bbp_get_forum_id();
}
$user_can_moderate = user_can( $user_id, 'moderate' );
if ( function_exists( 'bbp_is_user_forum_moderator' ) && ! $user_can_moderate ) {
$user_can_moderate = bbp_is_user_forum_moderator( $user_id, $forum_id );
}
/**
* Filters whether the given user can moderate a specific forum.
*
* @param bool $user_can_moderate
* @param int $user_id
* @param int $forum_id
*/
return apply_filters( 'bbp_modtools_user_can_moderate', $user_can_moderate, $user_id, $forum_id );
}
}
$bbPressModTools = new bspbbPressModToolsPlugin();