get_id(); } /** * Returns the ActivityStreams 2.0 Object-Type for an Event. * * @see https://www.w3.org/TR/activitystreams-vocabulary/#dfn-event * * @return string The Event Object-Type. */ protected function get_object_type() { return 'Event'; } /** * Set the event category, via the mapping setting. */ public function get_category() { $current_category_mapping = \get_option( 'activitypub_event_extensions_event_category_mappings', array() ); $terms = \get_the_terms( $this->wp_object, $this->wp_taxonomy ); if ( ! is_wp_error( $terms ) && $terms ) { return $current_category_mapping[ $terms[0]->slug ]; } else { return \get_option( 'activitypub_event_extensions_default_event_category', 'MEETING' ); } } /** * Generic function that converts an WP-Event object to an ActivityPub-Event object. * * @return Event_Object */ public function to_object() { $activitypub_object = new Event_Object(); $activitypub_object = $this->transform_object_properties( $activitypub_object ); $published = \strtotime( $this->wp_object->post_date_gmt ); $activitypub_object->set_published( \gmdate( 'Y-m-d\TH:i:s\Z', $published ) ); $updated = \strtotime( $this->wp_object->post_modified_gmt ); if ( $updated > $published ) { $activitypub_object->set_updated( \gmdate( 'Y-m-d\TH:i:s\Z', $updated ) ); } $activitypub_object->set_content_map( array( $this->get_locale() => $this->get_content(), ) ); $path = sprintf( 'actors/%d/followers', intval( $this->wp_object->post_author ) ); $activitypub_object->set_to( array( 'https://www.w3.org/ns/activitystreams#Public', get_rest_url_by_path( $path ), ) ); return $activitypub_object; } }