it-swarm.com.de

onUserAfterLogin Popup - Joomla 3.6.4 Plugin

Ich muss ein Plugin erstellen, das ein Popup anzeigt, wenn sich ein Benutzer auf meiner Joomla 3.6.4-Website anmeldet. Ich weiß, dass ich ein Plugin erstellen und das Ereignis onUserAfterLogin auslösen muss, aber ich weiß nicht, wie ich HTML und Javascript aus einem Plugin heraus erstellen kann. Also, mein popuplogin.xml ist:

    <?xml version="1.0" encoding="utf-8"?>
<extension version="3.6" type="plugin" group="user" method="upgrade">
        <name>Popuplogin</name>
        <author>XX</author>
        <creationDate>08/03/2018</creationDate>
        <copyright>2018</copyright>
        <license>GNU General Public License</license>
        <authorEmail>XXX</authorEmail>
        <authorUrl>XXX</authorUrl>
        <version>1.0</version>
        <description>Plugin to display a modal after UserLogin</description>
        <files>
                <filename plugin="popuplogin">popuplogin.php</filename>
                <filename>index.html</filename>
        </files>
</extension>

Und mein popuplogin.php ist:

    <?php

// no direct access
defined('_JEXEC') or die;


class PlgUserPopuplogin extends JPlugin
{
    public function onUserAfterLogin($options)
        {
              return 'I think I need to place Javascript/HTML here';
 }
}

?>

Mit diesen Dateien passiert nichts, auch wenn ich ein einfaches <p>I am the login popup</p> inside return. Können Sie mir bitte erklären, wie ich eine Nachricht mit einem Plugin in Joomla richtig anzeigen kann?

3
OlafGizursson

Der Rückgabewert von onUserAfterLogin() sollte ein Boolescher Wert sein - dh true oder false. Die Idee ist, dass Sie diesen Ereignishandler verwenden können, um das Login zusätzlich zu validieren. Wenn Sie also false zurückgeben, bedeutet dies, dass das Login abgelehnt werden sollte.

Was Sie tun möchten, ist ganz anders. Sie versuchen, der Seite nach der Anmeldung Inhalt hinzuzufügen. Dafür gibt es verschiedene Möglichkeiten.

  • Option 1: Wenn Sie sich keine Gedanken über ein Modal machen, können Sie dem Benutzer über das Nachrichtensystem von Joomla Folgendes mitteilen:

    JError::raiseNotice(100, "Put whatever message you want to tell the user here.");
    
  • Option 2: Verwenden Sie eine Erweiterung wie Regular Labs Modals , damit Sie eine modale Warnung mit minimalem Code anzeigen können. Sie würden wahrscheinlich nicht viel mehr als eine einzelne Zeile in Ihrem vorhandenen Plugin benötigen, um das Modal mit der Nachricht aufzurufen, die Sie anzeigen möchten.

  • Option 3: Schreiben Sie das Modal selbst mit JavaScript und fügen Sie es mit addScript() oder addScriptDeclaration() in die Seite ein, wie in der Joomla-Dokumentation hier beschrieben: https: // docs .joomla.org/Adding_JavaScript

3
Simba