mirror of
https://github.com/Automattic/wordpress-activitypub
synced 2024-10-18 14:23:31 +00:00
add migration for 2.7.0
This commit is contained in:
parent
e35f782a7f
commit
6cc071d270
10 changed files with 82 additions and 29 deletions
|
@ -21,7 +21,7 @@ use function Activitypub\site_supports_blocks;
|
|||
require_once __DIR__ . '/includes/compat.php';
|
||||
require_once __DIR__ . '/includes/functions.php';
|
||||
|
||||
\define( 'ACTIVITYPUB_PLUGIN_VERSION', '2.6.1' );
|
||||
\define( 'ACTIVITYPUB_PLUGIN_VERSION', '2.7.0' );
|
||||
|
||||
/**
|
||||
* Initialize the plugin constants.
|
||||
|
|
|
@ -155,10 +155,10 @@ class Admin {
|
|||
wp_enqueue_media();
|
||||
wp_enqueue_script( 'activitypub-header-image' );
|
||||
|
||||
\load_template( ACTIVITYPUB_PLUGIN_DIR . 'templates/blog-user-settings.php' );
|
||||
\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:
|
||||
|
@ -288,8 +288,8 @@ class Admin {
|
|||
|
||||
// Blog-User Settings
|
||||
\register_setting(
|
||||
'activitypub_blog_user',
|
||||
'activitypub_blog_user_description',
|
||||
'activitypub_blog',
|
||||
'activitypub_blog_description',
|
||||
array(
|
||||
'type' => 'string',
|
||||
'description' => \esc_html__( 'The Description of the Blog-User', 'activitypub' ),
|
||||
|
@ -298,8 +298,8 @@ class Admin {
|
|||
)
|
||||
);
|
||||
\register_setting(
|
||||
'activitypub_blog_user',
|
||||
'activitypub_blog_user_identifier',
|
||||
'activitypub_blog',
|
||||
'activitypub_blog_identifier',
|
||||
array(
|
||||
'type' => 'string',
|
||||
'description' => \esc_html__( 'The Identifier of the Blog-User', 'activitypub' ),
|
||||
|
@ -329,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'
|
||||
);
|
||||
|
@ -343,7 +343,7 @@ class Admin {
|
|||
)
|
||||
);
|
||||
\register_setting(
|
||||
'activitypub_blog_user',
|
||||
'activitypub_blog',
|
||||
'activitypub_header_image',
|
||||
array(
|
||||
'type' => 'integer',
|
||||
|
@ -362,7 +362,7 @@ class Admin {
|
|||
}
|
||||
|
||||
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' );
|
||||
|
@ -396,11 +396,11 @@ class Admin {
|
|||
) {
|
||||
return false;
|
||||
}
|
||||
$description = ! empty( $_POST['activitypub_user_description'] ) ? sanitize_text_field( wp_unslash( $_POST['activitypub_user_description'] ) ) : false;
|
||||
$description = ! empty( $_POST['activitypub_description'] ) ? sanitize_text_field( wp_unslash( $_POST['activitypub_description'] ) ) : false;
|
||||
if ( $description ) {
|
||||
update_user_meta( $user_id, 'activitypub_user_description', $description );
|
||||
\update_user_option( $user_id, 'activitypub_description', $description );
|
||||
} else {
|
||||
delete_user_meta( $user_id, 'activitypub_user_description' );
|
||||
\delete_user_option( $user_id, 'activitypub_description' );
|
||||
}
|
||||
|
||||
$header_image = ! empty( $_POST['activitypub_header_image'] ) ? sanitize_text_field( wp_unslash( $_POST['activitypub_header_image'] ) ) : false;
|
||||
|
|
|
@ -132,6 +132,9 @@ class Migration {
|
|||
if ( version_compare( $version_from_db, '2.3.0', '<' ) ) {
|
||||
self::migrate_from_2_2_0();
|
||||
}
|
||||
if ( version_compare( $version_from_db, '2.7.0', '<' ) ) {
|
||||
self::migrate_from_2_6_0();
|
||||
}
|
||||
|
||||
update_option( 'activitypub_db_version', self::get_target_version() );
|
||||
|
||||
|
@ -255,6 +258,20 @@ class Migration {
|
|||
self::add_activitypub_capability();
|
||||
}
|
||||
|
||||
/**
|
||||
* Rename DB fields
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private static function migrate_from_2_6_0() {
|
||||
wp_cache_flush();
|
||||
|
||||
self::update_usermeta_key( 'activitypub_user_description', 'activitypub_description' );
|
||||
|
||||
self::update_options_key( 'activitypub_blog_user_description', 'activitypub_blog_description' );
|
||||
self::update_options_key( 'activitypub_blog_user_identifier', 'activitypub_blog_identifier' );
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the defaults needed for the plugin to work
|
||||
*
|
||||
|
@ -284,4 +301,40 @@ class Migration {
|
|||
$user->add_cap( 'activitypub' );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Rename meta keys.
|
||||
*
|
||||
* @param string $old The old commentmeta key
|
||||
* @param string $new The new commentmeta key
|
||||
*/
|
||||
private static function update_usermeta_key( $old, $new ) { // phpcs:ignore
|
||||
global $wpdb;
|
||||
|
||||
$wpdb->update( // phpcs:ignore
|
||||
$wpdb->usermeta,
|
||||
array( 'meta_key' => $new ), // phpcs:ignore
|
||||
array( 'meta_key' => $old ), // phpcs:ignore
|
||||
array( '%s' ),
|
||||
array( '%s' )
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Rename option keys.
|
||||
*
|
||||
* @param string $old The old option key
|
||||
* @param string $new The new option key
|
||||
*/
|
||||
private static function update_options_key( $old, $new ) { // phpcs:ignore
|
||||
global $wpdb;
|
||||
|
||||
$wpdb->update( // phpcs:ignore
|
||||
$wpdb->options,
|
||||
array( 'option_name' => $new ), // phpcs:ignore
|
||||
array( 'option_name' => $old ), // phpcs:ignore
|
||||
array( '%s' ),
|
||||
array( '%s' )
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -76,7 +76,7 @@ class Users {
|
|||
return new Blog();
|
||||
}
|
||||
|
||||
if ( get_option( 'activitypub_blog_user_identifier' ) === $username ) {
|
||||
if ( get_option( 'activitypub_blog_identifier' ) === $username ) {
|
||||
return new Blog();
|
||||
}
|
||||
|
||||
|
|
|
@ -132,7 +132,7 @@ class Blog extends Actor {
|
|||
* @return string The User-Description.
|
||||
*/
|
||||
public function get_summary() {
|
||||
$summary = \get_option( 'activitypub_blog_user_description', null );
|
||||
$summary = \get_option( 'activitypub_blog_description', null );
|
||||
|
||||
if ( ! $summary ) {
|
||||
$summary = \get_bloginfo( 'description' );
|
||||
|
@ -188,7 +188,7 @@ class Blog extends Actor {
|
|||
* @return string The User-Name.
|
||||
*/
|
||||
public function get_preferred_username() {
|
||||
$username = \get_option( 'activitypub_blog_user_identifier' );
|
||||
$username = \get_option( 'activitypub_blog_identifier' );
|
||||
|
||||
if ( $username ) {
|
||||
return $username;
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
<div class="activitypub-settings activitypub-settings-page hide-if-no-js">
|
||||
<form method="post" action="options.php">
|
||||
<?php \settings_fields( 'activitypub_blog_user' ); ?>
|
||||
<?php \settings_fields( 'activitypub_blog' ); ?>
|
||||
|
||||
<div class="box">
|
||||
<h3><?php \esc_html_e( 'Blog-Profile', 'activitypub' ); ?></h3>
|
||||
|
@ -94,8 +94,8 @@
|
|||
<?php \esc_html_e( 'Change profile ID', 'activitypub' ); ?>
|
||||
</th>
|
||||
<td>
|
||||
<label for="activitypub_blog_user_identifier">
|
||||
<input class="blog-user-identifier" name="activitypub_blog_user_identifier" id="activitypub_blog_user_identifier" type="text" value="<?php echo esc_attr( \get_option( 'activitypub_blog_user_identifier', \Activitypub\Model\Blog::get_default_username() ) ); ?>" />
|
||||
<label for="activitypub_blog_identifier">
|
||||
<input class="blog-user-identifier" name="activitypub_blog_identifier" id="activitypub_blog_identifier" type="text" value="<?php echo esc_attr( \get_option( 'activitypub_blog_identifier', \Activitypub\Model\Blog::get_default_username() ) ); ?>" />
|
||||
@<?php echo esc_html( \wp_parse_url( \home_url(), PHP_URL_HOST ) ); ?>
|
||||
</label>
|
||||
<p class="description">
|
||||
|
@ -113,14 +113,14 @@
|
|||
<?php \esc_html_e( 'Change Description', 'activitypub' ); ?>
|
||||
</th>
|
||||
<td>
|
||||
<label for="activitypub_blog_user_description">
|
||||
<label for="activitypub_blog_description">
|
||||
<textarea
|
||||
class="blog-user-description large-text"
|
||||
rows="5"
|
||||
name="activitypub_blog_user_description"
|
||||
id="activitypub_blog_user_description"
|
||||
name="activitypub_blog_description"
|
||||
id="activitypub_blog_description"
|
||||
placeholder="<?php echo esc_attr( \get_bloginfo( 'description' ) ); ?>"
|
||||
><?php echo \esc_html( \get_option( 'activitypub_blog_user_description' ) ); ?></textarea>
|
||||
><?php echo \esc_html( \get_option( 'activitypub_blog_description' ) ); ?></textarea>
|
||||
</label>
|
||||
<p class="description">
|
||||
<?php \esc_html_e( 'By default the ActivityPub plugin uses the WordPress tagline as a description for the blog profile.', 'activitypub' ); ?>
|
|
@ -22,12 +22,12 @@ $user = \Activitypub\Collection\Users::get_by_id( \get_current_user_id() ); ?>
|
|||
<p class="description"><?php \printf( \esc_html__( 'Follow "@%s" by searching for it on Mastodon, Friendica, etc.', 'activitypub' ), \esc_html( $user->get_webfinger() ) ); ?></p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="activitypub-user-description-wrap">
|
||||
<tr class="activitypub-description-wrap">
|
||||
<th>
|
||||
<label for="activitypub_user_description"><?php \esc_html_e( 'Biography', 'activitypub' ); ?></label>
|
||||
<label for="activitypub_description"><?php \esc_html_e( 'Biography', 'activitypub' ); ?></label>
|
||||
</th>
|
||||
<td>
|
||||
<textarea name="activitypub_user_description" id="activitypub_user_description" rows="5" cols="30" placeholder="<?php echo \esc_html( get_user_meta( \get_current_user_id(), 'description', true ) ); ?>"><?php echo \esc_html( $args['description'] ); ?></textarea>
|
||||
<textarea name="activitypub_description" id="activitypub_description" rows="5" cols="30" placeholder="<?php echo \esc_html( get_user_meta( \get_current_user_id(), 'description', true ) ); ?>"><?php echo \esc_html( $args['description'] ); ?></textarea>
|
||||
<p class="description"><?php \esc_html_e( 'If you wish to use different biographical info for the fediverse, enter your alternate bio here.', 'activitypub' ); ?></p>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
@ -43,7 +43,7 @@
|
|||
<?php \esc_html_e( 'This blog profile will federate all posts written on your blog, regardless of the author who posted it.', 'activitypub' ); ?>
|
||||
<p>
|
||||
<p>
|
||||
<a href="<?php echo \esc_url_raw( \admin_url( '/options-general.php?page=activitypub&tab=settings' ) ); ?>">
|
||||
<a href="<?php echo \esc_url_raw( \admin_url( '/options-general.php?page=activitypub&tab=blog-profile ' ) ); ?>">
|
||||
<?php \esc_html_e( 'Customize the blog profile', 'activitypub' ); ?>
|
||||
</a>
|
||||
</p>
|
||||
|
|
|
@ -4,7 +4,7 @@ class Test_Activitypub_Users_Collection extends WP_UnitTestCase {
|
|||
public function set_up() {
|
||||
parent::set_up();
|
||||
|
||||
add_option( 'activitypub_blog_user_identifier', 'blog' );
|
||||
add_option( 'activitypub_blog_identifier', 'blog' );
|
||||
add_user_meta( 1, 'activitypub_user_identifier', 'admin' );
|
||||
}
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue