# Drupal,
qu'est-ce que c'est ?

## Un CMS

CMS = Content management system, système de gestion de contenu

- Un logiciel qui permet de construire des sites web dynamiques
- Répond aux problématiques des sites statiques ou développés « from scratch » :
  - Comment gérer
  - Comment maintenir
  - Comment évoluer
- Questions de performance

### Un CMS

Créer plus vite, moins cher, plus riche : tout est déjà là

- Les fonctionnalités courantes des sites web actuels ou la possibilité d'en créer ou intégrer rapidement
- Une interface de configuration et d'administration accessible par navigateur web
- La séparation des opérations de gestion de la forme et du contenu (travail en parallèle design, thème, code, intégration)
- La possibilité de structurer le contenu et les relations entre contenus
- La gestion des utilisateurs et de leurs rôles et de leurs relations entre eux

## Open Source

#### Une nouvelle forme de marché et d'économie

- Le marché en France 2,5 milliards d'euros (« Panorama de l'open source en France », le Conseil National du Logiciel Libre)
- Désormais au même rang que les solutions propriétaires dans le paysage des logiciels du secteur public (selon le Blog d'Administration Numérique)
- Bénéfices de la contribution

### Open source

#### L'indépendance technologique

- Libre : les fonctionnalités ne peuvent pas être imposées par un propriétaire de logiciel
- Drupal : le projet n’appartient pas à une entreprise en particulier
- Liberté de choisir ou de changer de prestataire

Possibilité d'étudier le code source pour localiser d'éventuels problèmes de sécurité

### Open source

#### Les droits d'auteur

Les droits d'auteur d'un logiciel open source sont définis par la licence

- Logiciel libre (free software) : souligne les aspects éthiques du développement libre et gratuit
- Open source : souligne les avantages qualitatifs et économiques de la liberté d'accès et des modifications aux sources
  - L'Open Source Initiative valide les licences qui respectent ces libertés
- Ne pas confondre avec le domaine public :
  - Libre et Open Source reposent sur l'existence du copyright
  - Les risques du domaine public
  - Les limitations du domaine public en droit français
- Drupal : General Public licence versions 2 et suivantes (GPL)

## Modules et thèmes contrib

- Au téléchargement de Drupal, on se procure des modules et thèmes cœur = core
- On peut compléter le cœur par des modules et thèmes créés par la communauté = contrib
  - Communauté : entre autres, ceux qui développent en Drupal et mettent leur travail à la disposition des autres
- On peut développer des modules et des thèmes personnalisés = custom
  - Ces modules et thèmes peuvent être mis à la disposition de la communauté

### Modules et thèmes contrib

- Les modules et les thèmes peuvent être téléchargés à partir de drupal.org et gérés à partir de l'interface du site
- Une discipline stricte de documentation et un système automatisé de tests unitaires et fonctionnels permettent de contrôler la qualité des modules communautaires

### Modules et thèmes contrib

#### Distribution

Façon plus simple de se procurer un site avec des fonctionnalités nécessaires

- Un seul package
- Tous les modules nécessaires
- Tous les thèmes nécessaires
- Un profil d'installation
- Des outils complémentaires
- Des « features » de configuration

En bref : du prêt à l'emploi

## L'interface de configuration

Permet de configurer le site : déterminer les préférences, télécharger et activer des modules et des thèmes, ajouter des langues...

Apparaît différemment à différents utilisateurs, selon les configurations personnalisées :

- Sitebuilder peut construire et configurer le site : types de contenu, formats, listes de contenu (vues), blocs
- Administrateur peut faire des opérations d'administration : classification (taxinomie), menus, sécurité, utilisateurs (rôles, permissions), SEO, définition de Workflow
  - Frontière mouvantes entre builder et admin
- Rédacteur peut créer des contenus, mettre en avant des articles choisis, ajouter des images, changer la classification etc.
  - Utilisation de workflow et séparation des droits

## Sources

Au téléchargement de Drupal, on se procure tous les fichiers sources dans lesquelles développeur peut créer les fonctions manquantes

- Back : +PHP, +JS, -HTML, -CSS
- Front : -PHP, -JS, +HTML, +CSS

## Développement des thèmes

#### Choix de thème

- Thèmes contrib : choisir un thème et y apporter éventuellement de légères modifications par un sous-thème
  - d-themes
  - Boutiques de thèmes
- Thèmes de base (contrib) : créer un sous-thème à partir d'un thème de base
- Création de thème à partir de rien (« from scratch »)

### Développement des thèmes

- Ne jamais modifier des thèmes développés par des autres
  - Les mises à jour sont impossibles si le thème contrib a été modifié
  - Pour modifier un thème, créer un sous-thème
- Développement sur Drupal se fait en modifiant des fichiers avec un éditeur de texte/IDE
- CSS, HTML (PHP, Javascript/jQuery...)

## Développement des modules

#### Module contrib ou module custom ?

- Si un module contrib déjà existant couvre plus de 80 % du besoin, vérifier son niveau de maintenance
  - Versions stables
  - Versions dev, alpha, beta, rc, unstable
- Si un module contrib déjà existant couvre moins
  - Vérifier si le besoin de plus haut niveau ne serait pas mieux servi par ce qui existe
  - Créer un module custom

### Développement des modules

- Ne jamais modifier des modules développés par des autres
  - Si besoin de changer le fonctionnement du module contib ou core, créer un module personnalisé
  - Drupal permet de modifier presque tout sans changer le code existant
- PHP (JS, HTML, CSS)

### Merci !

## L'équipe OSInet

Frédéric G. Marand | Outi Munter | Brigitte Taïeb
Cofondateur et gérant – et spécialiste en programmation système et réseau | Chef de projet, graphiste et thémeuse | Directrice commerciale

www.osinet.fr