Letzte Ankündigung: MyBB 1.6.10 veröffentlicht (22.04.13)
Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
|
Wie ist ein Plugin aufgebaut?
|
|
13.10.2005, 16:32
Beitrag #1
|
|||
|
|||
|
Wie ist ein Plugin aufgebaut?
Im folgenden wird erklärt, aus welchen Teilen ein Plugin für das MyBB besteht. Als Beispiel dient das Plugin "Übersicht", aus dessen Code einzelne Teile zur Erklärung aufgeführt werden.
1. Benötigte Daten für das Plugin-System Hier wird festgelegt, an welchem Haken ("Hook") das Plugin ausgeführt und welches Plugin integriert wird. PHP-Code: $plugins->add_hook("index_start", "overview"); 2. Informationen zum Plugin Hier werden Informationen, wie Name, Verfasser, usw. angegeben, die später im Plugin-Manager angezeigt werden. PHP-Code: function overview_info()Hier werden alle Aktionen aufgeführt, die bei der Aktivierung des Plugins erfolgen. PHP-Code: function overview_activate() {PHP-Code: require "./inc/adminfunctions_templates.php";3.2 Templates einfügen PHP-Code: $templatearray = array(3.3 Einstellungsgruppe erstellen PHP-Code: $overview_group = array(3.4 Einstellungen einfügen PHP-Code: $overview_1 = array(3.5 Einstellungen erneuern PHP-Code: rebuild_settings(); Aktionen bei Deaktivierung Hier werden alle Aktionen aufgeführt, die bei der Deaktivierung des Plugins erfolgen. PHP-Code: function overview_deactivate() {PHP-Code: require "./inc/adminfunctions_templates.php";3.2 Templates löschen PHP-Code: $db->query("DELETE FROM ".TABLE_PREFIX."templates WHERE title='index_overview'"); 3.3 Einstellungsgruppe löschen PHP-Code: $query = $db->query("SELECT gid FROM ".TABLE_PREFIX."settinggroups WHERE name='Übersicht'");3.4 Einstellungen löschen PHP-Code: $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE gid='".$g['gid']."'"); 3.5 Einstellungen erneuern PHP-Code: rebuild_settings(); 4. Funktionen des Plugins PHP-Code: function overview() {5. Funktion: Einstellung erneuern PHP-Code: if(!function_exists("rebuild_settings"))Ich hoffe, dass dieses Tutorial einen guten Überblick darüber verschafft, wie das Plugin-System des MyBB funktioniert und wie ein Plugin aufgebaut ist. Noch ein Hinweis: Einstellungen des MyBB werden im PHP-Code aufgerufen durch PHP-Code: $mybb->settings['Einstellungsname'] PHP-Code: echo $mybb->settings['overview_max']; Gruß, Michael ![]() Bitte gelöste Themen als "erledigt" markieren. Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht. |
|||
|
01.05.2007, 13:22
(Dieser Beitrag wurde zuletzt bearbeitet: 01.05.2007 13:30 von Jan.)
Beitrag #2
|
|||
|
|||
|
RE: Wie ist ein Plugin aufgebaut?
Der Punkt:
5. Funktion: Einstellung erneuern stimmt nicht mehr oder? Ich bekomme immer den Fehler, das er die Datei nicht finden kann. Kann es sein das die Funktion geändert wurde? Anbei mal das Plugin Jan www.malte-gerth.de janmalte@ubuntu-jabber.de |
|||
|
01.05.2007, 13:39
Beitrag #3
|
|||
|
|||
|
RE: Wie ist ein Plugin aufgebaut?
Ersetze
PHP-Code: $file = fopen("./inc/settings.php", "w"); PHP-Code: $file = fopen(MYBB_ROOT."inc/settings.php", "w"); Gruß, Michael ![]() Bitte gelöste Themen als "erledigt" markieren. Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht. |
|||
|
01.05.2007, 13:46
Beitrag #4
|
|||
|
|||
|
RE: Wie ist ein Plugin aufgebaut?
Ja, wahrscheinlich schon.
Die Funktion wurde aber so wie es aussieht umbenannt. So klappt es auch: PHP-Code: rebuildsettings(); Jan www.malte-gerth.de janmalte@ubuntu-jabber.de |
|||
|
14.11.2008, 10:28
Beitrag #5
|
|||
|
|||
|
RE: Wie ist ein Plugin aufgebaut?
Punkte 3.3 und 3.4 aus der Anleitung ist eigentlich das was ich jetzt in meinem Plugin brauche, aber igitt, gibts da keine fertigen Funktionen für die das Datenbank-Gefuddel für mich übernehmen? Wenn ich mir vorstelle daß da jedes Plugin irgendwie selber an der Datenbank rumspielt wird mir ganz mulmig.
![]() Auf jeden Fall muss man da wohl einen bei weitem eindeutigeren Namen wählen als "Übersicht", denn wenn das zwei Plugins machen löscht das eine Plugin das Einstellungsmenü des anderen. Google SEO | Gravatar | Hooks | HTMLPurifier | Overview | Patches | PluginLibrary @ GitHub/frostschutz |
|||
|
14.11.2008, 18:14
Beitrag #6
|
|||
|
|||
|
RE: Wie ist ein Plugin aufgebaut?
Die Datenbank-Querys sind eigentlich total unproblematisch, anders geht es nicht. Natürlich musst du dir die Namen gut überlegen, damit es keine Probleme gibt.
Administrator von MyBBoard.de und MyBB Entwickler Kein Support per PN, E-Mail oder Messenger! Bitte gelöste Themen als "erledigt" markieren. Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht. |
|||
|
15.11.2008, 22:46
(Dieser Beitrag wurde zuletzt bearbeitet: 15.11.2008 22:46 von frostschutz.)
Beitrag #7
|
|||
|
|||
|
RE: Wie ist ein Plugin aufgebaut?
Ich habe jetzt doch einen anderen Weg gefunden: In der Installationsanleitung schreiben wie die Settings heissen und den User die Gruppe und Einstellungen darunter selber anlegen lassen.
(Wenn jedes Plugin das eigentlich selber macht, warum kann man im Admin CP überhaupt selber irgendwelche Settings anlegen? Für was?)
Google SEO | Gravatar | Hooks | HTMLPurifier | Overview | Patches | PluginLibrary @ GitHub/frostschutz |
|||
|
16.11.2008, 01:24
Beitrag #8
|
|||
|
|||
RE: Wie ist ein Plugin aufgebaut?
(15.11.2008 22:46)frostschutz schrieb: (Wenn jedes Plugin das eigentlich selber macht, warum kann man im Admin CP überhaupt selber irgendwelche Settings anlegen? Für was?)Du kannst das für viele Dinge gebrauchen. Z.B. kannst du eine Einstellung für eine Farbe oder Text erstellen und die Angaben direkt in den Templates verwenden. Gruß, Michael ![]() Bitte gelöste Themen als "erledigt" markieren. Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht. |
|||
|
16.11.2008, 01:41
Beitrag #9
|
|||
|
|||
|
RE: Wie ist ein Plugin aufgebaut?
Da das Einstellungen anlegen im Admin CP etwas umständlich ist, sich dafür aber Einstellungsgruppen sehr leicht samt allen Unterpunkten löschen lassen, hab ichs jetzt so gelöst, daß das Plugin die Einstellungen nicht selbst entfernt. In activate() werden die Gruppen und Einstellungen anlegt, sofern sie noch nicht existieren.
Damit kann man das Plugin auch einfach mal deaktivieren / deinstallieren, und wieder neu installieren, ohne gleich die Einstellungen zu verlieren / auf Standardwerte zurückzusetzen. Was hier noch fehlt: Sollte sich die Beschreibung einer Einstellung mal ändern, wird die nicht geupdated sofern die Einstellung schon existiert. Aber bei grundlegenden Funktionsänderungen ist es wahrscheinlich eh besser, der Einstellung einen neuen Namen zu geben. Michael, falls das zu sehr ins Detail / Offtopic für diesen Thread geht - lösche meine Antworten hier einfach wieder. PHP-Code: function subforum_bulb_activate()Google SEO | Gravatar | Hooks | HTMLPurifier | Overview | Patches | PluginLibrary @ GitHub/frostschutz |
|||
|
16.11.2008, 21:03
Beitrag #10
|
|||
|
|||
RE: Wie ist ein Plugin aufgebaut?
(16.11.2008 01:41)frostschutz schrieb: Damit kann man das Plugin auch einfach mal deaktivieren / deinstallieren, und wieder neu installieren, ohne gleich die Einstellungen zu verlieren / auf Standardwerte zurückzusetzen.Danke für das Codebeispiel! Der Sinn des Deaktivierens ist es ja, dass die Datenbankänderungen etc. erhalten bleiben und erst beim Deinstallieren entfernt werden. Die hier genannte Anleitung ist auch etwas veraltet; in der Doku finden sich aktuellere Informationen. Gruß, Michael ![]() Bitte gelöste Themen als "erledigt" markieren. Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht. |
|||
|
|
Suche
Michael

![[Bild: banner.png]](http://files.mybb-forum.de/images/banner.png)



Jan

(Wenn jedes Plugin das eigentlich selber macht, warum kann man im Admin CP überhaupt selber irgendwelche Settings anlegen? Für was?)