WordPress, Joomla et Drupal font appel à plusieurs langages de programmation. Chacun des langages utilisés sert à mettre en place des traitements qui suivent la logique des « trois tiers » :
- Langages de présentation : HTML, CSS et JavaScript.
- Langage d'intégration des contenus : PHP.
- Langage d'accès à la base de données : SQL.
[Tier 1 : présentation] Langages de présentation des contenus
La première couche fait intervenir au moins trois « langages ». Tout d'abord le langage HTML et les feuilles de styles CSS (qui ne sont pas des vrais langages de programmation, voir infra), ensuite, le langage JavaScript. Ces trois langages sont le plus souvent associés à d'autres technologies (Flash, Jquery…) qui permettront de gagner en interactivité tout en conservant la maîtrise des coûts.
Langage HTML. Le premier langage à considérer est le langage [de marquage] HTML (HyperText Markup Language). Aujourd’hui, le HTML sert essentiellement :
- à sémantiser les contenus (exemple : l’élément
articlea remplacé l’élémentdiv; l’élémentnav, qui lui aussi a rendu obsolète l’élémentdiv, sert à déclarer les menus) ; - à structurer les contenus (exemple : les titres et les sous-titres font appel aux éléments
h1,h2,h3…) ; - à décrire les contenus (l'élément
titleest l'élément le plus important) en vue d'un meilleur référencement.
Remarque. — En réalité, le langage HTML n'est pas tout à fait un langage, car sa grammaire met en jeu des balises qui ne servent qu'à segmenter les contenus. Le HTML ne permet pas d'écrire de vrais programmes… avec des instructions faisant intervenir, notamment, variables, opérations (sur variables), boucles et branchements conditionnels.
Lien utile : Tutoriels sur langage HTML
Feuilles de style CSS. Les feuilles de style CSS (Cascading Style Sheet) servent à définir les règles à appliquer :
- en matière de charte graphique (couleur, opacité, dégradés) ;
- en matière de mise en page (exemple : la propriété
displaypermet d'agir sur le positionnement relatif des blocs) ; - en matière de typographie (exemple : la propriété
font-sizepermet d'agir sur le corps [taille] des caractères).
Remarque. — Si le langage HTML n'est pas un vrai langage de programmation, les feuilles de style ne le sont pas plus, et encore moins d'ailleurs. C'est la raison pour laquelle on ne parle pas de « langage CSS ». Aujourd'hui les feuilles de style CSS sont, le plus souvent, générées par des programmes qui eux font appel à de vrais langages de programmation, SCSS par exemple (que l'on ne confondra pas avec CSS).
Lien utile : Tutoriels sur feuilles de style CSS
Langage JavaScript. Last but not least, le langage JavaScript. Ce langage — qu’il ne faut pas confondre avec Java — sert à définir les instructions qui permettront de dynamiser la présentation des contenus. On l'utilise :
- pour contrôler les informations saisies dans les formulaires (il faudra, par exemple, saisir une date au format jj-mm-aaaa) ;
- pour gérer les menus (exemple : on déclenchera l'ouverture d'un menu au passage de la souris) et intégrer des animations de toutes sortes (diaporamas, carrousels, etc.) ;
- pour intégrer des services tels que la géolocalisation (Google Map), le paiement en ligne (PayPal) ou, plus récemment, l'intelligence conversationnelle (les chatbots).
Lien utile : Tutoriels sur langage JavaScript
[Tier 2 : métier] Langage d'intégration des contenus : PHP
La deuxième couche, qui constitue le noyau des trois CMS, fait intervenir le langage PHP (PHP Hypertext Preprocessing). Ce langage a été conçu pour faciliter l’intégration des technologies utilisées pour, d’un côté, stocker les contenus, de l’autre, les présenter.
Le PHP, ou plus exactement, les scripts faisant appel au langage PHP, servent essentiellement, et dans cet ordre :
- à récupérer les contenus des pages (exemple : titre + texte d'articles) visées par les requêtes de l'utilisateur ;
- à traiter les contenus (exemple : évaluer le temps de lecture en fonction du nombre de mots) ;
- à insérer les contenus dans les balises HTML des pages Web à générer.
Remarque. — Chaque requête déclenche l'exécution d'un nouveau script (correspondant à la page visée) qui, arrivée à son terme, produira une page Web complète associant contenus et balises HTML. Cette page, dite dynamique, sera transmise au serveur de page Web qui lui-même la transmettra au navigateur de l'utilisateur.
Lien utile : Tutoriels sur langage PHP
[Tier 3 : données] Langage d'accès à la base de données : SQL
La troisième couche fait intervenir le langage [de requêtes] SQL (Structured Query Language). Ce langage sert à définir des requêtes qui permettent d'interagir avec la base de données du site Web.
Il faut distinguer les requêtes utilisés pour modifier l’état de la base de données, de façon à ajouter, modifier ou supprimer un contenu,
Exemple :insert into article (titre, corps)values ('Le tigre', '[corps de l'article]')
est une requête qui sert à ajouter un article.
… de celles qui servent à extraire une copie des contenus à présenter aux utilisateurs.
Exemple :select titre from article order by asc
est une requête qui « remonte » les titres des articles enregistrés dans la table article en les classant par ordre alphabétique (option asc de la clause order by).
Lien utile : Tutoriels sur langage SQL