OverCms Wiki

Un CMS simple et puissant

Wiki  »  Plugins  »  Les types de plugins


Les types de plugins

Il existe 4 différents types de plugins:

  • page: Ceux qui génère une page
  • header: Ceux qui génère une en-tête
  • sidebar: Ceux qui génère un module pour la barre latérale
  • custom: Les autres, principalement utilisés pour interagir avec les événements ou faire une API


Page

Lorsqu'un plugin de type Page est utilisé dans une page, il doit générer le code HTML pour être intégré à cette page. Il faut savoir que, même si le plugin est intégré dans une page, le plugin peut générer plusieurs pages.

Pour comprendre, utilisons un exemple: l'utilisateur à défini votre plugin Blog pour être utilisé dans la page Nouveautés. Le lien de la page est donc site.fr/nouveautes/.

Cependant, vous aurez besoin de plusieurs pages, pour afficher la liste des articles, ou afficher un article. Et bien en fait, tout ce qui suit l'url de votre page sera des arguments: si on arrive sur l'url site.fr/nouveautes/123/, votre plugin sera appelé, et REQUEST_ARGS sera 123. Ainsi vous pouvez imaginer une petite architecture comme suit:

  • /nouveautes/: affiche la page 1
  • /nouveautes/page/3/: affiche la page 3
  • /nouveautes/article/48/: affiche l'article 48
  • /nouveautes/ajouter/: écrire un nouveau article

Étant donnée que la partie /nouveautes/ de l'url dépend de ce que l'utilisateur à choisis, vous ne devez analyser que la constante REQUEST_ARGS, car c'est ce qui peut varier. Le slash qui suit la page et celui de fin n'est pas mit dans la constante, ainsi pour l'url /nouveautes/article/48/, REQUEST_ARGS contiendra article/48. Pour transformer cette chaîne de caractère en tableau, faites $args = explode('/', REQUEST_ARGS); vous aurez alors un tableau de 2 éléments contenant article et 48.

Mais bien sur, il est très probable que votre plugin n'ai pas plusieurs pages à générer, dans ce cas ne vous occupez pas des explications ci dessus.

Tout comme le type de plugin Header, il ne peut avoir qu'une seul plugin Page dans une page.

Un plugin de type Header doit générer le code HTML de l'en-tête dans la page ou il est utilisé. Il est important de ne pas oublier que l'espace alloué à l'en-tête est définie par le thème.

En effet, l'en-tête peut être toute la largeur de la page (exemple: thème Squared), ou alors qu'une partie de celui ci (exemple: thème Eloquent).

Tout comme le type de plugin Page, il ne peut avoir qu'une seule en-tête maximum dans une page.

Si votre plugin est de type Sidebar, il doit générer du code HTML pour être inséré dans un module de la barre latérale. Le titre du module est défini par l'utilisateur, vous ne générez donc que le contenu de celui ci.

Sur certaines pages ou certains sites en fonction de la configuration, il est possible qu'aucune barre latérale ne soit affichée, mais votre plugin sera quand même appelé.

Contrairement aux précédents types de plugins, il peut avoir plusieurs plugins de type Sidebar sur une même page pour constituer la barre latérale. Par conséquent, votre plugin peut être appelé plusieurs fois s'il est utilisé dans 2 modules différents de la barre latérale. Évitez donc d'utiliser des id fixés en HTML/CSS pour modifier/styler votre module.

Quand votre plugin sera appelé pour générer un module, vous aurez aussi une variable $i qui correspond à l'emplacement dans la barre latérale (1, 2, ..): utilisez cette variable pour les id dans le code HTML/CSS.

Custom

Ce type de plugin ne génère ni page, ni en-tête, ni module de barre latérale, mais peut interagir avec les autres plugins et les événements. En effet, ce type de plugin peut être utilisé pour faire faire API, ou modifier une fonctionnalité du CMS, ou ajouter un onglet dans le panel d'administration, etc..


Page suivante: Configuration