diff --git a/activitypub-event-transformers.php b/activitypub-event-transformers.php index 679308b..4fca954 100644 --- a/activitypub-event-transformers.php +++ b/activitypub-event-transformers.php @@ -9,6 +9,8 @@ * Text Domain: activitypub-event-transformers * * ActivityPub tested up to: 1.2.0 + * + * @package activitypub-event-transformer */ if ( ! defined( 'ABSPATH' ) ) { @@ -25,19 +27,24 @@ if ( ! defined( 'ABSPATH' ) ) { * @return void */ function register_event_transformers( $transformers_manager ) { - // if ( ! function_exists( 'is_plugin_active' ) ) { - // require_once __DIR__ . '/wp-admin/includes/plugin.php'; - // } + require_once __DIR__ . '/activitypub/transformer/class-tribe.php'; + $transformers_manager->register( new \Tribe() ); - // if ( is_plugin_active( 'the-events-calendar/the-events-calendar.php' ) ) { - // require_once __DIR__ . '/activitypub/transformer/tribe.php'; - // $transformers_manager->register( new \Tribe() ); - // } - - // if ( is_plugin_active( 'vsel/vsel.php' ) ) { - require_once __DIR__ . '/activitypub/transformer/vs-event.php'; - $transformers_manager->register( new \VS_Event() ); - // } + require_once __DIR__ . '/activitypub/transformer/class-vs-event.php'; + $transformers_manager->register( new \VS_Event() ); } +add_filter( + 'activitypub_json_context', + function ( $context ) { + $context[2]['commentsEnabled'] = array( + '@id' => 'pt:commentsEnabled', + '@type' => 'sc:Boolean', + ); + return $context; + }, + 10, + 2 +); + add_action( 'activitypub_transformers_register', 'register_event_transformers' ); diff --git a/activitypub/object/class-event.php b/activitypub/object/class-event.php new file mode 100644 index 0000000..49e175f --- /dev/null +++ b/activitypub/object/class-event.php @@ -0,0 +1,38 @@ + + * Mobilizon also implemented this as a fallback to their own + * repliesModerationOption. + * + * @see https://docs.joinpeertube.org/api/activitypub#video + * @see https://docs.joinmobilizon.org/contribute/activity_pub/ + * + * @var bool + */ + protected $comments_enabled; +} diff --git a/activitypub/transformer/tribe.php b/activitypub/transformer/class-tribe.php similarity index 90% rename from activitypub/transformer/tribe.php rename to activitypub/transformer/class-tribe.php index 4902c1a..0e0ba62 100644 --- a/activitypub/transformer/tribe.php +++ b/activitypub/transformer/class-tribe.php @@ -1,4 +1,10 @@ wp_post; - $object = new Base_Object(); + $object = new Event(); $object->set_id( $this->get_id() ); $object->set_url( $this->get_url() ); @@ -121,6 +142,9 @@ class VS_Event extends \Activitypub\Transformer\Base { $location = get_post_meta( $wp_post->ID, 'event-link', true ); $object->set_location( $this->get_event_location( $wp_post->ID ) ); + $is_open_for_comments = comments_open( $wp_post->ID ); + $object->set_comments_enabled( $is_open_for_comments ); + $object->set_to( array( 'https://www.w3.org/ns/activitystreams#Public', @@ -136,5 +160,4 @@ class VS_Event extends \Activitypub\Transformer\Base { return $object; } - }