Embarqués dans l'excellent navigateur libre Mozilla Firefox, XUL et le framework XPFE de Mozilla ouvrent la voie à la création et au déploiement d'applications web riches s'appuyant, à la manière d'AJAX, sur les standards du Web (CSS, Javascript, XML, RDF...). À travers la création d'un forum de discussion, découvrez et maîtrisez la puissance de l'environnement de développement Mozilla, depuis la réalisation d'interfaces graphiques avec XUL et CSS jusqu'à la logique applicative avec JavaScript et XPCOM et le déploiement avec XPI. On verra comment intégrer l'application dans le navigateur grâce aux overlays et à RDF et comment recourir à l'API DOM dans JavaScript et PHP 5. L'étude de cas décrit également l'interfaçage avec un annuaire LDAP, la connexion à un serveur SOAP ou la réutilisation de code avec XBL. Téléchargez l'intégralité du code source XUL et des pages PHP et retrouvez l'étude de cas en ligne! www.editions-eyrolles.com Eyrolles Préface 4 Table des matières 6 Avant-propos 10 Un renouveau nécessaire dans le monde des clients riches 10 Quel est l’objectif de cet ouvrage ? 11 À qui s’adresse cet ouvrage ? 11 Structure de l’ouvrage 12 Pour aller plus loin 14 Introduction à XUL 16 Mozilla et XUL 17 Un point de départ : le code source de Netscape 17 Des problèmes d’évolution 18 Un nouveau moteur et une nouvelle architecture 18 Un projet ambitieux qui a réussi 19 La place de XUL au sein du XPFE 21 XUL : un langage qui ne s’utilise pas seul 22 Les technologies connexes à XUL, CSS et JavaScript 23 Organisation générale du XPFE 24 Pourquoi choisir XUL ? 26 Un langage facile à apprendre 26 Portable 27 Sans limite ! 27 En résumé... 28 L’étude de cas 30 Introduction 31 Fonctionnement 32 Principe de fonctionnement d’un forum 32 Le fonctionnement de XUL Forum 33 Les différents modules 33 L’inscription 33 L’identification 33 L’écran principal 34 La fenêtre d’ajout/modification/lecture d’un sujet 35 Les différentes parties du XPFE mises en jeu 36 Les technologies « statiques » 36 Les technologies « dynamiques » 37 Quels seront les avantages de XUL dans ce cas ? 37 Des modules réutilisables 38 Une approche croissante des difficultés 38 Une large utilisation des possibilités du XPFE 38 Un environnement professionnel 38 Points noirs à l’utilisation de XUL 39 En résumé... 40 Premiers pas en XUL 42 Un premier fichier XUL 43 À la découverte des premiers éléments... 46 Première version de l’écran d’authentification 47 Corriger les premières erreurs : utilisation de boîtes 47 Un élément plus adapté : un tableau 49 La touche finale : spacers 50 En résumé... 52 Une véritable extension Mozilla 54 La séparation générale des fichiers 55 Contents.rdf et dossier content 56 Modification du fichier chrome.rdf 58 Intégration d’une DTD et début de l’internationalisation 60 Dossier locale 62 Modification du fichier XUL et ajout d’une DTD 63 Chrome.rdf 65 En résumé... 66 XUL avancé : la fenêtre principale 68 La structure globale 69 Découpage avec les principales boîtes 69 Séparation en overlays 71 Le fichier index-barres-overlay.xul : barres d’outils, de menu et de statut 76 Les menus 77 Des menus plus évolués 79 Éléments communs à toutes les pages 81 La barre d’outils 84 La barre de statut 85 Résumé : les barres 86 Les overlays : arbre et onglets 87 L’arbre 88 La liste des membres 90 En résumé... 92 Perfectionnement du rendu avec CSS 94 Présentation de CSS ; utilisation dans Mozilla 95 Débuts avec CSS : effets sur du texte 97 Mise en place de CSS 97 Premiers effets sur du texte 99 Retoucher le positionnement avec CSS 105 CSS spécifique à Mozilla 106 La barre d’outils 106 Autres propriétés CSS 108 En résumé... 111 Première animation de l’interface avec JavaScript 114 Concepts de base du langage 115 Syntaxe de base 116 Intégration à XUL 120 Application directe à XUL Forum 121 Une première routine pour l’affichage d’erreurs 121 Multilangue avec l’objet stringbundle 124 Plus de manipulation DOM : options avancées à la connexion 125 Le code servant à montrer les options avancées 127 Communication avec l’extérieur : 129 récupération d’un fichier de configuration 129 L’objet XMLHttpRequest 129 L’analyse avec DOM 133 Approche des composants XPCOM : fonction include() 135 Les composants XPCOM 135 Notre inclusion 136 En résumé... 138 Automatisation avec RDF 140 Le format RDF : explications détaillées 141 Les nœuds et les arcs 141 Nœuds et URI 142 Sérialisation de RDF avec RDF/XML 143 Listes 146 Génération de RDF avec PHP 147 Objectifs 147 Le fichier PHP 148 Retour à XUL 151 Un premier modèle simple 151 Un modèle plus complexe 153 Amélioration de RDF avec JavaScript 157 Version synchrone 158 Version asynchrone 161 En résumé... 163 Une intégration au cœur de Mozilla 166 Extension de l’interface du navigateur avec de nouveaux overlays 167 Modification du fichier contents.rdf 167 Où trouver les fichiers à modifier ? 168 Gestion multiple : Firefox, Thunderbird, Mozilla 170 Utilisation des préférences 175 Présentation 175 Les fonctions XPCOM essentielles 176 Le code de XUL Forum 176 Application à l’identification 178 Autres techniques utiles 180 Raccourcis clavier 180 En résumé... 182 JavaScript version « pro » : LDAP 184 Recherches LDAP avec JavaScript et nos 185 propres composants XPCOM 185 La structure LDAP de XUL Forum : le DIT 187 La succession des différentes fonctions 188 L’initialisation 190 Nos propres composants XPCOM en listeners 191 Identification avec un simple bind 195 Obtenir la liste des membres 197 Analyse du côté LDAP 197 Traitement XUL 199 Les informations d’un connecté 200 En résumé... 202 Do-it-yourself widgets : XBL 204 Fonctionnement d’un widget XBL 205 Le widget fenetreMsg 205 Notre implémentation : le binding fenetreMsg 207 Le contenu du widget : 208 Le widget vu de l’extérieur : un bloc div et une classe CSS 208 Le contenu intérieur : mélange HTML et XUL 209 La mise en forme CSS 211 Un widget qui s’anime : 213 Les propriétés et les champs 213 Les méthodes 214 Un widget réactif : le 217 Le double-clic 218 Le bouton de la souris est baissé 219 La souris est déplacée 221 La souris est relâchée 221 Mise en relation avec la page principale de XUL Forum 221 Modifications dans le fichier XUL 222 Modifications dans le JavaScript 222 En résumé... 225 Les services web, pour une communication harmonieuse entre client et serveur 228 SOAP en détail : application à XUL Forum 230 Le serveur en pratique avec PHP5 232 Le serveur, vue globale 232 Permettre l’authentification de l’utilisateur 234 Lire un message 235 Enregistrer un message 236 Le client JavaScript 238 L’initialisation 238 Est-on en phase avec le serveur ? Vérification de la session 239 Pas de duplication de code : une routine pour tous nos 240 appels SOAP 240 Le moment crucial : l’identification 242 Indispensable : lire un message 242 Vital : poster nos propres messages 243 Les modifications de l’interface avec XUL 244 Changements dans le fichier XBL 244 Changements dans les fichiers JavaScript 248 En résumé... 250 Distribution de XUL Forum avec XPInstall 256 Le fichier xulforum.xpi 257 Création du fichier xulforum.jar 257 install.rdf : comment installer XUL Forum ? 258 Compatibilité avec Mozilla 1.x : install.js 262 Signaler des mises à jour futures 264 En résumé... 266 Le mot de la fin 268 Le futur : vers Firefox 1.5 et au-delà 270 Il n’y a plus de contents.rdf dans Firefox 1.5 et Thunderbird 1.5 271 Pour développer 271 Pour installer 272 Un petit nouveau... XUL Runner ! 273 application.ini 274 chrome.manifest 275 xulforum-prefs.js 275 Lancer l’application 275 Une valeur sûre : SeaMonkey 276 De nouvelles voies : SVG et 277 Des modifications mineures 278 Liste des composants XPCOM utilisés 280 La liste des fichiers de l’application 284 CSS : syntaxe, sélecteurs, propriétés 288 Syntaxe de base de CSS 289 Les sélecteurs 291 Les propriétés utiles en CSS 2.1 292 Positionnement et tailles 292 Bordures, marges, marges internes 293 Les propriétés visuelles 293 Les listes 294 Couleurs et arrière-plans 294 Polices 295 Effets sur du texte 296 Les extensions Mozilla à CSS 296 Référence des éléments XUL graphiques 300 ISBN-13:,9782212116755 Embarqus dans l'excellent navigateur libre Mozilla Firefox, XUL et le framework XPFE de Mozilla ouvrent la voie la cration et au dploiement d'applications web riches s'appuyant, la manire d'AJAX, sur les standards du Web (CSS, Javascript, XML, RDF...). travers la cration d'un forum de discussion, dcouvrez et matrisez la puissance de l'environnement de dveloppement Mozilla, depuis la ralisation d'interfaces graphiques avec XUL et CSS jusqu' la logique applicative avec JavaScript et XPCOM et le dploiement avec XPI. On verra comment intgrer l'application dans le navigateur grce aux overlays et RDF et comment recourir l'API DOM dans JavaScript et PHP 5. L'tude de cas dcrit galement l'interfaage avec un annuaire LDAP, la connexion un serveur SOAP ou la rutilisation de code avec XBL. Tlchargez l'intgralit du code source XUL et des pages PHP et retrouvez l'tude de cas en ligne! (http://www.editions-eyrolles.com) www.editions-eyrolles.com