Refonte du site CD Media
Transcription
Refonte du site CD Media
UNIVERSITÉ DE NICE SOPHIA ANTIPOLIS I.U.T. DE NICE CÔTE D’AZUR DÉPARTEMENT INFORMATIQUE 41, BD NAPOLEON III – 06200 NICE RAPPORT DE STAGE SESSION 2011-2012 Refonte du site CD Media Crée par : Cédric FERRETTI Entreprise : SARL CDMedia 29 av. Jean Médecin 06000 Nice Sous la direction de : M. Frédéric FRATICELLI, tuteur de l’entreprise Mlle Lise BRENAC, tutrice I.U.T. Cédric FERRETTI – Rapport de Stage – 2011/2012 2 Résumé Afin de valider ma formation au sein de l’IUT de Nice Côte d’Azur et obtenir mon diplôme, j’ai dû, lors de ma seconde année de DUT Informatique, faire un stage en entreprise. J’ai été recruté par l’entreprise CD Media spécialisée dans la conception de site Web et le conseil informatique. Au cours de ce stage j’ai dû développer le futur site Web de l’entreprise ainsi qu’améliorer le système de back-office de ce même site. Summary To validate my training in the UIT of Nice Côte d’Azur and obtain my degree, I have to do an internship during my second years of University degree of Technology in Computer Science. I was recruited by the company CD Media, specialist in web development and IT consulting. During this internship, I have to develop the future Web site of the company and improve the Web site’s back-office system. Cédric FERRETTI – Rapport de Stage – 2011/2012 3 Sommaire 1. 2. INTRODUCTION ET ANALYSE DE LA SITUATION....................................................5 1.1. PRESENTATION DE L’ENTREPRISE .....................................................................................................................................5 1.2. PRESENTATION DU PROJET ..................................................................................................................................................5 1.3. PLANNING PREVISIONNEL ....................................................................................................................................................6 REALISATION DU PROJET ...................................................................................... 7 2.1. PRISE EN MAIN ET MISE EN APPLICATION ......................................................................................................................7 2.1.1. Langages utilisés ................................................................................................................. 7 2.1.2. Outils de développement utilisés ................................................................................... 8 2.2. ETUDE DE L’EXISTANT ..........................................................................................................................................................12 2.3. FORMATION ...............................................................................................................................................................................13 2.4. DEVELOPPEMENT DU PROJET ...........................................................................................................................................13 2.4.1. La page d’accueil ................................................................................................................14 2.4.1.1. Version 1 .......................................................................................................................................................................................... 14 2.4.1.2. Version 2 ......................................................................................................................................................................................... 15 2.4.2. Niveau 2 ................................................................................................................................19 2.4.3. Niveau 3 ............................................................................................................................... 20 2.4.4. Animation du fond ............................................................................................................21 2.5. AMELIORATION DU BACK-OFFICE ..................................................................................................................................22 2.5.1. Le système d’upload de gros fichiers sur le serveur .............................................. 22 2.5.2. Le système d’ajout de vidéos ......................................................................................... 24 2.5.3. Le système de découpe d’image ................................................................................... 26 2.5.4. Autres Développements.................................................................................................. 29 2.6. PHASE DE TEST ET CORRECTION DE BUGS ...................................................................................................................29 2.8. PLANNING FINAL .....................................................................................................................................................................31 3. CONCLUSION ........................................................................................................ 32 4. GLOSSAIRE ........................................................................................................... 33 5. BIBLIOGRAPHIE ...................................................................................................34 6. 5.1. SITES CONSULTES ...................................................................................................................................................................34 5.2. ŒUVRES CONSULTEES ..........................................................................................................................................................35 ANNEXES .............................................................................................................. 35 Cédric FERRETTI – Rapport de Stage – 2011/2012 4 1. Introduction et analyse de la situation 1.1. Présentation de l’entreprise L’entreprise CD Media est une agence de communication Web créée en 1998 dont le siège social se situe à Ajaccio en Corse. L’activité principale de cette entreprise est la conception de sites Web, le conseil et l’étude informatique. Cette société intervient surtout auprès d’agences de tourismes des Alpes-Maritimes et de Corse. J’ai été accueilli dans cette entreprise par Fred FRATICELLI, chef de projet et développeur/ intégrateur Web, et Corinne BELLANGER chargée de clientèle. 1.2. Présentation du projet Le projet de mon stage porte sur la refonte du site Web de CD Media http://www.cd-media.fr/ ainsi qu’une amélioration de son back-office. Cette refonte a pour objectifs d’améliorer et de moderniser la communication de l’entreprise auprès de clients potentiels. L’objectif final est donc d’avoir un site Web fonctionnel, ergonomique et surtout avec un temps de chargement le plus rapide possible (de l’ordre de quelques secondes) tout en respectant les contraintes de développement imposées par l’entreprise. Le site doit être compatible avec les principaux navigateurs Web: - Mozilla Firefox - Google Chrome - Internet Explorer Cédric FERRETTI – Rapport de Stage – 2011/2012 5 1.3. Planning prévisionnel Figure 1. Planning initial du projet Voici la charge de travail prévisionnelle, après établissement du cahier des charges les parties les plus importantes sont la phase de développement et celle d’intégration. Formation : 2 semaines. Conception du Cahier des Charges : 1 semaine. Intégration : 3 semaines. Développement : 4 semaines. Phase de test et de débogage : 1 semaine. Cédric FERRETTI – Rapport de Stage – 2011/2012 6 2. Réalisation du projet 2.1. Prise en main et mise en application 2.1.1. Langages utilisés Mon stage étant orienté développement Web j’ai donc dû me servir de plusieurs langages : HTML : Un langage de balisage permettant d’écrire de l’hypertexte. HTML permet également de structurer sémantiquement et de mettre en forme le contenu des pages, d’inclure des ressources multimédias dont des images ou encore des formulaires de saisie. CSS : Un langage permettant de décrire des feuilles de style servant à la présentation des documents HTML et XML. JavaScript : Un langage de script, utilisé surtout coté client/navigateur, orienté objet à prototype, c'est-à-dire que les bases du langage et ses principales interfaces sont fournies par des objets qui ne sont pas des instances de classes, mais qui sont chacun équipés de constructeurs permettant de définir leurs propriétés. Ce langage permet la modification dynamique des éléments de la page. SQL : Un langage permettant d’effectuer des opérations sur des bases de données. Cédric FERRETTI – Rapport de Stage – 2011/2012 7 PHP : Un langage de script, utilisé coté serveur, utilisé pour produire des pages Web dynamiques via un serveur http ou pour effectuer des traitements de façon local. En raison de la richesse de sa bibliothèque, on désigne parfois PHP comme une plateforme plus qu'un simple langage. 2.1.2. Outils de développement utilisés Durant mon stage j’ai dû me servir de différents outils afin d’améliorer la production et de faciliter la réalisation du projet : Zend Studio : Zend Studio est un IDE fournissant les fonctionnalités nécessaires au développement d’application aussi bien coté serveur (PHP) que coté client (JavaScript, HTML). Il intègre des services qui m’ont été utiles comme la gestion d’un projet, la complétion automatique du code ou encore la connexion à un serveur FTP. FileZilla Client : FileZilla Client est un client FTP, FTPS et SFTP. Il permet le transfert et la récupération de fichiers sur un serveur FTP. Adobe Photoshop et Adobe Illustrator : Logiciels de création et d’édition d’images, numériques pour l’un et vectoriels pour l’autre, elles m’ont été utiles lors de l’intégration de la charte graphique du site. Cédric FERRETTI – Rapport de Stage – 2011/2012 8 EasyPHP : EasyPHP est une plateforme de développement Web comprenant deux serveurs (un serveur Web Apache et un serveur de bases de données MySQL) permettant d’exécuter en local (sans se connecter à un serveur distant) des scripts PHP. TopStyle Pro : TopStyle Pro est un outil destiné aux développeurs et contenant de puissants outils pour construire et visualiser des feuilles de style CSS dans le respect des normes standards. ModeliXe : ModeliXe est un moteur de template simple, souple et innovant. Un moteur de template est un programme qui va permettre de séparer la partie contenu/données de la partie template (modèle) d’une page Web permettant la modification des données sans modifier le rendu HTML et améliorant la maintenance du site. Scripts PHP Modèle HTML Moteur de Termplate Rendu HTML Figure 2. Principe de fonctionnement d’un moteur de template Cédric FERRETTI – Rapport de Stage – 2011/2012 9 La partie « modèle » est un fichier .mxt qui comporte du HTML ainsi que des balises XML permettant de définir les emplacements dans le modèle de blocs, textes, images, ou attributs. Il existe plusieurs types de balises : Balises d’éléments : représentent l'ensemble des éléments HTML susceptibles d'être gérés par les fonctions de base de ModeliXe. Balises de blocs : un bloc est une entité HTML intégrée dans un document, pouvant contenir tout ou partie d'un template. « Balises » d’attributs : permet de gérer dynamiquement n'importe quel attribut HTML. La partie « contenu » se compose d’un fichier PHP où on effectue les traitements de données pour ensuite, grâce à une classe ModeliXe, les associer aux balises du modèle. Mootools : MooTools est un framework JavaScript compact, modulaire et orienté objet. MooTools offre un ensemble de classes et de fonctions compatibles avec la plupart des navigateurs Web ce qui permet un développement plus simple et logique d’applications Internet. Il met à notre disposition de nombreuses fonctionnalités telles que des classes dédiées aux requêtes Ajax, aux effets graphiques, ainsi que la possibilité de créer ses propres classes. Cédric FERRETTI – Rapport de Stage – 2011/2012 10 MooTools bénéficie d'une communauté active qui a développé de nombreux plugins et qui assure le support de cette librairie. E-TourManager : Le CMS dédié d’administration conçu de par site Web l’entreprise permettant est la un système modification dynamique du contenu site. Il propose entre autres les fonctionnalités suivantes : Création/Modification/Suppression de blocs. Création/Modification/Suppression de contenu. Publication d’articles. Gestion des pages du site. Système de newsletter. Plupload : Plupload et un outil permettant le téléchargement montant (upload) de fichiers sur un serveur PHP tous en évitant les problèmes de taille maximale des fichiers téléchargés sur les serveurs en découpant le fichier en plusieurs fichiers lors du téléchargement. Il propose plusieurs moteurs d’exécution (Flash, HTML4, HTML5, Gears, …). Lasso.Crop : Extension Mootools qui ajoute des classes utiles pour le découpage d’images. Cédric FERRETTI – Rapport de Stage – 2011/2012 11 2.2. Etude de l’existant L’entreprise CD Media a mis à ma disposition des sites basés sur le CMS E-TourManager afin que je puisse comprendre l’organisation des fichiers d’un site développé avec leur CMS, ainsi que le fonctionnement de ce dernier. Chaque site de l’entreprise possède une organisation de base similaire : Un dossier « admin » où se trouvent tous les scripts et pages du CMS. Un dossier « inc » où se trouvent : Les scripts communs à tout le site (base de données, …) Un sous dossier « template » dans lequel on trouve les modèles de template .mxt. Un dossier images où les images et vidéos uploadées seront ajoutées. Un dossier « css » qui comme son nom l’indique possède les feuilles de style du site. Un dossier « modules » où les modules utilisés par le CMS sont définis. Un dossier « scripts » dans lequel on retrouve les scripts JavaScripts. Et d’autres scripts PHP commun à tous les sites dont les principaux sont: « page.php3 » qui se charge de structurer les pages telles que définies dans le CMS. « content.inc.php3 » qui permet de récupérer et d’ajouter le contenu déjà prédéfinis dans la page. « menu.inc.php3 » qui s’occupe de créer les menus et sous menus s’ils existent et de les ajouter à la page. Cédric FERRETTI – Rapport de Stage – 2011/2012 12 2.3. Formation Durant les trois premières semaines de mon stage et en attendant la charte graphique du nouveau site de CD Media je me suis formé sur les principaux outils et langages utilisés par l’entreprise. J’ai d’abord commencé par l’apprentissage de ModeliXe pour ensuite me familiariser avec les requêtes Ajax et les différents effets graphiques proposés par Mootools. Au cours de la troisième semaine, je me suis formé sur E-TourManager, le CMS de l’entreprise, partie importante pour le développement du site web. Cette formation c’est basée sur une documentation des outils et des langages, ainsi que de sites Web crées par CD Media. 2.4. Développement du projet A partir de la 3e semaine j’ai commencé à développer une ébauche du futur site CD Media. Corinne m’ayant fourni une arborescence du site. J’ai donc pu définir les blocs et les modules que j’aurai à intégrer dans le site. METIER SOLUTIONS REFERENCES CONSEIL & AMO FORMATIONS niveau 1 (textes/photos/liens) niveau 1 (textes/photos/liens) niveau 1 (textes/photos/liens) niveau 1 (textes/photos/liens) niveau 1 (textes/photos/liens) niveau 2 (textes/photos/liens) niveau 2 (textes/photos/liens) niveau 2 (textes/photos/liens) niveau 2 (textes/photos/liens) niveau 2 (textes/photos/liens) ACTUALITES AGENDA CONTACT NOUS TROUVER home page PARTAGER liens réseaux sociaux ESPACE CLIENTS rubrique éditoriale Formulaires web services (modules) Figure 3. Arborescence initiale du site CD Media Cédric FERRETTI – Rapport de Stage – 2011/2012 13 2.4.1. La page d’accueil 2.4.1.1. Version 1 La première version de la charte graphique de la page d’accueil est arrivée le 18 mai, j’ai donc pu commencer l’intégration et le développement du site. Figure 4. Maquette de la page d’accueil (version 1) Cette version devait contenir: - Un bloc dédié aux actualités de l’entreprise, - un bloc pour les évènements, - un ou plusieurs blocs pour les articles - un menu, - des liens vers les réseaux sociaux de l’entreprise. Tous les blocs devaient être flottants et déplaçables. Grâce à MooTools et à ses classes destinées au « drag & drop » j’ai pu développer, rapidement, les blocs flottants du site. Le résultat final étant trop encombré l’équipe décida de demander au designer une nouvelle maquette pour la page d’accueil avec un système de blocs d’images fixés. Cédric FERRETTI – Rapport de Stage – 2011/2012 14 2.4.1.2. Version 2 La seconde version de la charte graphique de la page d’accueil est arrivée le 23 mai. Figure 5. Maquette de la page d’accueil (version 2) On remarque que la page d’accueil se divise en 3 parties : -l’entête: l’entête de la page où l’on retrouve le logo de CD Media ainsi que les liens sociaux. -les articles : bloc central de la page où l’on retrouve les articles, les actualités mis en avant par l’entreprise. - le menu : menu fixé en bas de page permettant de naviguer entre les différentes pages du site. Le système de blocs : Le système de blocs est géré en JavaScript, il va permettre le positionnement des blocs choisis par l’entreprise via le CMS. Cédric FERRETTI – Rapport de Stage – 2011/2012 15 Les contraintes liées à ce système sont : Le système de blocs de la page d’accueil doit positionner aléatoirement les blocs images afin d’ajouter un dynamisme à la page. Les blocs doivent être alignés. Il existe trois types de blocs : les blocs images, les blocs textes et le bloc slogan. Les blocs images peuvent avoir différentes tailles (1x1, 2x2, 2x1, …) et on doit pouvoir ajouter de nouveaux types de blocs au système facilement. La taille des blocs images est définie via le CMS. Les blocs de textes et slogan ne doivent pas être adjacents horizontalement et verticalement. J’ai donc développé une classe Mootools nommée MooBlocs. Cette classe permet de positionner aléatoirement des blocs passés en paramètre dans un conteneur et de les cacher pour ensuite les afficher avec un effet d’apparition en cascade. J’ai voulu que l’utilisation de la classe soit la plus simple possible, la classe positionne donc les blocs au moment de l’instanciation de celle-ci. J’ai aussi voulue rendre la classe générique au maximum, ainsi l’utilisateur peut, directement lors de l’instanciation de la classe, définir de nouveaux type de blocs ou modifier ceux existants, modifier la taille d’un bloc simple et celle du conteneur ou encore modifier la vitesse d’animation des éléments. Cédric FERRETTI – Rapport de Stage – 2011/2012 16 Chaque type de blocs est défini dans la classe de la manière suivante : « nomDuType »: {largeur : valeur, hauteur : valeur, className : ’valeur’}, Où largeur et hauteur sont des entiers correspondant aux dimensions du blocs, et className une chaine de caractères correspondant au style CSS du bloc est définie dans le CMS. Exemple de définition d’un bloc 2x2: bloc2: {largeur : 2, hauteur : 2, className : '22'}, L’instanciation de la classe se fait de la manière suivante : var blocs = new MooBlocs(container, blocs[, options]) ; - container représente l’élément HTML dans lequel se trouvent les blocs. - blocs est, comme son nom l’indique, un tableau contant les éléments blocs de la page HTML. - options est une variable optionnelle qui permet de modifier les options de base définies dans la classe et permet d’ajouter de nouveaux type de blocs. Cédric FERRETTI – Rapport de Stage – 2011/2012 17 L’affichage des images se fait de la manière suivante: blocs.display(0) ; Processus de placement des blocs : Afin de placer les blocs dans le container la classe suit le processus suivant: - Récupération de tous les blocs. - Vérification de la surface du conteneur par rapport à celle de tous les blocs afin de savoir s’il n’y a pas plus de bloc que de place. - Tri aléatoire des blocs. - Vérification de la position des blocs, afin de savoir si les blocs peuvent être placés malgré les contraintes imposées. - Rendu des blocs invisibles. Le menu : Le menu de la page d’accueil est animé, en effet lors d’un roll over sur un des menus principale, la liste de ses sous menu apparaît avec un effet de fondu. Ce menu a pu être développé grâce aux classes Mootools, Fx.Morph et Fx.Tween, classes qui proposent des fonctions d’animation extrêmement puissantes. Cédric FERRETTI – Rapport de Stage – 2011/2012 18 2.4.2. Niveau 2 J’ai commencé le niveau 2 une fois la charte graphique de celui-ci arrivé c’est-à-dire le 25 mai. Figure 6. Maquette du niveau 2 du site CD Media Cette page se compose de plusieurs blocs indépendants: - Un bloc d’entête (le même que celui en page d’accueil), - un bloc de menu, - un bloc de sous rubrique, - un bloc d’articles avec : o un bloc d’article « En savoir plus » o un bloc d’article « Voir aussi » o un bloc d’article contenant une vidéo ou une image. - un bloc de pied de page avec le copyright. Chaque article, menu et lien sont créés et ajoutés à la page via le CMS. Cédric FERRETTI – Rapport de Stage – 2011/2012 19 2.4.3. Niveau 3 Le troisième niveau du site est arrivé, en retard, la dernière semaine de stage. Figure 7. Maquette du niveau 3 du site CD Media Cette page se compose de plusieurs blocs indépendants: - Un bloc d’entête (le même que celui en page d’accueil), - un bloc de menu, - un bloc de sous rubrique, - un bloc d’articles avec : o un bloc d’articles de zoom, o un bloc d’un article détaillé, - un bloc de pied de page avec le copyright. Chaque article, menu et lien sont créés et ajoutés à la page via le CMS. Les articles de zoom sont affichés aléatoirement. Cédric FERRETTI – Rapport de Stage – 2011/2012 20 2.4.4. Animation du fond CD Média voulait animer le fond de leur site, pour apporter un dynamisme aux pages et pour casser le côté sombre de l’entête des niveaux 2 et 3. Pour animer le fond j’ai d’abord créé des images PNG comportant le même type d’éléments que le fond initial. J’ai ensuite créé une classe Mootools, AnimootedImage, cette classe est instanciée comme suit : var animation = new AnimootedImage(element[, options]); - element représente l’image à animer, - options est une variable optionnelle qui permet de modifier des valeurs prédéfinies de la classe. L’image est animée grâce à la méthode start : animation.start(); Processus de l’animation : Lors de l’appel de la méthode start, celle-ci appel des méthodes récursives, une méthode pour la rotation et une méthode pour le déplacement. La méthode de déplacement déplace l’image vers une position aléatoire avec une vitesse d’animation définis dans la classe et pouvant être modifiée par l’utilisateur. La méthode de rotation fait tourner l’image à vitesse constante, vitesse définis dans la classe et pouvant être modifiée lors de l’instanciation de celle-ci. Cédric FERRETTI – Rapport de Stage – 2011/2012 21 2.5. Amélioration du Back-Office Au cours de mon stage j’ai dû développer trois systèmes afin d’améliorer et de faciliter l’administration du futur site. La partie « media » du CMS dédié a donc été modifiée afin d’ajouter : - Un système d’upload de gros fichiers sur le serveur. - Un système d’ajout de vidéos. - Un système de découpage d’image. 2.5.1. Le système d’upload de gros fichiers sur le serveur CD Media souhaitait pouvoir ajouter des fichiers de taille importante (images, vidéos) directement via le CMS et sans passer par un logiciel FTP comme FileZilla. J’ai donc mis en place, grâce à l’outil Plupload, un système d’upload de fichiers sur le CMS ayant pour objectif de passer outre la limitation de taille maximal des fichiers transitant sur le serveur (3Mo par fichiers) tout en vérifiant que les fichiers transitant soient dans un format validé (images, vidéos, PDF, …). Les fichiers uploadés sont stockés lors de l’upload dans un dossier media avant d’être redirigé dans un répertoire de stockage correspondant au type de fichier défini dans ETourManager. Cédric FERRETTI – Rapport de Stage – 2011/2012 22 Figure 8. Aperçu de la création d’un type de média Figure 9. Aperçu du système d’upload Cédric FERRETTI – Rapport de Stage – 2011/2012 23 2.5.2. Le système d’ajout de vidéos Le site de CD Media allant contenir des vidéos, on m’a demandé de développer un système de téléchargement montant de vidéos directement via le CMS. Ayant d’abord modifié le module d’upload de gros fichiers pour autoriser les fichiers au format vidéo (MP4, AVI, MOV, MKV, M4V, 3GP, WMV). J’ai ensuite cherché un lecteur vidéo compatible et personnalisable que l’on pourrait intégrer sur les futurs sites. Après de nombreuses recherches, il en est ressorti que, les lecteurs vidéos les plus populaires, rapide et simple d’utilisation n’étaient compatibles, sur tous les navigateurs, qu’avec des vidéos au format FLV. Un nouveau besoin se posait: - Comment convertir un fichier vidéo en vidéo FLV via un script PHP ? Une solution trouvée était FFmpeg-PHP une extension proposant une classe PHP basée sur FFmpeg un logiciel d’édition et de traitement vidéo. Malheureusement, et après de nombreux essais, j’ai compris que la version la plus récente de l’extension n’était pas compatible avec les versions de PHP supérieures à la 5.3 et que le serveur de CD Media tourné sur une version 5.3.2. Voulant alors ajouter les vidéos dans n’importe quels formats vidéos sur le site, j’ai finalement trouvé UniPlayer un plugin JavaScript regroupant 7 plugins vidéos et donc compatibles avec la plupart des formats. Après quelques tests il en est ressorti que le logiciel était lourd, lent et pas assez développé pour être intégré dans un site Web (changement de proportion en fonction du lecteur et obligation d’installer des logiciels comme QuickPlayer). Cédric FERRETTI – Rapport de Stage – 2011/2012 24 Figure 10. Exemple d’affichage du lecteur vidéo UniPlayer Après avoir demandé à l’administrateur serveur d’installer FFmpeg dans sa version logicielle directement sur le serveur, j’ai développé un script PHP de conversion vidéo qui sera appelé une fois l’upload terminé et exécuté en tâche de fond sur le serveur. Ce script permet, en plus de la conversion vidéo en FLV, la récupération d’un « thumbnail » afin d’avoir un aperçu de la vidéo dans le CMS. J’ai finalement choisit « FlowPlayer » comme lecteur Flash pour le futur site Web car il est entièrement personnalisable, léger et simple d’utilisation. Figure 11. Résultat d’un article avec vidéo sur le site Cédric FERRETTI – Rapport de Stage – 2011/2012 25 2.5.3. Le système de découpe d’image Afin d’ajouter des blocs d’images sur la page d’accueil sans que celle-ci ne soit déformée lors du redimensionnement j’ai programmée un système de découpe d’images que j’ai intégré sur E-TourManager, afin que l’administrateur du site puissent découper les images dans les proportions de la futur taille du bloc sans passer par un logiciel d’édition d’image comme Photoshop ou Microsoft Paint. J’ai pour cela utilisé une extension MooTools intitulé Lasso.Crop et proposant un système de prévisualisation d’un redimensionnement d’images. Une fois cette extension intégrée au CMS il restait à développer un système de traitement d’images en PHP. Ce système se décompose en 3 scripts PHP chacun appelé via un script JavaScript en AJAX: - GoToCrop.php : Le premier script est appelé lors de la demande, par l’utilisateur, du système de découpe. Il vérifie que l’image est dans un format compatible et existe bien sur le serveur, il retourne les données nécessaires à l’affichage de l’image par le navigateur. - ResizeImage.php : Le second script est le script de traitement, il effectue une sauvegarde de l’image avant de la modifier. Il utilise pour cela l’extension PHP GD2 destinée au traitement d’image et utilise les coordonnées du rectangle de sélection de l’extension Lasso.Crop envoyées par JavaScript. - Le dernier script est le script de retour en arrière il retourne l’image précédemment sauvegardée. Cédric FERRETTI – Rapport de Stage – 2011/2012 26 Le système de découpage final permet : - Une visualisation en temps réel du résultat. - La possibilité de revenir en arrière. - La possibilité de définir manuellement une taille de recadrage. - La possibilité de conserver les proportions du recadrage. - La conservation de la transparence pour les images PNG. - La modification d’image jusqu’à 6Mo. Figure 12. Aperçu du système de recadrage – avant modification Cédric FERRETTI – Rapport de Stage – 2011/2012 27 Figure 13. Aperçu du système de recadrage – après modification Cédric FERRETTI – Rapport de Stage – 2011/2012 28 2.5.4. Autres Développements J’ai aussi corrigé quelques « bugs » du CMS : - Correction du redimensionnement des photos au format PNG. - Déplacement du style CSS appliqué à une photo vers le type de photo. 2.6. Phase de Test et correction de bugs La phase de test s’est déroulée tout au long du projet. Elle a permis de corriger les bugs d’affichages des éléments sous les différents navigateurs Web. De trouver et corriger des « bugs » sur les différents systèmes du CMS : - Problème de compatibilité entre le système d’upload de fichiers lourds et le système d’image (à cause de la mémoire allouée par le script PHP lors du découpage). - Problème de ratio de redimensionnement. Et d’améliorer l’interface pour qu’elle corresponde le plus possible aux attentes de l’entreprise. Cédric FERRETTI – Rapport de Stage – 2011/2012 29 2.7. Quantification du projet En fin de stage j’ai produit : - Pour le site Web : - 25 fichiers templates : Environ 780 lignes de code, 10% de commentaires. 1 fichier JavaScript : Environ 750 lignes de code, 30% de commentaires. 9 fichiers PHP : Environ 910 lignes de code, 30% de commentaires. 1 fichier CSS : Environ 910 lignes de code, 10% de commentaires. Pour le CMS : 7 fichiers PHP : Environ 930 lignes de code 30% de commentaires. J’ai aussi modifié des fichiers déjà existants afin de corriger des « bugs » et pour ajouter les différents systèmes développé. Cédric FERRETTI – Rapport de Stage – 2011/2012 30 2.8. Planning final Figure 14. Planning final On remarque que la formation à durée plus longtemps, en partie à cause de l’attente de la charte graphique du site. Le développement s’est divisée entre la partie back-office et le site en lui-même. Cédric FERRETTI – Rapport de Stage – 2011/2012 31 3. Conclusion Ce stage fut très enrichissant, il m’a permis d’acquérir de nouvelles connaissances, tant au niveau de la programmation, qu’au niveau du fonctionnement d’une entreprise le tout dans une entreprise très chaleureuse et conviviale. J’ai ainsi pu me familiariser avec de nouveaux outils, comme Mootools et ModeliXe, sans lesquels il m’aurait été impossible de développer, aussi bien le site que sa partie back-office et enrichir les connaissances que je possédais déjà. J’ai pu suivre, dans sa totalité, le processus de création d’un site web et y participer, partant de son idée de création à sa réalisation complète, j’ai appris l’importance de la communication au sein d’une entreprise, communication qui évite que le projet ne parte dans de mauvaise direction et permet d’assurer sa réalisation dans de bonnes conditions. Au final, j’ai donc crée un site fonctionnel dont le contenu est modifiable en ligne via un système d’administration amélioré simplifiant la gestion du site et la publication d’articles. Cédric FERRETTI – Rapport de Stage – 2011/2012 32 4. Glossaire CMS : Content Management System, système de gestion du contenu est une interface d’administration (back-office) permettant de gérer les publications et le contenu d’un site. Back-Office : site web permettant de gérer, d’administrer et d’organiser un système informatique. Template : fichier servant de modèle de présentation de données d’une page Web ou d’un bloc de pages Web. Bug : Un bug est un problème qui peut survenir lors de l’exécution d’un programme ou du système d’exploitation et qui peut avoir pour conséquence, au mieux de quitter l’application, au pire de redémarrer l’ordinateur. Les bugs sont dus à une mauvaise programmation au niveau des applications et entraînent souvent de la part des éditeurs la diffusion de patchs correctifs. Drag and drop : Le glisser-déposer (de l’anglais « drag and drop », aussi appelé cliquerglisser) est dans un environnement graphique, une méthode consistant à déplacer un élément graphique présent sur l’écran d’un ordinateur d’un endroit à un autre, en utilisant un système de pointage. Plugin : Un « plugin » est un programme qui s’ajoute à une application principale, pour lui apporter de nouvelles fonctionnalités, ils sont le plus souvent mis au point par des personnes extérieur au développement de l’application principale. Cédric FERRETTI – Rapport de Stage – 2011/2012 33 Roll Over : Le « roll over », dans le langage Web, est un terme anglais désignant une interactivité lors du passage de la souris au-dessus d’un élément. Thumbnail : Un thumbnail est une image miniature d’un document au format image, vidéo, permettant d’avoir un aperçu du fichier original. 5. Bibliographie 5.1. Sites consultés Mootools : sources, documentation et exemples d’utilisation du plugin, consulté tous au long du stage, disponible sur http://mootools.net/ Manuel PHP : documentation PHP et exemples d’utilisation des méthodes, consulté lors du développement des systèmes du back-office, disponible sur http://php.net/manual/fr/index.php FFmpeg : sources et documentation du logiciel FFmpeg, consulté pour la compression vidéo, disponible surhttp://ffmpeg.org/ Linuxers : tutoriels pour utilisateurs Linux, consulté pour un tutorial bien détaillé de l’utilisation de FFmpeg, disponible sur http://linuxers.org/book/export/html/593 CommentCaMarche : communauté informatique d’assistance, d’entraide et de conseil, consulté tous au long du stage, disponible sur http://www.commentcamarche.net/ Cédric FERRETTI – Rapport de Stage – 2011/2012 34 Plupload : sources et documentation du logiciel plupload , consulté pour le système d’upload du CMS, disponible sur http://www.plupload.com/ FlowPlayer : sources et documentation du plugin Web FlowPlayer, consulté pour la partie vidéo du site Web,disponible sur http://flowplayer.org/ W3School : documentation bien détaillé du CSS et HTML, consulté tous au long du stage, disponible sur http://www.w3schools.com/ 5.2. Œuvres consultées MooTools Essentials – Aaron Newton – Documentation et exemples détaillés sur l’outil Mootools, 276 pages. 6. Annexes Exemple de template Cédric FERRETTI – Rapport de Stage – 2011/2012 35 Exemple de définition d’une classe grâce à MooTools Cédric FERRETTI – Rapport de Stage – 2011/2012 36