
CMSimple : Description technique détaillée
📅 Date de sortie
CMSimple a été créé en 2001 par le développeur danois Peter Harteg. La version 1.0 a été publiée la même année. La version 3.x a longtemps été la référence, distribuée sous licence AGPL3 puis GPL3 à partir de décembre 2009. Après un abandon par son auteur original, le projet a été repris par le développeur allemand Gert Ebersbach, qui a publié la version 4.0 en décembre 2012 (basée sur CMSimple_XH 1.5.3), suivie des branches 5.x (dont la version 5.15 publiée en 2023), maintenues activement à ce jour.
📝 Licence
CMSimple est un logiciel open source distribué sous licence GNU General Public License v3 (GPL v3) depuis le 31 décembre 2009. Il est entièrement libre et gratuit : aucun lien de retour vers l'auteur n'est obligatoire depuis cette date. La variante CMSimple_XH est également distribuée sous GPL v3, avec une demande (non obligatoire) d'un lien de courtoisie vers le site officiel dans les gabarits.
💻 Langage de programmation
CMSimple est entièrement développé en PHP (compatible PHP 5.3 pour la branche 4.x, PHP 7.x et PHP 8.x pour la branche 5.x). Le front-end utilise HTML5, CSS3 et JavaScript. La branche CMSimple_XH utilise des gabarits (templates) HTML/CSS personnalisables et propose une API PHP pour le développement de plugins. L'éditeur WYSIWYG intégré est basé sur TinyMCE dans les versions récentes.
🏛️ Architecture
- • Architecture flat-file (sans base de données) : la totalité du contenu du site est stockée dans un unique fichier HTML, structuré par les balises de titre
<h1>,<h2>et<h3>pour générer automatiquement le menu de navigation. - • Séparation contenu / présentation : le contenu est dans un fichier HTML, le design dans un fichier template (gabarit HTML + feuilles de style CSS) et la configuration dans des fichiers PHP distincts.
- • Système de plugins : les fonctionnalités sont étendues via des plugins PHP indépendants, chacun déposé dans son propre sous-répertoire sous
/plugins/. - • Architecture monopage : toutes les pages du site coexistent dans un seul fichier, avec une hiérarchie de 3 niveaux par défaut (modifiable jusqu'à 6 niveaux via la configuration).
- • Compatible avec toutes les configurations serveur supportant PHP : Linux/Apache, Windows/Apache, Windows/IIS, y compris les hébergements partagés gratuits.
📂 Base de données
CMSimple est l'un des rares CMS à fonctionner entièrement sans base de données SQL. Son contenu est stocké dans des fichiers plats :
- • Fichier de contenu (
content/content.htm) : stocke toutes les pages du site en HTML, structurées par balises H1/H2/H3. - • Fichier de configuration (
config/config.php) : paramètres généraux du site. - • Fichiers de langue (
languages/) : traductions de l'interface dans chaque langue. - • Fichiers de templates (
templates/) : gabarits HTML/CSS définissant l'apparence visuelle. - • Répertoire userfiles (
userfiles/) : stockage des médias (images, documents PDF, fichiers téléchargeables).
L'absence totale de base de données SQL supprime les requêtes serveur, accélère considérablement l'affichage des pages et permet l'installation sur tout hébergeur PHP, même gratuit.
⚙️ Caractéristiques principales
✅ CMS sans base de données : Aucune installation MySQL requise — contenu stocké dans un fichier HTML unique, sauvegardable en un seul clic.
✅ Installation ultra-rapide : Un site complet opérationnel en moins de 20 minutes — il suffit de déposer les fichiers sur le serveur et de configurer quelques paramètres.
✅ Éditeur WYSIWYG intégré : Interface d'édition visuelle en ligne (TinyMCE) permettant de créer et modifier les pages directement dans le navigateur, sans connaître le HTML.
✅ Navigation générée automatiquement : Le menu hiérarchique, le plan du site et le fil d'Ariane sont générés automatiquement à partir des balises H1, H2 et H3 du contenu.
✅ Système de templates CSS : Des centaines de templates gratuits disponibles pour personnaliser l'apparence du site sans toucher au code PHP.
✅ Multilingue et multi-sites : Support natif du multilingue (avec icônes de drapeaux) et du multi-sites depuis la version 4, ainsi qu'une fonctionnalité co-auteurs.
🔥 Fonctionnalités avancées
🚀 Système de plugins riche : Des centaines de plugins PHP gratuits disponibles pour ajouter un blog, une galerie photos, un formulaire de contact, un livre d'or, une newsletter, un forum, un agenda, une boutique, etc.
📊 Versionnage du contenu : Sauvegarde automatique des 10 dernières versions du fichier de contenu, permettant de restaurer une version précédente en cas d'erreur.
🔌 Éditeur de templates intégré : Modification du gabarit HTML et des feuilles de style CSS directement depuis l'interface d'administration, sans accès FTP.
🔗 Module de recherche intégré : Moteur de recherche textuelle simple inclus nativement, permettant aux visiteurs de rechercher dans le contenu du site.
📦 CMSimpleRealBlog : Variante spécialisée du CMS transformant CMSimple en un moteur de blog complet, avec gestion des articles chronologiques et des catégories.
💡 Import depuis Microsoft Word : Possibilité de copier-coller du texte provenant de Microsoft Word en conservant la mise en forme des caractères, simplifiant le travail des rédacteurs non techniques.
🔐 Sécurité
🔹 Authentification par mot de passe : Accès à l'interface d'administration protégé par un mot de passe stocké sous forme hachée dans le fichier de configuration.
🔹 Absence de base de données : L'architecture flat-file élimine par conception les risques d'injection SQL, l'un des vecteurs d'attaque les plus courants contre les CMS.
🔹 Protection du répertoire d'administration : Le répertoire admin peut être protégé par une restriction d'accès supplémentaire via .htaccess sur les serveurs Apache.
🔹 Mises à jour de sécurité régulières : La branche 5.x active, maintenue par la communauté CMSimple_XH, publie régulièrement des correctifs de sécurité sur GitHub.
🔹 Permissions de fichiers : Le système de fichiers PHP permet de configurer les droits d'accès en lecture/écriture sur les répertoires sensibles (content/, config/, userfiles/).
🔹 Surface d'attaque réduite : La compacité du code (un seul fichier noyau PHP) et l'absence de base de données minimisent considérablement la surface d'attaque par rapport aux CMS à base de données.
✅ Les pour et les contre
✅ Avantages
✔️ Aucune base de données requise : Installation possible sur tout hébergeur supportant PHP, y compris les hébergements gratuits — pas de MySQL nécessaire.
✔️ Extrêmement léger et rapide : Absence de requêtes SQL et code noyau compact garantissant des temps d'affichage très rapides, même sur des serveurs peu puissants.
✔️ Prise en main immédiate : Site opérationnel en moins de 20 minutes, idéal pour les débutants et les petites structures sans compétences techniques avancées.
✔️ Sauvegarde triviale : Sauvegarder l'intégralité du site se résume à copier quelques fichiers — pas besoin d'exporter une base de données.
✔️ Entièrement gratuit et open source : Licence GPL v3, code source disponible sur GitHub, aucun frais de licence.
✔️ Centaines de plugins gratuits : Galerie, blog, formulaires, boutique, newsletter — un écosystème communautaire actif notamment francophone et germanophone.
❌ Inconvénients
❌ Inadapté aux grands sites : L'architecture monopage (tout le contenu dans un seul fichier) devient problématique pour les sites avec des centaines de pages lourdes.
❌ Hiérarchie de navigation limitée : Seulement 3 niveaux de profondeur par défaut (H1 / H2 / H3), extensible à 6 niveaux — insuffisant pour les structures de sites complexes.
❌ Un seul niveau d'administration : Par défaut, un seul compte administrateur — la gestion multi-utilisateurs avec droits différenciés nécessite des plugins spécifiques.
❌ Moins adapté aux applications web dynamiques : CMSimple est conçu pour les sites vitrine statiques — les fonctionnalités avancées (e-commerce complexe, communauté) restent limitées même avec des plugins.
❌ Communauté plus restreinte : Comparé à WordPress, Joomla ou Drupal, la base d'utilisateurs et la disponibilité de support technique en dehors des communautés française et germanophone sont limitées.
🌐 Site officiel
Besoin de plus de détails sur un point spécifique ?


