HTML Freebox

Un article de Wiki FreePlayer.org.

La freebox dispose d'un client web basé sur le langage HTML dérivé de la spécification suivante : W3C HTML-3.2 reference specification

Les spécificités de support HTML de la Freebox sont décrites dans le document officiel de Free: Freebox HTML Reference Specification (version française ici)

Vous trouverez une version plus récente de ce document au format HTML ici (version française ici)

Cette page se focalise donc à éclaircir certains points ou comportements, et décrire les particularités d'affichage des pages HTML.

Les explications données ici sont indépendantes de tout « mod ». Pour les aspects "standardisation des mods qui font passerelle Internet et du pilotage de VLC afin que le comportement des sites Web soit homogène quelque soit le mod utilisé", rendez-vous sur la page des interactions Mod et HTML-Freebox

Sommaire

Balise STYLE

Contrairement à ce qui est indiqué dans le document, la balise STYLE n'est pas reconnue et son contenu est traité comme de l'HTML standard (et donc affiché à l'écran)

Balise BODY

Pour changer la taille de l'affichage, vous pouvez faire par exemple

<body background="ts://127.0.0.1?ox=10&oy=10&ow=700&oh=500">

ox,oy,ow,oh pour spécifier la zone d'affichage de la vidéo
ix,iy,iw,ih pour spécifier la zone à afficher dans la vidéo

La taille standard de l'écran TV utilisé par la Freebox est 720x576

Le navigateur a une marge de 24 pixels, soit une résolution utilisable par page de 672x528

Cependant, il arrive souvent en fonction du téléviseur qu'il y ait une partie de l'écran qui soit masquée.

Il est donc préférable de se baser sur une taille inférieure (600x400 par exemple) et de centrer le site sur la page (en utilisant des balises TABLE) afin de garantir une compatibilité maximale.

[1.8.0] On peut maintenant mettre une vidéo au format mp2v (elementary stream MPEG-2) comme attribut background des balises <body>. Cela permet d'afficher une image sur le plan vidéo sans avoir besoin de streamer un flux avec VLC.

<body background="images/foo.mp2v">


Il est possible d'utiliser une chaîne de télé en fond vidéo :

<body background="srv://FREEBOX TV/2"> pour France 2
<body background="srv://FREEBOX TV/3"> pour afficher France3...

et pour les radios :

<body background="srv://FREEBOX RADIO/1"> pour écouter Europe1...

Touches de la télécommande

Balises META de programmation des touches

Les balises <META> permettent de spécifier l'URL à laquelle l'appui d'une touche de la télécommande doit mener

Le format des balises META de programmation d'une touche est :

<meta name="touche" content="URL">

avec touche parmi :

  • settings_page indique quelle page sera appellée par la freebox si on l'éteint à l'intérieur du Freeplayer et qu'on la rallume à l'aide de la télécommande.
  • home_page pour la touche Maison,
  • love_page pour la touche Coeur,
  • love2_page pour un appui long sur la touche Coeur,
  • mail_page pour la touche Courrier,
  • mail2_page pour un appui long sur la touche Courrier,
  • star_page pour la touche *,
  • sharp_page pour la touche #,
  • help_page pour la touche ?,
  • options_page pour la touche options,
  • info_page pour la touche info,
  • guide_page pour la touche guide,
  • pip_page pour la touche pip,
  • nochannel_page pour un numéro de canal inexistant, composé avec les touches numériques (voir notes ci-dessous),
  • channel_page pour un numéro de canal existant, composé avec les touches numériques (voir notes ci-dessous).

A noter:

  • L'appui long sur la touche Maison n'est pas programmable et permet à tout moment de sortir du Freeplayer et de revenir à la liste des Univers disponibles
  • La programmation des touches par META est rémanente et reste active d'une page HTML à l'autre jusqu'à ce qu'une autre balise META change le comportement de la touche
  • Ces meta (sauf nochannel_page et channel_page) peuvent être surchargés localement dans une page par l'élément link (voir section suivante).
  • L'URL peut valoir "back" pour indiquer que la touche doit ramener sur la page précédemment affichée (attention, il n'y a pas ici de gestion d'un historique et de possibilité de revenir en arrière dans les pages visitées)
  • L'URL peut valoir "none" pour indiquer que la touche ne doit avoir aucun effet (ceci permet notamment de déprogrammer une précédente programmation de touche)
  • L'URL peut valoir "exit" pour quitter l'univers freeplayer (ne fonctionne pas dans l'univers télésite)
  • L'URL des nochannel_page et channel_page doit contenir un %d qui sera remplacé par le numéro du canal
  • Par défaut dans le FreePlayer, tous les canaux sont inexistants (donc les chiffres activent l'URL de nochannel_page). Pour déclarer les canaux existants, il faut utiliser la balise META channel

Balises LINK de programmation des touches

Les balises <LINK> permettent de spécifier l'URL à laquelle l'appui d'une touche de la télécommande doit mener

Le format des balises LINK de programmation d'une touche est :

<link rel="touche" href="URL">

avec touche parmi :

  • home pour la touche Maison
  • love pour la touche Coeur
  • mail pour la touche Message
  • love2 pour l'appui long sur la touche Coeur
  • mail2 pour l'appui long sur la touche Message
  • option pour la touche Point d'interrogation
  • help pour la touche Options
  • red pour la touche Rouge
  • green pour la touche Verte
  • yellow pour la touche Jaune
  • blue pour la touche Bleue
  • info pour la touche Info
  • guide pour la touche Guide
  • stop pour la touche Stop
  • play pour la touche Play/Pause (quand il n'y a pas de flux video actif) - Cela risque de changer
  • pause pour la touche Play/Pause (quand il y a un flux video vers la freebox) - Cela risque de changer
  • rec pour la touche Rec
  • up pour la touche Haut
  • down pour la touche Bas
  • left pour la touche Gauche
  • right pour la touche Droit
  • star pour la touche *
  • sharp pour la touche #


Et pour la freebox HD :

  • prev pour la touche |<<
  • next pour la touche >>|
  • rev pour la touche <<
  • fwd pour la touche >>
  • pip pour la touche 'fenêtre' (touche bleu du bas, à côté de #)
  • pip2 pour l'appui long sur la touche 'fenêtre'
  • les autres sont pour le moment iconnues :( :
  • ??? pour la touche prog haut
  • ??? pour la touche prog bas

Les touches "manette" de la télécommande de la Freebox HD ne sont pas utilisables : il n'y a pas de code associé.

A noter:

  • La touche de coupure son (haut-parleur barré), la touche TV/AV ne sont pas programmables.
  • La touche OK n'est pas programmable de cette manière, mais son action est de valider l'hyperlien actuellement selectionné, on peut donc déterminer l'appui sur OK grace à un lien <a href=...>
  • La programmation des touches par LINK est locale à la page HTML et n'a plus d'effet lors du passage à une autre page HTML
  • L'URL peut valoir "back" pour indiquer que la touche doit ramener sur la page précédemment affichée (attention, il n'y a pas ici de gestion d'un historique et de possibilité de revenir en arrière dans les pages visitées)
  • L'URL peut valoir "none" pour indiquer que la touche ne doit avoir aucun effet (ou garder son comportement par défaut)

Balises FLAGS et comportement des touches de direction

Les touches de direction sont particulieres :

Si elle ne sont pas assignées par une balise LINK, elles adoptent un comportement par défaut, à savoir naviguer dans les hyperliens de la page HTML

Mais si la balise suivante est utilisée :

<flags volume_key=[true|false]>

Les touches gauche et droite ont alors pour effet de régler le volume, et non plus de naviguer dans les hyperliens.

Et si la balise suivante est utilisée :

<flags program_key=[true|false]>

Alors les touches haut et bas ont alors pour effet de zapper entre les chaînes existantes, et non plus de naviguer dans les hyperliens.

<flags digit_key=[true|false]>

Active ou déactive les touches numériques pour la saisie de nouvelle chaine.

Cependant, dans le Freeplayer, cela rend les touches haut/bas inactives car il n'y a pas de plan de service des chaines déclaré (cf balise META channel)

<flags wait_new_picture>

Cette balise indique à la freebox d'attendre l'arrivée d'une nouvelle image vidéo avant d'afficher la page.

<flags display_sync>

Cette balise permet d'afficher les images en même temps que le reste de la page.

<flags no_parental_rating>

Masque pour la page, le control parental.

Les Balises META

Configuration de la télécommande

<meta name="prog_select_timeout" content="2000">

timeout en ms d'une saisie d'une digit de chaine

<meta name="prog_expand_timeout" content="300">

temps en ms avant de rajouter une digit a la saisie de chaine

<meta name="key_repeat_delay" content="288">

Temps en ms avant la première répétition de touches.

<meta name="key_repeat_interval" content="72">

Interval minimum entre 2 répétition de touches.


Rafraichissement de la page

<meta name="refresh" content="4;url=refresh.html">

Charge la page indiquée au bout de x secondes. Le paramètre url pet être omis pour recharger la page courante.

<meta name="disappear" content="n;[url=xxx.html]">

Fait disparaître la page, ou charge la page identifiée par url au bout de n secondes après l'apparition de l'image vidéo.

Remarque : à utiliser impérativement si le flag wait_new_picture=true pour éviter de bloquer la freebox si l'image vidéo attendue n'arrive pas ;-).

<meta name="nopicture" content="4;url=nopicture.html">

Charge la page indiquée au bout de x secondes s'il n'y a eu d'image vidéo. Le paramètre url peut être omis pour recharger la page courante.

<meta name="blank" content="n;[url=xxx.html]">

Fait disparaître la page, ou charge la page identifiée par url au bout de n secondes sans appui de touche.

Autres balises de redirection

La balise meta "location" permet d'effectuer une redirection (voir balise "a", tags "onfocus", "onblur" et "onselect").

La balise meta "defer_location" permet d'effectuer une redirection (comme "location") avec un léger différé de 500ms (balise "a"). Le changement de focus avant l'expiration, annule cette redirection.


Configuration ecran

<meta name="display_video_output" content="rgb">

Pour définir le format de sortie video

  • rgb pour la sortie RVB
  • video pour la sortie composite
<meta name="display_hdmi_standard" content="auto">

Pour configurer la sortie hdmi

  • auto
  • 480p60
  • 576i50
  • 720p50
  • 720p60
  • 1080i50
  • 1080i60
<meta name="display_aspect_ratio" content="4/3">

Pour definir le ratio d'une image 16/9, 4/3 ou auto. Les valeurs dispo sont les suivantes :

  • 16/9
  • 4/3
  • 0/0 pour le mode auto
<meta name="display_scaling" content="letterbox">

Pour definir le mode conversion d'une image 16/9 en 4/3 sur v4 dégroupé/Freebox HD. 3 modes:

  • letterbox
  • panscan
  • fullscreen
<meta name="display_brightness" content="512">

Niveau de luminance(de 0 à 1023).

<meta name="display_contrast" content="512">

Niveau de contraste (de 0 à 1023).

<meta name="display_saturation" content="512">

Niveau de saturation (de 0 à 1023).

<meta name="display_hue" content="512">

Niveau de hue (de 0 à 1023).

<meta name="display_volume" content="512">

Atténuation du volume (de 0 a 1023).

<meta name="display_anti_flicker" content="1">
  • 0 pour none
  • 1 pour low
  • 2 pour middle
  • 3 pour high
<meta name="video_output_scale" content="100">

Pourcentage de redimensionnement de l'image


L'afficheur

<meta name="panel_display" content="RocknRoll">

Permet d'afficher le texte (9 caractères maximum) sur l'afficheur.

<meta name="panel_notify" content="RocknRoll">

Permet de faire défiler du texte sur l'afficheur de la v5. Le texte est affiché une fois, puis l'afficheur remet ce qu'il y avait avant quand c'est fini.

<meta name="panel_brightness" content="">

Permet de régler la luminosité de l'afficheur (de 0 à 7)

Stream

Les variables qui suivent permettent d'obtenir des informations sur le flux en cours de lecture.

<meta name="service" content="src://default/2/201">

Cette variable contient les informations sur le dernier canal sélectionné dans le plan de service des chaînes (variable "channel") ainsi que l'ID du canal correspondant.

Il est également possible d'utiliser cette variable à la manière de la variable "stream_location" ci-dessous pour changer l'URL du flux courant.

<meta name="stream_location" content="<url>">

Permet de modifier l'URL du flux. Note: le contenu de cette variable est masqué à l'affichage.

<meta name="stream_state" content="pause">

Etat du flux en cours de lecture (playing,pause)

<meta name="stream_av_delay" content="500">

Pas encore documenté. Durée du buffer vidéo (en millisecondes) ?

<meta name="stream_stccomp" content="on">

Pas encore documenté.

<meta name="stream_scanmode" content="auto">

Pas encore documenté.

<meta name="stream_size" content="0">

Durée du flux VOD (en millisecondes).

<meta name="stream_pos" content="0">

Position dans le flux VOD (en millisecondes).

<meta name="stream_delay" content="0">

Pas encore documenté.

<meta name="stream_speed" content="100">

Vitesse de lecture (lecture normale: 100).

<meta name="stream_in_window" content="33537,11,368,0">

Pas encore documenté.

<meta name="stream_out_window" content="33537,11,368,0">

Pas encore documenté.

<meta name="stream_lang" content="">

Pas encore documenté.

<meta name="stream_pcr" content="68">

Identifiant du PCR (Program Clock Reference).

<meta name="stream_vid" content="68(mp2v)">

Identifiant + codec vidéo.

<meta name="stream_vid_pid" content="68">

Identifiant.

<meta name="stream_vid_codec" content="mp2v">

Codec vidéo.

<meta name="stream_aud" content="69(mp2a)">

Identifiant + codec audio.

<meta name="stream_aud_pid" content="69">

Identifiant.

<meta name="stream_aud_codec" content="mp2a">

Codec audio.

<meta name="stream_spu" content="70(ttx)">

Identifiant + codec sous-titres.

<meta name="stream_spu_pid" content="70">

Identifiant.

<meta name="stream_spu_codec" content="ttx">

Codec sous-titres.

<meta name="stream_ecm" content="1500">

Pas encore documenté.

<meta name="stream_dtc" content="1501">

Pas encore documenté.

Autres

  • "release": révision du navigateur,
  • "board_version": numéro de version de la carte (version de freebox - 1)
  • "board_revision": révision de la carte,
  • "uts_release":
  • "uts_version":
  • "uts_changeset":
  • "compile_by":
  • "compile_time":
  • "prompt": permet de changer le prompt "Rock & Roll" qui s'affiche après un reboot de la freebox.
  • "channel" : sert à programmer un plan de service des chaines disponibles pour indiquer vers quels canaux les touches Haut/Bas et les touches numériques peuvent zapper. Son utilisation n'est cependant pas documetée car elle n'a, à priori, pas de sens au sein du FreePlayer.
  • "error_page" défini l'url de la page chargée en cas d'erreur (utilisable uniquement dans la VOD).
  • "status_output" permet d'afficher ou pas la ligne de statut de navigateur (valeur "on" ou "off").
  • "scroll_increment" permet de définir le palier (en pixel) de défilement de la page (voir Evolutions Freebox, Proposition 1). Valeurs entre 1 et 528. Par défaut: 384
  • "cache-control"

Par défaut, une image expire du cache que quand celui-ci est plein. Les images les moins récemment affichées sont les premières à expirer. Si le serveur http rajoute un champs cache-control. La freebox gère le 2 cas suivant :

  - cache-control: no-cache

l'image n'est pas cachée,

  - cache-control: max-age=n

l'image est cachée n secondes.


Ces meta peuvent aussi etre utilisés dans les forms.



 <form action="commit.html">
   <br><input type=hslider name=video_output_scale min=25 max=100 grad=5>
   <br><select name=display_scaling>
   <br><option value=letterbox>Letterbox
   <option value=panscan>Pan Scan
   <br><option value=fullscreen>Fullscreen
   </select>
 </form>


Balise FONT

La balise <FONT> permet de changer la police de caractère et la couleur du texte. 2 fontes sont accéssibles du freeplayer: "Helvetica" (fonte par defaut) et "Symbol" (pour dessiner certains symboles). La fonte Symbol n'existe qu'en 2 tailles, size=3, size=5.

Exemples :

<FONT family="Symbol" size=3>...</FONT>

<FONT family="Symbol" size=5>...</FONT>

Le document suivant montre les symboles correspondant aux lettres latines, suivant la taille en cours (0 ou +2) : Référence de la fonte "Symbol" de la Freebox

symb18.png


L'attribut color permet de spécifier la couleur du texte.

Pour indiquer un attribut de couleur à la freebox, le format est toujours le même :

  • La couleur s'exprime sous forme hexadécimale avec une notation RGB
    • #RRGGBBTT avec TT qui représente la transparence
    • La transparence est une valeur comprise entre 0 et 3F et représente un niveau de transparence entre 0 et 100%
  • Exemple : #FF000020 représente une couleur rouge transparente à 50%

Balise TABLE

Si l'attribut width= de la balise <TABLE> est exprimé en pourcentage, il se refère toujours à la largeur de l'écran, même s'il s'agit d'une table imbriquée dans une autre

Il est possible de transformer un table entière en hyperlien. Exemple:



  <a href="page.html"><table border=2 cellspacing=0 bgcolor="#00C0003F" abgcolor="#FCBE033F" vbgcolor="#FFFFFF3F">
    <tr>
      <td>A</td>
    </tr>
  </table></a>
  

L'attribut bgcolor de la table définit alors la couleur du fond quand le lien n'est pas activé. L'attribut abgcolor définit la couleur du fond quand le lien reçoit le focus.

[1.8.0] L'attribut vbgcolor définit la couleur du fond quand le lien est activé.

Consultez la page des exemples HTML pour en savoir plus

Balise TD

Si l'attribut width= de la balise <TD> est exprimé en pourcentage, il se refère toujours à la largeur de l'écran, même si la table en cours ne prend pas tout l'écran

Balise B

Sert normalement à mettre un texte en gras. Contrairement à ce qui est indiqué dans le document, cette balise ne semble pas fonctionner

Balise IMG

La freebox v4 ne peut afficher que des images au format gif. La freebox HD peut afficher des images au format gif ou png en couleurs sur 32bits.

Depuis la mise à jour du firmware 1.7.1 le support des GIF s'est nettement amélioré.

Toutes les images utilisées avec la freebox doivent prendre en compte les exigences suivantes (pour la freebox v4):

  • La freebox a une palette de 256 couleurs (ceci est du à une limitation matériel et ne pourra être changé).
  • Chaque couleur est définie par 4 valeurs rouge, vert, bleu, transparence sur 64 niveaux avec la vidéo.
  • Elle a 9 couleurs prédéfinies (pour le télétexte):
    • NONE #00000000
    • BLACK #0000003f
    • RED #ff00003f
    • GREEN #00ff003f
    • YELLOW #ffff003f
    • BLUE #0000ff3f
    • MAGENTA #ff00ff3f
    • CYAN #00ffff3f
    • WHITE #ffffff3f
  • Après, y a les couleurs de la page html. Par défaut :
    • bgcolor #00000000
    • text #f0f0f03f
    • link #0020003f
    • alink #f0f0003f
    • vlink #f000003f
  • Soit au total, 14 couleurs réservées. Donc, dans le meilleur des cas, il ne reste plus que 242 couleurs pour les images.
  • Les couleurs des images sont allouées dans la palette de la freebox dans l'ordre d'apparition dans l'image (et non dans l'ordre de la palette d'origine de l'image). Cela permet de n'allouer dans la palette globale que les couleurs réellement utilisées dans l'image.
  • Au delà des 256, toutes les autres couleurs de l'image sont mappées sur la couleur la plus proche
  • La couleur marquée "background" dans un gif est transparente sur la page html.

Exemple : Il est possible d'utiliser plusieurs images gifs avec des palettes de 50 couleurs totalement différentes, mais 2 images gifs de 256 couleurs devront partager la même palette.

Il est possible de faire une page web avec n'importe quelle palette personnalisée en respectant ces exigences.

Si une image dépasse la taille maximum ou si elle dépasse en dehors de l'écran, elle n'est pas affichée.

L'image ou la video d'arrière-plan, elle, peut-être constitué de toute image ou video envoyée/streamée par VLC... voir notamment la balise BODY

Application


<img src="monimage.gif" alt="image non trouvée !" width="" height="" alpha="#1f" />

Remarques :

  • V4 uniquement ! : le tag "alpha" permet d'indiquer l'opacité de l'image par rapport à l'image/vidéo en background. 64 niveaux possibles répartis de 4 en 4 entre #00 et #fc
  • si les dimensions de l'image sont renseignées, l'image est chargée après l'affichage de la page.
  • pour gérer plus finement la taille des cellules de tableau, vous pouvez insérer dans la celule le tag <img width="www" height="hhh" /> avec www et hhh la largeur et la hauteur de la cellule.

Balise A HREF / onFocus

Les balises Anchor peuvent se voir ajouter les attributs suivant :

  • focused indique que cet hyperlien doit être sélectionné par défaut à l'apparition de la page. Cela permet de faciliter la navigation de l'utilisateur.

Exemple :


<a href="lien.html" focused>titre du lien</a>

  • onFocus=<script> permet de lancer une action lors de l'activation du lien.
  • onBlur=<script> permet de lancer une action lors de la désactivation du lien.
  • onSelect=<script> permet de lancer une action lors de la selection du lien.

Le script est une suite d'affectations de variables (meta) terminées par un point virgule. Exemple:


<a href="none"
    onFocus='volume="60"; video_output_scale="60";'
    onBlur='volume="0"; video_output_scale="100";'
 >Silence...</a>
 <a href="none" onFocus='location="next.html";'>Page Suivante</a>
 <a href="none" onFocus='defer_location="refresh.html";'>Nouveau</a>

Si vous souhaitez utiliser cet attribut pour lancer des actions sans pour autant quitter la page en cours, utilisez une page spéciale qui ne provoquera aucune réponse du serveur HTTP.

[1.8.0] L'attribut "rel" permet d'activer des liens à l'aide des touches de la télécommande :


<a rel=left href="back">

Cela marche aussi avec les touches 1, 2, etc...

A noter la possibilité de faire un back sur plusieurs pages maintenant (1.8.3):

Code:

<a href="back(-3)">remonte de 3</a>

Un lien spécial permet d'afficher la page de choix des univers :


<a href="<var name=bouquet_page>">bouquet</a>

(remarque : ce lien spécial semble bugguer sur les v4 en firmware 1.7.3 -non dégroupé-)

Balise XDIV


Cette balise permet de créer une zone d'affichage avec une taille et une position données.

Syntaxe (xdiv "toto" de 100 x 100 placer à 100 du coin haut gauche de l'écran)  :


<xdiv id="toto" x="100" y="100" w="100" h="100">TOTO</xdiv>

On peut ensuite modifier sont affichages avec les actions suivantes :

  • show
  • hide
  • focus
  • newfocus
  • unfocus
  • depth

<a onfocus='toto="show";' onblur='toto="hide";' onselect='toto="focus";'>toto</a>

Balise VAR

Cette balise permet d'afficher dynamiquement le contenu d'une variable.

Syntaxe :


<var name=message width=240>

Le contenu peut être modifié en utilisant les actions onfocus, onblur, onselect


<a href="#" onfocus='message="Message 1";'>message 1</a>

La variable peut être initialisée en utilisant le code suivant :


<meta name="varname" content="bar">

Traitements particuliers

Formulaires et champs de formulaires

général

[1.8.0] L'attribut "background" permet de mettre une image de fond sous un champ de formulaire.

<INPUT type="hslider" background="degrade.gif" name="video_pos" min="0" max="99" grad="2" />
<input type=submit name=Soumettre width=280 height=50 value=submit background="mfreeplayer.gif" border=2  rollover>

champs de type hslider et vslider

Syntaxe :

<FORM action="doform.html" method="GET">
 <META name="video_pos" content="40" />
 <INPUT type="hslider" bgcolor="#3f3f3f3f" name="video_pos" min="0" max="99" grad="2" />
</FORM>

Un champ de type hslider ou vslider permet d'afficher une barre de défilement horizontale ou verticale.

La valeur de départ est déterminée par une variable interne (META) ou un autre champ de formulaire de même nom ( exemple : <INPUT type="hidden" name="video_pos" value="40" /> ).

La couleur du curseur est déterminée par la valeur de l'attribut alink (curseur actif) de la balise BODY uniquement.

La couleur de fond de la barre de défilement est déterminée par l'attribut bgcolor.

zones d'édition

[1.8.0] Il est possible d'entrer du texte dans les champs input de type text :

<input type=text name=foo charset="digit|alpha|caps" size=8>

La touche # permet de changer entre les minuscules, les majuscules, et les digits. L'attribut charset indique les charactères qu'il est possible d'utiliser.
La touche de correction lorsqu'on saisi un champ input texte sur une v4 degroupé total est la touche "x" .

Attribut background

Il semble que les mods n'aient pas géré le passage par proxy des urls en background. Il résulte de cela un non affichage des attributs background. Afin de remédier à ce problème, il est possible d'utiliser de passer par un proxy, mais pas de manière universelle.

Il est possible d'utiliser un script php afin de tester l'USER-AGENT du visiteur et ainsi utiliser le proxy adéquat. Pour ce faire, il faut tout d'abord placer ce code en haut des pages où l'attribut background est utilisé :



$homeplayer substr_count(strtolower($_SERVER['HTTP_USER_AGENT']), 'homeplayer');
$homejukebox substr_count(strtolower($_SERVER['HTTP_USER_AGENT']), 'homejukebox');

if($homeplayer == 1){
$proxy 'http://212.27.38.254:8080/getimage?url=';
}elseif($homejukebox == 1){
$proxy 'http://212.27.38.254:8080/pt/';
} 


Une fois ce code placé, il suffit de placer une variable $proxy devant l'adresse de l'image à afficher en background. Par exemple :



echo '<tr background="',$proxy,'http://www.monsite.com/image.gif" height="25">';



Plusieurs balises BR

Si vous placez plusieurs balises <br /> en suivant, sans les séparer par du texte, alors la Freebox ne prendra en considération qu'une balise <br />. Afin de remérer à ce problème, il suffit de placer le code &nbsp (équivalent de l'espace) avant votre balise.

Par exemple, ce code n'affichait qu'un retour à la ligne :



<br /><br />
<br />


Désormais, avec le code modifié, la Freebox affichera tous les retours à la ligne :



&nbsp;<br />&nbsp;<br />
&nbsp;<br />


Images Rollover

Le rollover permet de gérer des images qui changent lorsque la zone qui contient l'image prend le focus.

Il faut rajouter l'attribut rollover dans l'element img ou dans tous les elements ou on peut mettre un flags background (ex: les table, td, input, select).

Le browser affiche la 1er frame quand l'élément n'a pas le focus, et les autres frames quand il a le focus. Cela permet ainsi de créer une animation lorsque le bouton devient actif.

L'animation du bouton peut être jouée en boucle ou une seule fois. Le flag once permet d'éviter de jouer plusieur fois l'animation.

<input type=submit name=n3 width=280 height=50 value=submit background="im/boomerangtv.gif" border=2 once rollover>

Liens dynamiques

Il est possible d'insérer des variables META au sein des pages HTML :


<a href="http://<var name=server_static>/html/freeplayer.html">

Ces variables pouvant être modifiées dynamiquement par l'utilisateur. Cela permet par exemple de lancer une vidéo TVPerso selon l'identifiant saisi par l'utilisateur, d'intégrer le contenu d'une variable en paramètre d'URL, etc...

Ceci est également valabe pour les URLs d'images et de fond vidéos, mis à part que la modification ne sera effective qu'au prochain chargement de la page (si la variable n'est pas réinitialisée entre temps).

Un exemple de télésite simple pour permettre à l'utilisateur de choisir une vidéo TVPerso à afficher  :


<body background="/<var name=tvperso_id>"> Saisissez l'identifiant TVPerso de la vidéo : <input type="text" name=tvperso_id size="8"/>
<a href="index.html">voir la vidéo</a>
</body>