updated plugin ActivityPub
version 3.3.3
This commit is contained in:
@ -1,25 +1,25 @@
|
||||
<?php
|
||||
/**
|
||||
* Admin Class.
|
||||
*
|
||||
* @package Activitypub
|
||||
*/
|
||||
|
||||
namespace Activitypub;
|
||||
|
||||
use WP_User_Query;
|
||||
use Activitypub\Model\Blog;
|
||||
use Activitypub\Activitypub;
|
||||
use Activitypub\Collection\Users;
|
||||
|
||||
use function Activitypub\count_followers;
|
||||
use function Activitypub\is_user_disabled;
|
||||
use function Activitypub\was_comment_received;
|
||||
use function Activitypub\is_comment_federatable;
|
||||
use function Activitypub\add_default_actor_extra_fields;
|
||||
use Activitypub\Collection\Extra_Fields;
|
||||
|
||||
/**
|
||||
* ActivityPub Admin Class
|
||||
* ActivityPub Admin Class.
|
||||
*
|
||||
* @author Matthias Pfefferle
|
||||
*/
|
||||
class Admin {
|
||||
/**
|
||||
* Initialize the class, registering WordPress hooks
|
||||
* Initialize the class, registering WordPress hooks,
|
||||
*/
|
||||
public static function init() {
|
||||
\add_action( 'admin_menu', array( self::class, 'admin_menu' ) );
|
||||
@ -27,7 +27,7 @@ class Admin {
|
||||
\add_action( 'load-comment.php', array( self::class, 'edit_comment' ) );
|
||||
\add_action( 'load-post.php', array( self::class, 'edit_post' ) );
|
||||
\add_action( 'load-edit.php', array( self::class, 'list_posts' ) );
|
||||
\add_action( 'personal_options_update', array( self::class, 'save_user_description' ) );
|
||||
\add_action( 'personal_options_update', array( self::class, 'save_user_settings' ) );
|
||||
\add_action( 'admin_enqueue_scripts', array( self::class, 'enqueue_scripts' ) );
|
||||
\add_action( 'admin_notices', array( self::class, 'admin_notices' ) );
|
||||
|
||||
@ -38,7 +38,7 @@ class Admin {
|
||||
\add_filter( 'manage_posts_columns', array( static::class, 'manage_post_columns' ), 10, 2 );
|
||||
\add_action( 'manage_posts_custom_column', array( self::class, 'manage_posts_custom_column' ), 10, 2 );
|
||||
|
||||
\add_filter( 'manage_users_columns', array( self::class, 'manage_users_columns' ), 10, 1 );
|
||||
\add_filter( 'manage_users_columns', array( self::class, 'manage_users_columns' ) );
|
||||
\add_action( 'manage_users_custom_column', array( self::class, 'manage_users_custom_column' ), 10, 3 );
|
||||
\add_filter( 'bulk_actions-users', array( self::class, 'user_bulk_options' ) );
|
||||
\add_filter( 'handle_bulk_actions-users', array( self::class, 'handle_bulk_request' ), 10, 3 );
|
||||
@ -51,7 +51,7 @@ class Admin {
|
||||
}
|
||||
|
||||
/**
|
||||
* Add admin menu entry
|
||||
* Add admin menu entry.
|
||||
*/
|
||||
public static function admin_menu() {
|
||||
$settings_page = \add_options_page(
|
||||
@ -62,22 +62,40 @@ class Admin {
|
||||
array( self::class, 'settings_page' )
|
||||
);
|
||||
|
||||
\add_action( 'load-' . $settings_page, array( self::class, 'add_settings_help_tab' ) );
|
||||
\add_action(
|
||||
'load-' . $settings_page,
|
||||
array( self::class, 'add_settings_help_tab' )
|
||||
);
|
||||
|
||||
// user has to be able to publish posts
|
||||
// User has to be able to publish posts.
|
||||
if ( ! is_user_disabled( get_current_user_id() ) ) {
|
||||
$followers_list_page = \add_users_page( \__( 'Followers', 'activitypub' ), \__( 'Followers', 'activitypub' ), 'read', 'activitypub-followers-list', array( self::class, 'followers_list_page' ) );
|
||||
$followers_list_page = \add_users_page(
|
||||
\__( '⁂ Followers', 'activitypub' ),
|
||||
\__( '⁂ Followers', 'activitypub' ),
|
||||
'read',
|
||||
'activitypub-followers-list',
|
||||
array(
|
||||
self::class,
|
||||
'followers_list_page',
|
||||
)
|
||||
);
|
||||
|
||||
\add_action( 'load-' . $followers_list_page, array( self::class, 'add_followers_list_help_tab' ) );
|
||||
\add_action(
|
||||
'load-' . $followers_list_page,
|
||||
array( self::class, 'add_followers_list_help_tab' )
|
||||
);
|
||||
|
||||
\add_users_page( \__( 'Extra Fields', 'activitypub' ), \__( 'Extra Fields', 'activitypub' ), 'read', esc_url( admin_url( '/edit.php?post_type=ap_extrafield' ) ) );
|
||||
\add_users_page(
|
||||
\__( '⁂ Extra Fields', 'activitypub' ),
|
||||
\__( '⁂ Extra Fields', 'activitypub' ),
|
||||
'read',
|
||||
\esc_url( \admin_url( '/edit.php?post_type=ap_extrafield' ) )
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Display admin menu notices about configuration problems or conflicts.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function admin_notices() {
|
||||
$permalink_structure = \get_option( 'permalink_structure' );
|
||||
@ -87,11 +105,15 @@ class Admin {
|
||||
}
|
||||
|
||||
$current_screen = get_current_screen();
|
||||
|
||||
if ( isset( $current_screen->id ) && 'edit-ap_extrafield' === $current_screen->id ) {
|
||||
if ( ! $current_screen ) {
|
||||
return;
|
||||
}
|
||||
if ( 'edit' === $current_screen->base && Extra_Fields::is_extra_fields_post_type( $current_screen->post_type ) ) {
|
||||
?>
|
||||
<div class="notice" style="margin: 0; background: none; border: none; box-shadow: none; padding: 15px 0 0 0; font-size: 14px;">
|
||||
<?php esc_html_e( 'These are extra fields that are used for your ActivityPub profile. You can use your homepage, social profiles, pronouns, age, anything you want.', 'activitypub' ); ?>
|
||||
<?php
|
||||
esc_html_e( 'These are extra fields that are used for your ActivityPub profile. You can use your homepage, social profiles, pronouns, age, anything you want.', 'activitypub' );
|
||||
?>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
@ -101,9 +123,7 @@ class Admin {
|
||||
* Display one admin menu notice about configuration problems or conflicts.
|
||||
*
|
||||
* @param string $admin_notice The notice to display.
|
||||
* @param string $level The level of the notice (error, warning, success, info).
|
||||
*
|
||||
* @return void
|
||||
* @param string $level The level of the notice (error, warning, success, info).
|
||||
*/
|
||||
private static function show_admin_notice( $admin_notice, $level ) {
|
||||
?>
|
||||
@ -116,7 +136,7 @@ class Admin {
|
||||
}
|
||||
|
||||
/**
|
||||
* Load settings page
|
||||
* Load settings page.
|
||||
*/
|
||||
public static function settings_page() {
|
||||
// phpcs:ignore WordPress.Security.NonceVerification.Recommended
|
||||
@ -131,8 +151,14 @@ class Admin {
|
||||
case 'settings':
|
||||
\load_template( ACTIVITYPUB_PLUGIN_DIR . 'templates/settings.php' );
|
||||
break;
|
||||
case 'blog-profile':
|
||||
wp_enqueue_media();
|
||||
wp_enqueue_script( 'activitypub-header-image' );
|
||||
|
||||
\load_template( ACTIVITYPUB_PLUGIN_DIR . 'templates/blog-settings.php' );
|
||||
break;
|
||||
case 'followers':
|
||||
\load_template( ACTIVITYPUB_PLUGIN_DIR . 'templates/blog-user-followers-list.php' );
|
||||
\load_template( ACTIVITYPUB_PLUGIN_DIR . 'templates/blog-followers-list.php' );
|
||||
break;
|
||||
case 'welcome':
|
||||
default:
|
||||
@ -149,7 +175,7 @@ class Admin {
|
||||
* Load user settings page
|
||||
*/
|
||||
public static function followers_list_page() {
|
||||
// user has to be able to publish posts
|
||||
// User has to be able to publish posts.
|
||||
if ( ! is_user_disabled( get_current_user_id() ) ) {
|
||||
\load_template( ACTIVITYPUB_PLUGIN_DIR . 'templates/user-followers-list.php' );
|
||||
}
|
||||
@ -163,8 +189,8 @@ class Admin {
|
||||
'activitypub',
|
||||
'activitypub_post_content_type',
|
||||
array(
|
||||
'type' => 'string',
|
||||
'description' => \__( 'Use title and link, summary, full or custom content', 'activitypub' ),
|
||||
'type' => 'string',
|
||||
'description' => \__( 'Use title and link, summary, full or custom content', 'activitypub' ),
|
||||
'show_in_rest' => array(
|
||||
'schema' => array(
|
||||
'enum' => array(
|
||||
@ -174,34 +200,34 @@ class Admin {
|
||||
),
|
||||
),
|
||||
),
|
||||
'default' => 'content',
|
||||
'default' => 'content',
|
||||
)
|
||||
);
|
||||
\register_setting(
|
||||
'activitypub',
|
||||
'activitypub_custom_post_content',
|
||||
array(
|
||||
'type' => 'string',
|
||||
'description' => \__( 'Define your own custom post template', 'activitypub' ),
|
||||
'type' => 'string',
|
||||
'description' => \__( 'Define your own custom post template', 'activitypub' ),
|
||||
'show_in_rest' => true,
|
||||
'default' => ACTIVITYPUB_CUSTOM_POST_CONTENT,
|
||||
'default' => ACTIVITYPUB_CUSTOM_POST_CONTENT,
|
||||
)
|
||||
);
|
||||
\register_setting(
|
||||
'activitypub',
|
||||
'activitypub_max_image_attachments',
|
||||
array(
|
||||
'type' => 'integer',
|
||||
'type' => 'integer',
|
||||
'description' => \__( 'Number of images to attach to posts.', 'activitypub' ),
|
||||
'default' => ACTIVITYPUB_MAX_IMAGE_ATTACHMENTS,
|
||||
'default' => ACTIVITYPUB_MAX_IMAGE_ATTACHMENTS,
|
||||
)
|
||||
);
|
||||
\register_setting(
|
||||
'activitypub',
|
||||
'activitypub_object_type',
|
||||
array(
|
||||
'type' => 'string',
|
||||
'description' => \__( 'The Activity-Object-Type', 'activitypub' ),
|
||||
'type' => 'string',
|
||||
'description' => \__( 'The Activity-Object-Type', 'activitypub' ),
|
||||
'show_in_rest' => array(
|
||||
'schema' => array(
|
||||
'enum' => array(
|
||||
@ -210,16 +236,25 @@ class Admin {
|
||||
),
|
||||
),
|
||||
),
|
||||
'default' => 'note',
|
||||
'default' => 'note',
|
||||
)
|
||||
);
|
||||
\register_setting(
|
||||
'activitypub',
|
||||
'activitypub_use_hashtags',
|
||||
array(
|
||||
'type' => 'boolean',
|
||||
'type' => 'boolean',
|
||||
'description' => \__( 'Add hashtags in the content as native tags and replace the #tag with the tag-link', 'activitypub' ),
|
||||
'default' => '0',
|
||||
'default' => '0',
|
||||
)
|
||||
);
|
||||
\register_setting(
|
||||
'activitypub',
|
||||
'activitypub_use_opengraph',
|
||||
array(
|
||||
'type' => 'boolean',
|
||||
'description' => \__( 'Automatically add "fediverse:creator" OpenGraph tags for Authors and the Blog-User.', 'activitypub' ),
|
||||
'default' => '1',
|
||||
)
|
||||
);
|
||||
\register_setting(
|
||||
@ -234,14 +269,44 @@ class Admin {
|
||||
);
|
||||
\register_setting(
|
||||
'activitypub',
|
||||
'activitypub_blog_user_identifier',
|
||||
'activitypub_enable_users',
|
||||
array(
|
||||
'type' => 'boolean',
|
||||
'description' => \__( 'Every Author on this Blog (with the publish_posts capability) gets his own ActivityPub enabled Profile.', 'activitypub' ),
|
||||
'default' => '1',
|
||||
)
|
||||
);
|
||||
\register_setting(
|
||||
'activitypub',
|
||||
'activitypub_enable_blog_user',
|
||||
array(
|
||||
'type' => 'boolean',
|
||||
'description' => \__( 'Your Blog becomes an ActivityPub compatible Profile.', 'activitypub' ),
|
||||
'default' => '0',
|
||||
)
|
||||
);
|
||||
|
||||
// Blog-User Settings.
|
||||
\register_setting(
|
||||
'activitypub_blog',
|
||||
'activitypub_blog_description',
|
||||
array(
|
||||
'type' => 'string',
|
||||
'description' => \esc_html__( 'The Description of the Blog-User', 'activitypub' ),
|
||||
'show_in_rest' => true,
|
||||
'default' => '',
|
||||
)
|
||||
);
|
||||
\register_setting(
|
||||
'activitypub_blog',
|
||||
'activitypub_blog_identifier',
|
||||
array(
|
||||
'type' => 'string',
|
||||
'description' => \esc_html__( 'The Identifier of the Blog-User', 'activitypub' ),
|
||||
'show_in_rest' => true,
|
||||
'default' => Blog::get_default_username(),
|
||||
'sanitize_callback' => function ( $value ) {
|
||||
// hack to allow dots in the username
|
||||
// Hack to allow dots in the username.
|
||||
$parts = explode( '.', $value );
|
||||
$sanitized = array();
|
||||
|
||||
@ -251,7 +316,7 @@ class Admin {
|
||||
|
||||
$sanitized = implode( '.', $sanitized );
|
||||
|
||||
// check for login or nicename.
|
||||
// Check for login or nicename.
|
||||
$user = new WP_User_Query(
|
||||
array(
|
||||
'search' => $sanitized,
|
||||
@ -264,8 +329,8 @@ class Admin {
|
||||
|
||||
if ( $user->results ) {
|
||||
add_settings_error(
|
||||
'activitypub_blog_user_identifier',
|
||||
'activitypub_blog_user_identifier',
|
||||
'activitypub_blog_identifier',
|
||||
'activitypub_blog_identifier',
|
||||
\esc_html__( 'You cannot use an existing author\'s name for the blog profile ID.', 'activitypub' ),
|
||||
'error'
|
||||
);
|
||||
@ -278,35 +343,40 @@ class Admin {
|
||||
)
|
||||
);
|
||||
\register_setting(
|
||||
'activitypub',
|
||||
'activitypub_enable_users',
|
||||
'activitypub_blog',
|
||||
'activitypub_header_image',
|
||||
array(
|
||||
'type' => 'boolean',
|
||||
'description' => \__( 'Every Author on this Blog (with the publish_posts capability) gets his own ActivityPub enabled Profile.', 'activitypub' ),
|
||||
'default' => '1',
|
||||
)
|
||||
);
|
||||
\register_setting(
|
||||
'activitypub',
|
||||
'activitypub_enable_blog_user',
|
||||
array(
|
||||
'type' => 'boolean',
|
||||
'description' => \__( 'Your Blog becomes an ActivityPub compatible Profile.', 'activitypub' ),
|
||||
'default' => '0',
|
||||
'type' => 'integer',
|
||||
'description' => \__( 'The Attachment-ID of the Sites Header-Image', 'activitypub' ),
|
||||
'default' => null,
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the ActivityPub settings to the Help tab.
|
||||
*/
|
||||
public static function add_settings_help_tab() {
|
||||
require_once ACTIVITYPUB_PLUGIN_DIR . 'includes/help.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the follower list to the Help tab.
|
||||
*/
|
||||
public static function add_followers_list_help_tab() {
|
||||
// todo
|
||||
// todo.
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the profile.
|
||||
*
|
||||
* @param \WP_User $user The user object.
|
||||
*/
|
||||
public static function add_profile( $user ) {
|
||||
$description = get_user_meta( $user->ID, 'activitypub_user_description', true );
|
||||
$description = \get_user_option( 'activitypub_description', $user->ID );
|
||||
|
||||
wp_enqueue_media();
|
||||
wp_enqueue_script( 'activitypub-header-image' );
|
||||
|
||||
\load_template(
|
||||
ACTIVITYPUB_PLUGIN_DIR . 'templates/user-settings.php',
|
||||
@ -317,40 +387,97 @@ class Admin {
|
||||
);
|
||||
}
|
||||
|
||||
public static function save_user_description( $user_id ) {
|
||||
/**
|
||||
* Save the user settings.
|
||||
*
|
||||
* Handles the saving of the ActivityPub settings.
|
||||
*
|
||||
* @param int $user_id The user ID.
|
||||
*/
|
||||
public static function save_user_settings( $user_id ) {
|
||||
if ( ! isset( $_REQUEST['_apnonce'] ) ) {
|
||||
return false;
|
||||
return;
|
||||
}
|
||||
|
||||
$nonce = sanitize_text_field( wp_unslash( $_REQUEST['_apnonce'] ) );
|
||||
if (
|
||||
! wp_verify_nonce( $nonce, 'activitypub-user-description' ) ||
|
||||
! wp_verify_nonce( $nonce, 'activitypub-user-settings' ) ||
|
||||
! current_user_can( 'edit_user', $user_id )
|
||||
) {
|
||||
return false;
|
||||
return;
|
||||
}
|
||||
$description = ! empty( $_POST['activitypub-user-description'] ) ? sanitize_text_field( wp_unslash( $_POST['activitypub-user-description'] ) ) : false;
|
||||
|
||||
$description = ! empty( $_POST['activitypub_description'] ) ? sanitize_textarea_field( wp_unslash( $_POST['activitypub_description'] ) ) : false;
|
||||
if ( $description ) {
|
||||
update_user_meta( $user_id, 'activitypub_user_description', $description );
|
||||
}
|
||||
}
|
||||
|
||||
public static function enqueue_scripts( $hook_suffix ) {
|
||||
if ( false !== strpos( $hook_suffix, 'activitypub' ) ) {
|
||||
wp_enqueue_style( 'activitypub-admin-styles', plugins_url( 'assets/css/activitypub-admin.css', ACTIVITYPUB_PLUGIN_FILE ), array(), get_plugin_version() );
|
||||
wp_enqueue_script( 'activitypub-admin-script', plugins_url( 'assets/js/activitypub-admin.js', ACTIVITYPUB_PLUGIN_FILE ), array( 'jquery' ), get_plugin_version(), false );
|
||||
\update_user_option( $user_id, 'activitypub_description', $description );
|
||||
} else {
|
||||
\delete_user_option( $user_id, 'activitypub_description' );
|
||||
}
|
||||
|
||||
if ( 'index.php' === $hook_suffix ) {
|
||||
wp_enqueue_style( 'activitypub-admin-styles', plugins_url( 'assets/css/activitypub-admin.css', ACTIVITYPUB_PLUGIN_FILE ), array(), get_plugin_version() );
|
||||
$header_image = ! empty( $_POST['activitypub_header_image'] ) ? sanitize_text_field( wp_unslash( $_POST['activitypub_header_image'] ) ) : false;
|
||||
if ( $header_image && \wp_attachment_is_image( $header_image ) ) {
|
||||
\update_user_option( $user_id, 'activitypub_header_image', $header_image );
|
||||
} else {
|
||||
\delete_user_option( $user_id, 'activitypub_header_image' );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Hook into the edit_comment functionality
|
||||
* Enqueue the admin scripts and styles.
|
||||
*
|
||||
* * Disable the edit_comment capability for federated comments.
|
||||
* @param string $hook_suffix The current page.
|
||||
*/
|
||||
public static function enqueue_scripts( $hook_suffix ) {
|
||||
wp_register_script(
|
||||
'activitypub-header-image',
|
||||
plugins_url(
|
||||
'assets/js/activitypub-header-image.js',
|
||||
ACTIVITYPUB_PLUGIN_FILE
|
||||
),
|
||||
array( 'jquery' ),
|
||||
get_plugin_version(),
|
||||
false
|
||||
);
|
||||
|
||||
if ( false !== strpos( $hook_suffix, 'activitypub' ) ) {
|
||||
wp_enqueue_style(
|
||||
'activitypub-admin-styles',
|
||||
plugins_url(
|
||||
'assets/css/activitypub-admin.css',
|
||||
ACTIVITYPUB_PLUGIN_FILE
|
||||
),
|
||||
array(),
|
||||
get_plugin_version()
|
||||
);
|
||||
wp_enqueue_script(
|
||||
'activitypub-admin-script',
|
||||
plugins_url(
|
||||
'assets/js/activitypub-admin.js',
|
||||
ACTIVITYPUB_PLUGIN_FILE
|
||||
),
|
||||
array( 'jquery' ),
|
||||
get_plugin_version(),
|
||||
false
|
||||
);
|
||||
}
|
||||
|
||||
if ( 'index.php' === $hook_suffix ) {
|
||||
wp_enqueue_style(
|
||||
'activitypub-admin-styles',
|
||||
plugins_url(
|
||||
'assets/css/activitypub-admin.css',
|
||||
ACTIVITYPUB_PLUGIN_FILE
|
||||
),
|
||||
array(),
|
||||
get_plugin_version()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Hook into the edit_comment functionality.
|
||||
*
|
||||
* @return void
|
||||
* Disables the edit_comment capability for federated comments.
|
||||
*/
|
||||
public static function edit_comment() {
|
||||
// Disable the edit_comment capability for federated comments.
|
||||
@ -372,6 +499,11 @@ class Admin {
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Hook into the edit_post functionality.
|
||||
*
|
||||
* Disables the edit_post capability for federated posts.
|
||||
*/
|
||||
public static function edit_post() {
|
||||
// Disable the edit_post capability for federated posts.
|
||||
\add_filter(
|
||||
@ -383,7 +515,7 @@ class Admin {
|
||||
|
||||
$post = get_post( $arg[2] );
|
||||
|
||||
if ( 'ap_extrafield' !== $post->post_type ) {
|
||||
if ( ! Extra_Fields::is_extra_field_post_type( $post->post_type ) ) {
|
||||
return $allcaps;
|
||||
}
|
||||
|
||||
@ -399,9 +531,7 @@ class Admin {
|
||||
}
|
||||
|
||||
/**
|
||||
* Add ActivityPub specific actions/filters to the post list view
|
||||
*
|
||||
* @return void
|
||||
* Add ActivityPub specific actions/filters to the post list view.
|
||||
*/
|
||||
public static function list_posts() {
|
||||
// Show only the user's extra fields.
|
||||
@ -420,20 +550,23 @@ class Admin {
|
||||
add_filter(
|
||||
"views_{$screen_id}",
|
||||
function ( $views ) {
|
||||
if ( 'ap_extrafield' === get_post_type() ) {
|
||||
if ( Extra_Fields::is_extra_fields_post_type( get_current_screen()->post_type ) ) {
|
||||
return array();
|
||||
}
|
||||
|
||||
return $views;
|
||||
}
|
||||
);
|
||||
|
||||
// Set defaults for new extra fields.
|
||||
if ( 'edit-ap_extrafield' === $screen_id ) {
|
||||
Activitypub::default_actor_extra_fields( array(), get_current_user_id() );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Comment row actions.
|
||||
*
|
||||
* @param array $actions The existing actions.
|
||||
* @param int|\WP_Comment $comment The comment object or ID.
|
||||
*
|
||||
* @return array The modified actions.
|
||||
*/
|
||||
public static function comment_row_actions( $actions, $comment ) {
|
||||
if ( was_comment_received( $comment ) ) {
|
||||
unset( $actions['edit'] );
|
||||
@ -444,7 +577,7 @@ class Admin {
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a column "activitypub"
|
||||
* Add a column "activitypub".
|
||||
*
|
||||
* This column shows if the user has the capability to use ActivityPub.
|
||||
*
|
||||
@ -458,9 +591,11 @@ class Admin {
|
||||
}
|
||||
|
||||
/**
|
||||
* Add "comment-type" and "protocol" as column in WP-Admin
|
||||
* Add "comment-type" and "protocol" as column in WP-Admin.
|
||||
*
|
||||
* @param array $columns the list of column names
|
||||
* @param array $columns The list of column names.
|
||||
*
|
||||
* @return array The extended list of column names.
|
||||
*/
|
||||
public static function manage_comment_columns( $columns ) {
|
||||
$columns['comment_type'] = esc_attr__( 'Comment-Type', 'activitypub' );
|
||||
@ -470,13 +605,15 @@ class Admin {
|
||||
}
|
||||
|
||||
/**
|
||||
* Add "post_content" as column for Extra-Fields in WP-Admin
|
||||
* Add "post_content" as column for Extra-Fields in WP-Admin.
|
||||
*
|
||||
* @param array $columns Tthe list of column names.
|
||||
* @param array $columns The list of column names.
|
||||
* @param string $post_type The post type.
|
||||
*
|
||||
* @return array The extended list of column names.
|
||||
*/
|
||||
public static function manage_post_columns( $columns, $post_type ) {
|
||||
if ( 'ap_extrafield' === $post_type ) {
|
||||
if ( Extra_Fields::is_extra_fields_post_type( $post_type ) ) {
|
||||
$after_key = 'title';
|
||||
$index = array_search( $after_key, array_keys( $columns ), true );
|
||||
$columns = array_slice( $columns, 0, $index + 1 ) + array( 'extra_field_content' => esc_attr__( 'Content', 'activitypub' ) ) + $columns;
|
||||
@ -486,10 +623,10 @@ class Admin {
|
||||
}
|
||||
|
||||
/**
|
||||
* Add "comment-type" and "protocol" as column in WP-Admin
|
||||
* Add "comment-type" and "protocol" as column in WP-Admin.
|
||||
*
|
||||
* @param array $column The column to implement
|
||||
* @param int $comment_id The comment id
|
||||
* @param array $column The column to implement.
|
||||
* @param int $comment_id The comment id.
|
||||
*/
|
||||
public static function manage_comments_custom_column( $column, $comment_id ) {
|
||||
if ( 'comment_type' === $column && ! defined( 'WEBMENTION_PLUGIN_DIR' ) ) {
|
||||
@ -527,7 +664,7 @@ class Admin {
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a column "extra_field_content" to the post list view
|
||||
* Add a column "extra_field_content" to the post list view.
|
||||
*
|
||||
* @param string $column_name The column name.
|
||||
* @param int $post_id The post ID.
|
||||
@ -535,32 +672,30 @@ class Admin {
|
||||
* @return void
|
||||
*/
|
||||
public static function manage_posts_custom_column( $column_name, $post_id ) {
|
||||
$post = get_post( $post_id );
|
||||
|
||||
if ( 'extra_field_content' === $column_name ) {
|
||||
$post = get_post( $post_id );
|
||||
if ( 'ap_extrafield' === $post->post_type ) {
|
||||
if ( Extra_Fields::is_extra_fields_post_type( $post->post_type ) ) {
|
||||
echo esc_attr( wp_strip_all_tags( $post->post_content ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Add options to the Bulk dropdown on the users page
|
||||
* Add options to the Bulk dropdown on the users page.
|
||||
*
|
||||
* @param array $actions The existing bulk options.
|
||||
*
|
||||
* @return array The extended bulk options.
|
||||
*/
|
||||
public static function user_bulk_options( $actions ) {
|
||||
$actions['add_activitypub_cap'] = __( 'Enable for ActivityPub', 'activitypub' );
|
||||
$actions['add_activitypub_cap'] = __( 'Enable for ActivityPub', 'activitypub' );
|
||||
$actions['remove_activitypub_cap'] = __( 'Disable for ActivityPub', 'activitypub' );
|
||||
|
||||
return $actions;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle bulk activitypub requests
|
||||
* Handle bulk activitypub requests.
|
||||
*
|
||||
* * `add_activitypub_cap` - Add the activitypub capability to the selected users.
|
||||
* * `remove_activitypub_cap` - Remove the activitypub capability from the selected users.
|
||||
@ -595,7 +730,7 @@ class Admin {
|
||||
}
|
||||
|
||||
/**
|
||||
* Add ActivityPub infos to the dashboard glance items
|
||||
* Add ActivityPub infos to the dashboard glance items.
|
||||
*
|
||||
* @param array $items The existing glance items.
|
||||
*
|
||||
@ -606,7 +741,7 @@ class Admin {
|
||||
|
||||
if ( ! is_user_disabled( get_current_user_id() ) ) {
|
||||
$follower_count = sprintf(
|
||||
// translators: %s: number of followers
|
||||
// translators: %s: number of followers.
|
||||
_n(
|
||||
'%s Follower',
|
||||
'%s Followers',
|
||||
@ -625,7 +760,7 @@ class Admin {
|
||||
|
||||
if ( ! is_user_type_disabled( 'blog' ) && current_user_can( 'manage_options' ) ) {
|
||||
$follower_count = sprintf(
|
||||
// translators: %s: number of followers
|
||||
// translators: %s: number of followers.
|
||||
_n(
|
||||
'%s Follower (Blog)',
|
||||
'%s Followers (Blog)',
|
||||
@ -642,7 +777,7 @@ class Admin {
|
||||
);
|
||||
}
|
||||
|
||||
\remove_filter( 'number_format_i18n', '\Activitypub\custom_large_numbers', 10, 3 );
|
||||
\remove_filter( 'number_format_i18n', '\Activitypub\custom_large_numbers' );
|
||||
|
||||
return $items;
|
||||
}
|
||||
|
Reference in New Issue
Block a user