window.EasySvgPanel.api
Die Stufe des Icons-Panel-Vertrags als Zahl in JavaScript, gleich EASY_SVG_PANEL_API, damit ein Add-on prüfen kann, welche Registry-Funktionen es gibt.
JavaScript · Easy SVG · Status: Stabil
window.EasySvgPanel.api sagt deinem Script, welche Fassung des Panel-Vertrags das installierte Easy SVG spricht. Es ist eine schlichte Zahl, dieselbe wie die PHP-Konstante EASY_SVG_PANEL_API. Prüf sie, bevor du eine Funktion nutzt, die erst eine neuere Stufe gebracht hat, dann läuft dein Add-on auch auf Sites weiter, die noch nicht aktualisiert haben.
Verwendung
const level = Number( window.EasySvgPanel.api || 1 );
Wann du es brauchst
- Bevor du
registerCollections()aufrufst, das es ab Stufe 3 gibt. - Bevor du dich bei einem Tab auf
areaoder ein eigenesiconverlässt, die mit Stufe 2 kamen. - In einem Add-on, das mehrere Easy-SVG-Versionen unterstützt und sich zurücknehmen soll, statt kaputtzugehen.
Wann nicht:
- Um Plugin-Versionen zu vergleichen. Die Stufe ändert sich nur, wenn sich die Form des Panel-Vertrags ändert; viele Releases teilen sich eine Stufe.
- In PHP. Dort liest du
EASY_SVG_PANEL_APIdirekt, etwa bevor du die Actioneasy_svg_panel_enqueueeinhängst.
Parameter
Keine. Es ist eine reine Lese-Zahl am Registry-Objekt.
Rückgabewert
Die Vertragsstufe, derzeit 3. Was jede Stufe bietet:
| Stufe | Bringt |
|---|---|
| 1 | registerTab() mit id, render, label, order; Menüeinträge über easy_svg_panel_menu_tabs als schlichte Labels |
| 2 | area (die fünf Abschnitte der Seitenleiste), icon als Schlüsselwort oder eigene Zeichnung und eine Berechtigung pro Tab über die Array-Form von easy_svg_panel_menu_tabs |
| 3 | registerCollections() für Sammlungen im Tab Icon-Bibliothek |
Ein Add-on, das für Stufe 1 oder 2 geschrieben ist, läuft auf Stufe 3 weiter.
Standardwert
1, wenn die lokalisierten Daten des Panels kein panelApi enthalten. Auf Panels, die älter als diese Eigenschaft sind, ist window.EasySvgPanel.api gleich undefined, deshalb fallen die Beispiele auf 1 zurück.
Beispiele
Die Stufe lesen
const panel = window.EasySvgPanel;
const level = panel ? Number( panel.api || 1 ) : 0;
if ( 0 === level ) {
// Nicht auf der Icons-Seite, oder das Panel wurde nicht geladen.
}
Eine Funktion der Stufe 3 nur nutzen, wo es sie gibt
( function () {
const panel = window.EasySvgPanel;
if ( ! panel ) {
return;
}
if ( 3 <= Number( panel.api || 1 ) ) {
panel.registerCollections( {
id: 'myaddon',
load: () => [],
} );
}
} )();
Die Methode prüfen, nicht nur die Zahl
Für zusätzliche Sicherheit kombinierst du die Stufe mit einer Typprüfung. Sollte eine künftige Stufe eine Methode einmal ändern, verhindert die Typprüfung trotzdem, dass dein Script einen Fehler wirft.
const panel = window.EasySvgPanel;
const canCollect =
!! panel &&
3 <= Number( panel.api || 1 ) &&
'function' === typeof panel.registerCollections;
In PHP entscheiden, ob das Script überhaupt lädt
Dieselbe Zahl gibt es auf dem Server, du kannst das Einreihen auf zu alten Panels also ganz weglassen.
add_action( 'plugins_loaded', 'myaddon_boot' );
function myaddon_boot() {
if ( defined( 'EASY_SVG_PANEL_API' ) && 3 <= (int) EASY_SVG_PANEL_API ) {
add_action( 'easy_svg_panel_enqueue', 'myaddon_enqueue_panel' );
}
}
So funktioniert es
- In PHP gibt
easy_svg_panel_assets()'panelApi' => (int) EASY_SVG_PANEL_APIals Teil vonwindow.EasySvgPanelDataanwp_localize_script(). Genutzt wird die Konstante selbst, PHP und JavaScript können also nicht auseinanderlaufen. wp_localize_script()macht aus skalaren Werten Strings,EasySvgPanelData.panelApikommt also als"3"an.- Wenn das Panel-Bundle die Registry anlegt, rechnet es einmal
Number( EasySvgPanelData.panelApi || 1 )aus und speichert das Ergebnis alsapi.
Der Wert wird einmal beim Anlegen gelesen. Solange die Seite offen ist, ändert er sich nicht.
Stolperfallen
- Nimm
apistattEasySvgPanelData.panelApi. Der lokalisierte Wert ist ein String,'3' >= 3klappt also über Typumwandlung,'3' === 3aber nicht.apiist schon eine Zahl. undefinedauf sehr alten Panels. Fall immer zurück, etwa mitNumber( panel.api || 1 ).- Schreib nicht hinein. Eine geänderte Zahl bringt keine neuen Funktionen, sie lässt nur deine eigenen Prüfungen lügen.
- Die Stufe ist nicht die Plugin-Version. Easy SVG 5.4.0 hat Stufe 3; leite das eine nicht aus dem anderen ab.