Skip to content

Admin-Integration

FG Core stellt ein gemeinsames WordPress-Admin-Menü FUNCKGROUP bereit. Einbindende Plugins registrieren dort entweder eine einzelne Seite oder mehrere tabbasierte Bereiche.

Die Hauptseite zeigt die bei FG Core registrierten Plugins als Karten. Abhängig von den Registrierungsdaten können folgende Angaben erscheinen:

  • Menü-/Pluginname
  • Beschreibung
  • Plugin-Version

Am Ende der Übersicht zeigt FG Core die aktive Runtime-Version und den Provider. Für die Statusmeldung werden dort nur dann Statusinformationen ausgegeben, wenn sie deaktiviert ist, bereits erfolgreich gesendet wurde oder ein Fehler vorliegt.

Wenn kein tabs-Array vorhanden ist, muss ein gültig definierter callback registriert sein.

fg_core_register_plugin([
'slug' => 'my-plugin',
'title' => 'My Plugin',
'menu_title' => 'My Plugin',
'description' => 'Beschreibung.',
'capability' => 'manage_options',
'callback' => [$this, 'render_page'],
'position' => 50,
]);

Fehlt sowohl ein gültiger Callback als auch mindestens ein gültiger Tab, lehnt FG Core die Registrierung ab und gibt false zurück.

Für mehrere Verwaltungsbereiche wird tabs verwendet:

fg_core_register_plugin([
'slug' => 'my-plugin',
'title' => 'My Plugin',
'menu_title' => 'My Plugin',
'description' => 'Beschreibung.',
'default_tab' => 'overview',
'tabs' => [
'overview' => [
'title' => 'Übersicht',
'callback' => [$this, 'render_overview'],
'position' => 10,
],
'settings' => [
'title' => 'Einstellungen',
'callback' => [$this, 'render_settings'],
'capability' => 'manage_options',
'position' => 20,
],
],
]);

FG Core rendert bei tabbasierter Registrierung den Seitenkopf, die optionale Beschreibung, die WordPress-Tab-Navigation und den Inhalts-Wrapper. Der Tab-Callback liefert nur den eigentlichen Inhalt.

Der konfigurierte default_tab wird mit sanitize_key() normalisiert. Fehlt er oder verweist er auf keinen gültigen Tab, verwendet FG Core den ersten normalisierten Tab.

Ein unbekannter tab-Parameter in der URL fällt ebenfalls auf den Standard-Tab zurück.

Plugins werden zuerst nach position und bei gleicher Position alphabetisch nach menu_title sortiert.

Tabs werden zuerst nach position und bei gleicher Position alphabetisch nach title sortiert.

Standardmäßig verwendet eine Plugin-Registrierung die Capability manage_options. Ein Tab kann zusätzlich eine eigene Capability definieren.

FG Core prüft die Capability:

  • vor dem Anlegen eines Plugin-Untermenüs für den aktuellen Benutzer
  • vor dem Rendern einer einzelnen Plugin-Seite
  • vor dem Rendern einer tabbasierte Plugin-Seite
  • vor dem Rendern des aktiven Tabs
  • beim Aufbau der sichtbaren Tab-Navigation

Das Hauptmenü besitzt separat die über fg_core_parent_capability steuerbare Standard-Capability manage_options.

FG Core verarbeitet keine plugin-spezifischen Formulare. Einbindende Plugins bleiben selbst verantwortlich für:

  • Nonces
  • Capability-Prüfungen innerhalb eigener Aktionen
  • Sanitizing eingehender Daten
  • Escaping der Ausgabe
  • Datenhaltung
  • Fachlogik

Das mitgelieferte Dummy-Plugin demonstriert diese Trennung mit einem eigenen Formular.

Die CSS-Datei assets/admin.css wird nur geladen, wenn die aktuelle Admin-Seite die FG-Core-Übersicht oder eine registrierte FG-Core-Plugin-Seite ist.

Es gibt im Projekt kein eigenes JavaScript für die Admin-Oberfläche.