it-swarm-eu.dev

Come posso determinare quale componente sta creando un nuovo utente?

Sto lavorando a un plug-in User complicato che deve fare determinate cose solo se viene chiamato da un componente di terze parti. Potrei verificare l'opzione nell'URL, ma devo considerare che l'utente può essere aggiunto tramite una terza parte usando MVC e il modello direttamente, non necessariamente con un link PER quel componente di terze parti.

C'è un modo per determinare questo?

Aggiornamento: Problema antico, ma mi perseguitava ancora, quindi, se di alcun interesse per qualcuno, ho creato una classe di registrazione in grado di tracciare dove aggiornamenti di questa natura è fatto e salva i dati e i parametri coinvolti per la successiva revisione. È disponibile gratuitamente su JSE Github .

4
GDP

Puoi controllare Itemid nell'URL. Se non è presente Itemid, è necessario creare almeno una voce di menu nascosta per la pagina di registrazione di terze parti. Il Itemid del menu può essere ottenuto manualmente (area di amministrazione -> menu):

enter image description here

o con alcuni codici all'interno del tuo 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

Suppongo che potresti provare a utilizzare l'evento del plugin onUserAfterSave ( Documentation Ref ) che verrà attivato quando viene aggiornato un record utente o quando viene aggiunto un nuovo utente. Con questo evento del plugin arriva il $isnew argomento booleano. true è quando viene aggiunto un nuovo record.

Spero che sia di aiuto

1
Lodder