Des Plugins Joomla pour "ouvrir" son composant PDF Imprimer Envoyer
Écrit par Garstud   
Samedi, 28 Novembre 2009 01:47

Share

Partager

 

Ça y est ! Vous avez fini ou êtes en train de développer un composant, bravo !

Vous avez bien travaillé, vous pensez avoir pensé à tout : paramétrage, personnalisation, fonctionnalités..., tout y est, c'est vraiment un composant qui va ajouter une brique appréciable au monde Joomla! Bien , mais la question que va vous poser cet article, c'est :
"Et pour les fonctions auxquelles vous n'avez pas pensé, avez vous préparé quelque chose ?"

plugin-cycles Bon là, on reste un peu perplexe, donc pour vous aiguiller, je dirais que si votre composant est apprécié, d'autres éditeurs de composants ou développeurs d'extensions souhaiteront sans doute :

  • interfacer votre composant avec leur solutions Joomla (composants, modules),
  • étendre les possibilités de votre composant...


Eh bien le framework Joomla vous apporte la solution !
C'est l'implémentation du Design Pattern "Observer" qui va vous aider.
Il utilise la méthode du Publish & Subscribe asynchrone :
  • Subscribe : un plugin s'inscrit (1) à un évènement (trigger)
  • Publish : lorsque le système Joomla détecte que l'évènement est en cours d'exécution(2) , il dispatche le contexte d'exécution(3) à tous les plugins qui y ont souscrit

 

 

1- Mais en quoi cela peut-il étendre les fonctions de mon composant ?

Cette question n'est bien sûr pas simple et surtout pas valable pour tous les composants, mais il s'agit de définir quelles sont les portes d'entrée que vous pouvez ouvrir à un programme tiers pour interfacer votre composant, par exemple :

  • votre composant envoie des bons de réduction, il pourrait être intéressant qu'un autre composant puisse intervenir lorsqu'un bon est émis
  • votre composant affiche un contenu sur le site, il pourrait être judicieux de permettre à des développeurs d'accéder au contenu juste avant son affichage pour qu'il puisse rajouter des contenus complémentaires (photos, musiques, vidéos...)

 

2- Appeler le Dispatcher

Il vous suffit alors de placer dans votre code, aux endroits appropriés des "portes" permettant à des plugins d'interagir avec votre contexte d'exécution :

  • On demande au dispatcher d'inscrire un nouvel évènement dans Joomla :
    • - juste 2 lignes de code pour ouvrir votre application !
//exemple 1 : 
$dispatcher =& JDispatcher::getInstance(); 
$results = $dispatcher->trigger( '', > );
 
//exemple 2 : 
$dispatcher =& JDispatcher::getInstance();
$results = $dispatcher->trigger( 'onReductionPrepare', $tabParams );
// le $tabParams devant contenir toutes les variables à communiquer a un programme tiers

 


  • Le plugin cherchant à utiliser ou étendre vos services, devant, lui, implémenter l'inscription à l'évènement :
    • il enregistre sa fonction dans le système Joomla! auprès de l'évènement
    • il définit le code de sa fonction
defined( '_JEXEC' ) or die( 'Restricted access' );
 
$mainframe->registerEvent( 'onReductionPrepare', 'MaFonctionEnvoiListeProduitsPromo' );
 
function MaFonctionEnvoiListeProduitsPromo( &tabParams ) {
 
    //Plugin code goes here
//... envoie un mail au client qui lui fournit tous les produits a acheter avec ces bons de reduction !
 
}

 



En savoir plus :

 

Mise à jour le Jeudi, 22 Juillet 2010 10:51
 

Commentaires  

 
#3 28-12-2010 11:25
Excellent article même si ça manque de détails.
Citer
 
 
#2 01-12-2010 01:03
Ca manques tout de meme de détails
Citer
 
 
#1 05-08-2010 13:58
Excellent article, merci
Citer
 

Ajouter un Commentaire


Code de sécurité
Rafraîchir