PluginSDK/de
Wichtiger Hinweis: Mit der Bearbeitung dieser Seite, akzeptieren Sie das ihr Beitrag als Public Domain lizensiert wird. |
Contents |
Plugin SDK
Im Grunde ist das Plugin Installationssystem, wie das Addon System.
Schaue unter Addon SDK für mehr Informationen.
Einige Änderungen sind:
- Jedes Addon hat seine eigenen Plugin Funktionseinstellungen. Jedes Addon das Plugins benutzt, sollte ein leeres Beispiel Plugin beinhaltet.
- Plugins funktionieren nur in Addons die Plugins benutzen. Einzige Ausnahme sind "Globale Plugins", welche in allen Funktionen benutzt werden können.
Jede install.def.php in jedem Plugin muss die folgenden Variablen als erstes direkt nach dem Start der Klasse haben:
class eventsInstall { /* * These Vars are used with the new Plugin installer * @var name - unique name for the plugin * @var parent - the intended addon to use this plugin */ var $active = true; var $name = 'events'; var $filename = 'events.php'; var $parent = 'main'; var $scope = 'guild'; var $icon = 'achievement_worldevent_childrensweek'; var $version = '1.0'; var $oldversion = ''; var $wrnet_id = ''; var $fullname = 'WoW Events'; var $description = 'Creates a display of the current ingame event.'; var $credits = array( array( "name"=> "Ulminia <Ulminia@gmail.com>", "info"=> "WoW Events (Alpha Release)"), );
- $filename
- der Dateiname der Datei mit den Ausgabefunktionen (muss gleich dem Ordnernamen sein).
- $parent
- der Name des Addons für welches das Plugin ist
- $scope
- Das ist das "scope" für das Plugin z.B. "guild", mehrere können wie folgt angegeben werden "guild|char|user", global angeben für globales Plugin das unabhängig von Addons geladen wird (es steht dann in allen Funktionen zur verfügung).
Installationsklasse
function install()
Alle Funktionen aus dem Addon Installer, funktionieren hier auch, aber es können keine Menü Buttons erzeugt werden.
Addon Plugin Init
Diese Funktion muss für jedes Addon angepasst werden und in den Funktionen oder der Hauptdatei des Addons integriert werden, um Plugins zu benutzen. Dies ist die Funktion, welche im WoWRoster Portal, benutzt wird:
function _initPlugins() { global $roster, $addon; $plugins = $roster->plugin_data; if( !empty($plugins) ) { foreach( $plugins as $plugin_name => $plugin ) { if ($plugin['parent'] == $addon['basename']) { if ($roster->plugin_data[$plugin_name]['active'] == '1') { $xplugin = getplugin($plugin_name); foreach( $roster->multilanguages as $lang ) { $roster->locale->add_locale_file($xplugin['locale_dir'] . $lang . '.php', $lang); } $plugin['scope'] = explode('|',$plugin['scope']); if (in_array( $roster->scope, $plugin['scope'] ) ) { $classfile = ROSTER_PLUGINS . $plugin_name . DIR_SEP . $plugin_name . '.php'; require($classfile); $pluginstuff = new $plugin_name($xplugin); $this->block[] = array( 'name' => $roster->locale->act[$plugin_name]['title'],//$pluginstuff->fullname, 'output' => $pluginstuff->output, 'icon' => $pluginstuff->icon ); unset($pluginstuff); } } } } } return true; }
nach $pluginstuff = new $plugin_name($xplugin); ist die Stelle wo angepasste Variablen für jedes Addon definiert werden. Diese wechseln von Addon zu Addon. $this->block wird an die index.php weitergeleitet zur Ausgabe der Plugin Ausgabe.