Atelier Développement Plugins

Marc Studer (@garstud)

Comprendre et Coder ses 1er plugins

Note : Avez vous tous un serveur Local ou distant à votre disposition ? (bitnami, WAMP, ...)

Presentation du fonctionnement d’un plugin (cf. LT Plugin)

Dans Joomla, il y a des familles/types de plugins

Au total ses familles de plugins gèrent environ 60 évènements

Un plugin est une extension

Structure d’un plugin:

Package installable : ZIP contenant les fichiers du plugin

Manifest XML

<extension version="3.1" type="plugin"
            group="content" method="upgrade">
    <name>plg_content_jday</name>
    <author>AFUJ</author>
    <creationDate>Mai 2018</creationDate>
    <copyright></copyright>
    <license>GNU General Public License version 2 or later; see LICENSE.txt</license>
    <authorEmail>mail@domain.fr</authorEmail>
    <authorUrl>www.joomladay.fr</authorUrl>
    <version>0.1.0</version>
    <description>Plugin de contenu pour le TP de l'atelier Plugin du JDay 2018 à Paris</description>
    <files>
        <filename plugin="jday">jday.php</filename>
    </files>
</extension>

Script PHP

defined('_JEXEC') or die;

class PlgContentJDay extends JPlugin
{
    /** @param  string  $context  The context of the content being passed to the plugin
     * @param   object  &$row    The article object
     * @param   mixed   &$params  The article params
     * @param   integer  $page   The 'page' number
     *
     * @return  mixed  void or true
     */
    public function onContentBeforeDisplay($context, $row, $params, $page = 0)
    {
    ...
    }
}

Les TP

4 Travaux Pratiques :

  1. Plugin de contenu (content)
  2. Plugin de recherche (search)
  3. Plugin Système (system)
  4. Plugin avec son template (content avec tmpl)

ZIP des TP : https://tinyurl.com/jday2018-plg

Liens Plugins

Les évènements de Joomla https://docs.joomla.org/Plugin/Events/fr

L’API des plugins https://api.joomla.fr/joomla3/db/d6b/classJoomla_1_1CMS_1_1Plugin_1_1CMSPlugin.html