Home hinzugefügt
parent
9db1c7d5d0
commit
973e113e8c
1 changed files with 71 additions and 0 deletions
71
Home.md
Normal file
71
Home.md
Normal file
|
@ -0,0 +1,71 @@
|
|||
## Developer documentation
|
||||
|
||||
### Overview
|
||||
|
||||
The entry point of the plugin is the initialization of the singleton class `\Event_Bridge_For_ActivityPub\Setup` in the main plugin file `event-bridge-for-activitypub.php`.
|
||||
The constructor of that class calls its `setup_hooks()` function. This function provides hooks that initialize all parts of the _Event Bridge For ActivityPub_ whenever needed.
|
||||
|
||||
### File structure
|
||||
|
||||
Note that almost all files and folder within the `activitypub` folders are structured the same way as in the WordPress ActivityPub plugin.
|
||||
|
||||
### Event Plugin Integrations
|
||||
|
||||
This plugin supports multiple event plugins, even at the same time. To add a new one you first need to add some basic information about your event plugin. Just create a new file in `./includes/integrations/my-event-plugin.php`. Implement at least all abstract functions of the `Event_Plugin_Integration` class.
|
||||
|
||||
#### Basic Event Plugin Integration
|
||||
|
||||
```php
|
||||
namespace Event_Bridge_For_ActivityPub\Integrations;
|
||||
|
||||
// Exit if accessed directly.
|
||||
defined( 'ABSPATH' ) || exit; // @codeCoverageIgnore
|
||||
|
||||
/**
|
||||
* Integration information for My Event Plugin
|
||||
*
|
||||
* This class defines necessary meta information is for the integration of My Event Plugin with the ActivityPub plugin.
|
||||
*/
|
||||
final class My_Event_Plugin extends Event_Plugin_Integration {
|
||||
```
|
||||
|
||||
#### Registering an Event Plugin Integration
|
||||
|
||||
Then you need to tell the Event Bridge for ActivityPub about that class by adding it to the `EVENT_PLUGIN_INTEGRATIONS` constant in the `includes/setup.php` file:
|
||||
|
||||
```php
|
||||
private const EVENT_PLUGIN_INTEGRATIONS = array(
|
||||
...
|
||||
\Event_Bridge_For_ActivityPub\Integrations\My_Event_Plugin::class,
|
||||
);
|
||||
```
|
||||
|
||||
#### Additional Feature: Event Sources
|
||||
|
||||
Not all _Event Plugin Integrations_ support the event-sources feature. To add support for it an integration must implement the `Feature_Event_Sources` interface.
|
||||
|
||||
```php
|
||||
namespace Event_Bridge_For_ActivityPub\Integrations;
|
||||
|
||||
// Exit if accessed directly.
|
||||
defined( 'ABSPATH' ) || exit; // @codeCoverageIgnore
|
||||
|
||||
/**
|
||||
* Integration information for My Event Plugin.
|
||||
*
|
||||
* This class defines necessary meta information is for the integration of My Event Plugin with the ActivityPub plugin.
|
||||
* This integration supports the Event Sources Feature.
|
||||
*/
|
||||
final class GatherPress extends Event_Plugin_Integration implements Feature_Event_Sources {
|
||||
```
|
||||
|
||||
### Transformer
|
||||
|
||||
Transformers are the classes that convert an WordPress post type (e.g. one used for events) to _ActivityStreams_.
|
||||
The Event Bridge for ActivityPub then takes care of applying the transformer, so you can jump right into [implementing it](./transformer.md).
|
||||
|
||||
### Event Sources Feature – Transmogrifier
|
||||
|
||||
The event sources feature allows to aggregate events from external ActivityPub actors. As the initialization of the Event-Sources feature is quite complex all of that initialization is done in the `init` function of the file `includes/class-event-sources.php` which is called by the `\Event_Bridge_For_ActivityPub\Setup` class (`includes/class-setup.php`).
|
||||
|
||||
In this plugin we call a **_Transmogrifier_** the **opposite** of a **_Transformer_**. It takes care of converting an ActivityPub (`Event`) object in _ActivityStreams_ to the WordPress representation of an event plugin. The transmogrifier classes are only used when the `Event Sources` feature is activated. The _Event Bridge For ActivityPub_ can register transformers for multiple event plugins at the same time, however only one transmogrifier, that is one target even plugin can be used as a target for incoming external ActivityPub `Event` objects.
|
Loading…
Reference in a new issue