CMS : Content Management System Louis-Claude C ANON [email protected] 15 septembre 2009 C ANON CMS 15 septembre 2009 1 / 36 Contexte introductif Plan 1 Contexte introductif 2 Contenu numérique 3 Problématique éditoriale 4 Technologies web HTTP PHP SQL 5 Exemples et synthèse C ANON CMS 15 septembre 2009 2 / 36 Contexte introductif Internet C ANON CMS 15 septembre 2009 3 / 36 Contexte introductif Internet Internet Réseau : ensemble d’équipements reliés entre eux pour échanger des informations. Internet : système mondial de réseaux informatiques interconnectés (réseau de réseaux). C ANON CMS 15 septembre 2009 3 / 36 Contexte introductif Internet Internet Réseau : ensemble d’équipements reliés entre eux pour échanger des informations. Internet : système mondial de réseaux informatiques interconnectés (réseau de réseaux). World Wide Web Système hypertexte de documents. Hypertexte/hyperlien : référence dans un document permettant d’accéder directement à un autre document web. C ANON CMS 15 septembre 2009 3 / 36 Contexte introductif Internet Internet Réseau : ensemble d’équipements reliés entre eux pour échanger des informations. Internet : système mondial de réseaux informatiques interconnectés (réseau de réseaux). World Wide Web Système hypertexte de documents. Hypertexte/hyperlien : référence dans un document permettant d’accéder directement à un autre document web. Navigateur web Logiciel conçu pour consulter des documents web et facilitant la navigation (i.e., le passage entre une succession de documents liés par des liens hypertextes). C ANON CMS 15 septembre 2009 3 / 36 Contexte introductif Architecture Architecture client/serveur Client : envoie des requêtes au serveur (e.g., le navigateur web) Serveur : en écoute, traite et répond aux requêtes (e.g., serveur de mail) C ANON CMS 15 septembre 2009 4 / 36 Contexte introductif Architecture Architecture client/serveur Client : envoie des requêtes au serveur (e.g., le navigateur web) Serveur : en écoute, traite et répond aux requêtes (e.g., serveur de mail) Cas d’utilisation Le client souhaite rapatrier ses mails. Le serveur reçoit une requête, authentifie le client (vérifie ses droits) et renvoie une liste de mails. Idem pour une page web. C ANON CMS 15 septembre 2009 4 / 36 Contexte introductif Synthèse Serveur Client Contenu C ANON CMS 15 septembre 2009 5 / 36 Contexte introductif Exemple de sites gérés automatiquement Description amazon fiches descriptives pour chaque produit blogger entrées accompagnées de médias avec possibilités de laisser des commentaire wikipedia pages sur chaque sujet picasa ensemble de photos organisées youtube ensemble de vidéos C ANON CMS 15 septembre 2009 6 / 36 Contexte introductif Exemple de sites gérés automatiquement Description amazon fiches descriptives pour chaque produit blogger entrées accompagnées de médias avec possibilités de laisser des commentaire wikipedia pages sur chaque sujet picasa ensemble de photos organisées youtube ensemble de vidéos Remarques Même structure sur chaque page Même aspect visuel C ANON CMS 15 septembre 2009 6 / 36 Contexte introductif Problématique de mise en ligne de contenu Édition de contenu web Besoin de gérer et manipuler des quantités importantes de contenu web. C ANON CMS 15 septembre 2009 7 / 36 Contexte introductif Problématique de mise en ligne de contenu Édition de contenu web Besoin de gérer et manipuler des quantités importantes de contenu web. Critère d’efficacité d’une telle gestion Simplicité d’utilisation Rapidité d’utilisation Gestion des rôles C ANON CMS 15 septembre 2009 7 / 36 Contexte introductif Synthèse Fournisseur de contenu Clients Serveur Contenu C ANON CMS CMS 15 septembre 2009 8 / 36 Contenu numérique Plan 1 Contexte introductif 2 Contenu numérique 3 Problématique éditoriale 4 Technologies web HTTP PHP SQL 5 Exemples et synthèse C ANON CMS 15 septembre 2009 9 / 36 Contenu numérique Format Élément de base Différent médias : texte, image, figure, graphique, son, vidéo. Éléments mis en page pour une navigation agréable. Encodage dans un format spécifique décrivant tous les détails relatif à la mise en page (couleur de fond, police de caractère, taille, emplacement des images, du texte, ...). C ANON CMS 15 septembre 2009 10 / 36 Contenu numérique Format Élément de base Différent médias : texte, image, figure, graphique, son, vidéo. Éléments mis en page pour une navigation agréable. Encodage dans un format spécifique décrivant tous les détails relatif à la mise en page (couleur de fond, police de caractère, taille, emplacement des images, du texte, ...). Une page, un fichier, une adresse Une page web est un fichier. Il est récupéré sur un site à partir d’une adresse web. Le fichier est traduit par le navigateur en contenu visuel. C ANON CMS 15 septembre 2009 10 / 36 Contenu numérique HTML Langage de mise en page Ne contient que du texte. Permet au navigateur d’inclure des médias externes grâce à leur adresse. Basé sur des balises qui encadrent des éléments. C ANON CMS 15 septembre 2009 11 / 36 Contenu numérique HTML Langage de mise en page Ne contient que du texte. Permet au navigateur d’inclure des médias externes grâce à leur adresse. Basé sur des balises qui encadrent des éléments. Balises Balise ouvrantes et fermantes (e.g., <a> et </a>). Définit la nature structurelle ou visuelle des éléments entourés des 2 balises. C ANON CMS 15 septembre 2009 11 / 36 Contenu numérique HTML Langage de mise en page Ne contient que du texte. Permet au navigateur d’inclure des médias externes grâce à leur adresse. Basé sur des balises qui encadrent des éléments. Balises Balise ouvrantes et fermantes (e.g., <a> et </a>). Définit la nature structurelle ou visuelle des éléments entourés des 2 balises. Exemple <titre>Ceci sera interprété comme étant un titre</titre> Les espaces et retour charriots n’ont aucune incidence. C ANON CMS 15 septembre 2009 11 / 36 Contenu numérique Attributs Attributs Enrichie une balise sur le contenu délimité. Une balise peut avoir des valeurs pour chacun de ses attributs. C ANON CMS 15 septembre 2009 12 / 36 Contenu numérique Attributs Attributs Enrichie une balise sur le contenu délimité. Une balise peut avoir des valeurs pour chacun de ses attributs. Exemple <citation auteur="Martin">Blabla</citation> Une citation de Martin. C ANON CMS 15 septembre 2009 12 / 36 Contenu numérique Une première page Structure général d’un document HTML On commence par un en-tête qui définie les informations générales du document. Vient ensuite le corps du document avec le contenu. C ANON CMS 15 septembre 2009 13 / 36 Contenu numérique Une première page Structure général d’un document HTML On commence par un en-tête qui définie les informations générales du document. Vient ensuite le corps du document avec le contenu. Exemple <html> <head> <title>Titre de la page</titre> </head> <body> Une première page. </body> </html> C ANON CMS 15 septembre 2009 13 / 36 Contenu numérique Génération de contenu Directement en HTML Problème : non accessible au néophyte. C ANON CMS 15 septembre 2009 14 / 36 Contenu numérique Génération de contenu Directement en HTML Problème : non accessible au néophyte. Grâce à un outil graphique Problème : moins bon contrôle du code HTML généré. C ANON CMS 15 septembre 2009 14 / 36 Contenu numérique Génération de contenu Directement en HTML Problème : non accessible au néophyte. Grâce à un outil graphique Problème : moins bon contrôle du code HTML généré. CMS Dans les 2 cas, comment garder une cohérence visuelle ? À partir d’un squelette HTML réalisé à la main, les différents contenus sont insérés automatiquement. Toutes les pages ont la même structure et respectent une même charte graphique. C ANON CMS 15 septembre 2009 14 / 36 Contenu numérique Synthèse Fournisseur de contenu Clients Serveur HTML C ANON CMS CMS 15 septembre 2009 15 / 36 Problématique éditoriale Plan 1 Contexte introductif 2 Contenu numérique 3 Problématique éditoriale 4 Technologies web HTTP PHP SQL 5 Exemples et synthèse C ANON CMS 15 septembre 2009 16 / 36 Problématique éditoriale Édition Contenu Ensemble de médias numériques et textes électroniques. C ANON CMS 15 septembre 2009 17 / 36 Problématique éditoriale Édition Contenu Ensemble de médias numériques et textes électroniques. Actions sur le contenu Créer, modifier, vérifier/contrôler, indexer, publier, archiver/stocker. Et permettre la recherche et le versionnage (conserver l’historique des modification d’un document). C ANON CMS 15 septembre 2009 17 / 36 Problématique éditoriale Workflow Définition Séquence d’opérations réalisées par des personnes ou groupes de personnes. C ANON CMS 15 septembre 2009 18 / 36 Problématique éditoriale Workflow Définition Séquence d’opérations réalisées par des personnes ou groupes de personnes. Contexte éditorial Les contenus sont préparés en interne, vérifiés puis publiés. Chaque action est associée à un rôle qu’un CMS peut attribuer à ses utilisateurs. C ANON CMS 15 septembre 2009 18 / 36 Problématique éditoriale Synthèse Avantages Charte graphique, rationalisation de la complexité, contrôle de la chaîne éditoriale. Clients Redacteurs Editeur Serveur HTML C ANON CMS CMS 15 septembre 2009 19 / 36 Technologies web HTTP Plan 1 Contexte introductif 2 Contenu numérique 3 Problématique éditoriale 4 Technologies web HTTP PHP SQL 5 Exemples et synthèse C ANON CMS 15 septembre 2009 20 / 36 Technologies web HTTP Transférer les pages web Définition HTTP protocole de transfert de données hypertextes. C ANON CMS 15 septembre 2009 21 / 36 Technologies web HTTP Transférer les pages web Définition HTTP protocole de transfert de données hypertextes. Protocole de communication Ensemble de contraintes permettant d’établir une communication entre deux entités. Sont spécifiées la structure des messages, leurs tailles, les types d’informations échangées. C ANON CMS 15 septembre 2009 21 / 36 Technologies web HTTP Serveur HTTP Requête GET Des caractères transitent sur le réseau et le serveurs HTTP renvoie une page internet (ici, www.mines.inpl-nancy.fr/identite/identite.htm). telnet www.mines.inpl-nancy.fr 80 GET /identite/identite.htm HTTP/1.0 Host : www.mines.inpl-nancy.fr C ANON CMS 15 septembre 2009 22 / 36 Technologies web HTTP Serveur HTTP Requête GET Des caractères transitent sur le réseau et le serveurs HTTP renvoie une page internet (ici, www.mines.inpl-nancy.fr/identite/identite.htm). telnet www.mines.inpl-nancy.fr 80 GET /identite/identite.htm HTTP/1.0 Host : www.mines.inpl-nancy.fr Autre requête La requête POST est utilisé lors les données d’un formulaire internet sont envoyées au serveur. C ANON CMS 15 septembre 2009 22 / 36 Technologies web HTTP Synthèse Clients Redacteurs Editeur Serveur HTML GET C ANON HTTP CMS CMS 15 septembre 2009 23 / 36 Technologies web PHP Des pages conçues dynamiquement Limite Comment concevoir une page qui affiche la date du jour ? C ANON CMS 15 septembre 2009 24 / 36 Technologies web PHP Des pages conçues dynamiquement Limite Comment concevoir une page qui affiche la date du jour ? Code dynamique La date sera insérée dans la page suivante : <html> <head> <title>My first page in PHP</title> </head> <body> Current date. : < ?php print (Date("l F d, Y")) ; ?> </body> </html> C ANON CMS 15 septembre 2009 24 / 36 Technologies web PHP Langage de script : PHP Mélange HTML/PHP Les morceaux de scripts PHP insérés dans le code HTML sont remplacé lors de la navigation. Après avoir reçu une requête HTTP (GET), le serveur vas interpréter le code PHP puis renvoyer le résultat. C ANON CMS 15 septembre 2009 25 / 36 Technologies web PHP Langage de script : PHP Mélange HTML/PHP Les morceaux de scripts PHP insérés dans le code HTML sont remplacé lors de la navigation. Après avoir reçu une requête HTTP (GET), le serveur vas interpréter le code PHP puis renvoyer le résultat. Délimitation du PHP On encadre le code PHP par <? php et ? >. C ANON CMS 15 septembre 2009 25 / 36 Technologies web PHP Langage de script : PHP Mélange HTML/PHP Les morceaux de scripts PHP insérés dans le code HTML sont remplacé lors de la navigation. Après avoir reçu une requête HTTP (GET), le serveur vas interpréter le code PHP puis renvoyer le résultat. Délimitation du PHP On encadre le code PHP par <? php et ? >. Insérer une chaîne de caractère On utilise le mot-clé echo. Exemple : echo "Celle-ci a été écrite en PHP." ; C ANON CMS 15 septembre 2009 25 / 36 Technologies web PHP Utiliser des variables Concept de variables Une variable est une valeur représentée par un symbole (un chaîne de caractère). C ANON CMS 15 septembre 2009 26 / 36 Technologies web PHP Utiliser des variables Concept de variables Une variable est une valeur représentée par un symbole (un chaîne de caractère). Syntaxe PHP On utilise le symbole $ pour dénoter une variable. Exemple : $pseudo_du_visiteur = "Mateo21" ; echo "Bonjour $pseudo_du_visiteur !" ; À l’exécution la variable $pseudo_du_visiteur est remplacée par son contenu. C ANON CMS 15 septembre 2009 26 / 36 Technologies web PHP Réaliser des opérations Calcul simple $nombre = 10 ; $resultat = ($nombre + 5) * $nombre ; C ANON CMS 15 septembre 2009 27 / 36 Technologies web PHP Réaliser des opérations Calcul simple $nombre = 10 ; $resultat = ($nombre + 5) * $nombre ; Récupérer des arguments dans l’adresse En accédant à l’adresse internet http ://www.monsite.com/infos.php ?jour=27, on peut obtenir le numéro du jour en PHP : $numeror_jour = $_GET[’jour’] = 27 ; C ANON CMS 15 septembre 2009 27 / 36 Technologies web PHP Utilisation dans le cadre des CMS Intérêt Squelette HTML contenant l’aspect structurel et visuel. Le code PHP ira insérer du contenu aux endroits prévus. C ANON CMS 15 septembre 2009 28 / 36 Technologies web PHP Synthèse Clients Redacteurs Editeur Serveur HTML GET C ANON HTTP CMS PHP CMS 15 septembre 2009 29 / 36 Technologies web SQL Stocker des informations Limite Où aller chercher le contenu s’il n’est pas stocké en HTML ? C ANON CMS 15 septembre 2009 30 / 36 Technologies web SQL Stocker des informations Limite Où aller chercher le contenu s’il n’est pas stocké en HTML ? Base de données Serveur permettant à un client d’accéder à des données brutes (sans mise en page). Les scripts PHP seront clients (sur le serveur HTTP) et accéderont aux données dans un langage spécifique, puis les inséreront. C ANON CMS 15 septembre 2009 30 / 36 Technologies web SQL Base de données Tables Les données sont structurées sont forme de tables : USER_ID Nom Prénom Profession 1 Canon Louis-Claude Moniteur 2 Benmouffek Dominique Maître de conférence C ANON CMS 15 septembre 2009 31 / 36 Technologies web SQL Base de données Tables Les données sont structurées sont forme de tables : USER_ID Nom Prénom Profession 1 Canon Louis-Claude Moniteur 2 Benmouffek Dominique Maître de conférence Mixer les tables USER_ID Enseignement 1 Atelier 3 1 Atelier 5 2 PP/Word À partir de ces deux tables, on peut obtenir la liste des enseignements à partir du nom d’un enseignant. La colonne USER_ID permet de faire la correspondance. C ANON CMS 15 septembre 2009 31 / 36 Technologies web SQL Requêtes SQL Langage Les requêtes respectent le format du langage SQL. Elles permettent de récupérer des données, ou ajouter/modifier/supprimer les tables. C ANON CMS 15 septembre 2009 32 / 36 Technologies web SQL Requêtes SQL Langage Les requêtes respectent le format du langage SQL. Elles permettent de récupérer des données, ou ajouter/modifier/supprimer les tables. Exemple SELECT Enseignement FROM table1, table2 WHERE table1.USER_ID = table2.USER_ID AND table1.Nom = "Nom" ; Renvoie la liste des enseignements de l’enseignant “Nom”. C ANON CMS 15 septembre 2009 32 / 36 Technologies web SQL Synthèse Clients Redacteurs Editeur Serveur HTML GET C ANON HTTP PHP CMS SQL CMS 15 septembre 2009 33 / 36 Exemples et synthèse Plan 1 Contexte introductif 2 Contenu numérique 3 Problématique éditoriale 4 Technologies web HTTP PHP SQL 5 Exemples et synthèse C ANON CMS 15 septembre 2009 34 / 36 Exemples et synthèse Quelques CMS SPIP Conception de site à contenu informatif (assez général). Orienté édition et organisation des rôles. Utilise des squelettes HTML personnalisables. Le logiciel utilise PHP et une base de données SQL de façon transparente. Site officiel : http ://www.spip.net/rubrique91.html C ANON CMS 15 septembre 2009 35 / 36 Exemples et synthèse Quelques CMS SPIP Conception de site à contenu informatif (assez général). Orienté édition et organisation des rôles. Utilise des squelettes HTML personnalisables. Le logiciel utilise PHP et une base de données SQL de façon transparente. Site officiel : http ://www.spip.net/rubrique91.html Wordpress Conception de blog (gestion des commentaires, . . .). Repose également sur PHP/SQL. Wordpress Codex : http ://codex.wordpress.org/Main_Page C ANON CMS 15 septembre 2009 35 / 36 Exemples et synthèse Quelques CMS SPIP Conception de site à contenu informatif (assez général). Orienté édition et organisation des rôles. Utilise des squelettes HTML personnalisables. Le logiciel utilise PHP et une base de données SQL de façon transparente. Site officiel : http ://www.spip.net/rubrique91.html Wordpress Conception de blog (gestion des commentaires, . . .). Repose également sur PHP/SQL. Wordpress Codex : http ://codex.wordpress.org/Main_Page Et encore Wikimedia, Drupal, Joomla, . . . C ANON CMS 15 septembre 2009 35 / 36 Exemples et synthèse Conclusion Caractérisation des technologies principales Utilisation facile par des formulaires web Notion de rôle (permissions) Nécessité d’une gestion cohérente des contenus Respect de la charte graphique C ANON CMS 15 septembre 2009 36 / 36