6. Exercices

La partie "exercice" est progressive. c'est un fil conducteur qui vous permettra dans un premier temps de réaliser une page html "simple", tout en prenant en main le logiciel d'édition html "DreamWeather". Au fil des exercices, vous allez créer des pages de plus en plus complexes, indépendantes des unes des autres. Au final, l'ensemble de ces pages formera un site "web".

6.1. Créer une page html (page01)

6.1.1. Dossier de travail (racine)

  • Dans la zone personnelle : créer un dossier " stageW-prénom " : c'est le dossier qui contiendra tous les fichiers du site. Créer un sous dossier " images ". Lancer ensuite Dreamweaver2 : ne pas s'inquiéter des multiples fenêtres : >> expliquées au vidéoprojecteur. >>apprendre à sélectionner les fenêtres utiles et les disposer Clic sur le menu Site/ Nouveau site

    Figure 22. Dossier racine du site

    Dossier racine du site

    Donner un nom à ce site ( ce nom est utilisé par DW pour reconnaître votre site) Indiquer le chemin du dossier racine local : pour vous : clic sur le dossier jaune et retrouvez l'emplacement du dossier créé pour ce stage. Cocher la case pour utiliser le cache

6.1.2. Création de la première page

Dans la construction de cette première page, nous allons étudier :

· les propriétés de la page : couleurs de fond - police - couleur des liens - images etc. 
· Le positionnement des objets : insertion calques.
· l'utilisation de la fenêtre " Propriétés "
· La vérification de la page crée dans un navigateur
  1. Commencer par créer une nouvelle page htm en cliquant sur le menu Fichier / nouveau fichier: .

  2. Dans le répertoire local apparaît le fichier "untitled.htm" : renommez -le aussitôt par "page01.htm"

  3. Double clic sur le nom de ce fichier : la fenêtre de votre nouvelle page s'ouvre : Disposez ces 3 fenêtres ainsi :

    Figure 23. Disposition des boîtes de dialogue

    Disposition des boîtes de dialogue
  4. On commence par définir un certain nombre de propriétés en appelant la commande "Propriétés de la page" située le Menu "Modifier"

    Figure 24. Boîte de dialogue "propriétés de la page"

    Boîte de dialogue "propriétés de la page"
  5. Donner un titre à la page

  6. Laisser pour l'instant le champ Image d'arrière plan vide

  7. Choisir une couleur d'arrière plan

  8. Choisir une couleur de texte.

  9. Laisser tout le reste sans modification

  10. Cliquer sur "Appliquer" , puis OK

  11. Enregistrez - là.

6.1.3. Illustration de la 1ère page

Tous les éléments qui entrent dans la composition de cette page sont des "OBJETS" : Un mot, un paragraphe , un calque, une image ; une barre, un tableau; une animation Flash, un contrôle ActiveX, une applette; un script etc. Pour tous ces objets, une 4ème fenêtre au rôle indispensable : la "fenêtre de propriétés", qui donne toutes les propriétés utiles de l'objet sélectionné: format - police - taille - couleur - alignement etc.

Figure 25. Boîte de dialogue "propriétés objet"

Boîte de dialogue "propriétés objet"

Avant de poursuivre, il faut s'assurer que tous les éléments utiles : fichiers textes et images sont bien dans l'arborescence du répertoire du site : copier donc les 3 fichiers images (extension jpg) du dossier "Olympe", depuis la bibliothèque.

  1. On commence par le titre : Saisir le texte "ATHENES 2004 : SERONT-ILS PRÊTS ?" en taille 6, caractères gras

  2. Insérer ensuite 1 calque : Menu Insertion / calque : on peut le déplacer où l'on veut, lui changer sa taille , sa couleur d'arrière plan, en utilisant la fenêtre de propriétés. Dans un calque on peut placer tout ce que l'on veut : texte, image, tableau , etc.

  3. Insérer un texte existant dans un cadre de calque: pour cela, ouvrir le document "esprit olympique.doc" situé dans le dossier "Olympe" de la bibli. Sélectionnez le 1er paragraphe, puis copiez-le , revenez à votre page, placez le curseur à l'intérieur du calque, puis >clic sur Edition / Coller comme texte. Donner ensuite au texte, grâce à la fenêtre de propriétés, une apparence agréable : police, couleurs, paragraphes, couleur arrière plan etc.

  4. Insérer 1ère image dans un calque : Insérer un nouveau calque, puis repérer le fichier "athens2004.jpg" dans la fenêtre de répertoire du site, avec la souris, cliquez sur ce fichier en restant appuyé, puis transportez le fichier jusqu'au calque recevant l'image , lâchez alors la souris. --> travail d'observation sur la fenêtre de propriétés : selon que l'on sélectionne le calque ou l'image, observez les propriétés ( nom de l'image, position etc.) Si l'on veut un encadrement de couleur à l'image : sélectionnez l'image et indiquez en pixel, l'espace souhaité verticalement et horizontalement.Puis sélectionnez le cadre du calque et attribuez lui une couleur d'arrière plan qui tranche avec celle de la page.

    Figure 26. Propriétés d'une image

    Propriétés d'une image
  5. Insertion d'image , à l'intérieur d'un texte : sélectionner le cadre de texte, élargir aux 2/3 de la page puis, insérer l'image "embleme jeux.jpg" juste après le mot natal ( 1er paragraphe) . Sélectionner alors l'image, et observer, dans les propriétés, l'effet d'alignement : par défaut - ligne de base - haut - milieu - droite gauche

  6. Fin des insertions : insérer encore 2 calques, l'un pour la 2e partie du texte, l'autre pour la 3e image "athletesantiques.jpg"

  7. Organisation complète de la page, enregistrement , puis vérification dans le navigateur (touche "F12")

6.2. Construire un tableau (page02)

Objectif : créer une page présentant les jeux antiques à Olympie, en insérant 3 morceaux de texte et 7 images.

  1. Après avoir créé une nouveau fichier , baptisé "page01.htm" , Menu Modifier / Propriétés de la page : choisir une couleur de fond, et une couleur pour le texte.

  2. Insertion tableau : Dans la fenêtre qui s'ouvre, indiquez 5 lignes , 5 colonnes, Remplissage 5 ( marge de part et d'autre du texte dans chaque cellule) et espacement de 2, puis un pourcentage de 100% ( pourcentage d'occupation de la page en largeur)

    Figure 27. Définition d'un tableau

    Définition d'un tableau
  3. Rassembler dans l'arborescence du site, tous les fichiers utiles pour la composition de cette page : textes, images etc. rassemblés dans le dossier bibli jeux antiques

  4. le titre : "Les Jeux olympiques dans l'antiquité" : à saisir dans la 1ère case , utiliser la fenêtre de propriétés pour fusionner les 5 cellules de la 1ère ligne , en les sélectionnant ( viéoprojecteur ), modifier police, taille, couleur, pour le titre.

  5. les morceaux de texte : 3 premiers paragraphes du texte " le calendrier des jeux" : copier et coller chacun d'eux dans une cellule séparée. Ajouter le texte suivant dans une autre cellule : Course à pied - Pugilat - Lutte - Pancrace - Disque - Course de chars - Course de chevaux - Pentathlon - Course armée

  6. Insérer les 7 images , pour chacune, inscrire 5 comme espace horizontal et vertical ( pour éviter de la coller aux bords de la cellule )

  7. du Chaos créer l'harmonie .... tout l'art est de composer avec la taille du texte, les fusions ou divisions de cellules pour créer une page agréable à l'oeil ...

    Figure 28. Tableau finalisé

    Tableau finalisé

6.3. Définir des liens hypertextes (page03)

6.3.1. Liens internes "ancre"

  1. Ouvrir, dans le dossier "Olympe" de la bibliothèque, le fichier "histoirejeux.htm", l'enregistrer aussitôt dans le dossier de travail sous le nom "page03a.htm".

  2. Cette page est très longue ; elle contient un plan . Pour éviter au lecteur d'utiliser sans cesse les ascenseurs ou le défilement de la page de haut en bas, on utilise le système de liens par "ancres nommées" : Ainsi, commençons par installer ces ancres en 8 lieux : au début : devant le titre de la page, et en tête de chacun des 7 chapitres

  3. Pour cela : placer le curseur devant le titre, en haut de page ; puis dans le menu, clic sur Insertion / ancre nommée.indiquer un nom pour cet ancrage, puis recommencer cette opération devant chaque début de chapitre.

    Figure 29. Définition d'une ancre

    Définition d'une ancre
  4. Ensuite, il faut créer la navigation : c'est à dire, créer des liens dans le plan en haut de page, qui envoient vers les ancres, et créer pour chacun des chapitres, un lien de retour vers le plan. Pour ce lien de retour , on pourra utiliser la flèche triangulaire rouge. Pour chaque opération, on utilise l'icône de pointeur dynamique de la fenêtre de propriétés en pointant chaque fois sur l'ancre souhaitée.

  5. Vérifier l'effet en lançant l'aperçu dans le navigateur.

6.3.2. Liens relatifs "interne"

  1. Créer une nouvelle page, l'enregistrer sous "page03.htm"

  2. Dans le menu Modifier / Propriétés de la page, choisir une couleur de fond et une couleur de police ( au passage: on peut agrémenter le fond avec un arrière plan de texture - à choisir dans la bibli : dans le champ [image d'arrière plan], clic sur parcourir, et rechercher dans le dossier bibli : "Arrière plans" ou "outilsweb", par exemple le fichier image : "beigeclair")

  3. Saisir le texte suivant pour le titre : " Une page Web, ça crée des liens ..."; insérer une barre horizontale ( Menu Insertion / Barre horizontale

  4. Pour le corps de texte, saisir au clavier :

    " On appelle "lien" ou lien hypertexte, une zone de la page , sensible au clic ou au passage de souris, et qui permet d'afficher d'autres parties de la page, du site, ou bien des pages extérieures au site. Voici plusieurs exemples : 
    pour un lien interne au dossier (du site que je construis) >>> cliquer ICI " 
  5. D'abord sélectionner le mot "ICI" : pour créer le lien trois méthodes :

    1. - Menu Modifier / Hyperlien / créer le lien : une fenêtre s'ouvre : il suffit de retrouver le fichier cible, puis OK

    2. - on peut utiliser la fenêtre de propriétés de façon dynamique : cliquer sur le pointeur de fichier , situé à droite du champ "Lien" et joindre le fichier cible dans l'explorateur du site. on constate dans les deux cas que le chemin du fichier cible s'est inscrit dans le champ "Lien"

    3. - on peut enfin créer un lien dans les mêmes conditions en cliquant avec le bouton droit, le menu contextuel propose "créer le lien"

      Figure 30. Lier

      Lier
  6. Spécifier la valeur "contenu" dans le champs "cible"

  7. Saisir ensuite au clavier :

    "pour un lien interne à la page : (cas d'une page longue) >>> voir exemple 2 
    pour des liens externes à la page : (vers un autre site) >>> voir exemple 3 
    "pour des liens internes à partir d'images >>> voir exemple 4 
  8. les mots "voir exemple x" serviront comme liens pour les pages 4, 5 et 6 que l'on va construire maintenant.

6.3.3. Liens absolus "externes"

  1. Si l'on souhaite créer une référence vers un site extérieur au dossier, les liens externes se créent de façon tout aussi simple, il suffit d'indiquer dans le champ "lien" de la fenêtre de propriétés, l'adresse complète du site souhaité.

  2. Ouvrir la page "page03b.htm", dans le dossier "modèles", puis enregistrer la page dans votre dossier de travail sous le nom : " page03b.htm"

  3. La page présente des liens vers des sites concernant les jeux olympiques : vous allez y rajouter un lien vers le site officiel des Jeux Olympiques 2004 d'Athènes

  4. Ajouter une ligne explicite , puis créer le lien . L'adresse est : http://www.athens2004.com/athens2004/page/home?lang=fr

    Note

    L'attribut "target" de l'élément <A> permet de diriger un document vers un cadre autre que celui qui contient le lien activé. Sinon, lorsqu'on active un lien, par défaut la nouvelle page s'affiche dans le cadre contenant le lien en question.

    <a href="fichier page html" target="nom du cadre ou la page sera affichée">Lien</a>

6.3.4. Liens sur zone sensible d'une image "mappage"

  1. Créer une nouvelle page, dans le dossier de travail, l'enregistrer sous " page03c.htm" . Choisir les couleurs . L'idée est de construire une page avec des images actuelles et anciennes ( maquettes) du site d'Olympie, dans le Pélopponèse. La page devra se composer de 4 images miniatures, renvoyant à des images agrandies, du site géographique actuel, tel qu'on peut le visiter. et d'une ou deux images du site ancien ( maquettes) . Tous les fichiers images nécessaires sont dans le dossier "images" . ( "olym arrivee min.jpg" etc.) Pour avoir une idée du résultat, voir la page "page06.htm" . Vous pouvez organiser la page selon vos goûts et avec les couleurs et le texte (pas trop long) de votre choix.

  2. Pour installer les images, créez autant de calques que nécessaire et positionnez les sur la page.

  3. Pour les images agrandies, il faudra créer un fichier htm par image agrandie.

  4. Lorsque ce sera fait, il faut créer la navigation : sur la page de départ, sélectionner une miniature et indiquer le fichier cible ( la même image, agrandie). Répéter pour les 4 miniatures

  5. Ensuite, sur les fichiers images agrandies, il faut créer le lien de retour : on peut le faire en sélectionnant l'image elle même.( voir videoprojecteur)

  6. Vérifier chaque fois l'aperçu dans le navigateur. Fin de l'exercice.

  7. Plus difficile : exercice plus délicat : créer des zones sensibles, à l'intérieur d'ue image : pour voir l'effet, ouvrir dans le navigateur, la page "modele06.htm" : cette fois, si vous cliquez sur l'image de maquette de gauche, et plus précisément sur le temple, au centre , une autre page s'ouvre : ceci est possible car sur la 1ère image, on a créé une zone lien : Cliquer sur l'image, pour la sélectionner, et dans la fenêtre de propriétés, cliquer sur le bouton "carte graphique", l'éditeur permet alors de sélectionner avec l'aide d'outils (cercle - rectangle - polygone), une zone, qui sera liée au fichier placé dans le champ "Lien"

    Figure 31. Définition de zones liées sur une image

    Définition de zones liées sur une image

6.3.5. Notion de cibles "target"

L'attribut "target" de l'élément <A> permet d'afficher un document vers un cadre autre que celui qui contenant le lien d'origine. Sinon, lorsqu'on active un lien, la nouvelle page s'affiche par défaut dans le cadre contenant le lien.

<a href="page.html" target="cible">Lien</a>

On compte 4 noms cibles réservés :

  • "_blank" :charge le fichier lié dans une nouvelle fenêtre du navigateur, non nommée.

  • "_parent" : charge le fichier lié dans la fenêtre ou le jeu de cadres parent du cadre contenant le lien. Si le cadre contenant le lien n'est pas incorporé, le fichier lié se charge dans toute la fenêtre du navigateur.

  • "_self" : charge le fichier lié dans le même cadre ou la même fenêtre que le lien. Cette cible est implicite, de sorte qu'il n'est généralement pas nécessaire de la spécifier.

  • "_top" : charge le fichier lié dans toute la fenêtre du navigateur, supprimant ainsi tous les cadres.

6.4. Insérer un son

Il est possible de démarrer la lecture d'un fichier audio lors du chargement d'un document html. Pour cela, on utilise la commande <bgsound>

  1. Créer une nouvelle page nommée "page05.htm"

  2. Insérer le code suivant dans la source html de votre page

<BGSOUND SRC="data/Lettre pour Elise de Beethoven.rmi" LOOP="1">

6.5. insérer un script (appliquette java)

6.5.1. Définition

Une appliquette est une petite application indépendante du matériel et du logiciel utilisés, qui est téléchargée depuis un serveur et qui est exécutée localement au sein d'un logiciel de navigation. Note : les appliquettes sont surtout employées dans le langage de programmation Java. c'est ce qu'on appele communément un "script".

6.5.2. Insertion

  1. Créer une nouvelle page nommée "page06.htm".

  2. Copier le répertoire "script" situé dans le repertoire modèle et coller le dans votre répertoire.

  3. Commander l'insertion d'une appliquette depuis la boîte de dialogue "objet" bouton "aplliquette".

    Figure 32. Insertion d'une appliquette

    Insertion d'une appliquette
  4. Spécifier l'emplacement de l'appliquette ainsi que sa taille à l'aide indications ci-dessous.

    1 - Insérer le script "lake.class" situé dans le repertoire script
    2 - Indiquer une taille de 337*400 pixels
    3 - Passons au paramètrage du script

    Figure 33. Paramètrage de l'appliquette

    Paramètrage de l'appliquette

6.5.3. Paramètrage

Définir le paramètre "image" en lui donnant pour valeur "plongeur.jpg"

Figure 34. Paramètrage du script

Paramètrage du script

Note

Les paramètres sont spécifiques à un script donné. Ces indications sont fournies par l'auteur du script lors de son téléchargement.

6.6. Insérer une barre de navigation "menu"

6.6.1. Menu déroulant linéaire (sans "target")

Ce code affiche un menu linéaire sans gestion de l'attribut "target". Les liens seront affichés dans le cadre d'origine.

<form NAME="menu">
<div align="center"><center>
      <p align="left"> 
        <select NAME="popup"
onChange="change_site();" style="font-family: Verdana; font-size: 10pt" size="1">
          <option selected>Faites votre choix</option>
          <option value="page01.htm">Page 1</option>
          <option value="page02.htm">Page 2</option>
          <option value="page03.htm">Page 3</option>
          <option value="page04.htm">Page 4</option>
        </select>
      </p>
</center></div>
</form>
<script>
function change_site() {
var site = document.menu.popup.selectedIndex;
{
window.location.href =
document.menu.popup.options[site].value;
}
}
</script>

6.6.2. Menu déroulant linéaire ("target" unique)

Ce code affiche un menu linéaire en permettant l'attribution d'une cible unique pour l'ensemble des liens.

  1. Copier le code suivant et insérer le au code html de votre page.

  2. Spécifier la cible en début de code => var target = "blank"

  3. Revenir au mode graphique de DW et sélectionner la forme intégrée au script.

  4. Afficher les valeurs de la liste depuis le gestionnaire d'objet.

  5. Définir vos liens.

<script LANGUAGE="JavaScript">
var target = "blank" //Destination des URL: "blank", "top" "self" ou "nom du cadre" 
function envoie(frm){
URL = frm.mgros.options[frm.mgros.selectedIndex].value
if (frm.mgros.selectedIndex != 0){
if (target == "blank") mywindow = window.open(''+URL+'');
else if (target == "self") document.location = URL;
else parent.frames[target].location = URL; 
}}
//-->
</script>
<form name="Form_1">
  <select NAME="mgros"
onChange="envoie(this.form)"
style="font-family: Verdana; font-size: 10pt" size="1">
    <option selected>Faites votre choix</option>
    <option value="page01.htm">-&nbsp;&nbsp;Page 1</option>
    <option value="page02.htm">-&nbsp;&nbsp;Page 2</option>
    <option value="page03.htm">-&nbsp;&nbsp;Page 3</option>
    <option value="page04.htm">-&nbsp;&nbsp;Page 4</option>
  </select>
</form>

6.6.3. Menu déroulant hiérarchisé (multi "target")

Ce script génère un menu hiérarchique et permet l'attribution d'une cible pour chaque lien.

  1. Récupérer l'appliquette SlickTree.class et déposer là dans le répertoire ou vous allez créer votre menu.

  2. Copier le code de l'appliquette suivante et insérer le au code html de votre page

    <applet code="SlickTree.class" codebase="./" align="baseline" width="140" height="160">
            <param name="AppletHomePage" value="http://go.to/javabase">
            <param name="submit23" value="Test Applet">
            <param name="bgColor" value="FFFFFF">
            <param name="textColor" value="000000">
            <param name="textFont" value="Times;r;12">
            <param name="optionColor" value="FFFFFF">
            <param name="showOptionEffect" value="shrink">
            <param name="optionDraw" value="fill">
            <param name="mouseTextColor" value="FFFFFF">
            <param name="mouseTextFont" value="Times;bi;12">
            <param name="mouseOptionColor" value="000000">
            <param name="mouseOverEffect" value="left">
            <param name="mouseDraw" value="fill">
            <param name="submit232" value="Test Applet">
            <param name="delayTime" value="20">
            <param name="visibilityStep" value="2">
            <param name="mouseOverStep" value="4">
            <param name="showDelay" value="10">
            <param name="submit2322" value="Test Applet">
            <param name="spacing" value="20">
            <param name="gap" value="1">
            <param name="rounding" value="5">
            <param name="showDepth" value="1">
            <param name="submit22" value="Test Applet">
            <param name="menu" 
            value="{Item1} { page1,page01.htm,self} 
                   {Item2} { page2,page02.htm,self} { page3,page03.htm,self} 
                   {Item3} { page4,page04.htm,self}">
            <param name="submit2" value="Test Applet">
          </applet></td>
  3. Modifier au besoin de la taille de l'appliquette (en début de code)

  4. Définissez vos items et liens en fin de code de la manière suivante :

    {Item1} { page1,page01.htm,self} => 1er niveau contenant 1 lien qui sera affiché dans la cadre d'origine
    {Item2} { page2,page02.htm,blank} { page3,page03.htm,blank => 2ème niveau contenant 2 liens qui seront affichés dans une nouvelle fenêtre
    {Item3} { page4,page04.htm,top} 3ème niveau contenant 1 lien qui sera affiché en suppriman tous les cadres

6.7. Utiliser les "cadres"

6.7.1. Définition

Les cadres (ou "frames") permettent de diviser l'écran du navigateur en plusieurs zones. Chaque zone peut contenir une page html.

6.7.2. construction

Nous allons réaliser une page contenant 2 zones verticales. Chaque zone sera définie par un cadre. La zone de gauche sera destinée à l'affichage d'un menu, la zone de droite à l'affichage d'un contenu. La définition de ces cadres sera contenu dans le fichier "index.htm". Le cadre de gauche sera nommé "menu" et affichera la page "menu.htm". Le cadre de droite sera nommé "contenu" et affichera la page "page01.htm"

Figure 35. 

  1. Créer une nouvelle page nommée index.htm

  2. Dans le menu < Modifier >, sélectionner < Jeu de cadres > et commander "fractionner le cadre à gauche"

  3. Afficher les propriétés du cadre de gauche en cliquant à l'intérieur de celui-ci tout en maintenant la touche "alt" enfoncée

  4. Paramètrer le de manière suivante ((Nom="menu"), affichage="menu.htm"):

    Figure 36. 

  5. Répeter l'opération pour le cadre de droite (Nom="contenu", affichage="page01.htm")

    Note

    Pour définir la dimension d'un cadre en Pixel ou pourcentage, il faut éditer le code html de la page index.htm. Dans l'exemple ci dessous, je fixe une dimension : 150 pixels de large pour la première colonne (cadre "menu") L'étoile suivant la valeur 150 (150,*) indique que la deuxième colonne (cadre "contenu") utilisera tout l'espace restant.

    <frameset cols="150,*" rows="*"> 
      <frame src="menu.htm" name="menu" scrolling="AUTO" noresize>
      <frame src="page01.htm" name="contenu">
    </frameset>

6.8. Définir un style "CSS" (feuilles de style)

6.8.1. Définition

Une feuille de style définie la mise en forme des pages : la couleur de fond, les polices de caractère, leurs couleurs, etc. Celle-ci est liée à chaque page html. Ainsi, lorsqu'on modifie un élément de la feuille de style, cela se répercute immédiatement sur toutes les pages associées à cette feuille.

6.8.2. construction

Une règle CSS est composée de 2 parties :

Example 1. Régle CSS

H1 { color : blue } 
  1. un sélecteur (ici H1) et une déclaration (color:blue)

  2. Une déclaration à elle-même deux parties : une propriété (color) et une valeur (blue).

    Example 2. Exemple de feuille de style

    body { background-color:white; font-family: Arial, Helvetica, sans-serif; font-size: 10pt; font-weight: normal; color: #000000}
    p { font-family: Arial, Helvetica, sans-serif; font-size: 10pt; font-weight: normal; color: #000000}
    h1 { font-family: "Comic Sans MS"; font-size: 18px; color: #336699}
    h2 { font-family: Arial, Helvetica, sans-serif; font-size: 12pt; font-weight: normal; color: #FFFFFF; background-color: #336699} 
    h3 { font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; color: #333399}
    .tab1 { font-family: Arial, Helvetica, sans-serif; font-size: 12px; color: #FFFFFF; background-color: #99CCFF; font-style: normal; font-weight: bold}
    .exemple { font-family: "Courier New", Courier, mono; font-size: 12px; background-color: #CCCCCC; left: 150px; clip: rect( ); border-style: none}

6.8.3. Insertion

Il y a deux méthodes principales pour associer une feuille de style à une page. La première consiste à placer la feuille de style directement dans l'entête de document. La seconde consiste à placer la feuille de style dans un fichier séparé, et faire référence à son emplacement dans l'entête du document. Cette dernière technique permet de réutiliser la même feuille de style dans plusieurs documents (Modification se répercutant immédiatement sur l'ensemble les pages associée à cette feuille = gestion simplifiée)

Example 3. Définition d'un style directement dans l''en-tête du document

<HEAD>
<TITLE>...</TITLE>
<STYLE type="text/css">
H1 { color : blue }
</STYLE>
</HEAD>

Example 4. Feuille de style liée à un fichier externe

<HEAD>
<TITLE>...</TITLE>
<LINK rel=STYLESHEET href="styles.css" type="text/css">
</HEAD>
  1. Créer une page nouvelle page nommée "page09.htm".

  2. Créer 6 titres de différents niveaux : de h1 => h6.

  3. Insérer une liste simple et une liste numérotée.

  4. Créer un paragraphe.

  5. Copier le repertoire "style" situé dans le repertoire modele et collé le dans votre repertoire

  6. Sélectionner la boîte de dialogue style et cliquer sur "éditer"

    Figure 37. boîte de dialogue style

    boîte de dialogue style
  7. Choisir "lien"

    Figure 38. Edition

    Edition
  8. Sélectionner la feuille de style "/style/exemple.css" en cliquant sur "parcourir"

    Figure 39. Lier la feuille de style

    Lier la feuille de style

"Exemple.css"

body {
    background: url(beigeclair.jpg)
}

h1, h2, h3, h4, h5, h6 {
    color: #000000;
    font-family: arial;
}

p {font-size : 12pt;
    color:#000000;
    background: #FFFFFF;
    border: 1px solid gray;
    padding: 2px;}

a:link, a:visited {color: #0000FF}, a:active {color: #0000FF}

ul {font-size : 10pt ; color:#000000;
    background: #FFFFFF;
    border: 2px solid #000000;
    list-style-image:url("spirbleu.gif");
    list-style-position:outside;
    padding: 18px;}

ol {font-size : 10pt; color:#000000;
    background: #FFFFFF;
    border: 2px solid #000000;
    list-style-image:url("puce2.gif");
    list-style-position:outside;
    padding: 20px;}

6.9. Formulaires & questionnaires

La définission des différents éléments d'un formulaire se fait en utilisant l'élément <FORM>.

6.9.1. Insertion d'un formulaire

l'exercice suivant à pour objectif de construire le formulaire ou questionnaire suivant : formulaire modèle

Garder la fenêtre de cette exemple ouverte, elle vous servira à comprendre ce que vous devez faire.

  1. Créer une nouvelle page nommée "page10.htm" puis enregistrez la.

  2. Dans la fenêtre objet, sélectionner l'onglet formulaire et commander l'insertion d'un formulaire.

    Figure 40. Insertion d'un formulaire

    Insertion d'un formulaire

    Un rectangle en pointillé rouge délimitant la zone du formulaire apparaît. c'est dans ce dernier que nous allons insérer des objets (champs de texte, boutons ...)

  3. Il faut ensuite définir les propriétés de ce formulaire. Pour cela, sélectionner le rectangle rouge et servez vous de l'inspecteur des propriétés pour régler les paramètres comme indiqué ci dessous :

    1 - la méthode = post
    2 - Le fichier de destination = laisser ce champ vide pour l'instant
    3 - Le nom du formulaire = jo

    Figure 41. méthode "post"

    méthode "post"

    Note

    Dans cet exemple, nous allons "poster" les données du formulaire à un fichier nommé "mail.php. la construction de fichier sera étudié dans la section traitement du formulaire

6.9.2. Insertion d'objet dans le formulaire

Les éléments de formulaires sont répartis en 3 classes :

- Input = Champs de saisie de texte et différents types de boutons 
- Select = Listes (menus déroulants et ascenseurs)
- Textarea = Zone de saisie de texte libre  
  1. Placer vous à l'intérieur du rectangle rouge et insérer un premier champ de texte à l'aide de la boîte objet.

  2. Sélectionner cet objet et paramètrer le de la manière suivante :

    1 - Champ de texte = Nom 
    2 - Valeur initiale = Nom
    3 - Largeur de caractère = 30
    4 - Nbre caract. max. = 30
    5 - Type = Ligne simple 

    Figure 42. Paramètre du champ de texte

    Paramètre du champ de texte
  3. En regard du champ de texte créé, Inscriver "Nom" pour indentifier le champ (côté utilisateur)

  4. De la même manière créer 3 autres champs : Prenom, Discipline, Email en sautant une ligne entre chaque champ (n'oubliez pas de les paramètrer correctement)

  5. Insérer un bouton radio et paramètrez le comme cela :

    1 - Bouton radio = Frequence
    2 - Valeur initiale = 1
    3 - Etat initial = désactivé

    Figure 43. Paramètre du bouton radio

    Paramètre du bouton radio
  6. En regard de ce bouton radio, Inscriver "toutes les années" pour indentifier le champ (côté utilisateur)

  7. De manière identique insérer 2 autres boutons radio nommés "Fréquence" en changeant simplement la valeur de ceux-ci

    - Pour le bouton  "Tous les 2 ans" donner la valeur "2" au bouton
    - Pour le bouton  "Tous les 4 ans" donner la valeur "4" au bouton

    Note

    Le nom des boutons ne change pas puisqu'ils représentent un choix exclusif, seul la valeur du bouton diffère.

  8. Insérer une case à cocher et paramètrez la comme suit :

    1 - Case à cocher = Ville_1
    2 - Valeur initiale = Moscou
    3 - Etat initial = Désactivée

    Figure 44. Paramètre du bouton radio

    Paramètre du bouton radio
  9. En regard de cette case à cocher, Inscriver "Moscou" pour indentifier le champ (côté utilisateur)

  10. De manière identique insérer 5 autres cases à cocher nommées :

    Nom = Ville_2 ; valeur = Paris (en regard => Paris)
    Nom = Ville_3 ; valeur = Athènes (en regard => Athènes)
    Nom = Pays_1 ; valeur = Grèce (en regard => Grèce)
    Nom = Pays_2 ; valeur = Grèce (en regard => Italie)
    Nom = Pays_3 ; valeur = Grèce (en regard => France)

    Note

    A l'inverse du bouton radio, chaque case à cocher doit être identifiée de manière unique étant donné que les choix peuvent être multiples.

  11. Insérer un champ de texte multiligne nommé "Resume" avec pour valeur initiale "Insérer votre résumé ici". Spécifier une largeur de caractère égale à 50 et un nombre de ligne égal à 5. Pour spécifier un nombre de caractères maximum, éditer le code html de la page et insérer l'attribut "maxlength" à la balise "textarea" comme indiqué ci-dessous (600 caractères maximum)

    <textarea name="Resume" rows="5" cols="50" wrap="PHYSICAL" maxlength="600">
  12. Soigner la mise en forme en vous aidant du formulaire modèle

6.10. Utiliser les "comportements"

· On appelle "comportement", la combinaison d'un événement et d'une action.

  • un événement : chargement de page,chargement d'image, clic de souris, double clic, passage de souris sur ou en dehors d'une zone , appui sur une touche de clavier etc.

  • une action : ouvrir une autre fenêtre, masquer une image, faire apparaitre une image, déclencher une animation, lecture d'un son etc.

6.11. Formulaire : envoi par mail [php]

Cette méthode consiste à passer le contenu du formulaire à un fichier Php "mail.php". Ce fichier php sera chargé de récupérer les données du forrmulaire, de les mettre en forme et d'en envoyer le contenu par mail à une adresse spécifique.

  1. Ouvrir la page10.htm (formulaire précedement créé) et renommé la en "page11.htm"

  2. Changer le titre de la page par "traitement d'un formulaire par affichage"

  3. Sélectionner le formulaire (form) et vérifier son paramètrage

    1 - Méthode = POST
    2 - Action = mail.php
    3 - Formulaire = JO

Figure 45. méthode "post" vers le fichier mail.php

méthode "post" vers le fichier mail.php

Note

On indique que l'on passe le contenu du formulaire au fichier "mail.php" par la méthode "post"

Nous allons ensuite créer le fichier "mail.php" :

  1. Créer un nouveau fichier à partir de DreamWeather

  2. Commander l'affichage du code html

  3. Effacer tout le contenu du fichier nouvellement créé

  4. Copier/coller le contenu du code donné ci-dessous

    Note

    Vous pouvez également télécharger ce fichier mail.php (enregistrer la cible sous)

    <?php
    #fevrier 2004
    #laurent.moreau@ac-grenoble.fr
    #"""""""""""""""""""""""""""""""""""""""""""""
    # Infos
    #"""""""""""""""""""""""""""""""""""""""""""""
    $date = date('d/m/y');
    $heure = date( "H\hi" ); 
    $host = "$REMOTE_ADDR";
    #"""""""""""""""""""""""""""""""""""""""""""""
    # Controle des entrées formulaire obligatoires
    #"""""""""""""""""""""""""""""""""""""""""""""
    
    #"""""""""""""""""""""""""""""""""""""""""""""
    # Contenu du message envoyé
    #"""""""""""""""""""""""""""""""""""""""""""""
    $msg = "Bravo !\n\n";
    $msg .= "Si vous recevez ce message, vous maîtrisez l'envoi de formulaires ;o)\n\n";
    $msg .= "Ci-joint le contenu du formulaire que vous avez créé :\n\n";
    $msg .= "===============================\n";
    $msg .= "Nom : $Nom\n";
    $msg .= "Prénom : $Prénom\n";
    $msg .= "Discipline: $Discipline\n";
    $msg .= "Email : $Email\n";
    $msg .= "Fréquence des JO : Tous les $Frequence ans\n";
    $msg .= "Lieu des JO : $Ville_1 $Ville_2 $Ville_3 en $Pays_1 $Pays_2 $Pays_3\n";
    $msg .= "Le résumé de l'origine des JO :\n";
    $msg .= "$Resume\n";
    $msg .= "===============================\n\n";
    $msg .= "Date de la requête : $date à $heure\n";
    $msg .= "Adresse IP : $host\n\n";
    $msg .= "Bonne journée ;o)\n\n";
    $msg .= "--\n";
    $msg .= "Message généré automatiquement depuis le formulaire :\n";
    $msg .= "http://www.ac-grenoble.fr/college/stagew/page10.htm\n";
    $msg .= "Si un problème survenait, contacter :\n";
    $msg .= "laurent.moreau@ac-grenoble.fr\n";
    $msg .= "\n";
    #"""""""""""""""""""""""""""""""""""""""""""""
    # Definition de l'entete du mail
    #"""""""""""""""""""""""""""""""""""""""""""""
    $recipient = $Email;
    $subject = "Exemple formulaire stage : JO";
    $mailheaders  = "From: $Email\n";
    $mailheaders .= "Reply-To: $Email\n\n";
    #"""""""""""""""""""""""""""""""""""""""""""""
    # Envoie du mail
    #"""""""""""""""""""""""""""""""""""""""""""""
    mail($recipient, $subject, $msg, $mailheaders);
    #"""""""""""""""""""""""""""""""""""""""""""""
    # Message de confirmation
    #"""""""""""""""""""""""""""""""""""""""""""""
    echo "<HTML><HEAD>";
    echo "<TITLE>Questionnaire envoyé</TITLE></HEAD><BODY>";
    echo "<br><H2 align=center>Votre courrier est posté</H2><br> ";
    echo "<H2 align=center>Merci</H2>";
    echo "<P align=center>";
    echo "<a href=page10.htm>Retour au formulaire</a></P>";
    echo "</BODY></HTML>";
    ?> 
  5. Remplacer dans la ligne suivante l'adresse email présente par votre adresse email

    $recipient = "laurent@moreau-fr.net";
  6. Enregistrer ce fichier en tant que "mail.php"

    Note

    Choisir l'option "enregistrer-sous" et spécifier comme "type" tous les fichiers. N'oubliez pas de spécifier l'extension .php lors de l'enregistrement

Note

Dans cet exemple, nous ne vérifions pas les entrées du formulaire.

Vous pouvez maintenant vous rendre à la page formulaire mail de l'exercice, renseigner ce dernier et valider. Vous devriez recevoir un mail contenant les valeurs du formulaire.

6.12. Formulaire : affichage à l'écran [php]

Cette méthode consiste à passer le contenu du formulaire à un fichier php "affiche.php". Ce fichier php sera chargé de récupérer les données du forrmulaire, de les mettre en forme et de les afficher à l'écran

  1. Ouvrir la page10.htm (formulaire précedement créé) et renommé la en "page12.htm"

  2. Changer le titre de la page par "traitement d'un formulaire par affichage"

  3. Sélectionner le formulaire (form) et vérifier son paramètrage

    1 - Méthode = POST
    2 - Action = affiche.php
    3 - Formulaire = JO

Il faut ensuite créer le fichier "affiche.php" :

  1. Créer un nouveau fichier à partir de DreamWeather

  2. Commander l'affichage du code html

  3. Effacer tous le contenu du fichier nouvellement créé

  4. Copier/coller le contenu du code donné ci-dessous

    <html>
    <p>Affichage du contenu du formulaire de <b><? echo $Prenom; ?></b></p>
    <p><hr>Nom : <b><? echo $Nom; ?></b><br>
      Prénom : <b><? echo $Prenom; ?></b><br>
      Discipline: <b><? echo $Discipline; ?></b><br>
      Email : <b><? echo $Email; ?></b><br>
      Fréquence des JO : Tous les <b><? echo $Frequence; ?> ans</b><br>
      Ville des JO : <b><? echo $Ville_1,$Ville_2,$Ville_3; ?></b> en <b><? echo $Pays_1,$Pays_2,$Pays_3; ?></b><br>
      Le résumé de l'origine des JO : <b><? echo $Resume; ?></b> </p> <hr><br><br>
     <a href="page12.htm">Retour au formulaire</a>
    </html>
  5. Enregistrer ce fichier en tant que "affiche.php"

    Note

    Choisisser l'option "enregistrer-sous" et spécifier comme "type" tous les fichiers. N'oubliez pas de spécifier l'extension .php lors de l'enregistrement

Note

Dans l'exemple donné ci-dessus, l'affichage est sommaire. Vous pouvez améliorer le résultat en utilisant le modèle suivant

Vous pouvez maintenant vous rendre à la page formulaire_affiche de l'exercice, renseigner ce dernier et valider. Vous devriez voir le contenu du formulaire s'afficher dans une page.

6.13. Formulaire : alimenter une base de données [php]

Cette méthode consiste à passer le contenu du formulaire à un fichier php "base.php". Ce fichier php sera chargé de récupérer les données du forrmulaire et de les insérer dans une base données.

  1. Avant d'alimenter notre base de données, il faut créer une table dans laquelle nous allons enregistrer le contenu du formulaire.

  2. Rendez-vous à l'adresse suivante : http://www.ac-grenoble.fr/sql/massegu

  3. Créer une nouvelle table Nommée "jO" comprenant 12 champs.

    Figure 46. Index de la base

    Index de la base
  4. Définir les champs comme indiqués ci-dessous

    Figure 47. Définition des champs

    Définition des champs

    Note

    Les champs correspondent aux entrées du formulaire

  5. Ouvrir la page10.htm (formulaire précedement créé) et renommé la en "page13.htm"

  6. Changer le titre de la page par "traitement d'un formulaire via une base de données"

  7. Sélectionner le formulaire (form) et vérifier son paramètrage

    1 - Méthode = POST
    2 - Action = base.php
    3 - Formulaire = JO

Il faut ensuite créer le fichier "base.php" :

  1. Créer un nouveau fichier à partir de DreamWeather

  2. Commander l'affichage du code html

  3. Effacer tous le contenu du fichier nouvellement créé

  4. Copier/coller le contenu du code donné ci-dessous

    Note

    Vous pouvez également télécharger ce fichier base.php (enregistrer la cible sous)

    <?PHP
    
    $db = mysql_connect('sql.ac-grenoble.fr', 'massegu', 'xxxxxxxxxx');
    mysql_select_db('massegu',$db);
    
    $sql = "INSERT INTO JO
    VALUES('$Nom','$Prenom','$Email','$Discipline','$Frequence','$Ville_1','$Ville_2','$Ville_3','$Pays_1','$Pays_2','$Pays_3','$Resume')";
    mysql_query($sql)
    or die('Erreur SQL !'.$sql.'
    '.mysql_error());
    
    echo "<HTML><HEAD>";
    echo "<TITLE>données questionnaire enregistrées</TITLE></HEAD><BODY>";
    echo "<br><H2 align=center>Merci, les données du questionnaire sont enregistrées</H2><br> ";
    echo "<P align=center>";
    echo "<a href=base_rq.php>Afficher la table ?</a><br>";
    echo "</BODY></HTML>";
    mysql_close();
    
    ?>
  5. Enregistrer ce fichier en tant que "base.php"

    Note

    Choisisser l'option "enregistrer-sous" et spécifier comme "type" tous les fichiers. N'oubliez pas de spécifier l'extension .php lors de l'enregistrement

  6. Nous allons maintenant créer un fichier "base_rq.php" chargé d'afficher le contenu de la la table "JO"

  7. Créer un nouveau fichier à partir de DreamWeather

  8. Commander l'affichage du code html

  9. Effacer tous le contenu du fichier nouvellement créé

  10. Copier/coller le contenu du code donné ci-dessous

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
    <HTML>
      <HEAD>
        <TITLE>Affichage de la table JO</TITLE>
         <link rel="stylesheet" href="data/html.css"></HEAD>
    <BODY>
        <H1>Affichage de la table Jeux Olympiques</H1>
    
    <?$link = mysql_connect( "sql.ac-grenoble.fr", "massegu", "xxxxxxxxx")  or  die( "Unable  to  connect  to  SQL  server");
    mysql_select_db("massegu", $link)  or  die ( "Unable  to  select  database");
    $result  =  mysql_query( "select  *  from  JO  limit  100");
    ?>
    <table  bgcolor="#FFFFFF" border="1">
    <tr><?
      // ---- On affiche l'intitulé des colonnes, extraite de chaque champs
      while  ($field=mysql_fetch_field($result))  {
        echo  "<th>";
        echo  "$field->name";
        echo  "</th>";
      }
      echo  "</tr>";
      // ----- On affiche les champs de la table
     while  ($row  =  mysql_fetch_row($result))  {
        echo  "<tr>";
        for  ($i=0;  $i<mysql_num_fields($result);  $i++)  {
          echo  "<td>";
          // test if this is the URL
          if ($i == 4) {
        echo  "<a href=\"$row[$i]\">
    $row[$i]";
          }
          else {
        echo  "$row[$i]";
          }
          echo  "";
        }
    echo  "</table>";
    ?>
    <hr>
          <A HREF="page13.htm">Retour au formulaire</A>
    </BODY>
    </HTML>
  11. Enregistrer ce fichier en le nommant "base_rq.php"

  12. Vous pouvez maintenant vous rendre à la page formulaire BD de l'exercice, renseigner ce dernier et valider. Vous devriez voir le contenu de la table "jo" s'afficher dans une page.

6.14. Accès restreint (mot de passe)

Il est possible de protéger l'accès à une à ressource en demandant à l'utilisateur de s'identifier et de fournir un mot de passe associé à son identifiant. Au sein de l'académie de Grenoble, pour des raisons de sécurité, c'est l'administrateur du serveur académique qui fixe ces restrictions. Pour protéger un repertoire précis, veuillez contacter en précisant :

- Le repertoire à protéger ex: /vif/stagew/modele/prive
- L'identifiant désiré, "demo" dans notre exemple
- Le mot de passe associé, "dieu" dans notre exemple

6.15. Modèle (exercice terminé)

Voici ce que vous devriez obtenir : Modèle