Fix post_meta not being registered && some refactoring
Some checks failed
PHP Code Checker / PHP Code Checker (pull_request) Successful in 54s
PHPUnit / PHPUnit – PHP 7.4 (pull_request) Failing after 56s
PHPUnit / PHPUnit – PHP 8.0 (pull_request) Successful in 1m7s
PHPUnit / PHPUnit – PHP 8.1 (pull_request) Successful in 1m4s
PHPUnit / PHPUnit – PHP 8.2 (pull_request) Successful in 1m9s
PHPUnit / PHPUnit – PHP 8.3 (pull_request) Successful in 1m11s
PHPUnit / PHPUnit – PHP 8.4 (pull_request) Successful in 1m8s
Some checks failed
PHP Code Checker / PHP Code Checker (pull_request) Successful in 54s
PHPUnit / PHPUnit – PHP 7.4 (pull_request) Failing after 56s
PHPUnit / PHPUnit – PHP 8.0 (pull_request) Successful in 1m7s
PHPUnit / PHPUnit – PHP 8.1 (pull_request) Successful in 1m4s
PHPUnit / PHPUnit – PHP 8.2 (pull_request) Successful in 1m9s
PHPUnit / PHPUnit – PHP 8.3 (pull_request) Successful in 1m11s
PHPUnit / PHPUnit – PHP 8.4 (pull_request) Successful in 1m8s
This commit is contained in:
parent
5712706457
commit
33f1ccbc86
9 changed files with 138 additions and 74 deletions
|
@ -67,14 +67,13 @@ class Create {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$transmogrifier_class = Setup::get_transmogrifier();
|
$transmogrifier = Setup::get_transmogrifier();
|
||||||
|
|
||||||
if ( ! $transmogrifier_class ) {
|
if ( ! $transmogrifier ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$transmogrifier = new $transmogrifier_class( $activity['object'] );
|
$transmogrifier->save( $activity['object'] );
|
||||||
$transmogrifier->save();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -47,13 +47,12 @@ class Delete {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$transmogrifier_class = Setup::get_transmogrifier();
|
$transmogrifier = Setup::get_transmogrifier();
|
||||||
|
|
||||||
if ( ! $transmogrifier_class ) {
|
if ( ! $transmogrifier ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$transmogrifier = new $transmogrifier_class( $activity['object'] );
|
$transmogrifier->delete( $activity['object'] );
|
||||||
$transmogrifier->delete();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,6 +34,8 @@ abstract class Base {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Internal function to actually save the event.
|
* Internal function to actually save the event.
|
||||||
|
*
|
||||||
|
* @return false|int Post-ID on success, false on failure.
|
||||||
*/
|
*/
|
||||||
abstract protected function save_event();
|
abstract protected function save_event();
|
||||||
|
|
||||||
|
@ -50,7 +52,13 @@ abstract class Base {
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->activitypub_event = $activitypub_event;
|
$this->activitypub_event = $activitypub_event;
|
||||||
$this->save_event();
|
|
||||||
|
$post_id = $this->save_event();
|
||||||
|
|
||||||
|
if ( $post_id ) {
|
||||||
|
update_post_meta( $post_id, 'event_bridge_for_activitypub_is_cached', 'yes' );
|
||||||
|
update_post_meta( $post_id, 'activitypub_content_visibility', constant( 'ACTIVITYPUB_CONTENT_VISIBILITY_LOCAL' ) ?? '' );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -287,9 +295,19 @@ abstract class Base {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Save the ActivityPub event object as GatherPress event.
|
* Delete a local event in WordPress that is a cached remote one.
|
||||||
|
*
|
||||||
|
* @param array $activitypub_event The ActivityPub event as associative array.
|
||||||
*/
|
*/
|
||||||
public function delete() {
|
public function delete( $activitypub_event ) {
|
||||||
|
$activitypub_event = Event::init_from_array( $activitypub_event );
|
||||||
|
|
||||||
|
if ( is_wp_error( $activitypub_event ) ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->activitypub_event = $activitypub_event;
|
||||||
|
|
||||||
$post_id = $this->get_post_id_from_activitypub_id();
|
$post_id = $this->get_post_id_from_activitypub_id();
|
||||||
|
|
||||||
if ( ! $post_id ) {
|
if ( ! $post_id ) {
|
||||||
|
|
|
@ -120,9 +120,9 @@ class GatherPress extends Base {
|
||||||
/**
|
/**
|
||||||
* Save the ActivityPub event object as GatherPress Event.
|
* Save the ActivityPub event object as GatherPress Event.
|
||||||
*
|
*
|
||||||
* @return void
|
* @return false|int
|
||||||
*/
|
*/
|
||||||
protected function save_event(): void {
|
protected function save_event() {
|
||||||
// Limit this as a safety measure.
|
// Limit this as a safety measure.
|
||||||
add_filter( 'wp_revisions_to_keep', array( self::class, 'revisions_to_keep' ) );
|
add_filter( 'wp_revisions_to_keep', array( self::class, 'revisions_to_keep' ) );
|
||||||
|
|
||||||
|
@ -135,10 +135,6 @@ class GatherPress extends Base {
|
||||||
'post_excerpt' => wp_kses_post( $this->activitypub_event->get_summary() ),
|
'post_excerpt' => wp_kses_post( $this->activitypub_event->get_summary() ),
|
||||||
'post_status' => 'publish',
|
'post_status' => 'publish',
|
||||||
'guid' => sanitize_url( $this->activitypub_event->get_id() ),
|
'guid' => sanitize_url( $this->activitypub_event->get_id() ),
|
||||||
'meta_input' => array(
|
|
||||||
'event_bridge_for_activitypub_is_cached' => 'GatherPress',
|
|
||||||
'activitypub_content_visibility' => ACTIVITYPUB_CONTENT_VISIBILITY_LOCAL,
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
|
|
||||||
if ( $post_id ) {
|
if ( $post_id ) {
|
||||||
|
@ -151,7 +147,7 @@ class GatherPress extends Base {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ! $post_id || is_wp_error( $post_id ) ) {
|
if ( ! $post_id || is_wp_error( $post_id ) ) {
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Insert the dates.
|
// Insert the dates.
|
||||||
|
@ -182,5 +178,7 @@ class GatherPress extends Base {
|
||||||
|
|
||||||
// Limit this as a safety measure.
|
// Limit this as a safety measure.
|
||||||
remove_filter( 'wp_revisions_to_keep', array( self::class, 'revisions_to_keep' ) );
|
remove_filter( 'wp_revisions_to_keep', array( self::class, 'revisions_to_keep' ) );
|
||||||
|
|
||||||
|
return $post_id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,15 +28,7 @@ class User_Interface {
|
||||||
public static function init() {
|
public static function init() {
|
||||||
\add_filter( 'page_row_actions', array( self::class, 'row_actions' ), 10, 2 );
|
\add_filter( 'page_row_actions', array( self::class, 'row_actions' ), 10, 2 );
|
||||||
\add_filter( 'post_row_actions', array( self::class, 'row_actions' ), 10, 2 );
|
\add_filter( 'post_row_actions', array( self::class, 'row_actions' ), 10, 2 );
|
||||||
\add_action(
|
\add_filter( 'map_meta_cap', array( self::class, 'disable_editing_for_external_events' ), 10, 4 );
|
||||||
'admin_init',
|
|
||||||
\add_filter(
|
|
||||||
'map_meta_cap',
|
|
||||||
array( self::class, 'disable_editing_for_external_events' ),
|
|
||||||
10,
|
|
||||||
4
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -14,7 +14,8 @@ use Event_Bridge_For_ActivityPub\ActivityPub\Collection\Event_Sources as Event_S
|
||||||
use Event_Bridge_For_ActivityPub\Activitypub\Transmogrifier\GatherPress;
|
use Event_Bridge_For_ActivityPub\Activitypub\Transmogrifier\GatherPress;
|
||||||
use Event_Bridge_For_ActivityPub\Activitypub\Handler;
|
use Event_Bridge_For_ActivityPub\Activitypub\Handler;
|
||||||
use Event_Bridge_For_ActivityPub\Admin\User_Interface;
|
use Event_Bridge_For_ActivityPub\Admin\User_Interface;
|
||||||
|
use Event_Bridge_For_ActivityPub\Integrations\Event_Plugin_Integration;
|
||||||
|
use Event_Bridge_For_ActivityPub\Integrations\Feature_Event_Sources;
|
||||||
|
|
||||||
use function Activitypub\get_remote_metadata_by_actor;
|
use function Activitypub\get_remote_metadata_by_actor;
|
||||||
use function Activitypub\is_activitypub_request;
|
use function Activitypub\is_activitypub_request;
|
||||||
|
@ -31,7 +32,8 @@ class Event_Sources {
|
||||||
public static function init() {
|
public static function init() {
|
||||||
\add_action( 'init', array( Event_Sources_Collection::class, 'init' ) );
|
\add_action( 'init', array( Event_Sources_Collection::class, 'init' ) );
|
||||||
\add_action( 'activitypub_register_handlers', array( Handler::class, 'register_handlers' ) );
|
\add_action( 'activitypub_register_handlers', array( Handler::class, 'register_handlers' ) );
|
||||||
\add_action( 'admin_init', array( User_Interface::class, 'init' ) );
|
\add_action( 'init', array( User_Interface::class, 'init' ) );
|
||||||
|
\add_action( 'init', array( self::class, 'register_post_meta' ) );
|
||||||
\add_filter( 'activitypub_is_post_disabled', array( self::class, 'is_cached_external_post' ), 10, 2 );
|
\add_filter( 'activitypub_is_post_disabled', array( self::class, 'is_cached_external_post' ), 10, 2 );
|
||||||
if ( ! \wp_next_scheduled( 'event_bridge_for_activitypub_event_sources_clear_cache' ) ) {
|
if ( ! \wp_next_scheduled( 'event_bridge_for_activitypub_event_sources_clear_cache' ) ) {
|
||||||
\wp_schedule_event( time(), 'daily', 'event_bridge_for_activitypub_event_sources_clear_cache' );
|
\wp_schedule_event( time(), 'daily', 'event_bridge_for_activitypub_event_sources_clear_cache' );
|
||||||
|
@ -41,6 +43,31 @@ class Event_Sources {
|
||||||
\add_filter( 'template_include', array( self::class, 'redirect_activitypub_requests_for_cached_external_events' ), 100 );
|
\add_filter( 'template_include', array( self::class, 'redirect_activitypub_requests_for_cached_external_events' ), 100 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Register post meta.
|
||||||
|
*/
|
||||||
|
public static function register_post_meta() {
|
||||||
|
$setup = Setup::get_instance();
|
||||||
|
|
||||||
|
foreach ( $setup->get_active_event_plugins() as $event_plugin_integration ) {
|
||||||
|
if ( ! $event_plugin_integration instanceof Feature_Event_Sources && $event_plugin_integration instanceof Event_Plugin_Integration ) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
\register_post_meta(
|
||||||
|
$event_plugin_integration::get_post_type(),
|
||||||
|
'event_bridge_for_activitypub_is_cached',
|
||||||
|
array(
|
||||||
|
'type' => 'string',
|
||||||
|
'single' => false,
|
||||||
|
'sanitize_callback' => function ( $value ) {
|
||||||
|
return esc_sql( $value );
|
||||||
|
},
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get metadata of ActivityPub Actor by ID/URL.
|
* Get metadata of ActivityPub Actor by ID/URL.
|
||||||
*
|
*
|
||||||
|
@ -117,7 +144,7 @@ class Event_Sources {
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public static function is_cached_external_event_post( $post ): bool {
|
public static function is_cached_external_event_post( $post ): bool {
|
||||||
if ( get_post_meta( $post->id, 'event_bridge_for_activitypub_is_cached', true ) ) {
|
if ( get_post_meta( $post->ID, 'event_bridge_for_activitypub_is_cached', true ) ) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -157,9 +184,18 @@ class Event_Sources {
|
||||||
* Delete old cached events that took place in the past.
|
* Delete old cached events that took place in the past.
|
||||||
*/
|
*/
|
||||||
public static function clear_cache() {
|
public static function clear_cache() {
|
||||||
|
// Get the event plugin integration that is used.
|
||||||
|
$event_plugin_integration = Setup::get_event_plugin_integration_used_for_event_sources_feature();
|
||||||
|
|
||||||
|
if ( ! $event_plugin_integration ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$cache_retention_period = get_option( 'event_bridge_for_activitypub_event_source_cache_retention', WEEK_IN_SECONDS );
|
$cache_retention_period = get_option( 'event_bridge_for_activitypub_event_source_cache_retention', WEEK_IN_SECONDS );
|
||||||
|
|
||||||
$past_event_ids = GatherPress::get_past_events( $cache_retention_period );
|
$ended_before_time = gmdate( 'Y-m-d H:i:s', time() - $cache_retention_period );
|
||||||
|
|
||||||
|
$past_event_ids = $event_plugin_integration::get_cached_remote_events( $ended_before_time );
|
||||||
|
|
||||||
foreach ( $past_event_ids as $post_id ) {
|
foreach ( $past_event_ids as $post_id ) {
|
||||||
if ( has_post_thumbnail( $post_id ) ) {
|
if ( has_post_thumbnail( $post_id ) ) {
|
||||||
|
|
|
@ -120,12 +120,12 @@ class Settings {
|
||||||
|
|
||||||
\register_setting(
|
\register_setting(
|
||||||
'event-bridge-for-activitypub',
|
'event-bridge-for-activitypub',
|
||||||
'event_bridge_for_activitypub_plugin_used_for_event_source_feature',
|
'event_bridge_for_activitypub_integration_used_for_event_sources_feature',
|
||||||
array(
|
array(
|
||||||
'type' => 'array',
|
'type' => 'array',
|
||||||
'description' => \__( 'Define which plugin/integration is used for the event sources feature', 'event-bridge-for-activitypub' ),
|
'description' => \__( 'Define which plugin/integration is used for the event sources feature', 'event-bridge-for-activitypub' ),
|
||||||
'default' => array(),
|
'default' => array(),
|
||||||
'sanitize_callback' => array( self::class, 'sanitize_plugin_used_for_event_sources' ),
|
'sanitize_callback' => array( self::class, 'sanitize_event_plugin_integration_used_for_event_sources' ),
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -144,11 +144,11 @@ class Settings {
|
||||||
/**
|
/**
|
||||||
* Sanitize the option which event plugin.
|
* Sanitize the option which event plugin.
|
||||||
*
|
*
|
||||||
* @param string $plugin The setting.
|
* @param string $event_plugin_integration The setting.
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public static function sanitize_plugin_used_for_event_sources( $plugin ) {
|
public static function sanitize_event_plugin_integration_used_for_event_sources( $event_plugin_integration ) {
|
||||||
if ( ! is_string( $plugin ) ) {
|
if ( ! is_string( $event_plugin_integration ) ) {
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
$setup = Setup::get_instance();
|
$setup = Setup::get_instance();
|
||||||
|
@ -157,14 +157,13 @@ class Settings {
|
||||||
$valid_options = array();
|
$valid_options = array();
|
||||||
foreach ( $active_event_plugins as $active_event_plugin ) {
|
foreach ( $active_event_plugins as $active_event_plugin ) {
|
||||||
if ( $active_event_plugin instanceof Feature_Event_Sources ) {
|
if ( $active_event_plugin instanceof Feature_Event_Sources ) {
|
||||||
$full_class = $active_event_plugin::class;
|
$valid_options[] = $active_event_plugin::class;
|
||||||
$valid_options[] = substr( $full_class, strrpos( $full_class, '\\' ) + 1 );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( in_array( $plugin, $valid_options, true ) ) {
|
if ( in_array( $event_plugin_integration, $valid_options, true ) ) {
|
||||||
return $plugin;
|
return $event_plugin_integration;
|
||||||
}
|
}
|
||||||
return '';
|
return Setup::get_default_integration_class_name_used_for_event_sources_feature();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -15,12 +15,11 @@ namespace Event_Bridge_For_ActivityPub;
|
||||||
// Exit if accessed directly.
|
// Exit if accessed directly.
|
||||||
defined( 'ABSPATH' ) || exit; // @codeCoverageIgnore
|
defined( 'ABSPATH' ) || exit; // @codeCoverageIgnore
|
||||||
|
|
||||||
use Event_Bridge_For_ActivityPub\ActivityPub\Transmogrifier\Base as Transmogrifier_Base;
|
use Event_Bridge_For_ActivityPub\ActivityPub\Transmogrifier\Base as Transmogrifier;
|
||||||
use Event_Bridge_For_ActivityPub\Admin\Event_Plugin_Admin_Notices;
|
use Event_Bridge_For_ActivityPub\Admin\Event_Plugin_Admin_Notices;
|
||||||
use Event_Bridge_For_ActivityPub\Admin\General_Admin_Notices;
|
use Event_Bridge_For_ActivityPub\Admin\General_Admin_Notices;
|
||||||
use Event_Bridge_For_ActivityPub\Admin\Health_Check;
|
use Event_Bridge_For_ActivityPub\Admin\Health_Check;
|
||||||
use Event_Bridge_For_ActivityPub\Admin\Settings_Page;
|
use Event_Bridge_For_ActivityPub\Admin\Settings_Page;
|
||||||
use Event_Bridge_For_ActivityPub\Admin\User_Interface;
|
|
||||||
use Event_Bridge_For_ActivityPub\Integrations\Event_Plugin;
|
use Event_Bridge_For_ActivityPub\Integrations\Event_Plugin;
|
||||||
use Event_Bridge_For_ActivityPub\Integrations\Feature_Event_Sources;
|
use Event_Bridge_For_ActivityPub\Integrations\Feature_Event_Sources;
|
||||||
|
|
||||||
|
@ -381,42 +380,66 @@ class Setup {
|
||||||
self::activate_activitypub_support_for_active_event_plugins();
|
self::activate_activitypub_support_for_active_event_plugins();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the event plugin integration class name used for the event sources feature.
|
||||||
|
*
|
||||||
|
* @return string The class name of the event plugin integration class.
|
||||||
|
*/
|
||||||
|
public static function get_event_plugin_integration_used_for_event_sources_feature() {
|
||||||
|
// Get plugin option.
|
||||||
|
$event_plugin_integration = get_option( 'event_bridge_for_activitypub_integration_used_for_event_sources_feature', '' );
|
||||||
|
|
||||||
|
// Exit if event sources are not active or no plugin is specified.
|
||||||
|
if ( empty( $event_plugin_integration ) ) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate if setting is actual existing class.
|
||||||
|
if ( ! class_exists( $event_plugin_integration ) ) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $event_plugin_integration;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the transmogrifier class.
|
* Get the transmogrifier class.
|
||||||
*
|
*
|
||||||
* Retrieves the appropriate transmogrifier class based on the active event plugins and settings.
|
* Retrieves the appropriate transmogrifier class based on the active event plugins and settings.
|
||||||
*
|
*
|
||||||
* @return Transmogrifier_Base|null The transmogrifier class name or null if not available.
|
* @return ?Transmogrifier The transmogrifier class name or null if not available.
|
||||||
*/
|
*/
|
||||||
public static function get_transmogrifier() {
|
public static function get_transmogrifier(): ?Transmogrifier {
|
||||||
// Retrieve singleton instance.
|
$event_plugin_integration = self::get_event_plugin_integration_used_for_event_sources_feature();
|
||||||
|
|
||||||
|
if ( ! $event_plugin_integration ) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate if get_transformer method exists in event plugin integration.
|
||||||
|
if ( ! method_exists( $event_plugin_integration, 'get_transmogrifier' ) ) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
$transmogrifier = $event_plugin_integration::get_transmogrifier();
|
||||||
|
|
||||||
|
return $transmogrifier;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the full class name of the first event plugin integration that is active and supports the event source feature.
|
||||||
|
*
|
||||||
|
* @return string The full class name of the event plugin integration.
|
||||||
|
*/
|
||||||
|
public static function get_default_integration_class_name_used_for_event_sources_feature(): string {
|
||||||
$setup = self::get_instance();
|
$setup = self::get_instance();
|
||||||
|
|
||||||
// Get plugin options.
|
$event_plugin_integrations = $setup->get_active_event_plugins();
|
||||||
$event_sources_active = (bool) get_option( 'event_bridge_for_activitypub_event_sources_active', false );
|
foreach ( $event_plugin_integrations as $event_plugin_integration ) {
|
||||||
$event_plugin = get_option( 'event_bridge_for_activitypub_plugin_used_for_event_source_feature', '' );
|
if ( $event_plugin_integration instanceof Feature_Event_Sources ) {
|
||||||
|
return $event_plugin_integration::class;
|
||||||
// Exit if event sources are not active or no plugin is specified.
|
|
||||||
if ( ! $event_sources_active || empty( $event_plugin ) ) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get the list of active event plugins.
|
|
||||||
$active_event_plugins = $setup->get_active_event_plugins();
|
|
||||||
|
|
||||||
// Loop through active plugins to find a match.
|
|
||||||
foreach ( $active_event_plugins as $active_event_plugin ) {
|
|
||||||
// Retrieve the class name of the active plugin.
|
|
||||||
$active_plugin_class_name = get_class( $active_event_plugin );
|
|
||||||
|
|
||||||
// Check if the active plugin class name contains the specified event plugin name.
|
|
||||||
if ( false !== strpos( $active_plugin_class_name, $event_plugin ) ) {
|
|
||||||
// Return the transmogrifier class provided by the plugin.
|
|
||||||
return $active_event_plugin->get_transmogrifier();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return '';
|
||||||
// Return null if no matching plugin is found.
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,7 +38,7 @@ if ( ! isset( $args ) || ! array_key_exists( 'supports_event_sources', $args ) )
|
||||||
|
|
||||||
$event_plugins_supporting_event_sources = $args['supports_event_sources'];
|
$event_plugins_supporting_event_sources = $args['supports_event_sources'];
|
||||||
|
|
||||||
$selected_plugin = \get_option( 'event_bridge_for_activitypub_plugin_used_for_event_source_feature', '' );
|
$selected_plugin = \get_option( 'event_bridge_for_activitypub_integration_used_for_event_sources_feature', '' );
|
||||||
$event_sources_active = \get_option( 'event_bridge_for_activitypub_event_sources_active', false );
|
$event_sources_active = \get_option( 'event_bridge_for_activitypub_event_sources_active', false );
|
||||||
$cache_retention_period = \get_option( 'event_bridge_for_activitypub_event_source_cache_retention', DAY_IN_SECONDS );
|
$cache_retention_period = \get_option( 'event_bridge_for_activitypub_event_source_cache_retention', DAY_IN_SECONDS );
|
||||||
|
|
||||||
|
@ -128,18 +128,18 @@ $current_category_mapping = \get_option( 'event_bridge_for_activitypub_ev
|
||||||
?>
|
?>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row">
|
<th scope="row">
|
||||||
<label for="event_bridge_for_activitypub_plugin_used_for_event_source_feature"><?php \esc_html_e( 'Event Plugin', 'event-bridge-for-activitypub' ); ?></label>
|
<label for="event_bridge_for_activitypub_integration_used_for_event_sources_feature"><?php \esc_html_e( 'Event Plugin', 'event-bridge-for-activitypub' ); ?></label>
|
||||||
</th>
|
</th>
|
||||||
<td>
|
<td>
|
||||||
<select
|
<select
|
||||||
name="event_bridge_for_activitypub_plugin_used_for_event_source_feature"
|
name="event_bridge_for_activitypub_integration_used_for_event_sources_feature"
|
||||||
id="event_bridge_for_activitypub_plugin_used_for_event_source_feature"
|
id="event_bridge_for_activitypub_integration_used_for_event_sources_feature"
|
||||||
value="gatherpress"
|
value="gatherpress"
|
||||||
aria-describedby="event-sources-used-plugin-description"
|
aria-describedby="event-sources-used-plugin-description"
|
||||||
>
|
>
|
||||||
<?php
|
<?php
|
||||||
foreach ( $event_plugins_supporting_event_sources as $event_plugin ) {
|
foreach ( $event_plugins_supporting_event_sources as $event_plugin_class_name => $event_plugin_name ) {
|
||||||
echo '<option value="' . esc_attr( $event_plugin ) . '" ' . selected( $selected_plugin, $event_plugin, true ) . '>' . esc_attr( $event_plugin ) . '</option>';
|
echo '<option value="' . esc_attr( $event_plugin_class_name ) . '" ' . selected( $event_plugin_class_name, $event_plugin, true ) . '>' . esc_attr( $event_plugin_name ) . '</option>';
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</select>
|
</select>
|
||||||
|
|
Loading…
Reference in a new issue