Contiene funciones encargadas de modificar el flujo de salida. Por lo general, son utilizadas para que la salida de una extensión sea enriquecida por el aporte de otras extensiones.
La organización de las carpetas tiene tres niveles, esto es así para lograr generar código intercambiable. Los niveles corresponden a:
La ruta completa a un plugin estará dada por:
cms/plugins/{{extension_alias}}/{{plugin_name}}/{{alter_plugin}}/{{plugin_name}}.{{plugin_hook}}.php
Como podemos observar, el nombre del archivo que contiene el plugin también tiene su convención.
Dentro de un plugin, es posible que debamos ejecutar varias tareas, para ello declaramos varios archivos con un hook diferente para cada uno de ellos. Por ejemplo, si definimos un editor bbcode para un formulario, debemos considerar el hook para cargar el editor en dicho formulario y un hook para procesar el contenido del editor.