web-dev-qa-db-fra.com

Événement Joomla onExtensionAfterSave

Je développe une extension de composant pour créer différentes formes d'assurance.

Lorsque je crée un formulaire dans le backend et que je l'enregistre en cliquant sur le bouton Save ou Save & Close, Je vais créer une table dans la base de données. L'événement approprié pourrait être onExtensionAfterSave événement dans un plugin appartenant au groupe Extension.

Maintenant, la question est la suivante: j'ai vu deux exemples différents de cette méthode:

  1. onExtensionAfterSave($data, $isNew)
  2. onExtensionAfterSave($context, &$table, $isNew)

Quel est le bon?

Aussi, pour obtenir des paramètres, puis-je utiliser JPlugin::params (Paramètres de mon extension dans le backend déjà créés et sauvegardés dans une base de données)?

onExtensionAfterSave n'est pas un événement Joomla commun. Il ne se déclenche que lorsque la configuration composant/module/plug-in est enregistrée. Exemple: éditer la configuration globale de Joomla, éditer les options d’un composant, éditer les options d’un module, éditer les options d’un plugin. J'écris des extensions depuis des années et je n'ai jamais utilisé cet événement - parce que ce n'est pas utile.

Je pense que vous avez choisi le mauvais événement.

La création d'un formulaire au sein de votre composant ne se déclenchera que si vous avez écrit votre composant pour déclencher cet événement. Et si vous le faisiez, je vous conseillerais de choisir un événement différent - comme onContentAfterSave, conçu pour faire ce que vous demandez.

S'il s'agit de votre propre composant (que vous écrivez), vous pouvez envisager de créer votre propre ensemble d'événements à surveiller. Joomla est conçu pour cela. Je l'ai fait dans l'une de mes propres composantes pour surveiller une douzaine d'événements différents liés à la formation en TCC.

Lorsque vous travaillez avec vos propres événements, vous pouvez définir ce que vous souhaitez envoyer au plug-in. Dans mes événements, la plupart ne prennent qu'une seule variable - un identifiant. Le plugin récupère les données en fonction de cet ID et fait tout ce pour quoi il est conçu.

Étape 1, choisissez un type unique pour nommer votre dossier de plug-ins:/plugins/YOURNEWTYPE /

Étape 2, créez un plugin de test pour définir et tester vos événements.

Étape 3, chargez les plugins et créez un répartiteur dans votre composant pour déclencher votre événement personnalisé chaque fois que vous en aurez besoin.

C'est super facile.

0
Michael