PluginSDK/de

From WoWRosterWiKi
< PluginSDK
Revision as of 17:55, 5 June 2012 by Nefuh (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
WR.net

Wichtiger Hinweis: Mit der Bearbeitung dieser Seite, akzeptieren Sie das ihr Beitrag als Public Domain lizensiert wird.
Wenn Sie das nicht wollen oder Aufgrund von Lizenzrechten nicht können, bearbeiten Sie diese Seite bitte nicht.

Contents


Plugin SDK

Im Grunde ist das Plugin Installationssystem, wie das Addon System.
Schaue unter Addon SDK für mehr Informationen.
Einige Änderungen sind:

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)"),
	);

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.

Personal tools
Namespaces
Variants
Actions
WoWRoster
Navigation
Toolbox