Compatibiliteitsadapters voor plugins met een eigen paginavullende interface
Sommige plugins tekenen een eigen interface over de hele pagina, zoals een paginabouwer. Addofy moet op die schermen wegblijven. Een adapter vertelt Addofy welke schermen met rust te laten en kan compatibiliteits-CSS toevoegen.
Een adapter schrijven
use AddoBack\Compat\AbstractAdapter;
final class My_Builder_Adapter extends AbstractAdapter {
public function id(): string { return 'myplugin-builder'; }
public function is_available(): bool { return defined( 'MYPLUGIN_VERSION' ); }
protected function excluded_fragments(): array { return array( 'myplugin-builder' ); } // Screen id fragments.
public function boot(): void {
parent::boot();
add_action( 'adba_screen', static function () {
adba( 'assets' )->enqueue_external( 'myplugin-adba-compat', plugins_url( 'adba-compat.css', __FILE__ ) );
} );
}
}
add_filter( 'adba_compat_adapters', static function ( array $adapters ) {
$adapters[] = My_Builder_Adapter::class;
return $adapters;
} );
Hoe het werkt
is_available()zegt of de plugin waaraan je je aanpast actief is. Addofy start alleen de beschikbare adapters.excluded_fragments()geeft stukjes van scherm-id's. Een scherm waarvan het id een van die stukjes bevat, is uitgesloten: het krijgt geen Addofy-styling en ziet er volledig native uit.- Extra CSS gaat via
enqueue_external(), zoals elke andere asset.
Een beheerder kan schermen ook uitsluiten in de instellingen. Wil je het in code bepalen, gebruik dan de filter adba_is_excluded_screen. Veilige modus wint altijd: die filter kan Addofy niet weer aanzetten zolang veilige modus actief is.