Ce document présente comment construire un système de gestion de contenu (ou Content Management System: CMS) en utilisant le langage PHP et le système de gestion de base de données MySQL. Il est destiné à des personnes qui ne sont pas forcément spécialistes de la programmation, mais qui ont toutefois des notions de PHP / MySQL et de conception de site Internet. Ces notions peuvent être retrouvées dans le cours sur les .
L'objectif est double: tout d'abord comprendre ce qui se cache derrière des CMS répandus comme DotClear ou SPIP; ensuite être capable de construire son propre site collaboratif qui sera plus adapté à ses besoins. Les formalismes UML (Unified Modeling Language) et Entité-Association sont présentés pour analyser les besoins des futurs utilisateurs d'un site collaboratif, et pour exprimer la structure (base de données et interface Web) de ce site.
Certains chapitres de ce document concernent plutôt des aspects techniques de PHP et MySQL, et d'autres, plus conceptuels, se penchent sur la modélisation de sites collaboratifs. Voici un bref résumé de chacun de ces chapitres. Ils sont présentés sous la forme d'un diaporama qui, je l'espère, sera assez explicite.
-
Présente brièvement les systèmes de gestion de contenu. Des concepts autour du principe de client-serveur sont rappelés afin d'introduire la structure générale d'un CMS. Différents types de CMS sont également discutés.
-
Rappels sur le langage PHP. Tout d'abord, la syntaxe du langage est rapidement présentée. Ensuite, la transmission de données entre deux pages Web avec PHP est expliquée, en particulier la récupération des données saisies par l'intermédiaire d'un formulaire.
-
Rappels sur le système de gestion de base de données MySQL. Dans un premier temps, la syntaxe du langage SQL est brièvement rappelée, avant d'expliquer comment manipuler, à partir de PHP, une base de données gérée par MySQL.
-
Présente comment modéliser un site qui propose une interface Web pour consulter et gérer un contenu stocké en base de données. Les formalismes UML et Entité-Association sont introduits pour analyser les besoins des utilisateurs et représenter la structure d'un tel site.
-
Présente comment identifier un utilisateur et lui attribuer un niveau d'accès en fonction de son rôle (simple visiteur, rédacteur, administrateur...). Des notions de sécurité et de traçabilité des utilisateurs sont introduites: les cookies, les sessions et le cryptage des mots de passe.
-
Discute de la manière de suivre les opérations effectuées par les utilisateurs sur le contenu d'un site collaboratif, afin de pouvoir modérer les modifications apportées. Notamment, cela nécessite une étape de validation des opérations et/ou un archivage des modifications successives d'un contenu.
-
Discute de la manière d'informer les visiteurs d'un site Internet sur les actualités de ce dernier. Deux techniques sont présentées et manipulées avec PHP: les bulletins d'information par messagerie électronique et les flux d'actualité comme RSS.
-
Présente des compléments de PHP pouvant être utiles pour la gestion de contenu: la manipulation de fichiers sur le serveur, le dépôt de fichiers (upload), la génération d'images, le stockage d'images en base de données, les patrons de pages (templates), les requêtes asynchrones et AJAX.
|