# 🎓 ZwiiCampus 3.6.02 🇫🇷

**[🇬🇧 English version](#zwiicampus-3300-1)**

ZwiiCampus (Learning Management System) est un logiciel auteur destiné à mettre en ligne des tutoriels. Il dispose de plusieurs modalités d'ouverture et d'accès des contenus. Basé sur la version 13 du CMS Zwii, la structure logicielle est solide, le framework de Zwii est éprouvé.

Ce logiciel s'installe en ligne ou localement depuis un serveur Web, offrant une solution complète pour la formation en ligne et l'éducation numérique.

[Site](https://zwiicampus.fr/) - [Forum](https://forum.zwiicampus.fr/) - [GitHub](https://github.com/fredtempez/ZwiiCampus) - [Notes de version](changes.md)

**Parfait pour :**
* Établissements d'enseignement
* Formateurs professionnels
* Créateurs de contenu éducatif
* Organismes de formation 

## Principales fonctionnalités :
- **Gestion des espaces d'enseignement** : Créez des espaces de formation avec accès restreint et organisation hiérarchique.
- **Participation et suivi des apprenants** : Inscription libre, imposée ou avec clé, et suivi statistique détaillé des participants.
- **Gestion des accès** : Contrôlez la disponibilité des espaces (ouvert, limité dans le temps, fermé).
- **Outils statistiques** : Visualisation et exportation CSV des progrès des apprenants avec graphiques intégrés.
- **Facilité d'installation** : Pas besoin de base de données, tout fonctionne avec des fichiers JSON.
- **Sauvegarde et restauration** : Outils de gestion pour réinitialiser les espaces et les participations.
- **Interface responsive** : Accès optimal sur ordinateur, tablette et mobile.
- **Multilingue** : Support de plusieurs langues pour les contenus et l'interface.

## 📚 Documentation

Une documentation complète pour les administrateurs est disponible dans le dossier [/doc](doc/) :

* **[Guide de l'administrateur](doc/guide-administrateur.md)** - Index général et démarrage rapide
* **[Gestion des utilisateurs, groupes et rôles](doc/1-utilisateurs-groupes-roles.md)** - Comptes, permissions, organisation
* **[Gestion des espaces et suivi des participants](doc/2-espaces-participants.md)** - Création d'espaces, inscriptions, statistiques
* **[Contenus des espaces : pages et modules](doc/3-contenus-espaces.md)** - Pages, modules, parcours pédagogiques

Ces guides couvrent l'intégralité des fonctionnalités de ZwiiCampus avec des exemples pratiques, des workflows illustrés et des bonnes pratiques pour une utilisation optimale de la plateforme.


## ⚙️ Configuration recommandée

* PHP 7.3 ou plus (recommandé PHP 8.0+ pour de meilleures performances)
* Compatibilité assurée jusque php 8.4
* Support de .htaccess (pour la réécriture d'URL et la sécurité)
* Espace disque : minimum 100 Mo (pour les contenus et sauvegardes)
* Navigateurs modernes : Chrome, Firefox, Safari, Edge
* Extensions PHP recommandées : GD, JSON, cURL

## 📄 Licence

ZwiiCampus - LMS open source
Copyright (C) 2026 Frederic Tempez

Ce programme est un logiciel libre : vous pouvez le redistribuer et/ou le modifier
selon les termes de la Licence Publique Générale GNU telle que publiée par
la Free Software Foundation, soit la version 3 de la Licence, soit
(à votre choix) toute version ultérieure.

Ce programme est distribué dans l'espoir qu'il sera utile,
mais SANS AUCUNE GARANTIE ; sans même la garantie implicite de
COMMERCIALISATION ou D'ADÉQUATION À UN USAGE PARTICULIER. Voir la
Licence Publique Générale GNU pour plus de détails.

Vous devriez avoir reçu une copie de la Licence Publique Générale GNU
avec ce programme. Si ce n'est pas le cas, consultez <https://www.gnu.org/licenses/>.

## 📋 Notes de version

* **Français** : [changes.md](changes.md) - Notes de version en français


## 🛠️ Installation

Décompressez l'archive de ZwiiCampus et téléversez son contenu à la racine de votre serveur ou dans un sous-répertoire. C'est tout !

Vous trouverez de plus amples explications, en particulier pour une installation chez Free, dans la rubrique "Téléchargements" du forum.

**Points forts de l'installation :**
* Installation en moins de 5 minutes
* Aucune base de données requise
* Configuration de sécurité automatique
* Interface responsive dès l'installation
* Assistant de configuration pédagogique


## 🔄 Procédures de mise à jour

A l'occasion de l'installation d'une version majeure, il est recommandé de réaliser une copie de sauvegarde.

**Nouveautés de la version 3 :**
* Interface d'administration repensée pour l'éducation
* Amélioration des performances pour les grandes classes
* Renforcement de la sécurité des données étudiants
* Tableaux de bord pédagogiques avancés
* Gestion des parcours d'apprentissage
* Support multilingue étendu
* Application mobile progressive (PWA)
* Synchronisation des progressions

### 🤖 Automatique

* Connectez-vous à votre site en tant qu'administrateur.
* Si une mise à jour est disponible, une notification s'affiche dans la barre d'administration.
* Cliquez sur le bouton "Mettre à jour" et suivez les instructions.
* Le système vérifie automatiquement les mises à jour toutes les 24 heures.
* Sauvegarde automatique des données avant mise à jour.

### ✋ Manuelle

* Sauvegardez l'intégralité de votre site, spécialement le répertoire "site" contenant toutes vos données pédagogiques.
* Décompressez la nouvelle version sur votre ordinateur.
* Transférez son contenu sur votre serveur en activant le remplacement des fichiers (sauf le dossier "site").
* Vérifiez que les permissions des fichiers sont correctes (755 pour les dossiers, 644 pour les fichiers).
* Testez l'accès aux espaces de formation après la mise à jour.


## 🌳 Arborescence générale

*Légende : [R] Répertoire - [F] Fichier*

**Structure optimisée pour la version 3.5 :**

```text
[R] core                   Cœur du système
  [R] class                Classes PHP du framework (namespace Zwii\Campus)
    [F] autoloader.php     Autoloader PSR-4 unifié
    [F] asset.class.php    Gestion des assets CSS/JS
    [F] helper.class.php   Méthodes utilitaires statiques
    [F] router.class.php   Routeur principal
    [F] template.class.php Génération des templates
    [R] jsondb             Base de données JSON
    [R] phpmailer          Envoi d'emails
    [R] sitemap            Génération sitemap
    [R] strftime           Compatibilité dates PHP 8.1+
  [R] trait                Traits PHP (répartition fonctionnelle)
    [F] Data.trait.php     Gestion des données JSON
    [F] InputOutput.trait.php  Entrées/sorties fichiers
    [F] PageContent.trait.php  Contenu des pages
    [F] Security.trait.php     Sécurité et CSRF
    [F] Tools.trait.php        Outils divers
    [F] UserPermission.trait.php  Permissions utilisateurs
  [R] layout               Mise en page et templates pédagogiques
    [F] layout.class.php   Classe Layout (génération HTML)
    [F] main.php           Template principal
    [F] light.php          Template allégé
    [F] blank.php          Template vide
    [F] mail.php           Template email
  [R] module               Modules du cœur (page, config, etc.)
  [R] vendor               Librairies extérieures (TinyMCE, etc.)
  [F] core.js.php          Cœur JavaScript
  [F] core.php             Cœur PHP (namespace Zwii\Campus)

[R] module                 Modules de page
  [R] blog                 Blog pour actualités pédagogiques
  [R] form                 Gestionnaire de formulaires (inscriptions, évaluations)
  [R] gallery              Galerie pour ressources visuelles
  [R] news                 Système d'annonces avec RSS
  [R] redirection          Redirections d'URL
  [R] upload               Module de téléversement de devoirs

[R] site                   Contenu du site
  [R] backup               Sauvegardes automatiques (journalisation)
  [R] i18N                 Langues de l'interface (français, anglais, etc.)
  [R] data                 Répertoire des données
    [R] home               Dossier contenant les pages du site d'accueil
      [F] page.json        Données des pages
      [F] module.json      Données des modules de pages
      [F] theme.css        Thème de ce contenu
      [F] theme.json       Thème de ce contenu
      [F] report.csv       Rapport de participation
      [R] content          Dossier des contenus de page
        [F] accueil.html   Exemple contenu de la page d'accueil
    [R] fonts              Dossier contenant les fontes installées
      [F] font.html       Fichier contenant les appels des fontes à charger sur cdnFonts
      [F] fonts.css        Fichier contenant la feuille de style liée aux polices de caractères locales
      [F] fontes.woff      Fichiers locaux des fontes (woff, etc..)
    [R] xxxxxxx            Dossiers des données de chaque contenu (espaces de formation)
    [R] modules            Personnalisation des modules ou données propres
    [F] admin.css          Thème des pages d'administration (nouveau design v3)
    [F] admin.json         Données de thème des pages d'administration
    [F] blacklist.json     Journalisation des tentatives de connexion avec des comptes inconnus
    [F] category.json      Données des catégories de contenus
    [F] config.json        Configuration du site
    [F] core.json          Configuration du noyau
    [F] course.json        Données de contenus (nouveauté v3)
    [F] custom.css         Feuille de style de la personnalisation avancée
    [F] enrolment.json     Inscriptions dans les espaces, dernière page vue et timestamp (v3)
    [F] font.json          Descripteur des fontes personnalisées
    [F] journal.log        Journalisation des activités (rotation automatique)
    [F] language.json      Langues de l'interface
    [F] profil.json        Profils des utilisateurs (système étendu v3)
    [F] user.json          Données des utilisateurs
    [F] .backup            Marqueur de la sauvegarde des fichiers si présent
  [R] file                 Répertoire d'upload du gestionnaire de fichiers
    [R] source             Ressources diverses (documents pédagogiques)
    [R] thumb              Miniatures des images (optimisation v3)
  [R] tmp                  Répertoire temporaire

[F] index.php              Fichier d'initialisation de ZwiiCampus
[F] robots.txt             Filtrage des répertoires accessibles aux robots des moteurs de recherche
[F] sitemap.xml            Plan du site (généré automatiquement)
[F] sitemap.xml.gz         Version compressée

🔒 Le fichiers .htaccess contribuent à la sécurité en filtrant l'accès aux répertoires sensibles.

📚 **Modules spécifiques à l'éducation :**
* 🎓 Gestion des parcours d'apprentissage
* 📊 Tableaux de bord pédagogiques
* 🔍 Suivi détaillé de la progression
* 💬 Système de communication intégré
* 📝 Évaluations et quiz automatiques

```

---

# 🎓 English 🇬🇧

**[🇫🇷 Version française](#zwiicampus-3300)**

ZwiiCampus (Learning Management System) is an authoring software designed to publish online tutorials. It offers multiple opening modes and content access options. Based on version 13 of the Zwii CMS, the software structure is solid and the Zwii framework is proven.

This software can be installed online or locally from a web server, providing a complete solution for online training and digital education.

[Website](https://zwiicampus.fr/) - [Forum](https://forum.zwiicampus.fr/) - [GitHub](https://github.com/fredtempez/ZwiiCampus) - [Changelog](changes.md)

**Perfect for:**
* Educational institutions
* Professional trainers
* Educational content creators
* Training organizations

## Main Features:
- **Learning space management**: Create training spaces with restricted access and hierarchical organization.
- **Learner participation and tracking**: Free, imposed, or key-based enrollment, with detailed participant statistics.
- **Access management**: Control space availability (open, time-limited, closed).
- **Statistical tools**: Visualization and CSV export of learner progress with integrated charts.
- **Easy installation**: No database required, everything works with JSON files.
- **Backup and restore**: Management tools to reset spaces and participations.
- **Responsive interface**: Optimal access on desktop, tablet, and mobile.
- **Multilingual**: Support for multiple languages for content and interface.

## 📚 Documentation

Complete documentation for administrators is available in the [/doc](doc/) folder:

* **[Administrator Guide](doc/guide-administrateur.md)** - General index and quick start
* **[User, group and role management](doc/1-utilisateurs-groupes-roles.md)** - Accounts, permissions, organization
* **[Space management and participant tracking](doc/2-espaces-participants.md)** - Space creation, enrollments, statistics
* **[Space content: pages and modules](doc/3-contenus-espaces.md)** - Pages, modules, learning paths

These guides cover all ZwiiCampus features with practical examples, illustrated workflows, and best practices for optimal platform use.

## ⚙️ Recommended Configuration

* PHP 7.3 or higher (PHP 8.0+ recommended for better performance)
* Guaranteed compatibility up to PHP 8.4
* .htaccess support (for URL rewriting and security)
* Disk space: minimum 100 MB (for content and backups)
* Modern browsers: Chrome, Firefox, Safari, Edge
* Recommended PHP extensions: GD, JSON, cURL

## 📄 License

ZwiiCampus - Open source LMS
Copyright (C) 2026 Frederic Tempez

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.

## 📋 Release Notes

* **French**: [changes.md](changes.md) - Release notes in French

## 🛠️ Installation

Unzip the ZwiiCampus archive and upload its contents to the root of your server or to a subdirectory. That's it!

You will find more detailed explanations, particularly for installation at Free hosting, in the "Downloads" section of the forum.

**Installation highlights:**
* Installation in less than 5 minutes
* No database required
* Automatic security configuration
* Responsive interface from installation
* Educational configuration wizard

## 🔄 Update Procedures

When installing a major version, it is recommended to make a backup copy.

**Version 3 new features:**
* Redesigned administration interface for education
* Performance improvements for large classes
* Enhanced student data security
* Advanced pedagogical dashboards
* Learning path management
* Extended multilingual support
* Progressive Web App (PWA)
* Progress synchronization

### 🤖 Automatic

* Log in to your site as an administrator.
* If an update is available, a notification appears in the administration bar.
* Click the "Update" button and follow the instructions.
* The system automatically checks for updates every 24 hours.
* Automatic data backup before update.

### ✋ Manual

* Back up your entire site, especially the "site" directory containing all your educational data.
* Unzip the new version on your computer.
* Transfer its content to your server with file replacement enabled (except the "site" folder).
* Verify that file permissions are correct (755 for directories, 644 for files).
* Test access to training spaces after the update.

## 🌳 General Directory Structure

*Legend: [D] Directory - [F] File*

**Optimized structure for version 3.5:**

```text
[D] core                   System core
  [D] class                PHP framework classes (namespace Zwii\Campus)
    [F] autoloader.php     Unified PSR-4 autoloader
    [F] asset.class.php    CSS/JS asset management
    [F] helper.class.php   Static utility methods
    [F] router.class.php   Main router
    [F] template.class.php Template generation
    [D] jsondb             JSON database
    [D] phpmailer          Email sending
    [D] sitemap            Sitemap generation
    [D] strftime           Date compatibility PHP 8.1+
  [D] trait                PHP traits (functional distribution)
    [F] Data.trait.php     JSON data management
    [F] InputOutput.trait.php  File I/O
    [F] PageContent.trait.php  Page content
    [F] Security.trait.php     Security and CSRF
    [F] Tools.trait.php        Various tools
    [F] UserPermission.trait.php  User permissions
  [D] layout               Layout and educational templates
    [F] layout.class.php   Layout class (HTML generation)
    [F] main.php           Main template
    [F] light.php          Light template
    [F] blank.php          Blank template
    [F] mail.php           Email template
  [D] module               Core modules (page, config, etc.)
  [D] vendor               External libraries (TinyMCE, etc.)
  [F] core.js.php          JavaScript core
  [F] core.php             PHP core (namespace Zwii\Campus)

[D] module                 Page modules
  [D] blog                 Blog for educational news
  [D] form                 Form manager (enrollments, assessments)
  [D] gallery              Gallery for visual resources
  [D] news                 Announcement system with RSS
  [D] redirection          URL redirections
  [D] upload               Assignment upload module

[D] site                   Site content
  [D] backup               Automatic backups (logging)
  [D] i18N                 Interface languages (French, English, etc.)
  [D] data                 Data directory
    [D] home               Folder containing homepage pages
      [F] page.json        Page data
      [F] module.json      Page module data
      [F] theme.css        Theme for this content
      [F] theme.json       Theme for this content
      [F] report.csv       Participation report
      [D] content          Page content folder
        [F] accueil.html   Example homepage content
    [D] fonts              Folder containing installed fonts
      [F] font.html        File containing font calls to load from cdnFonts
      [F] fonts.css        Stylesheet file linked to local fonts
      [F] fontes.woff      Local font files (woff, etc.)
    [D] xxxxxxx            Data folders for each content (training spaces)
    [D] modules            Module customization or specific data
    [F] admin.css          Administration page theme (new v3 design)
    [F] admin.json         Administration page theme data
    [F] blacklist.json     Login attempt logs with unknown accounts
    [F] category.json      Content category data
    [F] config.json        Site configuration
    [F] core.json          Core configuration
    [F] course.json        Content data (v3 new feature)
    [F] custom.css         Advanced customization stylesheet
    [F] enrolment.json     Space enrollments, last viewed page and timestamp (v3)
    [F] font.json          Custom font descriptor
    [F] journal.log        Activity logging (automatic rotation)
    [F] language.json      Interface languages
    [F] profil.json        User profiles (extended v3 system)
    [F] user.json          User data
    [F] .backup            Backup marker if present
  [D] file                 File manager upload directory
    [D] source             Various resources (educational documents)
    [D] thumb              Image thumbnails (v3 optimization)
  [D] tmp                  Temporary directory

[F] index.php              ZwiiCampus initialization file
[F] robots.txt             Filtering of directories accessible to search engine robots
[F] sitemap.xml            Site map (automatically generated)
[F] sitemap.xml.gz         Compressed version

🔒 The .htaccess files contribute to security by filtering access to sensitive directories.

📚 **Education-specific modules:**
* 🎓 Learning path management
* 📊 Pedagogical dashboards
* 🔍 Detailed progress tracking
* 💬 Integrated communication system
* 📝 Automatic assessments and quizzes

```
