Créer un PDF Recommander Imprimer

Des Plugins Joomla pour "ouvrir" son composant

(0 votes)
  • Document type
    Tutoriel PHP
  • Niveau
    Intermédiaire
  • Version Joomla
    1.5.x
  • Dernière modification
    11.05.12
  • Version PHP
    4.x, 5.x, 5.3.x
  • Créé par
    Garstud
  • Version MySQL
    4.x, 5.x

Ç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 dispatcherd'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 :

Ajouter un Commentaire


Code de sécurité
Rafraîchir

Recherche

Télécharger Joomla

telecharger joomla télécharger Joomla 1.5.26 télécharger Joomla 2.5.4 télécharger Joomla Platform 12.1

Connexion

Espace contributeurs