How can we help?
Capability-System
Übersicht
Das Capability-System ermöglicht es oMM-Plugins, ihre Fähigkeiten zentral zu registrieren. Andere Plugins können diese abfragen und nutzen, ohne direkte Abhängigkeiten.
Konzept
Stell dir Capabilities wie Berufe in einer Stadt vor:
- Ein Plugin registriert: „Ich kann Zitationen formatieren“ (
cite-render) - Ein anderes Plugin fragt: „Gibt es jemanden, der Zitationen formatieren kann?“
- Wenn ja → nutze die erweiterte Funktion
- Wenn nein → Fallback auf einfache Darstellung
Registrierte Capabilities
| Capability | Provider | Beschreibung |
|---|---|---|
cite-render |
omm-citations | CSL-basierte Zitationsformatierung |
zotero-sync |
omm-citations | Synchronisation mit Zotero |
bib-gen |
omm-citations | Bibliographie-Generierung |
ref-mgmt |
omm-references | Referenzverwaltung |
person-mgmt |
omm-persons | Personenverwaltung |
Capability registrieren
<?php
namespace OpenMindMesh\Citations\Core;
class Plugin {
public function register_capabilities() {
if (!function_exists('omm_get_capability_manager')) {
return;
}
$manager = omm_get_capability_manager();
$manager->register_capability('cite-render', 'omm-citations');
$manager->register_capability('zotero-sync', 'omm-citations');
}
}
Capability abfragen
<?php
$manager = omm_get_capability_manager();
if ($manager->has_capability('cite-render')) {
// Nutze erweiterte Formatierung
$provider = $manager->get_provider('cite-render');
return apply_filters('omm_format_citation', '', $reference_id);
}
// Fallback: Einfache Darstellung
return $this->simple_render($reference_id);
CapabilityManager API
| Methode | Beschreibung | Rückgabe |
|---|---|---|
register_capability($name, $provider) |
Registriert eine neue Capability | bool |
has_capability($name) |
Prüft ob Capability verfügbar | bool |
get_provider($name) |
Gibt den Provider-Slug zurück | string|null |
get_all_capabilities() |
Liste aller Capabilities | array |