2016-08-08 38 views
0

Version - Joomla 3.6.2laufen PHP-Code auf die Abmeldung eines Benutzers in joomla 3

Mein Paket enthält eine Admin-Komponente, eine Frontend-Komponente und einem Modul.

Ich versuche, einige PHP-Code (http-Anfrage) auf Benutzerabmeldung ausführen. Ich bin verwirrt darüber, wo ich diesen Code schreiben soll. Ich habe einige Fragen -

  • Ich bin nicht in der Lage, die gute Ressource auf die Implementierung von Ereignissen zu finden. Wie verwendet man diese Ereignisse (https://docs.joomla.org/Plugin/Events)
  • Muss ich ein Plugin für dieses ???
+0

Sieht so aus, als müssten Sie dies in ein Plugin einfügen. – apokryfos

+0

@apokryfos Ich bin mir nicht sicher über diese Option, eine Plugin-Datei nur für eine kleine Funktion. in drupal werden hooks verwendet, in wordpress gibt es filter, sollte es einen anderen Weg geben, dies zu tun? – NeiL

+0

In Drupal ist jeder Benutzercode technisch Teil eines Moduls oder Themas, das eine Art Plugin ist. – apokryfos

Antwort

1

Ja, ein Benutzer-Plugin zu schreiben, ist was Sie wollen, und es ist ziemlich einfach. Im Folgenden finden Sie ein Skelett für Sie mit zu beginnen:

  • Machen Sie einen neuen Ordner in Ihrer Installation, ex/Plugin/user/yourplugin
  • hinzufügen eine XML-Datei: yourplugin.xml mit folgendem Inhalt:

<?xml version="1.0" encoding="utf-8"?> <extension version="3.0.0" type="plugin" group="user" method="upgrade"> <name>plg_user_yourplugin</name> <author>NeiL</author> <creationDate>Aug 2017</creationDate> <version>3.1.0</version> <description>Add a description</description> <files> <filename plugin="yourplugin">yourplugin.php</filename> </files> </extension>

  • Und eine php-Datei wie

Die Dokumentation sagt onUserLogout sollte einen booleschen Wert zurückgeben, aber die Rückgabe von false scheint keinen Effekt zu haben, der Benutzer protokolliert den Benutzer trotzdem.

Wenn das Plugin nur auf dem Frontend laufen soll, müssen Sie damit umgehen.

Sie können die discover-Funktionalität (Extensions-> manage-> discover) verwenden, um das Plugin nach dem Erstellen der Dateien zu installieren. Denken Sie daran, das Plugin nach der Installation zu aktivieren.

+0

Hallo, ich habe eine Frage im Hinterkopf, Angenommen, ich mache eine Erweiterung, andere Kunden werden meine Erweiterung über Zip-Paket installieren, Wenn ich mit dieser Methode gehe, erstellte ich einen Ordnernamen plg_myExtension, dann habe ich Ihre Methode verwendet. Muss Admin das Plugin manuell vom Backend aus aktivieren ??? oder gibt es eine Methode, um das Plugin automatisch zu aktivieren ??? – NeiL

+0

Hallo NeiL, ich kann sehen, dass es möglich ist Plugins automatisch zu installieren, wenn Sie auch ein Installationsskript für Ihre Komponente schreiben.Ich habe das selbst nicht gemacht, aber es scheint einige Antworten zu geben, wenn Sie versuchen, es zu googeln. – jonasfh

+0

Das behebt das Problem, ich habe die Funktion onUserLogout aus der Datei /plugin/user/joomla/joomla.php kopiert und meinen Code dazwischen gelegt. Ich hoffe ich mache es richtig. – NeiL

0

können Sie dies entweder mit plugin oder tut Vorlage überwiegende von Login-Modul & com_user Komponente erreichen, wo Sie eine benutzerdefinierte URL auf logout einstellen. Nachdem der Logout-Prozess beendet ist, wird der Benutzer also zu Ihrem benutzerdefinierten Skript kommen und Sie können Ihre Sachen machen. Oder, wenn Sie Joomla nicht aktualisieren wollen, können Sie com_users hacken.

Hinweis: Nur die Plugin-Methode wird empfohlen, die sicherer ist & richtige Art und Weise zu erreichen, was Ihr Ziel ist.