CMS – Les plugins, modules et extensions

LEÇON

 

Principes de base

Le plupart des CMS sont extensibles. C'est à dire qu'on peut ajouter de la fonctionnalité au site - fonctionnalité qui n'est pas présente tout au départ quand on vient d'installer le système CMS de base.

Une fonctionnalité supplémentaire est typiquement livrée dans un bundle - un ensemble de fichiers script/CSS/JavaScript/images et cetera. Un tel bundle peut être fourni par les auteurs du système CMS ou, dans le cas d'un système CMS Open Source, par des tiers - typiquement les membres de la communauté des développeurs pour le système CMS en question.

Comment on appelle les bundles diffère selon le système CMS mais ils sont fondamentalement tous pareil :

  • WordPress : ce sont des Plugins ou Extensions (selon l'utilisation du terme anglais ou français)
  • Drupal : ce sont des Modules
  • Joomla : ce sont des Extensions

On va utiliser uniquement le terme plugin pour simplifier des choses. Mais tout ce qu'on dit sur les plugins est, en règle générale, applicable aussi aux modules, aux extensions, et cetera.

Les méthodes pour installer les plugins diffère aussi de CMS en CMS. Certains ont un procédure plus automatisé que d'autres. Mais en gros il s'agit d'installer des fichiers du plugin à un certaine emplacement spécifique dans le hiérarchie de l'application web. Ensuite on configure et on active le plugin.

 

Plugin - Configuration

La configuration d'un plugin :

  • peut être nécessaire ou pas selon les besoins et/ou la fonctionnalité en question
  • spécifie des paramétrages (personnalisations) pour le plugin
  • est typiquement fait par l'utilisateur avec rôle administrateur
  • est typiquement fait avant son activation (mais peut évoluer après)

 

Plugin - Activation

Un plugin peut être installé sur un site CMS mais être inactif. C'est à dire que la fonctionnalité n'est pas encore en jeu dans le fonctionnement du site.

Laisser inactif le plugin, ou le rendre inactif, peut être utile quand :

  • le plugin n'est pas encore configuré
  • on a besoin de la fonctionnalité du plugin, mais pas actuellement
  • le plugin cause des ennuis dans le fonctionnement du site

 

Exemple

Un exemple de plugin est le plugin présent dans ce site pour afficher de manière différente les codes sources HTML, CSS, PHP ou autre.

Nom du plugin : "SyntaxHighlighter Evolved"

Page de téléchargement : https://wordpress.org/plugins/syntaxhighlighter/

 

Exemple de ses fonctionnalités :

 

Du texte HTML brut :

<!DOCTYPE html>
<html>
<head>
<title>Un titre</title>
</head>
<body>
</body>
</html>

 

Le même texte HTML pris en charge par le plugin :

<!DOCTYPE html>
<html>
    <head>
        <title>Un titre</title>
    </head>
    <body>
    </body>
</html>

 

Du code CSS :

body {background: #FFFFFF;}
a:link {font-weight:normal; color:pink;}
a:visited {font-weight:normal; color:green;}
a:hover {font-weight:bold; color: red;}
p {font-style:italic; font-size:18px;}
img {border-color: #000000; border:thick; border-style:ridge;}

 

Du code PHP :

<?php
echo '<p>Ceci est un script PHP !</p>';
echo '<p>';
print rand(100000,999999);
echo '</p>';
date_default_timezone_set("Europe/Paris");
echo '<p>';
echo 'Current datetime is '. date('D, d M Y H:i:s') . '<br><br>';
echo '</p>';
echo '<hr>';
phpInfo();
?>

 

Est-ce qu'un plugin existe pour mon besoin ?

Si vous avez besoin d'une fonctionnalité supplémentaire pour votre site CMS il est probable qu'un plugin existe déjà qui peut fournir cette fonctionnalité.

En effet, par exemple, si vous utilisez WordpPress il y a plus de 30 000 plugins disponibles sur le répertoire des plugins sur wordpress.org (wordpress.org/plugins).

Chaque plugin est une réponse a un besoin de fonctionnalité. Et il y a, selon la conception du développeur, éventuellement des possibilités de paramétrage pour personnaliser cette fonctionnalité afin qu'elle soit cohérent avec vos besoins spécifiques.

Dans le cas où un plugin n'existe pas pour vos besoins spécifiques, vous avez le choix :

  • hacker le core : déconseillé !
  • prendre un plugin proche à vos besoins et l'adapter (typiquement il s'agit de modifications dans le CSS, dans le code PHP, ou dans les deux) : après tout c'est du open source, profitez-en !
  • faire votre propre plug-in : il n'y a rien de mieux pour apprendre l'anatomie de votre système CMS. Et pour bonus, on peut publier son plug-in et gagner du kudos comme des milliers d'autres. (fr.wiktionary.org/wiki/kudos)

 

Le zoo des plugins

Pour quels types de fonctionnilité peut-on trouver des plugins ? Voici une petite liste (non-exhaustive !) juste pour vous donner une idée ...

  • intégration réseaux sociaux - facebook, twitter, google+, etc
  • intégration youtube, viméo, flickr, tumblr, paypal, pinterest, etc
  • gestion méta-informations / sitemaps / SEO
  • traitement d'image automatique (retaille, crop, génération vignettes, etc)
  • filtrage spam / inclusion captcha
  • menus dépliants (drop down menus / superfish)
  • création pages imprimables
  • création / envoi de newsletter
  • validation côté client
  • internationalisation / traduction
  • slider (eg. nivo)
  • lightbox
  • détection appareil (PC, tablette, smartphone, etc)
  • gestion des rôles et droits / protection de contenu
  • calendrier d’événements
  • e-commerce / panier / tunnel d'achat
  • cache mémoire
  • création formulaires
  • customisation de la procédure login / inscription
  • import et export des données / transfert de site
  • extensions recherche : stemming etc
  • intégration d'un forum
  • gestion mails automatiques
  • splashscreen d'accueil
  • connexion données (related posts)
  • gestion vidéo / audio incrustée
  • ... et tant d'autres

 


 

EXERCICES

  1. Connectez-vous en tant qu'administrateur sur votre site chez wordpress.com (créé pendant les exercices du leçon sur les principes de base d'un CMS)
  2. Identifier les plugins disponibles
  3. Choisir un des plugins et installer/configurer/activer/desactiver
  4. Est-ce qu'il est possible d'ajouter n'importe quel plugin sur un site WordPress en mode Saas chez wordpress.com ? Comment expliquer ça ?