banniere

WebLettres classiques

Publier du grec ancien

Responsable de ces pages : François Giroud

Τίς τὸν Διὸς σύλλεκτρον οὐκ οἶδεν βροτῶν... 
Euripide, Héraclès, 1 (N.B.)

Page 1 - Page 2 - Page 3 - Page 4 - PAGE 5

Les "cookies" pour conserver les préférences

Récapitulation. Nous repartons sur les bases de la page 4, et nous disposons ...

  1. de plusieurs feuilles de style nommées, pour la circonstance, "grec.css", "vusillus.css" et "palatino.css" ;
  2. d'un fichier en javascript intitulé "police.js" ;
  3. de liens dans l'en-tête de notre page principale vers ces différents fichiers, afin que le navigateur en fasse le traitement approprié.

Le visiteur peut donc choisir entre plusieurs polices pour afficher le texte grec (rappel : pour lui permettre de choisir n'importe quelle police adaptée, seul un langage de programmation exécuté par le serveur, comme le PHP ou l'ASP, convient vraiment). Il reste à voir comment conserver les préférences de page en page sans imposer une nouvelle sélection.

La solution : les "cookies". De nouveau, nous allons nous appuyer sur les remarquables publications de Paul Sowden et Peter-Paul Koch.
En effet, la manière la plus élégante et "indolore" de transmettre des éléments d'une page à l'autre repose sur des petits fichiers stockés dans la station du visiteur et nommés "cookies" ; leur usage est parfois décrié, lorsqu'il s'agit de transmettre des données "sensibles", car selon les paramètres de sécurité du navigateur, des failles de confidentialité peuvent exister, et j'ai moi-même renoncé à les utiliser dans ce type de contexte. Cependant, s'agissant de transmettre par exemple de simples préférences de style, on n'a rien inventé de mieux !

Le javascript. Cette fois-ci, la relative complexité du programme fait que nous allons nous contenter de pratiquer le "copier-coller" sans chercher trop à comprendre exactement ce qu'il se passe. Il faut donc, dans le fichier "police.js", ajouter, après la fonction "regleStyle", les fonctions suivantes, où je me suis borné à "traduire" quelques éléments pour que les connaisseurs ou les curieux y reconnaissent quelque chose :

function quelStyleActif() {
var i, a;
for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");
}
return null;
}

function quelStyleChoisi() {
var i, a;
for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
if(a.getAttribute("rel").indexOf("style") != -1
&& a.getAttribute("rel").indexOf("alt") == -1
&& a.getAttribute("title")
) return a.getAttribute("title");
}
return null;
}

function faireCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}

function lireCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}

window.onload = function(e) {
var cookie = lireCookie("style");
var title = cookie ? cookie : quelStyleChoisi();
regleStyle(title);
}

window.onunload = function(e) {
var title = quelStyleActif();
faireCookie("style", title, 365);
}

var cookie = lireCookie("style");
var title = cookie ? cookie : quelStyleChoisi();
regleStyle(title);

Bilan ... Et c'est fini ! Vous pouvez le vérifier avec le troisième exemple. Attention, cependant : toutes les pages concernées par ces règles de style (j'en ai mis trois dans l'exemple) doivent renvoyer de la même façon aux feuilles de style et au fichier de javascript !


N.B. Si le grec ne s'affiche pas correctement, soit vous ne disposez pas d'une police unicode dotée des caractères grecs, soit celle que vous détenez m'est inconnue et je vous invite à me le faire savoir pour que je l'ajoute, soit votre navigateur est mal configuré...


Page 1 - Page 2 - Page 3 - Page 4 - PAGE 5



contact Contact - Qui sommes-nous ? - Album de presse - Aider WebLettres - S'abonner au bulletin - Faire un lien - WebLettres sur Twitter


© WebLettres 2002-2017