Admin-Integration
FG Core stellt ein gemeinsames WordPress-Admin-Menü FUNCKGROUP bereit. Einbindende Plugins registrieren dort entweder eine einzelne Seite oder mehrere tabbasierte Bereiche.
Gemeinsame Übersicht
Section titled “Gemeinsame Übersicht”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.
Einzelne Admin-Seite
Section titled “Einzelne Admin-Seite”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.
Mehrere Tabs
Section titled “Mehrere Tabs”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.
Standard-Tab und ungültige Tab-Parameter
Section titled “Standard-Tab und ungültige Tab-Parameter”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.
Sortierung
Section titled “Sortierung”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.
Berechtigungen
Section titled “Berechtigungen”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.
Verantwortung des einbindenden Plugins
Section titled “Verantwortung des einbindenden Plugins”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.
Admin-Assets
Section titled “Admin-Assets”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.