Zum Hauptinhalt springen
How can we help?
< Alle Themen
Drucken

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
War dieser Artikel hilfreich?
0 out Of 5 Stars
5 Sterne 0%
4 Sterne 0%
3 Sterne 0%
2 Sterne 0%
1 Sterne 0%
5
Wie können wir diesen Artikel verbessern?
Wie können wir diesen Artikel verbessern?
Inhaltsverzeichnis