Je travaille sur un plugin utilisateur délicat qui ne doit faire certaines choses que s'il est appelé depuis un composant tiers. Je pourrais vérifier l'option dans l'URL, mais je dois considérer que l'utilisateur peut être ajouté par l'intermédiaire d'une tierce partie utilisant MVC et le modèle directement, pas nécessairement avec un lien POUR ce composant tiers.
Y a-t-il un moyen de déterminer cela?
Mise à jour: Problème ancien, mais qui me hantait toujours, donc si cela présente un intérêt pour quiconque, j'ai créé une classe de journalisation qui permet de localiser les mises à jour de cette nature. sont terminés et enregistrez les données et paramètres impliqués pour une révision ultérieure. Son disponible gratuitement à JSE Github .
Vous pouvez vérifier le Itemid
dans l'URL. S'il n'y a pas de Itemid
, vous devez créer au moins un élément de menu caché pour la page d'inscription tierce. Le Itemid
du menu peut être obtenu manuellement (zone d'administration -> menu):
ou par des codes dans votre 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!';
}
}
Je suppose que vous pourriez essayer d’utiliser l’événement de plug-in onUserAfterSave
( Documentation) ) qui sera déclenché lors de la mise à jour d’un enregistrement utilisateur ou lors de l’ajout d’un nouvel utilisateur. Avec cet événement plugin vient le $isnew
argument booléen. true
est le moment où un nouvel enregistrement est ajouté.
J'espère que cela t'aides