MyBB.de Forum
Plugin activate/deactivate - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Anpassungen (https://www.mybb.de/forum/forum-47.html)
+--- Forum: Plugin-Entwicklung (https://www.mybb.de/forum/forum-74.html)
+--- Thema: Plugin activate/deactivate (/thread-37313.html)



Plugin activate/deactivate - Schnapsnase - 26.06.2020

Hallo werte Wissenden,

ich möchte mal mein Verständnis etwas erweitern. Wink 
In einigen Plugins ist keine Funktion für activate oder deactivate definiert.

1. Wie/wo werden diese Funktionen aufgerufen/ausgeführt, wenn sie in der Plugin-Datei nicht definiert sind?
2. Mal angenommen, ich brauche diese Funktionen, damit während activate/deactivate Templateänderungen durchgeführt werden...
Muss/kann ich in dem Fall die Funktionen (bei einer Plugin-Erweiterung) in der Plugin-Datei einfach hinzufügen?

Danke im Voraus für Hinweise zur Wissenserweiterung! Wink


RE: Plugin activate/deactivate - itsmeJAY - 26.06.2020

(26.06.2020, 14:31)Schnapsnase schrieb: 1. Wie/wo werden diese Funktionen aufgerufen/ausgeführt, wenn sie in der Plugin-Datei nicht definiert sind?

wenn diese nicht vorhanden sind, werden diese auch nicht aufgerufen aus dem Plugin heraus. Wie denn auch? Es existiert im Plugin ja nichts  Wink  Es müssen nicht alle Funktionen für ein Plugin vorhanden sein. Du verweist auch ja gerne auf externe Links, Themen oder Doku. Somit wärst du hier fündig geworden:

https://docs.mybb.com/1.8/development/plugins/basics/

Zitat:The _info() function is the only required function. However, you should ensure any changes made by install or activate are reversed in uninstall or deactivate, respectively. For example, if you create a table in _install() you should remove that table in _uninstall().


(26.06.2020, 14:31)Schnapsnase schrieb: 2. Mal angenommen, ich brauche diese Funktionen, damit während activate/deactivate Templateänderungen durchgeführt werden...
Muss/kann ich in dem Fall die Funktionen (bei einer Plugin-Erweiterung) in der Plugin-Datei einfach hinzufügen?

ja, kannst du.


RE: Plugin activate/deactivate - Schnapsnase - 26.06.2020

Hi JAY,
nunächst mal Danke für die schnelle Antwort!

(26.06.2020, 15:09)itsmeJAY schrieb: wenn diese nicht vorhanden sind, werden diese auch nicht aufgerufen aus dem Plugin heraus. Wie denn auch? Es existiert im Plugin ja nichts  Wink  Es müssen nicht alle Funktionen für ein Plugin vorhanden sein. Du verweist auch ja gerne auf externe Links, Themen oder Doku. Somit wärst du hier fündig geworden:

https://docs.mybb.com/1.8/development/plugins/basics/
Wenn ich, wie Du schreibst gern auf externe Links verweise (ist mir noch nicht aufgefallen), so heißt das ja nicht, dass ich mich deren nicht bediene.
Manchmal beantworten sie aber auch nicht ausreichend meine Fragen. Wink

Warum z.B. steht im ACP eine Funktion "aktivieren/deaktivieren" zur Verfügung, wenn ich sie in der Plugin-Datei nicht finde? (oder ich übersehe etwas)
Das ist z.B. so eine Frage, die mir nicht ausreichend beantwortet wurde.


RE: Plugin activate/deactivate - [ExiTuS] - 26.06.2020

Die Optionen im ACP haben genau dem Zweck, um ein Plugin zu Aktivieren oder zu Deaktivieren.

Wird ein Plugin im ACP aktiviert, wird es lauffähig und von der Forumsoftware nutzbar gemacht.
Gleichzeitig ruft die Bordsoftware eine Function *_activate() auf, FALLS ES DIESE GIBT (optional). Darin würden dann vor der Inbetriebnahme des Plugins alle nötigen Datenbank-/Template-Änderungen etc ausgeführt.
Braucht man jedoch keine notwendigen Änderungen, kann das Plugin auf diese Funktion *_activate() verzichten.

Dasselbe gilt für das Deaktivieren.

Man kann beispielsweise auch nur die Funktion *_deactivate() ins Plugin implementieren, die beim Deaktivieren durch das ACP aufgerufen wird.

[ExiTuS]


RE: Plugin activate/deactivate - Schnapsnase - 26.06.2020

(26.06.2020, 17:24)[ExiTuS] schrieb: Wird ein Plugin im ACP aktiviert, wird es lauffähig und von der Forumsoftware nutzbar gemacht.

Gleichzeitig ruft die Bordsoftware eine Function *_activate() auf, FALLS ES DIESE GIBT (optional).

Aaaah,
die Funktionen "activate/deaktivate" sind grundsätzlich erstmal in MyBB integriert und werden "nur" um die Funktion im Plugin (falls es diese gibt) erweitert.
Wenn ich das jetzt richtig verstanden habe, wird auch klar, warum es im ACP diese Funktionen gibt, obwohl sie in der Plugin-Datei gar nicht definiert sind.
@[ExiTuS]
Wenn ich das jetzt richtig verstanden habe, dann vielen Dank für die erleuchtende Erklärung!

Grüße


RE: Plugin activate/deactivate - itsmeJAY - 26.06.2020

(26.06.2020, 17:24)[ExiTuS] schrieb: Gleichzeitig ruft die Bordsoftware eine Function *_activate() auf, FALLS ES DIESE GIBT (optional). Darin würden dann vor der Inbetriebnahme des Plugins alle nötigen Datenbank-/Template-Änderungen etc ausgeführt.

_activate eher template Änderungen und _install eher Datenbankänderungen. Gleiches gilt für _uninstall und _deactivate.

Beim "deaktivieren" wird meist nur das Template bearbeitet und die jeweiligen Variablen entfernt. Beim deinstallieren hingegen, wird die Datenbank bearbeitet (z. B. Spalten gelöscht). Somit ist nach einer Deaktivierung und erneuten Aktivierung alles da wie vorher, aber bei einer Deinstallation und entsprechender neuen Aktivierung muss alles von vorne gepflegt werden.

Natürlich nur, wenn die Funktionen richtig gepflegt wurden.

Grüße


RE: Plugin activate/deactivate - Schnapsnase - 26.06.2020

Vielen Dank nochmal Euch Beiden!
Ihr habt mich theoretisch ein Stück weiter gebracht.
Die Praxis werde ich selbst testen. 😉