EASY_SVG_PANEL_API
Versionsnummer des Icons-Panel-Vertrags von Easy SVG: Tabs, Menüeinträge, Icon-Sammlungen und die Größen-Obergrenze. Prüf sie, bevor du das Panel erweiterst.
Konstante · Easy SVG · Status: Stabil
EASY_SVG_PANEL_API sagt einem Add-on, welche Version der Erweiterungspunkte des Icons-Panels installiert ist: Tabs, Menüeinträge und Icon-Sammlungen hinzufügen und die Größen-Obergrenze anheben. Ob es einen Filter gibt, kannst du nicht abfragen, also erkennt dein Code an dieser Zahl, ob er ein älteres oder ein neueres Easy SVG vor sich hat.
Verwendung
define( 'EASY_SVG_PANEL_API', 3 );
Wird in easy-svg.php definiert, wenn das Plugin lädt. Dieselbe Zahl kommt auf dem Icons-Bildschirm in JavaScript als window.EasySvgPanelData.panelApi und window.EasySvgPanel.api an.
Wann du es brauchst
- Dein Add-on registriert einen Tab im Icons-Panel und will
area,iconodercapabilitynutzen (ab 2). - Dein Add-on zeigt mit
registerCollections()eigene Icon-Sammlungen im Tab Icon-Bibliothek (ab 3). - Dein Add-on fügt über
easy_svg_panel_menu_tabsMenüeinträge hinzu oder hebt übereasy_svg_max_mb_ceilingdie Obergrenze an und soll auf einem Plugin ohne diese Punkte nichts tun.
Lass es bleiben, wenn du nur den Sanitizer (EASY_SVG_API) oder die Icon-Funktionen (EASY_SVG_ICONS_API) brauchst.
Parameter
Keine: Das ist eine Konstante, keine Funktion.
Rückgabewert
Heute 3. Was jede Stufe abdeckt:
- 1: die Action
easy_svg_panel_enqueue, der Filtereasy_svg_panel_menu_tabsmitTab-ID => Beschriftung, der Filtereasy_svg_max_mb_ceilingundwindow.EasySvgPanel.registerTab()mit eineridund einerrender-Funktion. - 2: Ein Tab kann zusätzlich seinen Bereich (
area, einer der fünf beschrifteten Bereiche des Panels) nennen, ein eigenesiconmitbringen und eine Berechtigung (capability) verlangen. Menüeinträge dürfen neben der einfachen Beschriftung aucharray( 'label' => ..., 'capability' => ... )sein. Der ältere Schlüsselgroupfunktioniert weiter als Alias fürarea. - 3:
window.EasySvgPanel.registerCollections(), über das ein Add-on seine Icon-Sammlungen im Tab Icon-Bibliothek zeigt.
Ein Add-on für 1 oder 2 läuft auch unter 3.
Standardwert
Nicht zutreffend: Ohne aktives Easy SVG fehlt die Konstante. In JavaScript fällt window.EasySvgPanel.api auf 1 zurück, wenn die Panel-Daten keine Zahl mitbringen.
Beispiele
Dein Panel-Bundle nur dort laden, wo es funktioniert
function myaddon_panel_assets( $panel_handle ) {
if ( ! defined( 'EASY_SVG_PANEL_API' ) || EASY_SVG_PANEL_API < 2 ) {
return;
}
wp_enqueue_script(
'myaddon-panel',
plugins_url( 'build/panel.js', __FILE__ ),
array( $panel_handle ),
'1.0.0',
true
);
}
add_action( 'easy_svg_panel_enqueue', 'myaddon_panel_assets' );
Machst du den Handle des Panels zur Abhängigkeit, lädt dein Skript nach dem von Easy SVG, und window.EasySvgPanel ist bereit.
Die Stufe in JavaScript prüfen
( function () {
var panel = window.EasySvgPanel;
if ( ! panel ) {
return;
}
if ( panel.api >= 3 && typeof panel.registerCollections === 'function' ) {
panel.registerCollections( {
id: 'myaddon-brand',
load: function () {
return Promise.resolve( [] );
},
} );
}
} )();
Ein Menüeintrag, der auf älteren Versionen zurückfällt
function myaddon_menu_tabs( $tabs ) {
if ( defined( 'EASY_SVG_PANEL_API' ) && EASY_SVG_PANEL_API >= 2 ) {
$tabs['myaddon'] = array(
'label' => __( 'Brand icons', 'myaddon' ),
'capability' => 'edit_theme_options',
);
} else {
$tabs['myaddon'] = __( 'Brand icons', 'myaddon' );
}
return $tabs;
}
add_filter( 'easy_svg_panel_menu_tabs', 'myaddon_menu_tabs' );
So funktioniert es
define( 'EASY_SVG_PANEL_API', 3 )läuft, wenneasy-svg.phplädt, bei jeder Anfrage und egal, welche Funktionen eingeschaltet sind.- Auf dem Icons-Bildschirm bekommt das Panel-Skript
easy-svg-paneldie DatenEasySvgPanelData.panelApimit(int) EASY_SVG_PANEL_API. PHP und JavaScript lesen dieselbe Konstante und können sich deshalb nicht widersprechen. window.EasySvgPanel.apiistNumber( EasySvgPanelData.panelApi || 1 ). Es existiert nur auf dem Icons-Bildschirm, wo das Panel-Skript geladen wird.- Direkt nachdem das Panel-Skript eingereiht ist, feuert die Action
easy_svg_panel_enqueuemit dem Handleeasy-svg-panel. Das ist der Moment, dein eigenes Bundle einzureihen.
Stolperfallen
- Zu früh in PHP prüfen. Ein Plugin, das vor Easy SVG lädt (zum Beispiel aus einem Ordner, der früher einsortiert wird, oder ein Must-Use-Plugin), sieht die Konstante noch nicht. Häng dich an
plugins_loadedoder an die Panel-Actions, statt beim Laden der Datei zu prüfen. - In JavaScript außerhalb des Icons-Bildschirms suchen.
window.EasySvgPanelundEasySvgPanelDatagibt es auf anderen Backend-Seiten nicht. - Mit
===auf eine Stufe prüfen. Spätere Stufen behalten alles, was frühere angeboten haben. Vergleiche mit>=. - Die Obergrenze ohne Prüfung anheben. Der Obergrenzen-Filter gehört zu diesem Vertrag. Ohne Easy SVG tut der Filter einfach nichts, die Prüfung zählt also vor allem dann, wenn du davon abhängig auch Oberfläche oder Meldungen änderst.