01-drupal-quoi.html 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333
  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>reveal.js - The HTML Presentation Framework</title>
  6. <meta name="description" content="A framework for easily creating beautiful presentations using HTML">
  7. <meta name="author" content="Hakim El Hattab" />
  8. <meta name="apple-mobile-web-app-capable" content="yes" />
  9. <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
  10. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
  11. <link rel="stylesheet" href="css/reveal.min.css">
  12. <link rel="stylesheet" href="css/theme/osi.css" id="theme">
  13. <!-- For syntax highlighting -->
  14. <link rel="stylesheet" href="lib/css/zenburn.css" />
  15. <!-- If the query includes 'print-pdf', use the PDF print sheet -->
  16. <script>
  17. document.write( '<link rel="stylesheet" href="css/print/' + ( window.location.search.match( /print-pdf/gi ) ? 'pdf' : 'paper' ) + '.css" type="text/css" media="print">' );
  18. </script>
  19. <!--[if lt IE 9]>
  20. <script src="lib/js/html5shiv.js"></script>
  21. <![endif]-->
  22. </head>
  23. <body>
  24. <div class="reveal">
  25. <!-- Any section element inside of this container is displayed as a slide -->
  26. <div class="slides">
  27. <section>
  28. <img src="osinet.png" class="cover-img" style="height: 150px;" />
  29. <div class="cover-osi">
  30. <h1>Drupal,<br>qu'est-ce que c'est ?</h1>
  31. <p></p>
  32. </div>
  33. </section>
  34. <section>
  35. <section>
  36. <h2>Un CMS</h2>
  37. <p class="left">CMS = Content management system, système de gestion de contenu</p>
  38. <ul class="left">
  39. <li>Un logiciel qui permet de construire des sites web dynamiques</li>
  40. <li>Répond aux problématiques des sites statiques ou développés &laquo; from scratch&nbsp;&raquo;&nbsp;:
  41. <ul>
  42. <li>Comment gérer</li>
  43. <li>Comment maintenir</li>
  44. <li>Comment évoluer</li>
  45. </ul>
  46. </li>
  47. <li>Questions de performance</li>
  48. </ul>
  49. </section>
  50. <section>
  51. <h3>Un CMS</h3>
  52. <p class="left">Créer plus vite, moins cher, plus riche : tout est déjà là</p>
  53. <ul class="left">
  54. <li>Les fonctionnalités courantes des sites web actuels ou la possibilité d'en créer ou intégrer rapidement</li>
  55. <li>Une interface de configuration et d'administration accessible par navigateur web</li>
  56. <li>La séparation des opérations de gestion de la forme et du contenu (travail en parallèle design, thème, code, intégration)</li>
  57. <li>La possibilité de structurer le contenu et les relations entre contenus</li>
  58. <li>La gestion des utilisateurs et de leurs rôles et de leurs relations entre eux</li>
  59. </ul>
  60. </section>
  61. </section>
  62. <section>
  63. <section>
  64. <h2>Open Source</h2>
  65. <h4 class="left" style="margin-top: 1.2em;">Une nouvelle forme de marché et d'économie</h4>
  66. <ul class="left">
  67. <li>Le marché en France 2,5 milliards d'euros (« Panorama de l'open source en France », le Conseil National du Logiciel Libre)</li>
  68. <li>Désormais au même rang que les solutions propriétaires dans le paysage des logiciels du secteur public (selon le <a href="http://blog.administrationnumerique.markess.com/2012/05/8501/">Blog d'Administration Numérique</a>)</li>
  69. <li>Bénéfices de la contribution</li>
  70. </ul>
  71. </section>
  72. <section>
  73. <h3>Open source</h3>
  74. <h4 class="left" style="margin-top: 1.2em;">L'indépendance technologique</h4>
  75. <ul class="left">
  76. <li>Libre : les fonctionnalités ne peuvent pas être imposées par un propriétaire de logiciel </li>
  77. <li>Drupal : le projet n’appartient pas à une entreprise en particulier</li>
  78. <li>Liberté de choisir ou de changer de prestataire</li>
  79. </ul>
  80. <p class="left">Possibilité d'étudier le code source pour localiser d'éventuels problèmes de sécurité</p>
  81. </section>
  82. <section>
  83. <h3>Open source</h3>
  84. <h4 class="left" style="margin-top: 1.2em;">Les droits d'auteur</h4>
  85. <p class="left">Les droits d'auteur d'un logiciel open source sont définis par la licence</p>
  86. <ul class="left">
  87. <li>Logiciel libre (free software) : souligne les aspects éthiques du développement libre et gratuit</li>
  88. <li>Open source : souligne les avantages qualitatifs et économiques de la liberté d'accès et des modifications aux sources
  89. <ul>
  90. <li>L'Open Source Initiative valide les licences qui respectent ces libertés</li>
  91. </ul>
  92. </li>
  93. <li>Ne pas confondre avec le domaine public :
  94. <ul>
  95. <li>Libre et Open Source reposent sur l'existence du copyright</li>
  96. <li>Les risques du domaine public</li>
  97. <li>Les limitations du domaine public en droit français</li>
  98. </ul>
  99. </li>
  100. <li>Drupal : General Public licence versions 2 et suivantes (GPL)</li>
  101. </ul>
  102. </section>
  103. </section>
  104. <section>
  105. <section>
  106. <h2>Modules et thèmes contrib</h2>
  107. <ul>
  108. <li>Au téléchargement de Drupal, on se procure des modules et thèmes <b>cœur = <em>core</em></b></li>
  109. <li>On peut compléter le cœur par des modules et thèmes créés par la <b>communauté = <em>contrib</em></b>
  110. <ul>
  111. <li>Communauté : entre autres, ceux qui développent en Drupal et mettent leur travail à la disposition des autres</li>
  112. </ul>
  113. </li>
  114. <li>On peut développer des modules et des thèmes <b>personnalisés = <em>custom</em></b>
  115. <ul>
  116. <li>Ces modules et thèmes peuvent être mis à la disposition de la communauté</li>
  117. </ul>
  118. </li>
  119. </ul>
  120. </section>
  121. <section>
  122. <h3>Modules et thèmes contrib</h3>
  123. <ul>
  124. <li>Les modules et les thèmes peuvent être téléchargés à partir de <a href="https://drupal.org/project/project_module">drupal.org</a> et gérés à partir de l'interface du site</li>
  125. <li>Une discipline stricte de documentation et un système automatisé de tests unitaires et fonctionnels permettent de contrôler la qualité des modules communautaires</li>
  126. </ul>
  127. </section>
  128. <section>
  129. <h3>Modules et thèmes contrib</h3>
  130. <h4 class="left" style="margin-top: 1.2em;">Distribution</h4>
  131. <p class="left">Façon plus simple de se procurer un site avec des fonctionnalités nécessaires</p>
  132. <ul class="left">
  133. <li>Un seul package</li>
  134. <li>Tous les modules nécessaires</li>
  135. <li>Tous les thèmes nécessaires</li>
  136. <li>Un profil d'installation</li>
  137. <li>Des outils complémentaires</li>
  138. <li>Des &laquo; features &raquo; de configuration</li>
  139. </ul>
  140. <p class="left">En bref : du prêt à l'emploi</p>
  141. </section>
  142. </section>
  143. <section>
  144. <section>
  145. <h2>L'interface de configuration</h2>
  146. <p class="left">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...</p>
  147. <p class="left">Apparaît différemment à différents utilisateurs, selon les configurations personnalisées :</p>
  148. <ul class="left">
  149. <li><b>Sitebuilder</b> peut construire et configurer le site : types de contenu, formats, listes de contenu (vues), blocs</li>
  150. <li><b>Administrateur</b> peut faire des opérations d'administration : classification (taxinomie), menus, sécurité, utilisateurs
  151. (rôles, permissions), SEO, définition de Workflow
  152. <ul>
  153. <li>Frontière mouvantes entre builder et admin</li>
  154. </ul>
  155. </li>
  156. <li><b>Rédacteur</b> peut créer des contenus, mettre en avant des articles choisis, ajouter des images, changer la classification etc.
  157. <ul>
  158. <li>Utilisation de workflow et séparation des droits</li>
  159. </ul>
  160. </li>
  161. </ul>
  162. </section>
  163. </section>
  164. <section>
  165. <section>
  166. <h2>Sources</h2>
  167. <p class="left">Au téléchargement de Drupal, on se procure tous les fichiers sources dans lesquelles développeur peut créer les fonctions manquantes</p>
  168. <ul class="left">
  169. <li>Back : +PHP, +JS, -HTML, -CSS</li>
  170. <li>Front : -PHP, -JS, +HTML, +CSS</li>
  171. </ul>
  172. </section>
  173. </section>
  174. <section>
  175. <section>
  176. <h2>Développement des thèmes</h2>
  177. <h4 class="left" style="margin-top: 1.2em;">Choix de thème</h4>
  178. <ul class="left">
  179. <li>Thèmes contrib : choisir un thème et y apporter éventuellement de légères modifications par un sous-thème
  180. <ul>
  181. <li><a hfref="http://d-theme.com/">d-themes</a></li>
  182. <li>Boutiques de thèmes</li>
  183. </ul>
  184. </li>
  185. <li>Thèmes de base (contrib) : créer un sous-thème à partir d'un thème de base</li>
  186. <li>Création de thème à partir de rien (&laquo; from scratch &raquo;)</li>
  187. </ul>
  188. </section>
  189. <section>
  190. <h3>Développement des thèmes</h3>
  191. <ul>
  192. <li>Ne jamais modifier des thèmes développés par des autres
  193. <ul>
  194. <li>Les mises à jour sont impossibles si le thème contrib a été modifié</li>
  195. <li>Pour modifier un thème, créer un sous-thème</li>
  196. </ul>
  197. </li>
  198. <li>Développement sur Drupal se fait en modifiant des fichiers avec un éditeur de texte/IDE</li>
  199. <li>CSS, HTML (PHP, Javascript/jQuery...)</li>
  200. </ul>
  201. </section>
  202. </section>
  203. <section>
  204. <section>
  205. <h2>Développement des modules</h2>
  206. <h4 class="left" style="margin-top: 1.2em;">Module contrib ou module custom ?</h4>
  207. <ul class="left">
  208. <li>Si un module contrib déjà existant couvre plus de 80 % du besoin, vérifier son niveau de maintenance
  209. <ul>
  210. <li>Versions stables</li>
  211. <li>Versions dev, alpha, beta, rc, unstable</li>
  212. </ul>
  213. </li>
  214. <li>Si un module contrib déjà existant couvre moins
  215. <ul>
  216. <li>Vérifier si le besoin de plus haut niveau ne serait pas mieux servi par ce qui existe</li>
  217. <li>Créer un module custom</li>
  218. </ul>
  219. </li>
  220. </ul>
  221. </section>
  222. <section>
  223. <h3>Développement des modules</h3>
  224. <ul>
  225. <li>Ne jamais modifier des modules développés par des autres
  226. <ul>
  227. <li>Si besoin de changer le fonctionnement du module contib ou core, créer un module personnalisé</li>
  228. <li>Drupal permet de modifier presque tout sans changer le code existant</li>
  229. </ul>
  230. </li>
  231. <li>PHP (JS, HTML, CSS)</li>
  232. </ul>
  233. </section>
  234. </section>
  235. <section>
  236. <img src="osinet.png" class="cover-img" style="height: 150px;" />
  237. <div class="cover-osi">
  238. <h3>Merci !</h3>
  239. <img src="images/druplicon-glow.png" class="cover-img" style="height: 200px;" />
  240. </div>
  241. </section>
  242. <section>
  243. <h2 class="people" style="text-align: center; margin-bottom: 0.8em;">L'équipe OSInet</h2>
  244. <table class="people">
  245. <tr class="blue">
  246. <td>Frédéric G. Marand</td>
  247. <td class="td-middle">Outi Munter</td>
  248. <td>Brigitte Taïeb</td>
  249. </tr>
  250. <tr>
  251. <td><img src="images/fgm-dublin.jpg" class="cover-img"></td>
  252. <td class="td-middle"><img src="images/outi-2.jpg" class="cover-img"></td>
  253. <td><img src="images/brigitte.jpg" class="cover-img"></td>
  254. </tr>
  255. <tr style="font-size: 0.78em; opacity: 0.8;">
  256. <td>Cofondateur et gérant – et spécialiste en programmation système et réseau</td>
  257. <td class="td-middle">Chef de projet, graphiste et thémeuse</td>
  258. <td>Directrice commerciale</td>
  259. </tr>
  260. </table>
  261. <p style="text-align: center;"><a href="http://www.osinet.fr" style="font-size: 1.05em; margin-left: 0;">www.osinet.fr</a></p>
  262. </section>
  263. <!-- ################################### END LATEST SLIDE ################################### -->
  264. </div>
  265. <div class="footer"><img src="osinet.png" alt="logo" class="logo" height="70"><span class="footnote">Drupal, qu'est-ce que c'est ? / DGTD / © 2013 OSInet / Licence CC-BY-SA 2.0 France</span></div>
  266. </div>
  267. <script src="lib/js/head.min.js"></script>
  268. <script src="js/reveal.min.js"></script>
  269. <script>
  270. // Full list of configuration options available here:
  271. // https://github.com/hakimel/reveal.js#configuration
  272. Reveal.initialize({
  273. controls: true,
  274. progress: true,
  275. history: true,
  276. center: false,
  277. theme: Reveal.getQueryHash().theme, // available themes are in /css/theme
  278. transition: Reveal.getQueryHash().transition || 'default', // default/cube/page/concave/zoom/linear/fade/none
  279. // Optional libraries used to extend on reveal.js
  280. dependencies: [
  281. { src: 'lib/js/classList.js', condition: function() { return !document.body.classList; } },
  282. { src: 'plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
  283. { src: 'plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
  284. { src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },
  285. { src: 'plugin/zoom-js/zoom.js', async: true, condition: function() { return !!document.body.classList; } },
  286. { src: 'plugin/notes/notes.js', async: true, condition: function() { return !!document.body.classList; } }
  287. ]
  288. });
  289. </script>
  290. </body>
  291. </html>