KonstantenEASY_SVG_PANEL_API

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, icon oder capability nutzen (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_tabs Menüeinträge hinzu oder hebt über easy_svg_max_mb_ceiling die 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

EASY_SVG_PANEL_APIint

Heute 3. Was jede Stufe abdeckt:

  • 1: die Action easy_svg_panel_enqueue, der Filter easy_svg_panel_menu_tabs mit Tab-ID => Beschriftung, der Filter easy_svg_max_mb_ceiling und window.EasySvgPanel.registerTab() mit einer id und einer render-Funktion.
  • 2: Ein Tab kann zusätzlich seinen Bereich (area, einer der fünf beschrifteten Bereiche des Panels) nennen, ein eigenes icon mitbringen und eine Berechtigung (capability) verlangen. Menüeinträge dürfen neben der einfachen Beschriftung auch array( 'label' => ..., 'capability' => ... ) sein. Der ältere Schlüssel group funktioniert weiter als Alias für area.
  • 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, wenn easy-svg.php lädt, bei jeder Anfrage und egal, welche Funktionen eingeschaltet sind.
  • Auf dem Icons-Bildschirm bekommt das Panel-Skript easy-svg-panel die Daten EasySvgPanelData.panelApi mit (int) EASY_SVG_PANEL_API. PHP und JavaScript lesen dieselbe Konstante und können sich deshalb nicht widersprechen.
  • window.EasySvgPanel.api ist Number( 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_enqueue mit dem Handle easy-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_loaded oder an die Panel-Actions, statt beim Laden der Datei zu prüfen.
  • In JavaScript außerhalb des Icons-Bildschirms suchen. window.EasySvgPanel und EasySvgPanelData gibt 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.

Siehe auch