Hallo, Gast! (Registrieren)

Wir wünschen allen Besuchern frohe und besinnliche Weihnachten!

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Plugin activate/deactivate
#1
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
Zitieren
#2
(26.06.2020, 13: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, 13: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.
Zitieren
#3
Hi JAY,
nunächst mal Danke für die schnelle Antwort!

(26.06.2020, 14: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.
Zitieren
#4
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]
MyBB + innovative Themes:
NokiaPort.de Forum Nokia-Traditionsforum seit 2006.
Live Escape Game Forum Diskussionsplattform für Escape-Rooms.
Unlösbares Problem, Dilemma? -> das Nötel Smile
Zitieren
#5
(26.06.2020, 16: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
Zitieren
#6
(26.06.2020, 16: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
Zitieren
#7
Vielen Dank nochmal Euch Beiden!
Ihr habt mich theoretisch ein Stück weiter gebracht.
Die Praxis werde ich selbst testen. 😉
Zitieren