it-swarm.com.de

Wie kann ich feststellen, welche Komponente einen neuen Benutzer erstellt?

Ich arbeite an einem kniffligen User-Plugin, das bestimmte Dinge nur ausführen muss, wenn es von einer Drittanbieter-Komponente aufgerufen wird. Ich könnte die Option in der URL prüfen, aber ich muss berücksichtigen, dass der Benutzer möglicherweise über einen Drittanbieter mit MVC und das Modell direkt hinzugefügt wird, nicht unbedingt mit einem Link FÜR diese Drittanbieter-Komponente.

Gibt es eine Möglichkeit, dies festzustellen?

Update: Ein altes Problem, das mich jedoch immer noch beschäftigte. Wenn jemand Interesse daran hat, habe ich eine Protokollierungsklasse erstellt, die nachverfolgt, wo Aktualisierungen dieser Art vorhanden sind sind fertig, und speichern Sie die Daten und Parameter für eine spätere Überprüfung. Es ist kostenlos erhältlich unter JSE Github .

4
GDP

Sie können das Itemid in der URL überprüfen. Wenn es kein Itemid gibt, sollten Sie mindestens ein verstecktes Menüelement für die Registrierungsseite eines Drittanbieters erstellen. Das Itemid des Menüs kann manuell abgerufen werden (Admin-Bereich -> Menü):

enter image description here

oder durch einige Codes in Ihrem Plugin:

$app = JFactory::getApplication();
$item_id = $app->input->get('Itemid');

$menu = $app->getMenu();
$items = $menu->getItems('component', 'com_3rd_party');

foreach ($items as $item)
{
    if ($item->id == $item_id)
    {
        echo 'This is 3rd party!';
    }
}
1
Farahmand

Sie könnten versuchen, das Plugin-Ereignis onUserAfterSave ( Documentation Ref ) zu verwenden, das ausgelöst wird, wenn ein Benutzerdatensatz aktualisiert wird oder wenn ein neuer Benutzer hinzugefügt wird. Mit diesem Plugin Event kommt das $isnew Boolesches Argument. true ist, wenn ein neuer Datensatz hinzugefügt wird.

Hoffe das hilft

1
Lodder