Extension de Dreamweaver et UltraDev

Transcription

Extension de Dreamweaver et UltraDev
Extension de Dreamweaver
et UltraDev
™
macromedia
®
Marques commerciales
Afterburner, AppletAce, Attain, Attain Enterprise Learning System, Attain Essentials, Attain Objects for Dreamweaver, Authorware,
Authorware Attain, Authorware Interactive Studio, Authorware Star, Authorware Synergy, Backstage, Backstage Designer, Backstage
Desktop Studio, Backstage Enterprise Studio, Backstage Internet Studio, Design in Motion, Director, Director Multimedia Studio,
Doc Around the Clock, Dreamweaver, Dreamweaver Attain, Drumbeat, Drumbeat 2000, Extreme 3D, Fireworks, Flash, Fontographer,
FreeHand, FreeHand Graphics Studio, Generator, Generator Developer's Studio, Generator Dynamic Graphics Server, Knowledge
Objects, Knowledge Stream, Knowledge Track, Lingo, Live Effects, Macromedia, Macromedia M Logo & Design, Macromedia Flash,
Macromedia Xres, Macromind, Macromind Action, MAGIC, Mediamaker, Object Authoring, Power Applets, Priority Access, Roundtrip
HTML, Scriptlets, SoundEdit, ShockRave, Shockmachine, Shockwave, Shockwave Remote, Shockwave Internet Studio, Showcase, Tools
to Power Your Ideas, Universal Media, Virtuoso, Web Design 101, Whirlwind et Xtra sont des marques commerciales de Macromedia,
Inc. et peuvent être déposées aux Etats-Unis ou dans d'autres juridictions ou pays. Les autres noms de produit, logos, concepts, titres,
mots ou phrases mentionnés dans cette publication peuvent être des marques commerciales, des marques de service ou des noms
commerciaux de Macromedia, Inc. ou d'autres entités et peuvent être déposés dans certaines juridictions ou certains pays.
Ce manuel contient des liens vers des sites web tiers qui ne sont pas contrôlés par Macromedia et Macromedia ne peut en aucun cas être
tenu responsable du contenu de ces sites. Si vous accédez à l’un de ces sites, vous le faites à vos propres risques. Macromedia propose ces
liens dans un but pratique uniquement et ne peut en aucun cas endosser ou accepter la responsabilité du contenu de ces sites tiers.
Dénégation de responsabilité d’Apple
APPLE COMPUTER, INC. N’ASSUME AUCUNE GARANTIE, IMPLICITE OU EXPLICITE, SUR LE LOGICIEL
INFORMATIQUE CI-INCLUS, SA COMMERCIABILITÉ OU SON ADÉQUATION À UN OBJECTIF PARTICULIER.
L’EXCLUSION DES GARANTIES IMPLICITES N’ÉTANT PAS AUTORISÉE DANS CERTAINS ÉTATS, L’EXCLUSION
CI-DESSUS PEUT DONC NE PAS S’APPLIQUER À VOTRE CAS. CETTE GARANTIE VOUS OFFRE DES DROITS
JURIDIQUES SPÉCIFIQUES. VOUS POUVEZ DISPOSER DE CERTAINS AUTRES DROITS, QUI VARIENT SELON LES
ÉTATS.
Copyright © 2000 Macromedia, Inc. Tous droits réservés. Ce manuel ne peut pas être copié, photocopié, reproduit, traduit ou
converti sous forme électronique ou informatique, en partie ou en totalité, sans l’autorisation écrite préalable de Macromedia, Inc.
Numéro de pièce ZDW40M200F
Remerciements
Gestion de projet : Sheila McGinn
Rédaction : JuLee Burdekin, David Jacowitz et Denise Lee
Mise en forme : Susan Moxley
Conception et production multimédia : Aaron Begley et Noah Zilberberg
Production de l'impression : Chris Basmajian, Paul Benkman, Caroline Branch et Rebecca Godbois
Mise en forme du site web : Jane Flint DeKoven et Jeff Harmon
Responsable de la localisation : Kristin Conradi
Remerciements spéciaux à Heidi Bauer, Winsha Chen, Chris Denend, Margaret Dumas, Peter Fenczik, Dave George, Valerie Green, Joel
Huff, Lori Hylan, Narciso (nj) Jaramillo, Sho Kuwamoto, Jay London, Joe Marini, Charles McBrian, Jeff Schang, Ken Sundermeyer Scott
Richards, Raymond Lim, Yoko Vogt, Luciano Arruda, Peter von dem Hagen, Vincent Truong, Florian de Joannes, Gwenhaël Jacq,
Florent Pajani, Bonnie Loo, Karen Catlin, Jean Fitzgerald, Ken Karleskint, Chris Bank, Yoko Shindo, Masayo Noda, Tim Hussey et SDL
International
Première édition : novembre 2000
Macromedia, Inc.
600 Townsend St.
San Francisco, CA 94103
2
Table des matières
CHAPITRE 1
Extension de Dreamweaver – Présentation . . . . . . . 9
Personnalisation ou extension ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
Consultation du manuel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
L'architecture d'extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12
Installation d'une extension. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
Errata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
Conventions utilisées dans ce manuel . . . . . . . . . . . . . . . . . . . . . . . . . .16
CHAPITRE 2
Modèle objet de document (DOM) et JavaScript . 19
Modèle objet de document dans Dreamweaver . . . . . . . . . . . . . . . . . . .19
Fonctionnement de JavaScript dans les fichiers d'extension . . . . . . . . . .28
Commandes JavaScript personnalisées. . . . . . . . . . . . . . . . . . . . . . . . . .29
CHAPITRE 3
Objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39
Fonctionnement des fichiers d'objet . . . . . . . . . . . . . . . . . . . . . . . . . . .40
API d'objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40
Ajout d'objets au panneau d'objets . . . . . . . . . . . . . . . . . . . . . . . . . . . .43
Ajout d'objets au menu Insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43
CHAPITRE 4
Commandes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45
Fonctionnement des commandes . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46
API de commande. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
Exemple de commande simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51
Ajout de commandes au menu Commandes . . . . . . . . . . . . . . . . . . . . .52
3
CHAPITRE 5
Commandes de menu . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Fonctionnement des commandes de menu . . . . . . . . . . . . . . . . . . . . . .53
API de commande de menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55
Commande de menu simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59
Menu dynamique simple. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
CHAPITRE 6
Rapports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Fonctionnement des rapports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63
Le rapport API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64
CHAPITRE 7
Modules de débogage JavaScript. . . . . . . . . . . . . . . 67
CHAPITRE 8
Inspecteurs de propriétés . . . . . . . . . . . . . . . . . . . . . . . 75
Comment fonctionnent les fichiers d'inspecteur de propriétés. . . . . . . .76
API de l'inspecteur de propriétés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77
Un exemple simple d'inspecteur de propriétés . . . . . . . . . . . . . . . . . . . .80
CHAPITRE 9
Panneaux flottants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Fonctionnement des fichiers de panneau flottant. . . . . . . . . . . . . . . . . .84
API du panneau flottant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .85
A propos des performances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89
Exemple de panneau flottant simple . . . . . . . . . . . . . . . . . . . . . . . . . . .91
CHAPITRE 10
Comportements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .93
Fonctionnement des comportements. . . . . . . . . . . . . . . . . . . . . . . . . . .94
API de comportement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .96
Exemple de comportement simple . . . . . . . . . . . . . . . . . . . . . . . . . . .104
CHAPITRE 11
Comportements de serveur . . . . . . . . . . . . . . . . . . . . 107
Architecture d'UltraDev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .108
Dossiers et fichiers de comportements de serveur . . . . . . . . . . . . . . . .110
Exemple : Hello World . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111
4
Contents
Exemple : Redirect If Empty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .115
Techniques de comportements de serveur . . . . . . . . . . . . . . . . . . . . . .120
Simplification des comportements de serveur . . . . . . . . . . . . . . . . . . .131
Comment appeler les fonctions API de comportement de serveur . . . .135
API de comportement de serveur . . . . . . . . . . . . . . . . . . . . . . . . . . . .138
CHAPITRE 12
Schéma XML de comportement de serveur. . . . . 145
eXtensible Markup Language (Langage de Marquage eXtensible) . . . .146
Schéma XML de comportement de serveur UltraDev . . . . . . . . . . . . .148
Modification de fichiers XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .150
Fichiers XML Groupe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .153
Fichiers XML Participant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .158
Utilisation du gestionnaire de données . . . . . . . . . . . . . . . . . . . . . . . .178
Utilisation du gestionnaire de traduction. . . . . . . . . . . . . . . . . . . . . . .183
CHAPITRE 13
Sources de données . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Fonctionnement des sources de données . . . . . . . . . . . . . . . . . . . . . . .187
API de source de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .190
CHAPITRE 14
Formatage des données . . . . . . . . . . . . . . . . . . . . . . . 195
Organisation du formatage de données . . . . . . . . . . . . . . . . . . . . . . . .196
Mise en service des fonctions de formatage de données . . . . . . . . . . . .198
API de formatage de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .199
CHAPITRE 15
Modèles de serveur . . . . . . . . . . . . . . . . . . . . . . . . . . 203
Fonctions API des modèles de serveur . . . . . . . . . . . . . . . . . . . . . . . . .203
CHAPITRE 16
API d'intégration de Fireworks . . . . . . . . . . . . . . . . 207
API d'intégration de Fireworks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .207
Exemple simple d'intégration de Fireworks . . . . . . . . . . . . . . . . . . . . .213
CHAPITRE 17
API des objets Flash . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Contents
5
CHAPITRE 18
API de Design Notes . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Fonctionnement de Design Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . .219
API JavaScript de Design Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . .220
API C de Design Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .225
CHAPITRE 19
API d'E/S de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . 233
Vérification de l'installation de DWfile . . . . . . . . . . . . . . . . . . . . . . . .233
API d'E/S de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .234
CHAPITRE 20
API HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
API HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .241
CHAPITRE 21
API de base de données . . . . . . . . . . . . . . . . . . . . . . 249
Fonctions de l'API de base de données . . . . . . . . . . . . . . . . . . . . . . . .250
CHAPITRE 22
API JavaBean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
CHAPITRE 23
API d'intégration de commande source . . . . . . . . 269
Fonctions obligatoires de l'API d'intégration de commande source . . .270
Fonctions facultatives de l'API d'intégration de commande source . . .276
Activateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .285
CHAPITRE 24
Traducteurs de données . . . . . . . . . . . . . . . . . . . . . . 293
Définition d'un traducteur de données . . . . . . . . . . . . . . . . . . . . . . . .293
Fonctionnement des traducteurs de données . . . . . . . . . . . . . . . . . . . .294
API de traducteur de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .295
Choix du type de traducteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .299
Ajout d'un attribut traduit à une balise . . . . . . . . . . . . . . . . . . . . . . . .300
Verrouillage des balises ou des blocs de code traduits. . . . . . . . . . . . . .306
Recherche de bogues dans le traducteur. . . . . . . . . . . . . . . . . . . . . . . .316
6
Contents
CHAPITRE 25
Extensions C. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
API d'extension C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .322
CHAPITRE 26
API JavaScript de Dreamweaver . . . . . . . . . . . . . . 333
Obtention de données de documents par l'intermédiaire du DOM. . .335
Fonctions du panneau Actifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .336
Fonctions de comportements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .343
Fonctions relatives au Presse-papiers . . . . . . . . . . . . . . . . . . . . . . . . . .353
Fonctions relatives aux commandes . . . . . . . . . . . . . . . . . . . . . . . . . . .358
Fonctions relatives aux conversions . . . . . . . . . . . . . . . . . . . . . . . . . . .359
Fonctions relatives aux styles CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . .360
Fonctions relatives aux applications externes . . . . . . . . . . . . . . . . . . . .366
Fonctions relatives aux manipulations de fichiers. . . . . . . . . . . . . . . . .371
Fonctions relatives à la recherche et au remplacement . . . . . . . . . . . . .381
Fonctions relatives aux cadres et aux jeux de cadres . . . . . . . . . . . . . . .387
Fonctions de modifications générales. . . . . . . . . . . . . . . . . . . . . . . . . .389
Fonctions globales relatives aux applications . . . . . . . . . . . . . . . . . . . .406
Fonctions globales relatives aux documents . . . . . . . . . . . . . . . . . . . . .408
Fonctions relatives à l'historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . .410
Fonctions relatives aux styles HTML. . . . . . . . . . . . . . . . . . . . . . . . . .419
Fonctions relatives au débogueur JavaScript . . . . . . . . . . . . . . . . . . . .422
Fonctions relatives au clavier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .426
Fonctions relatives aux calques et aux cartes graphiques. . . . . . . . . . . .434
Fonctions relatives aux éléments de bibliothèque et aux modèles . . . . .437
Fonctions Live data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .443
Fonctions relatives aux menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .446
Fonctions relatives aux chemins. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .448
Fonctions relatives à Quick Tag Editor . . . . . . . . . . . . . . . . . . . . . . . .450
Fonctions relatives aux rapports. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .453
Fonctions de la fenêtre de résultats . . . . . . . . . . . . . . . . . . . . . . . . . . .454
Fonctions relatives à la sélection . . . . . . . . . . . . . . . . . . . . . . . . . . . . .457
Fonctions de comportement du serveur. . . . . . . . . . . . . . . . . . . . . . . .462
Fonctions relatives à la source de données . . . . . . . . . . . . . . . . . . . . . .464
Fonctions de modèle de serveur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .465
Fonctions relatives aux sites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .466
Fonctions du mode Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .487
Fonctions de manipulation de chaînes. . . . . . . . . . . . . . . . . . . . . . . . .500
Contents
7
Fonctions de modification des tableaux . . . . . . . . . . . . . . . . . . . . . . . .504
Fonctions relatives aux scénarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . .511
Fonctions de bascule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .518
Fonctions relatives à la traduction (conversion) de données . . . . . . . . .538
Fonctions d'environnement de mise en forme . . . . . . . . . . . . . . . . . . .540
Fonctions relatives au mode Mise en forme . . . . . . . . . . . . . . . . . . . . .546
Fonctions relatives aux fenêtres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .552
Fonctions déconseillées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .559
Activateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .569
INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597
8
Contents
1
CHAPITRE 1
Extension de Dreamweaver –
Présentation
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ce manuel couvre les fonctionnalités avancées auxquelles vous avez accès lorsque
vous effectuez une extension de Dreamweaver UltraDev. Les extensions sont des
objets, des commandes, des commandes de menus, des panneaux, des traducteurs
de données, des inspecteurs de propriétés, des rapports, des comportements, des
comportements de serveur, des modèles de serveur, des sources de données et des
formats de données que vous créez à l'aide de l'API (interface de programme
d'application) de Dreamweaver UltraDev. Ce manuel est destiné à vous aider à
rédiger vos propres extensions en fournissant des informations sur la manière de
programmer chaque type d'extension et en expliquant l'API de Dreamweaver
UltraDev. Consultez ce chapitre pour connaître les éléments requis pour la
rédaction d'extensions et pour obtenir une présentation des extensions.
Personnalisation ou extension ?
Avant de commencer à lire ce manuel, reportez-vous au chapitre
« Personnalisation de Dreamweaver » du guide de l'utilisateur de Dreamweaver 4.
Ce chapitre explique des procédures de modification des panneaux, menus, boîtes
de dialogue et formats HTML dans Dreamweaver. Il présente également certaines
notions de base de la fonctionnalité d'extension de Dreamweaver, notamment la
façon de modifier les commandes Dreamweaver et la façon d'ajouter des balises
propriétaires.
Lisez ce manuel lorsque vous êtes prêt à effectuer l'extension de Dreamweaver
UltraDev (afin de créer vos propres objets, commandes, commandes de menu,
panneaux, inspecteurs de propriétés, rapports, traducteurs de données,
comportements, comportements de serveur, modèles de serveur, sources de
données et formats de données).
9
Remarque : avant de commencer à rédiger des extensions, reportez-vous au manuel
« Utilisation de Dreamweaver UltraDev » pour plus d'informations sur l'installation de
Dreamweaver UltraDev et la connexion aux bases de données.
Consultation du manuel
Ce manuel décrit l'API prise en charge par Dreamweaver UltraDev. Les extensions
de Dreamweaver sont rédigées en JavaScript. Les scripts peuvent effectuer des
modifications sur le document en utilisant un DOM (Modèle d'objet de
document) et peuvent appeler un code C se trouvant dans une bibliothèque de
liens dynamique (DLL). Pour certains types d'extensions, UltraDev fournit un jeu
de fonctions utilitaires, qui fonctionne avec les données stockées dans des
fichiers XML. Il est conseillé de posséder quelque expérience dans la création de
pages web avec Dreamweaver ou UltraDev. Il est préférable d'être familiarisé avec
les langages utilisés pour l'extension de Dreamweaver, que ce soit JavaScript ou C.
Il est également préférable d'être familiarisé avec les langages de script côté serveur
(ASP, ColdFusion ou JSP) que vous souhaitez ajouter au document d'un
utilisateur.
Les sections suivantes décrivent les chapitres suivant l'ordre dans lequel ils
apparaissent dans ce manuel.
Vue d'ensemble
• Ce chapitre présente l'architecture d'extension de Dreamweaver UltraDev et la
façon de débuter la création d'extensions.
• « Le Modèle d'objet de document (DOM) et le code JavaScript des extensions »
présente le Modèle d'objet de document (DOM) de Dreamweaver UltraDev et
la façon d'accéder et d'afficher les données du document utilisateur, par le biais
d'appels JavaScript, vers le DOM du document.
Création d'extensions
• « Objets » décrit les extensions, détaille l'API de l'objet, explique comment le
fichier objet fonctionne et fournit des exemples.
• « Commandes » explique comment fonctionnent les commandes et comment
ajouter votre commande à un menu. Ce chapitre détaille également l'API des
commandes et fournit des exemples.
• « Commandes de menu » explique comment fonctionnent les commandes de
menu et comment ajouter votre commande à un menu. Ce chapitre détaille
également l'API des commandes de menu et fournit des exemples.
• « Rapports » explique comment effectuer l'extension du jeu de rapports
pré-rédigés livrés avec Dreamweaver.
10
Chapitre 1
• « Débogueur » explique comment effectuer l'extension du Débogueur
JavaScript, créer une version déboguée du document utilisateur, parcourir le
code JavaScript et renvoyer les erreurs.
• « Inspecteurs de propriétés » décrit comment créer des inspecteurs
personnalisés, donne des détails sur l'API de l'inspecteur de propriétés, explique
le fonctionnement des inspecteurs et fournit des exemples.
• « Panneaux flottants » décrit le fonctionnement des extensions de panneau
flottant, donne des détails sur l'API des panneaux flottants et fournit des
exemples.
• « Comportements » explique comment rédiger un comportement, donne des
détails sur l'API du comportement, explique le fonctionnement des
comportements et fournit des exemples.
Création d'extensions spécifiques à UltraDev
• « Comportements de serveur » est le premier des deux chapitres consacrés à
l'architecture permettant d'implémenter des comportements de serveur. Ce
chapitre explique le fonctionnement des fonctions d'aide et la façon dont les
fichiers de description XML correspondants simplifient la programmation des
comportements de serveur. Il donne également des détails sur l'API du
comportement de serveur et fournit des exemples.
• « Schéma XML d'un comportement de serveur » est le second chapitre
expliquant comment rédiger et modifier des comportements de serveur. Ce
chapitre est consacré aux fichiers de description XML. Vous trouverez
également dans ce chapitre des services avancés pour les données d'extension et
les traducteurs résidant dans les fichiers XML.
Remarque : reportez-vous également au manuel Utilisation de Dreamweaver UltraDev
pour plus d'informations sur l'Editeur de comportements de serveur. Cet outil d'interface
utilisateur simplifie réellement la création de comportements de serveur et leur ajout aux
documents, mais se limite aux opérations les plus simples. Pour créer et modifier des
comportements de serveur manuellement, reportez-vous à « Comportements de
serveur », page 107 et « Schéma XML de comportement de serveur », page 145 de ce
manuel.
• « Sources de données » fournit les API pour la connectivité des sources de
données.
• « Mise en forme des données » explique comment mettre en forme des
éléments de données dynamiques et placer correctement des éléments dans un
document.
• « Modèles de serveur » décrit les API servant à ajouter un nouveau modèle de
serveur (également appelé « technologie serveur ») à Dreamweaver UltraDev.
Extension de Dreamweaver – Présentation
11
Utilisation d'autres produits et utilitaires
• « API d'intégration de Fireworks » explique comment lancer et exécuter des
commandes dans Fireworks à partir de Dreamweaver.
• « Objets Flash » explique comment créer et modifier les fichiers Objets Flash.
• « API des Design Notes » décrit les fonctions JavaScript et C qui ajoutent des
informations sur le fichier, telles que l'historique et l'association du document,
aux Design Notes.
• « API d'E/S de fichier » explique les méthodes de manipulation des fichiers
courants disponibles avec l'objet DWfile.
• « API HTTP » explique comment obtenir et envoyer des fichiers à un serveur
HTTP à l'aide de l'objet DWHttp.
• « API de base de données » donne des informations sur l'API permettant la
connexion vers des bases de données SQL.
• « API JavaBean » fournit des fonctions C récupérant des méthodes, des
propriétés, des événements, des classes et des messages d'erreur dans votre
JavaBean.
• « API de commande source » explique comment intégrer une application de
commande source avec Dreamweaver.
• « Traducteurs de données » décrit le fonctionnement des traducteurs, donne
des informations sur l'API de traducteur de données et sur la manière de créer
un traducteur, des balises de verrouillage et des attributs. Le gestionnaire de
traduction et les fichiers XML simplifient ce processus pour les programmeurs
d'UltraDev. Reportez-vous aux Schémas XML.
• « Extensions C » explique comment créer une interface entre vos
bibliothèques C et l'API JavaScript de Dreamweaver.
• « API JavaScript de Dreamweaver » est votre guide de référence pour l'API
principale de Dreamweaver UltraDev. Il couvre l'API JavaScript d'un point de
vue fonctionnel.
L'architecture d'extension
La nature ouverte de l'architecture de Dreamweaver UltraDev vous permet de
modifier pratiquement tous les aspects de Dreamweaver UltraDev. Votre
interaction avec le produit dépend du type d'extension que vous rédigez. Cette
section explique les types d'extensions que vous pouvez créer. Pour plus
d'informations sur l'architecture Dreamweaver, reportez-vous au « Modèle objet
de document (DOM) et JavaScript », page 19, qui présente le DOM de
Dreamweaver et le fonctionnement de JavaScript avec des extensions.
12
Chapitre 1
Types d'extensions
L'ajout d'un bouton sur le panneau d'objet constitue une manière simple
d'effectuer l'extension de Dreamweaver UltraDev. Ensuite, chaque fois que
l'utilisateur fait glisser cet objet jusqu'au mode Création de la fenêtre de
document, Dreamweaver UltraDev insère le code associé à l'objet dans le code
HTML. Vous créez ce type de fonctionnalité « sélectionner pour insérer » en
rédigeant un objet. Les modèles de serveur sont à l'autre extrémité du spectre.
Ces extensions complexes définissent un jeu complet de balises qui décrivent un
langage de marquage de serveur. Pour programmer cette fonction avancée, un
programmeur doit être familiarisé avec Dreamweaver UltraDev, avec le jeu de
balises spécifiques au serveur et avec le fonctionnement et l'architecture serveur.
Vous trouverez ensuite différentes manières d'effectuer l'extension du produit,
chacune avec ses propres procédures.
La liste suivante représente les différentes manières d'effectuer l'extension de
Dreamweaver UltraDev. Vous pouvez procéder de l'une des manières suivantes :
en ajoutant des objets au panneau Objet, en ajoutant des commandes qui insèrent
ou réorganisent les balises et les attributs HTML, en créant votre propre panneau
flottant, en ajoutant des comportements JavaScript côté client ou en rédigeant des
traducteurs qui convertissent le code spécialisé en code HTML standard. Dans
UltraDev, vous pouvez créer de nouveaux comportements de serveur, de nouvelles
sources de données pour le panneau Liaisons de données, de nouveaux formats de
données ou même définir un nouveau type de modèle serveur.
Les différents types d'extension peuvent être résumés comme suit.
1
Object : également connu sous le nom d'extension « insertion seule ». Vous
rédigez ce type d'extension pour ajouter un nouvel objet au panneau Objet.
Vous créez ce type d'extension en rédigeant un fichier HTML contenant le
code à insérer dans le document. Il peut également contenir un formulaire qui
regroupe les données fournies par les utilisateurs et un code JavaScript qui traite
ces données. Vous placez le fichier HTML dans le dossier Configuration/
Objects/* (où * est un caractère générique représentant tout sous-dossier) avec
une icône en format GIF et l'extension s'affiche dans le panneau d'objets.
2
Commande : une commande est un élément de menu qui appelle un script.
Lorsque vous créez ce type d'extension, vous ajoutez un nouvel élément de
menu à Dreamweaver. Pour créer une commande, vous créez un fichier qui
implémente les fonctions dans l'API de commande (voir « Commandes »,
page 45). Si vous souhaitez que la commande s'affiche dans le menu
« Commandes », il vous suffit d'installer le fichier dans le dossier
Configuration/Commands. Pour que la commande s'affiche ailleurs dans le
menu système, personnalisez le fichier menus.xml. Lorsqu'un utilisateur fait
apparaître un menu, la commande peut préciser si son élément de menu
s'affiche estompé ou non.
Extension de Dreamweaver – Présentation
13
3
Panneau : Dreamweaver possède des panneaux qui fournissent des
informations sur le document et la sélection en cours. Vous pouvez ajouter
votre propre panneau flottant qui interagit avec la sélection, le document ou la
tâche, ou qui affiche simplement des informations utiles. Les fichiers de
panneau flottant sont des fichiers contenant du code HTML et JavaScript et
résidant dans le dossier Configuration/Floaters.
4
Inspecteur : les inspecteurs sont indispensables pour définir, vérifier et modifier
le nom, les dimensions, l'aspect et autres attributs de la sélection ; ils
permettent également de lancer des éditeurs internes et externes pour l'élément
sélectionné. Dreamweaver intègre plusieurs interfaces compatibles avec
l'inspecteur de propriétés permettant de définir des propriétés pour de
nombreuses balises HTML standard. A l'aide des fichiers d'inspecteur de
propriétés personnalisés, vous pouvez ignorer ces interfaces intégrées ou en
créer de nouvelles pour contrôler les balises personnalisées.
5
Comportement : vous pouvez ajouter de nouveaux comportements au menu
Plus (+) du panneau Comportements. Un comportement est un événement
utilisateur plus une action. Vous rédigez l'action. Pour créer un comportement,
rédigez le code de comportement, créez une interface utilisateur en HTML
pour obtenir une entrée, créez un gestionnaire pour l'événement auquel doit
être associé votre comportement, déterminez si votre comportement s'applique
à un document donné et appliquez le comportement à l'emplacement
approprié. Le dossier Configuration/Behaviors/Actions contient de nombreux
exemples de comportements.
6
Comportement de serveur : Dreamweaver UltraDev possède un panneau
Comportements de serveur, que vous pouvez utiliser pour appliquer à votre
document des blocs de script côté serveur fréquemment utilisés. Si vous
possédez du script ASP, JSP ou ColdFusion que l'utilisateur utilise
fréquemment, vous pouvez l'emballer en tant que Comportement de serveur.
Une fois que vous avez créé un comportement de serveur, il s'affiche dans le
menu Plus (+) du panneau Comportements de serveur. Dans UltraDev 4.0,
vous pouvez utiliser une nouvelle bibliothèque de fonctions d'aide pour
simplifier la tâche de rédaction d'un comportement de serveur, à condition que
vous ayez stocké le code d'exécution du comportement dans un fichier XML.
7
Traducteur de données : un traducteur fournit une représentation visuelle d'un
code non-HTML dans le mode Création de la fenêtre de document. Il
convertit le code non-HTML en HTML et verrouille le code non-HTML pour
éviter qu'il ne soit analysé par Dreamweaver. Vous créez des extensions de
traducteur pour représenter un code dynamique ou non-HTML dans le mode
Création de la fenêtre de document.
Remarque : vous pouvez implémenter un traducteur en utilisant l'API de traducteur ou
les services de Gestionnaire de traducteur d'UltraDev. Pour obtenir une description de
l'API de traducteur, reportez-vous à « Traducteurs de données », page 293.
8
14
Chapitre 1
Source de données : les fonctions d'API de source de données vous permettent
d'ajouter des options aux menu plus (+) du panneau Liaisons de données.
9
Modèle de serveur : cette fonction avancée vous permet de prendre en charge
un nouveau modèle de serveur. UltraDev prend initialement en charge ASP,
JSP et ColdFusion. Vous pouvez utiliser l'API de modèle de serveur pour
prendre en charge un modèle de serveur supplémentaire.
Dossiers d'extension
En vous familiarisant avec les dossiers du dossier Configuration, vous pouvez
découvrir l'API pour les zones que vous allez étendre et trouver des exemples pour
chaque type d'extension.
Conseil: le fichier Configuration_ReadMe.htm du dossier Configuration fournit des
informations sur le contenu de chaque sous-dossier.
Un dossier qui ne correspond pas à un type d'extension particulier se trouvera
dans le dossier Shared. Le dossier Shared est un lieu de stockage central pour les
fonctions utilitaires, les classes et les images couramment utilisées par toutes les
extensions. Par exemple, les fichiers du dossier Shared/MM/scripts/CMN
contiennent des fonctions qui, entre autres tâches utiles, recherchent tous les
enfants d'un Nuds pour une balise spécifique, extraient les espaces d'une chaîne et
génèrent la référence JavaScript correcte pour un objet en fonction de son
nom. Dans le répertoire /Configuration/Shared/UltraDev/Scripts résident des
fichiers contenant des fonctions utilitaires utiles lors de la création d'un
comportement de serveur. Nombre de ces fichiers fournissant les utilitaires
principaux utilisent la convention d'appellation ss*.js.
Installation d'une extension
Avant de programmer votre propre extension, téléchargez et installez une
extension pré-existante à partir du site web Macromedia Exchange
(http://macromedia.com/exchange/) (en anglais). Nous vous conseillons de
prendre le temps de le faire, cela vous simplifiera l'accomplissement de certaines
tâches. Vous pouvez vous faire une idée du nombre de programmeurs d'extension
présents dans la communauté. Il est possible que vous ayez besoin d'une extension
particulière existante ou étant suffisamment avancée (proche de la révision) pour
répondre à vos besoins.
Une fois que vous avez trouvé une extension qui vous intéresse sur les sites
Exchange de Dreamweaver ou d'UltraDev, il est facile d'installer une extension.
Pour installer une extension, observez les étapes suivantes :
1
Installez Extension Manager, si ce n'est pas déjà fait. Vous pouvez le télécharger
à partir du site web Macromedia Exchange (http://www.macromedia.com/
software/downloads/).
Extension de Dreamweaver – Présentation
15
2
Connectez-vous au site web Macromedia Exchange
(http://www.macromedia.com/fr).
3
Sur ce site, sélectionnez une extension à ajouter. Choisissez une extension
simple, qui ne risque pas d'altérer de manière importante votre environnement
de développement Dreamweaver. Cliquez sur le lien de téléchargement dans la
page d'informations détaillées de l'extension pour télécharger le paquet
d'extension.
4
Enregistrez le paquet d'extension dans le dossier Downloaded Extensions de
votre dossier Dreamweaver.
5
Dans le menu Fichier d’Extension Manager, sélectionnez Installer extension
(Commandes > Gérer les extensions).
L'extension est automatiquement installée dans Dreamweaver.
Il est nécessaire de redémarrer Dreamweaver avant de pouvoir accéder à certaines
extensions. Si Dreamweaver est en cours d'exécution lorsque vous installez
l'extension, il vous sera peut-être demandé d'en sortir et de redémarrer
l'application.
Accédez à Extension Manager (Commandes > Gérer les extensions) dans
Dreamweaver pour afficher les informations de base sur l'extension (par exemple,
son emplacement dans Dreamweaver).
Errata
Le code dans Dreamweaver UltraDev n'était pas achevé lors de la rédaction de la
présente documentation. Par conséquent, il est possible qu'il existe quelques
différences entre l'implémentation finale de l'API JavaScript de Dreamweaver
UltraDev et les explications fournies dans ce manuel. Vous trouverez une liste des
problèmes connus dans la section Extensibility (Extension) du site de support
technique de Dreamweaver (en anglais) à l'adresse suivante :
http://www.macromedia.com/support/ultradev/extend.html.
Conventions utilisées dans ce manuel
Ce manuel utilise les conventions typographiques suivantes :
•
•
indique des fragments de code et des constantes d'API,
notamment des noms de classe, des noms de méthodes, des noms de fonctions,
des noms de type, des scripts, des instructions SQL et des noms de balises et
d'attributs HTML.
Police de code
Police de code en italique
code.
16
Chapitre 1
indique les éléments remplaçables dans le
• Le symbole de continuation (¬) indique qu'une longue ligne de code a été
fractionnée sur deux lignes ou plus. En raison des limites de marge du format
de ce manuel, une ligne de code continue doit ici être coupée. Lorsque vous
voyez ce symbole de continuation dans le manuel, cela signifie que la ligne
suivante fait partie de la première. Lorsque vous copiez les lignes de code,
entrez-les comme une seule ligne.
Conventions de noms utilisées dans ce guide :
• Vous : le développeur responsable de la rédaction des extensions.
• L'utilisateur : la personne utilisant Dreamweaver UltraDev.
• Le visiteur : la personne qui visualise la page web créée par l'utilisateur.
Extension de Dreamweaver – Présentation
17
18
Chapitre 1
2
CHAPITRE 2
Modèle objet de document (DOM) et
JavaScript
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les documents HTML sont constitués d'une arborescence de balises qui reflète
leur structure. La racine de l'arborescence correspond à la balise HTML, les deux
branches principales sont HEAD et BODY. Les ramifications de HEAD sont TITLE,
STYLE, SCRIPT, ISINDEX, BASE, META et LINK. Les ramifications de BODY
comprennent des en-têtes (H1, H2, etc.), des éléments de niveau bloc (P, DIV, FORM,
etc.), des éléments de niveau texte (FONT, BR, IMG, etc.) et l'élément ADDRESS. Les
éléments émergeant des ramifications correspondent à des attributs tels que
WIDTH, HEIGHT, ALT et HREF.
Un Modèle Objet de Document, ou DOM (Document Object Model),
correspond également à une arborescence définissant la structure du document.
Toutefois, le DOM définit cette structure en termes d'objets et de propriétés, et
non en termes de balises et d'attributs.
La racine de l'arborescence DOM est le document lui-même, l'objet HTML
constitue le tronc et les autres objets du document se ramifient à partir de
l'objet HTML, à l'instar des balises et des attributs HTML.
Modèle objet de document dans
Dreamweaver
Le DOM d'un navigateur détermine le fonctionnement du code JavaScript d'un
document HTML dans ce navigateur. De la même manière, le DOM de
Dreamweaver détermine la façon dont le code JavaScript des extensions
fonctionne dans Dreamweaver.
19
Le DOM de Dreamweaver associe un sous-ensemble du DOM de Netscape
Navigator 4.0 à un sous-ensemble du DOM Niveau 1 du W3C (World Wide
Web Consortium). Grâce à l'incorporation du DOM Niveau 1, toutes les parties
d'une page HTML, y compris les balises (que le W3C appelle éléments), les
commentaires et le texte, deviennent un objet.
La répartition élémentaire de la hiérarchie du DOM est la suivante :
Vous pouvez référencer les objets par leur index
(document.forms[3].elements[1]) ou par leur nom
(document.myForm.myButton). Les objets ayant le même nom forment un
tableau. Vous pouvez accéder à un objet particulier du groupe à l'aide de son index
(par exemple, la première case d'options dont le nom est myRadioGroup dans
myForm serait référencée par document.myForm.myRadioGroup[0]).
20
Chapitre 2
Le tableau suivant donne une vue d'ensemble des propriétés, des méthodes et des
événements pris en charge par chaque objet ; ces derniers sont décrits de façon
plus détaillée dans des ouvrages tels que JavaScript: The Definitive Guide
(O’Reilly). Des informations complémentaires sur les propriétés et les méthodes
définies par le W3C, qui font l'objet d'une documentation tierce moins complète,
figurent à la suite de ce tableau. Les propriétés en lecture seule sont marquées
d'une puce (•).
Objet
Propriétés
Méthodes
window
document •
navigator •
innerWidth •
innerHeight •
screenX •
screenY •
alert()
onResize
confirm()
escape()
unescape()
close()
setTimeout()
clearTimeout()
setInterval()
clearInterval()
resizeTo()
navigator
platform •
Aucun
Aucun
document
forms • (tableau
getElementsBy
onLoad
d'objets de formulaire) TagName()
images • (tableau
hasChildNodes()
d'objets image)
layers • (un tableau
d'objets LAYER,
ILAYER et d'objets
DIV et SPAN à
positionnement
absolu)
Evénements
child objects by
name •
nodeType •
parentNode •
childNodes •
documentElement
•
body •
URL •
parentWindow •
toutes les balises/
tous les éléments
nodeType •
parentNode •
childNodes •
tagName •
attributes by
name
innerHTML
outerHTML
getAttribute()
setAttribute()
removeAttribute
()
getElementsByTa
gName()
hasChildNodes()
Modèle objet de document (DOM) et JavaScript
21
Objet
Propriétés
Méthodes
Evénements
form
En complément des
propriétés disponibles
pour toutes les balises :
elements • (tableau
d'objets button,
checkbox, password,
radio, reset, select,
submit, text, file,
hidden, image et
textarea)
Uniquement les
méthodes
disponibles pour
toutes les balises.
Aucun
En complément des
Uniquement les
propriétés disponibles méthodes
pour toutes les balises : disponibles pour
toutes les balises.
visibility
Aucun
mmcolorbutton
child objects by
name •
layer
left
top
width
height
zIndex
image
En complément des
Uniquement les
propriétés disponibles méthodes
pour toutes les balises : disponibles pour
toutes les balises.
src
onMouseOver
onMouseOut
onMouseDown
onMouseUp
button
reset
submit
En complément des
En complément des
propriétés disponibles méthodes
pour toutes les balises : disponibles pour
toutes les balises :
form •
onClick
En complément des
En complément des
propriétés disponibles méthodes
pour toutes les balises : disponibles pour
toutes les balises :
checked
onClick
blur()
focus()
checkbox
radio
form •
password
text
file
hidden
image (zone)
textarea
22
Chapitre 2
blur()
focus()
En complément des
En complément des
propriétés disponibles méthodes
pour toutes les balises : disponibles pour
toutes les balises :
form •
value
blur()
focus()
select()
onBlur
onFocus
Objet
Propriétés
Méthodes
Evénements
select
En complément des
En complément des
propriétés disponibles méthodes
pour toutes les balises : disponibles pour
toutes les balises :
form •
options • (tableau blur() (Windows
uniquement)
d'objets option)
focus() (Windows
selectedIndex
uniquement)
onBlur (Windows
uniquement)
option
En complément des
Uniquement les
propriétés disponibles méthodes
pour toutes les balises : disponibles pour
toutes les balises.
text
Aucun
mmcolorbutton
En complément des
Aucun
propriétés disponibles
pour toutes les balises :
onChange
onChange
onFocus (Windows
uniquement)
name
value
array
boolean
date
function
math
number
object
string
regexp
Correspond à
Netscape 4
Correspond à
Netscape 4
Aucun
text
nodeType •
parentNode •
childNodes •
data
hasChildNodes()
Aucun
comment
nodeType •
parentNode •
childNodes •
data
hasChildNodes()
Aucun
NodeList
length •
item()
Aucun
NamedNodeMap
length •
item()
Aucun
L'objet dreamweaver et ses propriétés
Outre les objets standard tels qu'ils sont définis par les navigateurs et le W3C,
Dreamweaver implémente deux objets personnalisés : dreamweaver et site.
L'objet dreamweaver possède deux propriétés en lecture seule qui lui sont
associées : appName et appVersion.
Modèle objet de document (DOM) et JavaScript
23
a la valeur « Dreamweaver » ou « Dreamweaver Ultradev »
respectivement pour chaque application. appVersion prend une valeur ayant le
format « versionNumber [languageCode] (platform) ». Par exemple, la
valeur de la propriété appVersion pour la version Windows suédoise de
Dreamweaver 4 serait « 4.0 [se] (Win32) » ; pour la version Macintosh
anglaise, cette valeur serait « 4.0 [en] (MacPPC) ».
appName
Les propriétés appName et appVersion ont été implémentées dans
Dreamweaver 3 et ne sont pas disponibles dans les versions antérieures de
Dreamweaver. Pour déterminer si la version de Dreamweaver est 3 ou ultérieure, il
suffit de vérifier l'existence de la propriété appVersion ou appName. Pour
déterminer la version spécifique de Dreamweaver, vérifiez d'abord l'existence de la
propriété appVersion, puis le numéro de version. Exemple :
if (dreamweaver.appVersion && ¬
dreamweaver.appVersion.indexOf('3.01') != -1){
// execute code
}
L'objet site n'a aucune propriété. Pour plus d'informations sur les méthodes des
objets dreamweaver et site, voir « API JavaScript de Dreamweaver », page 333.
Informations sur le DOM
Contrairement au DOM de Netscape, le DOM Niveau 1 n'a pas été documenté
dans des centaines d'ouvrages et de sites web tiers. Aussi, vous trouverez dans le
présent document une description assez détaillée des propriétés et des méthodes
du DOM Niveau 1 ainsi que des valeurs qu'elles renvoient.
Le DOM Niveau 1 présente quatre constantes (appelées nodes) qui décrivent les
types d'objets constituant l'arborescence du document. Ces constantes, qui
correspondent généralement aux valeurs renvoyées de la propriété nodeType, sont
les suivantes :
Node.DOCUMENT_NODE
Node.ELEMENT_NODE
Node.COMMENT_NODE
Node.TEXT_NODE
24
Chapitre 2
Propriétés et méthodes de l'objet document
Le tableau ci-dessous répertorie les nouvelles propriétés et méthodes de l'objet
document dans Dreamweaver, ainsi que les valeurs renvoyées correspondantes
(accompagnées d'explications, si nécessaire). Les propriétés en lecture seule sont
marquées d'une puce (•).
Propriété ou méthode
Valeur renvoyée et explication
nodeType •
Node.DOCUMENT_NODE
parentNode •
null
parentWindow •
Objet JavaScript correspondant à la fenêtre
parente du document (cette propriété n'est pas
incluse dans le DOM Niveau 1, mais elle est
prise en charge par Microsoft Internet Explorer
(IE) 4.0).
childNodes •
Une NodeList (liste de Nudss) contenant
tous les enfants immédiats de l'objet
document. En règle générale, le document a
un seul enfant : l'objet HTML.
documentElement •
Objet JavaScript correspondant à la balise
HTML. Cette propriété est une forme courte
permettant d'obtenir la valeur de
document.childNodes et d'extraire la balise
HTML de la NodeList.
body •
Objet JavaScript correspondant à la balise
BODY. Cette propriété est une forme courte
permettant d'appeler
document.documentElement.childNode
s et d'extraire la balise BODY de la NodeList.
Pour les documents de jeu de cadres, cette
propriété renvoie le Nuds correspondant au jeu
de cadres situé le plus à l'extérieur.
URL •
L'URL de type file:// du document ou, si le
fichier n'a pas été enregistré, une chaîne vide.
getElementsByTagName(tagName) Une NodeList pouvant être utilisée pour
parcourir les balises de type tagName (par
exemple, IMG, DIV, etc.).
Si l'argument tag est LAYER, la fonction
renvoie toutes les balises LAYER et ILAYER et
toutes les balises DIV et SPAN à
positionnement absolu.
Si l'argument tag est INPUT, la fonction
renvoie tous les éléments du formulaire (pour
que ce raccourci fonctionne correctement,
tous les noms de champ du formulaire doivent
commencer par une lettre).
hasChildNodes()
true
Modèle objet de document (DOM) et JavaScript
25
Propriétés et méthodes des objets de balise HTML
Chaque balise HTML est représentée par un objet JavaScript. Les balises sont
organisées selon une hiérarchie arborescente dans laquelle la balise x est parente de
la balise y si y est entièrement définie entre les balises de début et de fin de x
(<x>le contenu de x englobant <y>le contenu de y</y></x>). Le tableau
ci-dessous répertorie les propriétés et méthodes des objets de balise dans
Dreamweaver, ainsi que leurs valeurs renvoyées (accompagnées d'explications, si
nécessaire). Les propriétés en lecture seule sont marquées d'une puce (•).
26
Chapitre 2
Propriété ou méthode
Valeur renvoyée et explication
nodeType •
Node.ELEMENT_NODE
parentNode •
Balise parente. S'il s'agit de la balise
HTML, c'est l'objet document qui est
renvoyé.
childNodes •
Une NodeList contenant tous les
enfants immédiats de la balise.
tagName •
Nom HTML de la balise, tel que IMG, A
ou BLINK. Cette valeur est toujours
renvoyée en lettres majuscules.
attrName
Chaîne de caractères contenant la valeur
de l'attribut de balise spécifié.
tag.attrName ne peut pas être utilisé
si attrName est un mot réservé du
langage JavaScript (par exemple,
class). Dans ce cas, utilisez plutôt
getAttribute() et
setAttribute().
innerHTML
Code source HTML contenu entre la
balise de début et la balise de fin. Par
exemple, dans le code <p><b>Hello</
b>, World!</p>, p.innerHTML
renvoie<b>Hello</b>, World!. Si
vous écrivez dans cette propriété,
l'arborescence DOM est immédiatement
mise à jour de façon à refléter la nouvelle
structure du document (cette propriété
n'est pas incluse dans le DOM Niveau 1,
mais elle est prise en charge par IE 4.0).
outerHTML
Code source HTML de cette balise, y
compris la balise elle-même. Pour
l'exemple de code ci-dessus,
p.outerHTML renvoie
<p><b>Hello</b>, World!</p>. Si
vous écrivez dans cette propriété,
l'arborescence DOM est immédiatement
mise à jour de façon à refléter la nouvelle
structure du document (cette propriété
n'est pas incluse dans le DOM Niveau 1,
mais elle est prise en charge par IE 4.0).
getAttribute(attrName)
Valeur de l'attribut spécifié, s'il est
spécifié explicitement ; sinon, null.
Propriété ou méthode
Valeur renvoyée et explication
getTranslatedAttribute(attrName)
Valeur traduite de l'attribut spécifié, ou la
même valeur que celle qui est renvoyée
par getAttribute() si la valeur de
l'attribut n'est pas traduite (cette
propriété n'est pas incluse dans le DOM
Niveau 1 ; elle a été ajoutée à
Dreamweaver 3 pour prendre en charge
la traduction d'attributs).
setAttribute(attrName, attrValue)
Pas de valeur renvoyée. Affecte la valeur
spécifiée à l'attribut défini : par exemple,
img.setAttribute("src",
"image/roses.gif").
removeAttribute(attrName)
Pas de valeur renvoyée. Supprime
l'attribut défini et sa valeur du code
HTML de la balise.
getElementsByTagName(tagName)
Une NodeList pouvant être utilisée
pour parcourir les balises enfants de type
tagName (par exemple, IMG, DIV, etc.).
Si l'argument tag est LAYER, la fonction
renvoie toutes les balises LAYER et
ILAYER et toutes les balises DIV et SPAN
à positionnement absolu.
Si l'argument tag est INPUT, la fonction
renvoie tous les éléments du formulaire
(pour que ce raccourci fonctionne
correctement, tous les noms de champ
du formulaire doivent commencer par
une lettre).
hasChildNodes()
Valeur booléenne indiquant si la balise a
des enfants.
hasTranslatedAttributes()
Valeur booléenne indiquant si la balise a
des attributs traduits (cette propriété
n'est pas incluse dans le DOM Niveau 1 ;
elle a été ajoutée à Dreamweaver 3 pour
prendre en charge la traduction
d'attributs).
Propriétés et méthodes des objets texte
Chaque bloc de texte contigu dans un document HTML (par exemple, le texte
compris à l'intérieur d'une balise P) est représenté par un objet JavaScript. Les
objets texte n'ont jamais d'enfants. Le tableau ci-dessous répertorie les nouvelles
propriétés et méthodes des objets texte dans Dreamweaver, ainsi que les valeurs
renvoyées correspondantes (accompagnées d'explications, si nécessaire). Les
propriétés en lecture seule sont marquées d'une puce (•).
Propriété ou méthode
Valeur renvoyée et explication
nodeType •
Node.TEXT_NODE
parentNode •
Balise parente.
Modèle objet de document (DOM) et JavaScript
27
Propriété ou méthode
Valeur renvoyée et explication
childNodes •
Une NodeList vide.
data
La chaîne de texte réelle. Les entités du texte sont
représentées par des caractères uniques (par
exemple, le texte Joseph & I est renvoyé sous la
forme Joseph & I).
hasChildNodes()
false
Propriétés et méthodes des objets de commentaire
Chaque commentaire HTML est représenté par un objet JavaScript. Le tableau
ci-dessous répertorie les propriétés et méthodes des objets de commentaire dans
Dreamweaver, ainsi que les valeurs renvoyées correspondantes (accompagnées
d'explications, si nécessaire). Les propriétés en lecture seule sont marquées d'une
puce (•).
Propriété ou méthode
Valeur renvoyée et explication
nodeType •
Node.COMMENT_NODE
parentNode •
Balise parente.
childNodes •
Une NodeList vide.
data
Chaîne de texte comprise entre les marqueurs de
commentaires (<!-- et -->).
hasChildNodes()
false
Fonctionnement de JavaScript dans les
fichiers d'extension
Lorsque Dreamweaver traite les fichiers d'extension, il compile tous les éléments
compris entre les balises SCRIPT et exécute le code situé dans les balises SCRIPT
ne faisant pas partie d'une déclaration de fonction (par exemple, l'initialisation des
variables globales). En outre, Dreamweawer lit, compile et exécute des scripts
situés dans des fichiers JavaScript externes spécifiés dans les attributs SRC des
balises SCRIPT.
Remarque : si le code JavaScript de vos fichiers d'extension contient la chaîne
'</SCRIPT>', l'interpréteur JavaScript le lit comme une balise SCRIPT de fermeture et
signale une erreur littérale de chaîne non terminée. Pour éviter ce problème, divisez la
chaîne en plusieurs parties et concaténez-les de la façon suivante : '<' + '/SCRIPT>'.
28
Chapitre 2
Dans les fichiers de commande et de comportement, Dreamweaver exécute le
code contenu dans le gestionnaire d'événements onLoad (s'il en existe un dans la
balise BODY) lorsque l'utilisateur choisit la commande ou l'action dans un menu.
Dans les fichiers d'objet, Dreamweaver exécute le code contenu dans le
gestionnaire d'événements onLoad dans la balise BODY si le corps du document
contient un formulaire. Dreamweaver ignore le gestionnaire onLoad de la balise
BODY dans les fichiers de traducteur de données, d'inspecteur de propriétés et de
panneau flottant. Dans tous les fichiers d'extension, Dreamweaver exécute le code
contenu dans d'autres gestionnaires d'événements (par exemple,
onBlur="alert('This is a required field.')") lorsque l'utilisateur utilise
les champs de formulaire auxquels ils sont rattachés.
Les liens (balises a, y compris celles avec des URL JavaScript telles que
<a href="javascript:alert('hi')">) ne sont pas pris en charge, de même
que l'instruction document.write(). Les plug-ins (définis sur play en
permanence) sont pris en charge dans la balise BODY des fichiers d'extension, mais
les appliquettes Java et les commandes ActiveX ne le sont pas.
Exécution des scripts au démarrage ou à la fermeture
Dans Dreamweaver 4, si vous placez un fichier de commandes dans le dossier
Configuration/Startup, la commande s'exécute au démarrage de Dreamweaver.
Les commandes de démarrage se chargent avant le fichier menus.xml, avant les
fichiers du dossier ThirdPartyTags et avant les autres commandes, objets,
comportements, inspecteurs, panneaux flottants ou traducteurs. Par conséquent,
vous pouvez utiliser les commandes de démarrage pour modifier le fichier
menus.xml ou d'autres fichiers d'extension. Vous pouvez également afficher des
avertissements, inviter l'utilisateur à donner des informations ou appeler la
commande dreamweaver.runCommand(), mais vous ne pouvez pas appeler une
commande qui nécessite un DOM valide.
De même, si vous placez un fichier de commande dans le dossier Configuration/
Shutdown, la commande s'exécute à la fermeture de Dreamweaver. Vous pouvez
appeler la fonction dreamweaver.runCommand() à partir des commandes de
fermeture, afficher des avertissements ou inviter l'utilisateur à entrer des
informations, mais vous ne pouvez pas arrêter le processus de fermeture.
Pour plus d'informations sur les commandes, voir la section « Commandes »,
page 45.
Commandes JavaScript personnalisées
L'architecture d'extension de Dreamweaver prend en charge les éléments de
formulaire HTML de base tels que select et input, qui peuvent être utilisés
ultérieurement dans les extensions pour ajouter de nouvelles commandes à
l'interface utilisateur de Dreamweaver. La commande d'arborescence et la commande
du bouton de couleurs sont deux exemples de cette prise en charge étendue.
Modèle objet de document (DOM) et JavaScript
29
Commandes d'arborescence
La commande d'arborescence affiche les données dans un format hiérarchisé et
permet aux utilisateurs d'étendre et de réduire les affichages des données. Les
données sont stockées dans l'arborescence dans un ensemble de « Nudss de
données ». Les Nudss de données peuvent contenir d'autres Nudss de données,
appelés « Nudss enfants ». Les Nudss situés aux extrémités de l'arborescence sont
appelés « Nudss terminaux ». Les Nudss terminaux ne contiennent, par définition,
aucun Nuds enfant qui leur appartient. Le premier Nuds de l'arborescence
constitue le Nuds « racine ».
Dans Dreamweaver, l'Editeur de raccourcis clavier utilise la commande
d'arborescence :
Le fait de cliquer une fois sur un Nuds le sélectionne. Sous Windows, les boutons
de Nuds sont les boutons +/-. Sur Macintosh, les Nudss sont des triangles qui
peuvent être tournés vers le bas. Les Nudss contenant des Nudss enfants sont
extensibles et réductibles en cliquant sur le bouton correspondant situé à côté du
Nuds.
Instanciation d'une commande d'arborescence
Une commande d'arborescence utilise trois nouvelles balises (Dreamweaver utilise
le préfixe MM: pour distinguer la balise du langage HTML normal) :
30
Chapitre 2
•
MM:TREECONTROL
•
•
MM:TREECOLUMN
indique à Dreamweaver que l'élément de formulaire est une
commande d'arborescence.
MM:TREENODE
définit une colonne dans la commande d'arborescence.
définit un Nuds dans la commande d'arborescence.
La balise MM:TREECONTROL est un nouvel élément HTML
que l'utilisateur peut définir dans un document d'extension pour créer une
instance d'une commande d'arborescence. La balise comporte plusieurs attributs,
propriétés, événements et méthodes.
MM:TREECONTROL
Bien que la balise MM:TREECONTROL ne soit pas vide, elle ne doit pas contenir de
texte brut. Le seul contenu valide pour une balise MM:TREECONTROL est au
minimum une balise MM:TREECOLUMN et zéro ou plus balises MM:TREENODE.
Les attributs HTML de la balise MM:TREECONTROL sont :
Nom de l'attribut Description
Exemple
name
Nom de la commande
d'arborescence
<MM:TREECONTROL
name="MyTree">
</MM:TREECONTROL>
size
Nombre de lignes pour mesurer <MM:TREECONTROL size="6">
la commande. (facultatif) La
</MM:TREECONTROL>
valeur par défaut est de 5 lignes.
multiple
Permet à une arborescence de
comporter plusieurs sélections.
La valeur par défaut est une
sélection unique. (facultatif)
<MM:TREECONTROL
MULTIPLE>
</MM:TREECONTROL>
style
Définition de style pour la
hauteur et la largeur de la
commande d'arborescence. S'il
est précisé, il est prépondérant
sur l'attribut SIZE. (facultatif)
<MM:TREECONTROL
style="width:100px;height:200px">
</MM:TREECONTROL>
noheaders
Si cet attribut est présent, les en- <MM:TREECONTROL
têtes de la colonne de
noheaders">
l'arborescence ne sont pas
</MM:TREECONTROL>
affichés.
La balise MM:TREECOLUMN définit une colonne dans la
commande d'arborescence. Vous devez définir au minimum une balise
M:TREECOLUMN.
MM:TREECOLUMN
Modèle objet de document (DOM) et JavaScript
31
La syntaxe d'une balise MM:TREECOLUMN est :
Nom de l'attribut
Description
Exemple
name
Nom de la colonne.
<MM:TREECOLUMN
name="Column1">
value
Chaîne qui doit s'afficher dans
l'en-tête de la colonne.
<MM:TREECOLUMN
value="Files">
width
Largeur de la colonne, en pixels.
Les pourcentages ne sont pas
pris en charge. La valeur par
défaut est 100.
<MM:TREECOLUMN
width="60">
align
Alignement du texte de la
<MM:TREECOLUMN
colonne : à gauche, à droite ou
align="center">
centré. La valeur par défaut est à
gauche.
state
Etat de la colonne : visible
(visible) ou masqué (hidden).
<MM:TREECOLUMN
state="visible">
Les balises TREECOLUMN doivent s'afficher en haut de la déclaration TreeControl,
comme par exemple :
<MM:TREECONTROL name="tree1">
<MM:TREECOLUMN name="Column1" width="100" state="visible">
<MM:TREECOLUMN name="Column2" width="80" state="visible">
...
</MM:TREECONTROL>
Remarque : les balises TREECOLUMN peuvent techniquement s'afficher n'importe où dans
la balise TREECONTROL, mais elles doivent être placées en haut pour une meilleure lisibilité.
MM:TREENODE La balise MM:TREENODE définit un Nuds individuel dans une
balise MM:TREECONTROL. Il s'agit d'une balise qui n'est pas vide et qui ne peut
contenir que d'autres balises MM:TREENODE.
La balise MM:TREENODE ne doit pas contenir de texte brut, bien qu'elle ne soit pas
vide. Le seul contenu valide pour une balise MM:TREENODE est zéro ou plus balises
MM:TREENODE.
32
Chapitre 2
Les attributs MM:TREENODE sont :
Nom de l'attribut
Description
Exemple
name
Nom de la balise TREENODE.
<MM:TREENODE
name="node1">
</MM:TREENODE>
value
Comporte le contenu du Nuds
donné. Pour plusieurs colonnes,
il s'agit d'une chaîne délimitée par
un trait vertical (|). Pour définir
une colonne vide, placez un seul
caractère d'espace avant le trait
vertical.
<MM:TREENODE
value="Lawnmower|129.95">
</MM:TREENODE>
// EMPTY COL EXAMPLE:
<MM:TREENODE
value="Data| |">
</MM:TREENODE>
state
Etat du Nuds : étendu
<MM:TREENODE
(expanded) ou réduit (collapsed). state="expanded">
</MM:TREENODE>
selected
true si le Nuds est actuellement
<MM:TREENODE selected>
sélectionné. Vous pouvez
</MM:TREENODE>
sélectionner plusieurs Nudss en
définissant cet attribut sur
plusieurs Nudss d'arborescence,
si cette dernière comporte un
attribut MULTIPLE.
icon
Index des nombres entiers de
l'icône intégrée à utiliser, en
commençant par 0. Les icônes
intégrées sont :
0 = aucune icône
1 = icône de document DW
2 = icône multi-document
3 = dossier
4 = document image
5 = coche de couleur verte
6 = X rouge
7 = point d'interrogation
8 = icône de remarque
9 = icône d'avertissement
10 = icône d'arrêt
<MM:TREENODE icon='1'>
</MM:TREENODE>
Un ensemble classique de codes de commande d'arborescence peut ressembler à
ceci :
<MM:TREECONTROL name="CtrlName" [size=N]
[style="[width:#px];[height:#px]"]>
<MM:TREECOLUMN name="Column1" value="Items">
<MM:TREENODE value="Item1" selected></MM:TREENODE>
<MM:TREENODE value="Item2|Item3" expanded>
<MM:TREENODE value="Item4|Item5"></MM:TREENODE>
</MM:TREENODE>
</MM:TREECONTROL>
Modèle objet de document (DOM) et JavaScript
33
Manipulation du contenu des commandes d'arborescence
Les balises TREECONTROL et TREENODE sont implémentées comme des balises
HTML et sont par conséquent analysées par Dreamweaver et stockées dans
l'arborescence du document. Ces balises peuvent ensuite être manipulées comme
tout autre Nuds de document en appelant des fonctions DOM et en utilisant les
propriétés DOM déjà intégrées dans Dreamweaver.
Dreamweaver ne possède actuellement pas de fonction DOM
permettant de créer de nouveaux Nudss dans la structure du document.
Dreamweaver prend en charge deux propriétés, innerHTML et outerHTML, qui
peuvent être utilisées pour simuler cette fonction.
Ajout de Nudss
Par exemple, pour ajouter un Nuds enfant à un Nuds parent vide existant, vous
devez définir :
parentNode.innerHTML = "<MM:TREENODE name="X" value='myNewNode' ¬
expanded></MM:TREENODE>"
Dreamweaver ne prend actuellement pas en charge de
fonction DOM permettant de supprimer un Nuds dans la structure du
document. Ce comportement peut être simulé à l'aide des propriétés innerHTML
et outerHTML.
Suppression de Nudss
Par exemple, pour supprimer tous les Nudss enfants d'un Nuds parent spécifique,
vous devez définir :
parentNode.innerHTML = ""
Dreamweaver ne dispose actuellement d'aucune
fonction DOM permettant de déplacer un Nuds vers un autre emplacement dans
le document. Cette action peut être simulée en utilisant une combinaison d'ajouts
et de suppressions de Nudss (à l'aide des propriétés innerHTML et outerHTML).
Déplacement de Nudss
Les Nudss peuvent être directement modifiés avec les
fonctions DOM fournies dans Dreamweaver.
Modification de Nudss
Par exemple, pour définir l'attribut « expanded » (étendu) d'un Nuds
d'arborescence, un programmeur peut simplement utiliser la fonction DOM
NODE.setAttribute('expanded','expanded') pour étendre le Nuds. Tous les
autres attributs peuvent être commandés de la même façon.
Dreamweaver ne dispose d'aucune fonction API
intégrée pour parcourir ou itérer les Nudss. Ce comportement peut être simulé à
l'aide des propriétés et méthodes parentNode, childNodes et hasChildNodes().
Exploration de noœuds
Par exemple, pour récupérer le Nuds parent d'un Nuds, vous devez utiliser :
parent = node.parentNode;
Les données de Nuds peuvent être récupérées
directement à partir du Nuds à l'aide des propriétés et des fonctions de Nuds
DOM fournies dans Dreamweaver, telles que getAttribute(), innerHTML et
outerHTML.
Obtention des données du Nuds
34
Chapitre 2
Par exemple, pour voir si un Nuds a été sélectionné, vous pouvez utiliser :
bSelected = (node.getAttribute('selected') != null)
Commande d'arborescence de base de donnée et commande
de grille de variables
UltraDev étend la balise select HTML avec deux nouvelles commandes : la
commande d'arborescence de base de donnée et la commande de grille de
variables. La commande d'arborescence de base de données permet d'afficher les
informations relatives aux schémas des bases de données, c'est-à-dire les tableaux
et les colonnes les constituant. La commande de grille de variables est utilisée pour
afficher les informations tabulaires. Dans UltraDev, la boîte de dialogue Jeu
d'enregistrements avancée fait appel à ces commandes.
Boîte de dialogue Jeu d'enregistrements avancée
Ajout d'une commande d'arborescence de base de données
Pour ajouter ce type de commande dans une boîte de dialogue, tapez le code
HTML suivant dans votre page :
<select name="DBTree" style="width:400px;height:110px" ¬
type=mmdatabasetree connection=""></select>
La commande d'arborescence de base de données possède les attributs suivants :
name="DBTree",
qui est le nom de la commande d'arborescence de base de
données.
style="width:x;height:n",
qui correspond à la taille de la commande. Vous
pouvez déterminer sa largeur (x) et sa hauteur (n) en pixels.
Modèle objet de document (DOM) et JavaScript
35
type=mmdatabasetree, qui correspond au type de la commande. La valeur
mmdatabasetree indique que cette balise doit être restituée comme une
arborescence de base de données et afficher le contenu de la connexion spécifiée
dans l'attribut de connexion.
connection="connectionName" indique le nom d'une connexion UltraDev
(définie dans le Gestionnaire de connexions). Si l'attribut connection est vide, la
commande est également vide.
noexpandbuttons, lorsque cet attribut est défini, la commande d'arborescence ne
dessine pas les indicateurs étendre (+) ou réduire (-) ou les flèches en triangle
associées sous Windows. Cet attribut est très utile pour dessiner des commandes
de liste à plusieurs colonnes.
showHeaders,
lorsque cet attribut est défini, la commande d'arborescence affiche
un en-tête en haut, spécifiant le nom de chaque colonne.
Toutes les balises d'options placées dans la balise select sont ignorées.
Utilisez JavaScript pour modifier l'attribut connection et récupérer des données
sélectionnées dans l'arborescence. Utilisez DBTreeControl comme objet
JavaScript d'enveloppement de la nouvelle balise. L'implémentation de cet objet
est disponible dans le fichier DBTreeControlClass.js, situé dans
Configuration\Shared\Ultradev\Scripts.
Ajout d'une commande de grille de variables
Pour ajouter ce type de commande dans une boîte de dialogue, tapez le code
HTML suivant dans votre page :
<select name="ParamList" style="width:515px;" ¬
type=mmparameterlist columns="Name,SQL Data ¬
Type,Direction,Default Value,Run-time Value" size=6></select>
La commande de grille de variables possède les attributs suivants :
name="ParamList",
style="width:x",
qui est le nom de la commande de grille de variables.
qui est la largeur de la commande.
type=mmparameterlist, qui est le type de la commande. La valeur
mmparameterlist indique que cette balise doit être restituée comme
commande de grille de variables.
36
Chapitre 2
une
columns="colName1", "colNamex",
qui définit le nom des colonnes, chacune
étant séparée par une virgule. Chaque colonne devant disposer d'un nom, cet
attribut indique donc à la fois le nom des colonnes et leur nombre dans la
commande (le nombre de colonnes correspond au nombre de noms indiqués).
Dans l'exemple précédent, nous avons indiqué l'attribut de colonne suivant :
columns="Name,SQL Data Type,Direction,Default Value,Run-time Value".
Cette spécification crée donc cinq colonnes appelées «Name » (Nom), « SQL
Data Type » (Type de données SQL), « Direction » (Direction), « Default Value »
(Valeur par défaut) et « Run-time Value » (Valeur d'exécution).
size=n,
qui définit le nombre de lignes visibles.
columnWidth="x, ...",
qui définit la largeur des colonnes, chacune étant
séparée par une virgule. Si vous ne définissez aucune valeurs, les colonnes ont
toutes la même largeur. Vous pouvez également indiquer la largeur des premières
colonnes, en laissant les dernières vides. Les colonnes vides ont alors toutes la
même largeur, en fonction de l'espace restant dans la commande une fois les
premières colonnes placées. Par exemple, supposons que vous définissiez la balise
de sélection suivante :
<select name="ParamList" style="width:500px;" ¬
type=mmparameterlist columns="Name,SQL Data Type,Direction, ¬
Default Value,Run-time Value" columnWidth="100 25,11," size=6>¬
</select>
Vous créez ainsi une commande de grille de variables de 500 pixels de large et
comportant les cinq colonnes suivantes : Name, SQL Data Type, Direction,
Default Value, and Run-time Value. La largeur de la colonne Name sera de
100 pixels, celle de SQL DataType de 25 pixels et celle de Direction de 11 pixels.
Les deux dernières colonnes auront chacune une largeur de 182 pixels. Le calcul
est le suivant : le total des colonnes définies est de 136 et la largeur totale de la
commande de 500. Après placement des trois premières colonnes, l'espace restant
est de 364 pixels. Il reste deux colonnes, 364 divisés par 2 font 182.
Cette commande comporte également un objet d'enveloppement JavaScript
devant être employé pour accéder aux données de la commande et les manipuler.
L'implémentation de cet objet se trouve dans le fichier GridControlClass.js, dont
le chemin d'accès est : Configuration\Shared\MM\Scripts\Class\
Commande de bouton couleur pour les extensions
Une commande de bouton couleur vous permet d'ajouter une interface de
sélecteur de couleurs à vos extensions. Créez une instance de bouton couleur à
l'aide de la balise input de formulaire HTML existante, avec l'attribut type de
l'ensemble de commande pour "mmcolorbutton", puis définissez les attributs
name et value en conséquence. L'attribut name est le nom du bouton couleur.
L'attribut value correspond à la valeur actuelle de la couleur, représentée comme
une chaîne héxadécimale ou comme un nom de couleur.
Modèle objet de document (DOM) et JavaScript
37
Voici quelques exemples de la balise mmcolorbutton :
<input type="mmcolorbutton" name="colorbutton" value="#FF0000">
<input type="mmcolorbutton" name="colorbutton" value="teal">
Un bouton couleur comporte un événement onChange qui est déclenché lorsque
la couleur est modifiée.
38
Chapitre 2
3
CHAPITRE 3
Objets
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les objets sont conçus pour insérer une chaîne de code spécifique dans le
document de l'utilisateur. Un objet apparaît dans une catégorie du panneau
d'objets et dans le menu Insertion une fois que son fichier Objet est stocké dans
un sous-dossier du dossier Configuration/Objects, situé dans le dossier de
l'application Dreamweaver.
Les objets sont constitués de deux éléments : le fichier Objet qui définit l'élément
inséré dans votre document et l'image GIF de 18 x 18 pixels qui s'affiche dans le
panneau d'objets.
Les objets sont des fichiers HTML. La balise BODY d'un fichier d'objet peut
contenir un formulaire HTML acceptant des paramètres pour l'objet (par
exemple, le nombre de lignes et de colonnes du tableau à insérer). La balise HEAD
d'un fichier d'objet contient des fonctions JavaScript qui traitent les entrées de
formulaire de la balise BODY et contrôlent les éléments ajoutés au document de
l'utilisateur.
Remarque : les objets les plus simples contiennent uniquement le code HTML à insérer,
sans les balises BODY et HEAD. Pour plus d'informations, reportez-vous au chapitre
« Personnalisation de Dreamweaver » du manuel Utilisation de Dreamweaver.
39
Fonctionnement des fichiers d'objet
Lorsqu'un utilisateur sélectionne un objet en cliquant sur une icône du panneau
d'objets ou en choisissant une option du menu Insertion, la chaîne d'événements
suivante se produit :
Schéma du traitement de l'objet
1
La balise FORM est recherchée dans le fichier d'objet. Si un formulaire existe (et
que l'option Afficher la boîte de dialogue lors de l'insertion d'objets est
sélectionnée dans la boîte de dialogue Préférences, onglet Général),
Dreamweaver appelle la fonction windowDimensions(), si elle est définie, pour
déterminer la taille de la boîte de dialogue qui va afficher le formulaire. Si le
fichier d'objet ne contient aucun formulaire, Dreamweaver n'affiche pas de
boîte de dialogue et l'étape 2 est ignorée.
2
Si Dreamweaver affiche une boîte de dialogue à l'étape 1, l'utilisateur entre les
paramètres de l'objet (tel que le nombre de lignes et de colonnes d'un tableau)
dans la boîte de dialogue, puis clique sur OK.
3
La fonction objectTag() est appelée et la valeur qu'elle renvoie est insérée
dans le document immédiatement après la sélection en cours (elle ne remplace
pas la sélection en cours).
API d'objet
Les fonctions personnalisées de l'API d'objet ne sont pas obligatoires. Les
fonctions de l'API d'objet diffèrent des fonctions de l'API JavaScript principale sur
trois points :
40
Chapitre 3
• Elles ne sont pas des méthodes de l'objet dreamweaver, dom ou site.
• Elles ne sont significatives que dans le contexte des fichiers d'objet. En d'autres
termes, Dreamweaver n'appelle automatiquement la fonction objectTag()
que si elle est définie dans un fichier d'objet, tandis que dans tout autre fichier
d'extension, une fonction nommée objectTag() se comporte comme une
fonction utilisateur et vous devez l'appeler explicitement.
• Il vous incombe d'écrire le corps de chaque fonction et de renvoyer une valeur,
si nécessaire. Ce mode de fonctionnement est à l'opposé de celui des fonctions
de l'API principale dans laquelle vous appelez les fonctions et leur transmettez
des arguments, avant que Dreamweaver ne génère des valeurs renvoyées, le cas
échéant. Dans le cas de cette API spécifique, Dreamweaver appelle les fonctions
et leur transmet des arguments et vous générez ensuite des valeurs renvoyées, le
cas échéant.
displayHelp()
Description
Si cette fonction est définie, un bouton Aide apparaît sous les boutons OK et
Annuler dans la boîte de dialogue Paramètres. Cette fonction est appelée lorsque
l'utilisateur clique sur le bouton Aide.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Exemple
Dans l'exemple suivant, la fonction displayHelp() ouvre dans une fenêtre de
navigateur un fichier contenant les instructions d'utilisation de l'objet :
function displayHelp(){
dreamweaver.browseDocument('http://people.netscape.com/¬
andreww/dreamweaver/objects.html');
}
isDomRequired()
Description
Détermine si l'objet requiert un DOM valide pour fonctionner. Si cette fonction
renvoie true ou si la fonction n'est pas définie, Dreamweaver suppose que la
commande nécessite un DOM valide et synchronise les modes Affichage de code
et Création du document avant de l'exécuter. La synchronisation met à jour toutes
les modifications effectuées en mode Affichage de code dans le mode Création.
Arguments
Aucun.
Objets
41
Valeurs renvoyées
true
si une commande nécessite un DOM valide pour fonctionner, sinon false.
objectTag()
Description
Insère une chaîne de code dans le document de l'utilisateur.
Arguments
Aucun.
Valeurs renvoyées
La chaîne à insérer.
Exemple
L'exemple suivant de la fonction objectTag() insère une combinaison OBJECT/
pour un contrôle ActiveX et un plug-in spécifiques :
EMBED
function objectTag() {
return '\n' +
'<OBJECT CLASSID="clsid:166F1OOB-3A9R-11FB-8075444553540000" \n'¬
+ 'CODEBASE="http://www.mysite.com/product/cabs/¬
myproduct.cab#version=1,0,0,0" \n' + 'NAME="MyProductName"> \n' ¬
+ '<PARAM NAME="SRC" VALUE=""> \n' + '<EMBED SRC="" HEIGHT="" ¬
WIDTH="" NAME="MyProductName"> \n' + '</OBJECT>'
}
windowDimensions()
Description
Définit les dimensions de la boîte de dialogue des paramètres. Si cette fonction
n'est pas définie, les dimensions de la fenêtre sont calculées automatiquement.
Remarque : ne définissez cette fonction que si vous souhaitez utiliser une boîte de
dialogue d'options ayant des dimensions supérieures à 640 x 480 pixels.
Arguments
platform
La valeur de l'argument est soit "macintosh", soit "windows", selon la plateforme utilisée par l'utilisateur.
Valeurs renvoyées
Une chaîne de caractères au format "widthInPixels,heightInPixels".
Les dimensions renvoyées sont inférieures à la taille totale de la boîte de dialogue
parce qu'elles n'incluent pas la zone des boutons OK et Annuler. Si les dimensions
renvoyées ne permettent pas de faire apparaître toutes les options, des barres de
défilement s'affichent.
42
Chapitre 3
Exemple
L'exemple suivant de windowDimensions() définit les dimensions de la boîte de
dialogue des paramètres à 648 x 520 pixels si la plate-forme est Windows et à
660 x 580 pixels si la plate-forme est Macintosh :
function windowDimensions(platform){
var retval = ""
if (platform = = "windows"){
retval = "648, 520";
}else{
retval = "660, 580";
}
return retval;
}
Ajout d'objets au panneau d'objets
Dreamweaver ajoute automatiquement tous les fichiers se trouvant dans l'un des
sous-dossiers du dossier Configuration/Objects à la catégorie associée à ce
sous-dossier. Par exemple, un fichier se trouvant dans le dossier Configuration/
Objects/MyObjects apparaîtrait dans la catégorie MyObjects du panneau d'objets.
Remarque : bien que les fichiers d'objet peuvent être stockés dans des dossiers distincts,
il est important que le nom de chaque fichier soit unique. La fonction dom.insertObject(),
par exemple, recherche un fichier spécifié dans l'ensemble du dossier Objects sans faire de
distinction entre les sous-dossiers. En effet, si le dossier Forms et le dossier MyObjects
contiennent chacun un fichier nommé Button.htm, par exemple, Dreamweaver n'est pas
capable de faire la différence entre les deux.
Chaque fichier d'objet est associé à une image GIF de 18 x 18 pixels qui s'affiche
dans le panneau d'objets. Le fichier image doit avoir le même nom de base que le
fichier d'objet (par exemple, object.gif est associé à object.htm) pour que la liaison
entre ces deux fichiers soit préservée.
Si vous créez une image d'objet de taille supérieure, Dreamweaver la
redimensionne automatiquement à 18 x 18 pixels. Si vous ne créez pas d'image
pour votre objet, une icône d'objet par défaut apparaît dans le panneau d'objets.
Ajout d'objets au menu Insertion
Dreamweaver ajoute automatiquement tous les fichiers se trouvant dans l'un des
sous-dossiers du dossier Configuration/Objects au bas de la liste d'options du
menu Insertion.
Objets
43
Pour contrôler la position d'un objet dans le menu Insertion ou dans tout autre
menu ou pour ajouter un objet à plusieurs menus, vous pouvez modifier le fichier
menus.xml. Ce fichier contrôle l'intégralité de la structure de menus pour
Dreamweaver. Pour plus d'informations sur la façon de modifier le fichier
menus.xml, reportez-vous au chapitre « Personnalisation de Dreamweaver » du
manuel Utilisation de Dreamweaver.
Remarque : dans Dreamweaver 2 et les versions antérieures, les éléments du menu
Insertion étaient contrôlés par un fichier nommé InsertMenu.htm. Ce fichier a été remplacé
par menus.xml.
44
Chapitre 3
4
CHAPITRE 4
Commandes
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les commandes permettent d'exécuter presque n'importe quel type de
modification dans le document actif de l'utilisateur, dans d'autres documents
ouverts ou dans tout document HTML situé sur un disque local. Les commandes
peuvent insérer, supprimer ou réorganiser les balises et les attributs HTML, les
commentaires et le texte.
Les commandes sont des fichiers HTML. La balise BODY d'un fichier de
commande peut contenir un formulaire HTML acceptant des options pour la
commande (par exemple, le tri des éléments d'un tableau et la colonne de
référence du tri). La balise HEAD d'un fichier de commande contient des fonctions
JavaScript qui traitent les entrées de formulaire de la balise BODY et contrôlent les
modifications apportées au document de l'utilisateur.
45
Fonctionnement des commandes
Lorsque l'utilisateur clique sur un menu contenant une commande, la chaîne
d'événements suivante se produit :
Traitement de la commande et schéma de l'intégration de la boîte de dialogue
46
Chapitre 4
1
Dreamweaver appelle la fonction canAcceptCommand(), si elle est définie, dans
chacun des fichiers de commande référencés dans le menu pour vérifier si cette
commande correspond à l'élément sélectionné. Si canAcceptCommand()
renvoie false, la commande apparaît estompée dans le menu.
2
L'utilisateur choisit une commande dans le menu.
3
Dreamweaver appelle la fonction receiveArguments(), si elle est définie, dans
le fichier de commande sélectionné afin de permettre à la commande de traiter
tous les arguments transmis depuis la fonction dreamweaver.runCommand().
4
Dreamweaver appelle la fonction commandButtons(), si elle est définie, pour
identifier les boutons qui figurent dans la partie droite de la boîte de dialogue
des options et le code qui doit être exécuté lorsque l'utilisateur clique sur ces
boutons.
5
Dreamweaver recherche la balise FORM dans le fichier de commande. S'il existe
un formulaire, Dreamweaver appelle la fonction windowDimensions() pour
identifier la taille de la boîte de dialogue des options qui contient les éléments
BODY du fichier. Si la fonction windowDimensions() n'est pas définie, la taille
de la boîte de dialogue est déterminée automatiquement.
6
Si la balise BODY du fichier de commande contient le gestionnaire onLoad,
Dreamweaver l'exécute (que la boîte de dialogue soit affichée ou non). Si
aucune boîte de dialogue ne s'affiche, les étapes restantes ne sont pas exécutées.
7
L'utilisateur sélectionne les options de la commande. Dreamweaver exécute les
gestionnaires d'événements associés aux champs du formulaire au fur et à
mesure que l'utilisateur les rencontre.
8
L'utilisateur clique sur l'un des boutons définis par la fonction
commandButtons().
9
Dreamweaver exécute le code associé au bouton sur lequel l'utilisateur a cliqué.
10
La boîte de dialogue reste affichée jusqu'à ce que l'un des scripts de la
commande appelle la fonction window.close().
API de commande
Les fonctions personnalisées de l'API de commande sont toutes facultatives. Les
fonctions de l'API de commande diffèrent des fonctions de l'API JavaScript
principale sur trois points :
• Elles ne sont pas des méthodes de l'objet dreamweaver, dom ou site.
• Elles ne sont significatives que dans le contexte des fichiers de commande. En
d'autres termes, Dreamweaver n'appelle automatiquement la fonction
commandButtons() que si elle est définie dans un fichier de commande ou de
commande de menu, tandis que dans tout autre fichier d'extension, une
fonction nommée commandButtons() fonctionne de la même façon qu'une
fonction utilisateur et doit être appelée explicitement.
• Il vous incombe d'écrire le corps de chaque fonction et de renvoyer une valeur,
si nécessaire. Ce mode de fonctionnement est à l'opposé de celui des fonctions
de l'API principale dans laquelle vous appelez les fonctions et leur transmettez
des arguments, avant que Dreamweaver ne génère des valeurs renvoyées, le cas
échéant. Dans le cas de cette API spécifique, Dreamweaver appelle les fonctions
et leur transmet des arguments et vous générez ensuite des valeurs renvoyées, le
cas échéant.
canAcceptCmommand()
Description
Indique si la commande est appropriée pour la sélection en cours.
Commandes
47
Remarque : ne définissez la fonction canAcceptCommand() que s'il existe au moins un
cas où elle renvoie la valeur false. Si cette fonction n'est pas définie, la commande est
considérée comme appropriée ; cette supposition permet de gagner du temps et
d'améliorer les performances.
Arguments
Aucun.
Valeurs renvoyées
si la commande est appropriée, sinon false, auquel cas la commande
apparaît estompée dans le menu.
true
Exemple
Dans l'exemple suivant, la fonction canAcceptCommand() rend la commande
disponible uniquement lorsque la sélection correspond à un tableau :
function canAcceptCommand(){
var selObj=dw.getDocumentDOM.getSelectedNode();
return (selObj.nodeType == Node.ELEMENT_NODE && ¬
selObj.tagName=="TABLE");
}
commandButtons()
Description
Définit les boutons devant figurer dans la partie droite de la boîte de dialogue
Options et leur comportement lorsque l'utilisateur clique dessus. Si cette fonction
n'est pas définie, aucun bouton n'apparaît et la balise BODY du fichier de
commande s'étend de façon à remplir toute la boîte de dialogue.
Arguments
Aucun.
Valeurs renvoyées
Un tableau contenant un nombre pair d’éléments. Le premier élément est une
chaîne contenant le libellé du premier bouton. Le deuxième élément est une
chaîne de code JavaScript définissant le comportement du premier bouton lorsque
l'utilisateur clique dessus. Les autres éléments définissent les boutons
supplémentaires de la même manière.
Exemple
Dans l'exemple suivant, la fonction commandButtons() définit trois boutons :
OK, Annuler et Aide.
function commandButtons(){
return new Array("OK" , "doCommand()" , "Cancel" , ¬
"window.close()" , "Help" , "showHelp()");
}
48
Chapitre 4
isDomRequired()
Description
Détermine si la commande nécessite un DOM valide pour fonctionner. Si cette
fonction renvoie true ou si la fonction n'est pas définie, Dreamweaver suppose
que la commande nécessite un DOM valide et synchronise les modes Affichage de
code et Création du document avant de l'exécuter. La synchronisation met à jour
toutes les modifications effectuées en mode Affichage de code dans le mode
Création.
Arguments
Aucun.
Valeurs renvoyées
true
si une commande nécessite un DOM valide pour fonctionner, sinon false.
receiveArguments()
Description
Traite tous les arguments transmis à partir d'un élément du menu ou de
dw.runCommand(), si un argument a été donné à la fonction dw.runCommand().
Arguments
{arg1}, {arg2},...{argN}
Si l'attribut arguments est défini pour une balise menuitem, la valeur de l'attribut
est transmise à la fonction receiveArguments() sous forme d'un ou plusieurs
arguments. L'attribut arguments permet de distinguer entre deux éléments de
menu appelant la même commande de menu. Les arguments peuvent également
être transmis à une commande par la fonction dw.runCommand().
Valeurs renvoyées
Aucune.
windowDimensions()
Description
Définit les dimensions de la boîte de dialogue des paramètres. Si cette fonction
n'est pas définie, les dimensions de la fenêtre sont calculées automatiquement.
Remarque : ne définissez cette fonction que si vous souhaitez utiliser une boîte de
dialogue d'options ayant des dimensions supérieures à 640 x 480 pixels.
Arguments
platform
La valeur de l'argument est soit "macintosh", soit "windows", selon la plateforme utilisée par l'utilisateur.
Commandes
49
Valeurs renvoyées
Une chaîne de caractères au format "widthInPixels,heightInPixels".
Les dimensions renvoyées sont inférieures à la taille totale de la boîte de dialogue
parce qu'elles n'incluent pas la zone des boutons OK et Annuler. Si les dimensions
renvoyées ne permettent pas de faire apparaître toutes les options, des barres de
défilement s'affichent.
Exemple
Dans l'exemple suivant, la fonction windowDimensions() définit les dimensions
de la boîte de dialogue des paramètres à 648 x 520 pixels :
function windowDimensions(){
return "648,520";
}
50
Chapitre 4
Exemple de commande simple
La commande suivante convertit tous les caractères du texte sélectionné en
minuscules. Cette commande est très simple ; elle n'affiche pas de boîte de
dialogue, de sorte que la fonction commandButtons() n'est pas définie.
<HTML>
<HEAD>
<TITLE>Make Lower Case</TITLE>
<SCRIPT LANGUAGE="javascript">
function canAcceptCommand(){
// Get the DOM of the current document
var theDOM = dw.getDocumentDOM();
// Get the offsets of the selection
var theSel = theDOM.getSelection();
// Get the selected node
var theSelNode = theDOM.getSelectedNode();
// Get the children of the selected node
var theChildren = theSelNode.childNodes;
// If the selection is not an insertion point, and
// either the selection or its first child is a
// text node, return true.
return (theSel[0] != theSel[1] && (theSelNode.nodeType == ¬
Node.TEXT_NODE || theChildren[0].nodeType == Node.TEXT_NODE));
}
function changeToLowerCase() {
// Get the DOM again
var theDOM = dw.getDocumentDOM();
// Get the offsets of the selection
var theSel = theDOM.getSelection();
// Get the outerHTML of the HTML tag (the
// entire contents of the document)
var theDocEl = theDOM.documentElement;
var theWholeDoc = theDocEl.outerHTML;
// Extract the selection
var selText = theWholeDoc.substring(theSel[0],theSel[1]);
// Re-insert the modified selection into the document
theDocEl.outerHTML = theWholeDoc.substring(0,theSel[0]) + ¬
selText.toLowerCase() + theWholeDoc.substring(theSel[1]);
// Set the selection back to where it was when you
// started
theDOM.setSelection(theSel[0],theSel[1]);
}
</SCRIPT>
Commandes
51
</HEAD>
<BODY onLoad="changeToLowerCase()">
<!-- The function that does all the work in this command is ¬
called from the onLoad handler on the BODY tag. There is no form ¬
in the BODY, so no dialog box appears. -->
</BODY>
</HTML>
Ajout de commandes au menu Commandes
Dreamweaver ajoute automatiquement tous les fichiers résidant dans le dossier
Configuration/Commands au bas du menu Commandes. Pour empêcher qu'une
commande ne s'affiche dans le menu Commandes, placez le commentaire suivant
sur la première ligne du fichier :
<!-- MENU-LOCATION=NONE -->
Dans Dreamweaver 1 et 2, si vous souhaitiez contrôler la position ou le texte
associé à une commande, vous pouviez l'ajouter explicitement au fichier
CommandMenu.htm. Dans Dreamweaver 3, ce fichier a été remplacé par le
fichier menus.xml qui contrôle l'ensemble de la structure des menus de
Dreamweaver. Pour plus d'informations sur la façon de modifier le fichier
menus.xml, reportez-vous au chapitre « Personnalisation de Dreamweaver » du
manuel Utilisation de Dreamweaver.
52
Chapitre 4
5
CHAPITRE 5
Commandes de menu
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Dreamweaver 3 a introduit un nouveau type de commande permettant une plus
grande souplesse des menus ainsi que la création de menus dynamiques. A l'instar
des commandes ordinaires, les commandes de menu permettent d'exécuter
presque n'importe quel type de modification dans le document courant, dans
d'autres documents ouverts ou dans tout document HTML situé sur un disque
local. L'API des commandes de menu se développe à partir de l'API des
commandes ordinaires pour accomplir plusieurs tâches liées à l'affichage et à
l'appel de la commande à partir du système de menus.
Remarque : les commandes de menu étant directement liées au système de menus dans
Dreamweaver, il est recommandé de lire le chapitre « Personnalisation de Dreamweaver »,
du manuel Utilisation de Dreamweaver avant de poursuivre.
Les commandes de menu sont des fichiers HTML. La balise BODY d'un fichier de
commande de menu peut contenir un formulaire HTML acceptant des options
pour la commande (par exemple, le tri des éléments d'un tableau et la colonne de
référence du tri). La balise HEAD d'un fichier de commande de menu contient des
fonctions JavaScript qui traitent les entrées de formulaire de la balise BODY et
contrôlent les modifications apportées au document de l'utilisateur.
Les commandes de menu sont stockées dans le dossier Configuration/Menus du
dossier de l'application Dreamweaver.
Remarque : si vous ajoutez vos propres commandes de menu dans Dreamweaver, faitesle au plus haut niveau du dossier Menus ou créez votre propre sous-dossier. Le dossier
MM est réservé aux commandes de menu fournies avec Dreamweaver.
Fonctionnement des commandes de menu
Lorsque l'utilisateur clique sur un menu contenant une commande de menu, la
chaîne d'événements suivante se produit :
53
1
Si l'une des balises menuitem du menu contient l'attribut dynamic,
Dreamweaver appelle la fonction getDynamicContent() dans le fichier de
commande de menu associé afin de renseigner le menu.
2
Dreamweaver appelle la fonction canAcceptCommand() dans chacun des
fichiers de commande de menu référencés dans le menu pour vérifier si la
commande correspond à l'élément sélectionné. Si canAcceptCommand()
renvoie false, l'option de menu est estompée.
Si la fonction canAcceptCommand() renvoie true ou si elle n'est pas définie,
Dreamweaver appelle la fonction isCommandChecked() pour déterminer si
l'option de menu doit être cochée. Si la fonction isCommandChecked() n'est
pas définie, aucune coche n'apparaît.
54
Chapitre 5
3
Dreamweaver appelle la fonction setMenuText() pour déterminer le texte
devant s'afficher dans le menu. Si la fonction setMenuText() n'est pas définie,
Dreamweaver utilise le texte spécifié dans la balise menuitem.
4
L'utilisateur sélectionne une option dans le menu.
5
Dreamweaver appelle la fonction receiveArguments(), si elle est définie, dans
le fichier de commande de menu sélectionné afin de permettre à la commande
de traiter tous les arguments transmis depuis l'option de menu.
6
Dreamweaver appelle la fonction commandButtons(), si elle est définie, pour
identifier les boutons qui figurent dans la partie droite de la boîte de dialogue
des options et le code qui doit être exécuté lorsque l'utilisateur clique sur ces
boutons.
7
Dreamweaver recherche une balise FORM dans le fichier de commande de menu.
S'il existe un formulaire, Dreamweaver appelle la fonction
windowDimensions() pour identifier la taille de la boîte de dialogue des
options qui contient les éléments BODY du fichier. Si la fonction
windowDimensions() n'est pas définie, la taille de la boîte de dialogue est
déterminée automatiquement.
8
Si la balise BODY du fichier de commande de menu contient le gestionnaire
onLoad, Dreamweaver exécute le code associé à ce gestionnaire (qu'une boîte
de dialogue soit affichée ou non). Si aucune boîte de dialogue ne s'affiche, les
étapes restantes ne sont pas exécutées.
9
L'utilisateur sélectionne des options dans la boîte de dialogue. Dreamweaver
exécute les gestionnaires d'événements associés aux champs du formulaire au
fur et à mesure que l'utilisateur les rencontre.
10
L'utilisateur clique sur l'un des boutons définis par la fonction
commandButtons().
11
Dreamweaver exécute le code associé au bouton sur lequel l'utilisateur a cliqué.
12
La boîte de dialogue reste affichée jusqu'à ce que l'un des scripts de la
commande de menu appelle la fonction window.close().
API de commande de menu
Les fonctions personnalisées de l'API de commandes de menu sont toutes
facultatives. Les fonctions de l'API de commande de menu diffèrent des fonctions
de l'API JavaScript principale sur trois points :
• Elles ne sont pas des méthodes de l'objet dreamweaver, dom ou site.
• Elles ne sont significatives que dans le contexte des fichiers de commande de
menu. En d'autres termes, Dreamweaver n'appelle automatiquement la
fonction getDynamicContent() que si elle est définie dans un fichier de
commande de menu, tandis que dans tout autre fichier d'extension, une
fonction nommée getDynamicContent() fonctionne de la même façon
qu'une fonction utilisateur et doit donc être appelée explicitement.
• Il vous incombe d'écrire le corps de chaque fonction et de renvoyer une valeur,
si nécessaire. Ce mode de fonctionnement est à l'opposé de celui des fonctions
de l'API principale dans laquelle vous appelez les fonctions et leur transmettez
des arguments, avant que Dreamweaver ne génère des valeurs renvoyées, le cas
échéant. Dans le cas de cette API spécifique, Dreamweaver appelle les fonctions
et leur transmet des arguments et vous générez ensuite des valeurs renvoyées, le
cas échéant.
canAcceptCommand()
Description
Détermine si l'option de menu doit être active ou estompée.
Arguments
{arg1}, {arg2},...{argN}}
Si l'attribut arguments est défini pour une balise menuitem, la valeur de l'attribut
est transmise à la fonction canAcceptCommand() (et aux fonctions
isCommandChecked(), receiveArguments() et setMenuText()) sous forme
d'un ou plusieurs arguments. L'attribut arguments permet de distinguer entre
deux éléments de menu appelant la même commande de menu.
Valeurs renvoyées
Une valeur booléenne indiquant si l'élément de menu doit être activé.
commandButtons()
Description
Définit les boutons devant figurer dans la partie droite de la boîte de dialogue
Options et leur comportement lorsque l'utilisateur clique dessus. Si cette fonction
n'est pas définie, aucun bouton n'apparaît et la balise BODY du fichier de
commandes de menu s'étend de façon à remplir la totalité de la boîte de dialogue.
Arguments
Aucun.
Commandes de menu
55
Valeurs renvoyées
Un tableau contenant un nombre pair d’éléments. Le premier élément est une
chaîne contenant le libellé du premier bouton. Le deuxième élément est une
chaîne de code JavaScript définissant le comportement du premier bouton lorsque
l'utilisateur clique dessus. Les autres éléments définissent les boutons
supplémentaires de la même manière.
Exemple
Dans l'exemple suivant, la fonction commandButtons() définit trois boutons :
OK, Annuler et Aide.
function commandButtons(){
return new Array("OK" , "doCommand()" , "Cancel" , ¬
"window.close()" , "Help" , "showHelp()");
}
getDynamicContent()
Description
Extrait le contenu de la partie dynamique du menu.
Arguments
menuID
L'argument est la valeur de l'attribut id dans la balise menuitem associée à
l'élément de menu.
Valeurs renvoyées
Tableau de chaînes. Chaque chaîne contient le nom d'un élément de menu et son
ID unique, séparés par un point-virgule. Si la fonction renvoie la valeur null,
aucune modification n'est apportée au menu.
Exemple
Dans l'exemple suivant, la fonction getDynamicContent() renvoie un tableau de
quatre éléments de menu (My Menu Item 1, My Menu Item 2, etc.) :
function getDynamicContent(){
var stringArray= new Array();
var i=0;
var numItems = 4;
for (i=0; i<numItems;i++)
stringArray[i] = new String("My Menu Item " + i + ";¬
id=" + i);
return stringArray;
}
isCommandChecked()
Description
Détermine si une coche doit apparaître à côté de l'option de menu.
56
Chapitre 5
Arguments
{arg1}, {arg2},...{argN}
Si l'attribut arguments est défini pour une balise menuitem, la valeur de cet
attribut est transmise à la fonction isCommandChecked() (et aux fonctions
canAcceptCommand(), receiveArguments() et setMenuText()) sous la forme
d'un ou plusieurs arguments. L'attribut arguments permet de distinguer entre
deux éléments de menu appelant la même commande de menu.
Valeurs renvoyées
Une valeur booléenne indiquant si une coche doit apparaître à côté de l'option de
menu.
receiveArguments()
Description
Traite tous les arguments transmis à partir d'un élément du menu ou de
dw.runCommand(), si un argument a été donné à la fonction dw.runCommand().
Arguments
{arg1}, {arg2},...{argN}
Si l'attribut arguments est défini pour une balise menuitem, la valeur de cet
attribut est transmise à la fonction receiveArguments() (et aux fonctions
canAcceptCommand(), isCommandChecked() et setMenuText()) sous la forme
d'un ou plusieurs arguments. L'attribut arguments permet de distinguer entre
deux éléments de menu appelant la même commande de menu.
Valeurs renvoyées
Aucune.
setMenuText()
Description
Spécifie le texte devant s'afficher dans le menu.
Remarque : n'utilisez pas cette fonction si vous utilisez getDynamicContent().
Arguments
{arg1}, {arg2},...{argN}
Si l'attribut arguments est défini pour une balise menuitem, la valeur de cet
attribut est transmise à la fonction setMenuText() (et aux fonctions
canAcceptCommand(), isCommandChecked() et receiveArguments()) sous la
forme d'un ou plusieurs arguments. L'attribut arguments permet de distinguer
entre deux éléments de menu appelant la même commande de menu.
Valeurs renvoyées
La chaîne devant apparaître dans le menu.
Commandes de menu
57
windowDimensions()
Description
Définit les dimensions de la boîte de dialogue des paramètres. Si cette fonction
n'est pas définie, les dimensions de la fenêtre sont calculées automatiquement.
Remarque : ne définissez cette fonction que si vous souhaitez utiliser une boîte de
dialogue d'options ayant des dimensions supérieures à 640 x 480 pixels.
Arguments
platform
La valeur de l'argument est soit "macintosh", soit "windows", selon la plateforme utilisée par l'utilisateur.
Valeurs renvoyées
Une chaîne de caractères au format "widthInPixels,heightInPixels".
Les dimensions renvoyées sont inférieures à la taille totale de la boîte de dialogue
parce qu'elles n'incluent pas la zone des boutons OK et Annuler. Si les dimensions
renvoyées ne permettent pas de faire apparaître toutes les options, des barres de
défilement s'affichent.
Exemple
Dans l'exemple suivant, la fonction windowDimensions() définit les dimensions
de la boîte de dialogue des paramètres à 648 x 520 pixels :
function windowDimensions(){
return "648,520";
}
58
Chapitre 5
Commande de menu simple
La commande de menu suivante est associée à deux éléments de menu : Annuler
et Rétablir. Elle vérifie l'attribut arguments de la balise menuitem et exécute une
opération dw.undo() ou dw.redo() en fonction de la valeur du premier (et
unique) argument.
<HTML>
<HEAD>
<!-- Copyright 1999 Macromedia, Inc. All rights reserved. -->
<TITLE>Edit Clipboard</TITLE>
<SCRIPT LANGUAGE="javascript">
function receiveArguments()
{
if (arguments.length != 1) return;
var whatToDo = arguments[0];
if (whatToDo == "undo")
{
dw.undo();
}
else if (whatToDo == "redo")
{
dw.redo();
}
}
function canAcceptCommand()
{
var selarray;
if (arguments.length != 1) return false;
var bResult = false;
var whatToDo = arguments[0];
if (whatToDo == "undo")
{
bResult = dw.canUndo();
}
else if (whatToDo == "redo")
{
bResult = dw.canRedo();
}
return bResult;
}
function setMenuText()
{
if (arguments.length != 1) return "";
var whatToDo = arguments[0];
if (whatToDo == "undo")
return dw.getUndoText();
Commandes de menu
59
else if (whatToDo == "redo")
return dw.getRedoText();
else return "";
}
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
Dans cette commande, la fonction receiveArguments() traite les arguments et
exécute la commande, mais il n'est pas nécessaire qu'il en soit ainsi. Des
commandes de menu plus complexes peuvent appeler des fonctions différentes
pour exécuter la commande. Par exemple, le code suivant vérifie si le premier
argument est "foo" ; si c'est le cas, il appelle la fonction doOperationX() et lui
transmet le deuxième argument. Si le premier argument est "bar", le code appelle
la fonction doOperationY() et lui transmet le deuxième argument. La fonction
doOperationX() ou doOperationY() est chargée de l'exécution de la
commande.
function receiveArguments(){
if (arguments.length != 2) return;
var whatToDo = arguments[0];
if (whatToDo == "foo"){
doOperationX(arguments[1]);
}else if (whatToDo == "bar"){
doOperationX(arguments[1]);
}
}
60
Chapitre 5
Menu dynamique simple
La commande de menu suivante a deux actions : elle génère le sous-menu Aperçu
dans le navigateur, puis lance le fichier en cours (ou les fichiers sélectionnés dans la
fenêtre Site) dans le navigateur que l'utilisateur sélectionne dans le sous-menu.
<HTML>
<HEAD>
<!-- Copyright 1999 Macromedia, Inc. All rights reserved. -->
<TITLE>Preview Browsers</TITLE>
<SCRIPT LANGUAGE="javascript">
<!-// getDynamicContent returns the contents of a dynamically
// generated menu.
// returns an array of strings to be placed in the menu, with a
unique
// identifier for each item separated from the menu string by a
// semicolon.
//
// return null from this routine to indicate that you are not
// adding any
// items to the menu
function getDynamicContent(itemID)
{
var browsers = null;
var PIB = null;
var i;
var j=0;
var bUpdate = dw.getMenuNeedsUpdating(itemID);
if (bUpdate)
{
browsers = new Array();
PIB = dw.getBrowserList();
// each browser pair has the name of the browser and the path
// that leads to the application on disk. We only put the
// names in the menus.
for (i=0; i<PIB.length; i=i+2)
{
browsers[j] = new String(PIB[i]);
if (dw.getPrimaryBrowser() == PIB[i+1])
browsers[j] += "\tF12";
if (navigator.platform == "MacPPC")
{
if (dw.getSecondaryBrowser() == PIB[i+1])
browsers[j] += "\t ?F12";
}
else
{
if (dw.getSecondaryBrowser() == PIB[i+1])
browsers[j] += "\t Ctrl+F12";
Commandes de menu
61
}
browsers[j] += ";id='"+PIB[i]+"'";
j = j+1;
}
dw.notifyMenuUpdated(itemID, "dw.getBrowserList()");
}
return browsers;
}
function canAcceptCommand()
{
var bHaveDocument;
if (dw.getFocus() == 'site')
bHaveDocument = site.getSelection().length > 0;
else
bHaveDocument = dw.getDocumentDOM('document') != null;
return bHaveDocument;
}
function receiveArguments()
{
var theBrowser = arguments[0];
if (dw.getFocus() == 'site')
dw.browseDocument(site.getSelection(),theBrowser);
else
dw.browseDocument(dw.getDocumentPath('document'),theBrowser);
}
// -->
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
62
Chapitre 5
6
CHAPITRE 6
Rapports
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Utilisez les fonctions API Reports pour créer des rapports personnalisés ou
modifier le jeu de rapports pré-rédigés fournis avec Dreamweaver.
Les rapports sont stockés dans le dossier \Configuration\Reports. Ce dossier
contient plusieurs sous-dossiers représentant les différentes catégories de rapport,
chaque rapport ne pouvant appartenir qu'à une seule catégorie.
Chaque sous-dossier peut contenir un fichier appelé _foldername.txt. Si ce fichier
existe, son contenu est utilisé comme nom de la catégorie à la place du nom de
dossier. S'il n'existe pas, le nom du dossier est utilisé. Les noms de catégorie sont
limités à 31 caractères.
Fonctionnement des rapports
1
Pour accéder aux rapports, choisissez Site > Rapports. Dans la boîte de
dialogue qui s'affiche, sélectionnez les rapports à exécuter sur des cibles
spécifiques.
2
Sélectionnez les fichiers pour lesquels effectuer les rapports à l'aide du menu
Rapport sur. Ce menu contient les éléments suivants : Document en cours,
Tous les fichiers du site local en cours, Fichiers sélectionnés dans le site local et
Dossier. Lorsque l'option Dossier est activée, un bouton Parcourir et un champ
d'édition s'affichent pour vous permettre de choisir un dossier.
3
Vous pouvez personnaliser des rapports possédant des paramètres en choisissant
le bouton Paramètres, puis en saisissant des valeurs pour ces paramètres.
Chaque rapport est chargé d'afficher sa propre boîte de dialogue Paramètres.
Cette boîte de dialogue est facultative ; il n'est pas nécessaire de définir les
paramètres de chaque rapport. Si un rapport ne possède pas de boîte de
dialogue Paramètres, le bouton Paramètres est estompé lorsque le rapport est
sélectionné dans la liste.
63
4
Après avoir sélectionné des rapports et défini leurs paramètres, cliquez sur le
bouton Exécuter.
Chaque rapport définissant la fonction beforeReporting() appelle celle-ci
avant le début du processus de rapport. Si un rapport renvoie la valeur false à
partir de cette fonction, celle-ci est retirée du processus de rapport.
5
Chaque fichier est transmis à chaque rapport sélectionné dans la boîte de
dialogue à l'aide de la fonction processFile(). Si le rapport doit inclure des
informations sur ce fichier dans la liste des résultats, la fonction
dw.results.addResultItem() doit être appelée. Le processus se poursuit
jusqu'à ce que tous les fichiers sélectionnés par l'utilisateur soit traités ou
jusqu'au ce que l'utilisateur clique sur le bouton Arrêter situé en bas de la
fenêtre. Dreamweaver affiche le nom de chaque fichier en cours de traitement
et le nombre de fichiers restant à traiter.
Chaque rapport définissant la fonction endReporting() doit appeler cette
fonction à la fin du processus de rapport.
6
Les résultats de chaque rapport s'affichent dans une fenêtre de résultats
individuelle.
Le rapport API
La fonction processFile() est la seule fonction obligatoire pour le rapport API.
Toutes les autres fonctions sont facultatives.
processFile()
Description
Appelée lorsqu'un fichier doit être traité. La commande Rapport doit traiter le
fichier sans le modifier et utiliser la fonction addResultItem() pour renvoyer des
informations sur ce fichier. Dreamweaver publie automatiquement le DOM de
chaque fichier lorsque le traitement est fini.
Arguments
strFilePath
strFilePath
est un nom de chemin de fichier complet du fichier à traiter.
Valeurs renvoyées
Aucune.
64
Chapitre 6
beginReporting()
Description
Appelée au début du processus de rapport, avant l'exécution effective du rapport.
Si la commande Rapport renvoie false à partir de la fonction, target est exclu
du processus de rapport.
Arguments
cible (target)
est une chaîne indiquant la cible de la session de rapport. Elle peut avoir
l'une des valeurs suivantes : "CurrentDoc", "CurrentSite",
"CurrentSiteSelection" (pour les fichiers sélectionnés dans un site) ou
"Folder:+ le chemin vers le dossier sélectionné par l'utilisateur"
(par exemple, "Folder:c:temp").
target
Valeurs renvoyées
true si le rapport a été effectué avec succès, false si target est exclu du
processus de rapport.
endReporting()
Description
Appelée à la fin du processus de rapport.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
commandButtons()
Description
Définit les boutons devant figurer dans la partie droite de la boîte de dialogue
Options et leur comportement lorsque l'utilisateur clique dessus. Si cette fonction
n'est pas définie, aucun bouton n'apparaît et la balise BODY du fichier de rapport
s'étend de façon à remplir la totalité de la boîte de dialogue.
Arguments
Aucun.
Valeurs renvoyées
Un tableau contenant un nombre pair d’éléments. Le premier élément est une
chaîne contenant le libellé du premier bouton. Le deuxième élément est une
chaîne de code JavaScript définissant le comportement du premier bouton lorsque
l'utilisateur clique dessus. Les autres éléments définissent les boutons
supplémentaires de la même manière.
Rapports
65
Exemple
Dans l'exemple suivant, la fonction commandButtons() définit trois boutons :
OK, Annuler et Aide.
function commandButtons(){
return new Array("OK" , "doCommand()" , "Cancel" , ¬
"window.close()" , "Help" , "showHelp()");
}
configureSettings()
Description
Détermine si le bouton Paramètres du rapport doit être activé dans la boîte de
dialogue Rapports lorsqu'un rapport est sélectionné.
Arguments
Aucun.
Valeurs renvoyées
si le bouton Paramètres du rapport doit être activé ; false dans le cas
contraire.
true
windowDimensions()
Description
Définit les dimensions de la boîte de dialogue des paramètres. Si cette fonction
n'est pas définie, les dimensions de la fenêtre sont calculées automatiquement.
Remarque : ne définissez cette fonction que si vous souhaitez utiliser une boîte de
dialogue d'options ayant des dimensions supérieures à 640 x 480 pixels.
Arguments
platform
La valeur de l'argument est soit "macintosh", soit "windows", selon la plateforme utilisée par l'utilisateur.
Valeurs renvoyées
Une chaîne de caractères au format "widthInPixels,heightInPixels".
Les dimensions renvoyées sont inférieures à la taille totale de la boîte de dialogue
parce qu'elles n'incluent pas la zone des boutons OK et Annuler. Si les dimensions
renvoyées ne permettent pas de faire apparaître toutes les options, des barres de
défilement s'affichent.
Exemple
Dans l'exemple suivant, la fonction windowDimensions() définit les dimensions
de la boîte de dialogue des paramètres à 648 x 520 pixels :
function windowDimensions(){
return "648,520";
}
66
Chapitre 6
7
CHAPITRE 7
Modules de débogage JavaScript
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Un module de débogage JavaScript est un module d'extension particulier, qui
insère un code spécial dans un document pour interagir avec le débogueur
JavaScript. Les modules de débogage sont situés dans le dossier Program Files de
Dreamweaver, dans le sous-dossier Configuration/Debugger. Ces modules
insèrent des codes JavaScript et HTML spécifiques dans un document en cours
pour créer une « version déboguée » du document à la prochaine exécution du
Débogueur JavaScript. La « version déboguée » est simplement un ensemble de
fichiers dupliqués temporaires du document HTML et de chaque fichier
JavaScript externe, tous créés par Dreamweaver et enregistrés dans le dossier de
travail en cours. La version déboguée du fichier HTML s'affiche alors dans le
navigateur. Le code JavaScript inséré dans les fichiers temporaires, appelé
« instrumentation », communique avec le débogueur JavaScript de Dreamweaver
lorsque JavaScript est exécuté dans le navigateur.
Pour plus d'informations sur les commandes API du Débogueur JavaScript, voir
« Fonctions relatives au débogueur JavaScript », page 422.
Fonctionnement du module de débogage JavaScript
Dreamweaver est fourni avec deux modules de débogage, un pour chaque
navigateur pris en charge : Netscape et Internet Explorer. Pour prendre en charge
un navigateur différent, vous devez créer un nouveau module de débogage, puis
utiliser les fonctions dom.instrumentDocument et
dreamweaver.startDebugger pour déboguer le document dans l'autre
navigateur.
Lorsque vous appelez la fonction dom.instrumentDocument, le module de
débogage spécifié reçoit des rappels lorsque Dreamweaver analyse le code
JavaScript du document. Ainsi, vous pouvez par exemple créer un module de
débogage qui insère des commentaires ou des informations d'enregistrement à
propos du code JavaScript, au lieu d'insérer des améliorations de débogage.
67
Lorsque la fonction dom.instrumentDocument est appelée avec un module de
débogage spécifique, les étapes suivantes ont lieu.
1
Dreamweaver appelle getIncludeFiles() dans le module de débogage. Cette
fonction renvoie la liste des fichiers qui seront référencés à partir du code
d'instrumentation HTML renvoyé par getHeadInstrument() et
getBodyInstrument() (qui sont appelées ultérieurement). Les fichiers inclus
peuvent être de tous types, comme par exemple un fichier JavaScript externe ou
un contrôle JavaApplet ou ActiveX. L'ensemble des fichiers doivent résider dans
le sous-dossier Configuration/Debugger avec le module de débogage.
Dreamweaver copie les fichiers intégrés dans le répertoire contenant le fichier
en cours de débogage, puis les supprime ensuite lorsque vous quittez
Dreamweaver.
2
Le document HTML est ensuite analysé pour rechercher des balises de script et
des gestionnaires d'événements. Le code de la balise de script, dans un fichier
JavaScript externe ou dans un gestionnaire d'événements, est appelé bloc.
Remarque : un fichier JavaScript externe est un fichier spécifié comme attribut « src »
d'une balise SCRIPT.
3
Dreamweaver analyse d'abord les balises de script de la section HEAD.
4
Lorsque Dreamweaver trouve une balise de script ou un gestionnaire
d'événements, il appelle la fonction startBlock() des modules de débogage et
transmet le nom du fichier ainsi que les décalages de ligne et de caractère à
partir du début du fichier.
5
Dreamweaver analyse ensuite le code JavaScript dans le bloc.
6
Lorsque Dreamweaver trouve une instruction JavaScript, telle qu'une
déclaration de variable, il appelle getStepInstrument() et transmet les
décalages de ligne et de caractère ainsi que d'autres informations. Le module de
débogage renvoie une chaîne de code JavaScript qui est insérée avant
l'instruction. Faites attention de bien renvoyer un code JavaScript valide. Pour
chaque appel de getStepInstrument(), Dreamweaver enregistre le numéro de
ligne en tant que ligne de point d'arrêt valide sans tenir compte de
l'instrumentation renvoyée. Ainsi, lorsque vous démarrez le débogueur avec
dw.startDebugger(), les points d'arrêt déjà définis par l'utilisateur sont
déplacés vers l'une de ces lignes valides.
7
Lorsque Dreamweaver trouve une déclaration de fonction, il appelle
getFunctionStartInstrument() pour recevoir l'instrumentation à insérer au
début de la fonction.
Remarque : cela n'est pas considéré comme une ligne de point d'arrêt valide.
8
68
Chapitre 7
Dreamweaver continue à analyser la fonction et à appeler
getStepInstrument() pour chaque instruction de la fonction.
9
Lorsque Dreamweaver arrive à une instruction de renvoi ou à la fin de la
fonction, il appelle getFunctionEndInstument() pour recevoir
l'instrumentation à insérer avant le renvoi de la fonction.
Remarque : cela n'est pas considéré comme une ligne de point d'arrêt valide.
10
Si Dreamweaver rencontre une erreur de syntaxe ou un avertissement dans le
bloc JavaScript, il appelle alors reportError() ou reportWarning(),
respectivement. Après avoir détecté une erreur, Dreamweaver arrête l'analyse du
bloc. Il continue cependant l'analyse d'autres blocs.
11
Une fois que Dreamweaver a analysé tous les blocs de script dans la section
HEAD, il appelle getHeadInstrument() pour obtenir l'instrumentation HTML
à insérer dans la section HEAD.
Remarque : cette fonction doit renvoyer du code HTML et non JavaScript. Si le
module de débogage doit insérer du code JavaScript dans la section HEAD, il doit alors
l'inclure dans une balise SCRIPT.
12
Dreamweaver procède ensuite au traitement des blocs JavaScript (balises
SCRIPT et gestionnaires d'événements) dans la section BODY du document.
13
Après avoir instrumenté le dernier bloc de la section BODY, Dreamweaver
appelle getBodyInstrument() pour obtenir l'instrumentation HTML à
insérer dans la section BODY.
Remarque : cette fonction doit renvoyer du code HTML et non JavaScript.
14
Une fois que Dreamweaver a appelé getBodyInstrument(), il procède à un
appel final des fonctions startBlock() et getStepInstrument() pour établir
un point d'arrêt automatique. L'instrumentation ne correspond à aucune balise
SCRIPT définie par l'utilisateur, mais est insérée dans une nouvelle balise
SCRIPT après l'instrumentation BODY. Contrairement à d'autres appels de la
fonction getStepInstrument(), cette ligne n'est pas considérée comme une
ligne valide sur laquelle l'utilisateur peut définir un point d'arrêt ; elle est traitée
comme un type particulier de point d'arrêt sur lequel s'arrête systématiquement
le débogueur.
15
Enfin, Dreamweaver appelle getOnUnloadInstrument() pour obtenir une
instrumentation JavaScript à insérer dans le gestionnaire onUnload de la balise
BODY. Si le document possède déjà un gestionnaire onUnload, cette
instrumentation est insérée après le code onUnload défini par l'utilisateur.
Modules de débogage JavaScript
69
API du module de débogage JavaScript
L'API du module de débogage JavaScript vous permet de personnaliser la manière
dont est créée une version déboguée d'un document. Vous devez créer un module
de débogage pour pouvoir faire fonctionner le Débogueur JavaScript de
Dreamweaver avec un navigateur autre que les deux navigateurs (Netscape et
Internet Explorer) pris en charge par Dreamweaver. Vous pouvez également créer
un module de débogage à d'autres fins, comme par exemple pour compter le
nombre d'instructions JavaScript utilisées par un document spécifique.
Remarque : seules les balises SCRIPT et les gestionnaires d'événements sont
actuellement analysés pour instrumentation. Il existe d'autres façons d'utiliser le JavaScript
dans des documents HTML : les URL JavaScript et les entités JavaScript, commentaires
conditionnels, etc. Ces éléments ne sont actuellement pas pris en charge.
Les fonctions de l'API du module de débogage JavaScript sont uniquement
significatives dans le contexte de fichiers du module de débogage. En particulier,
Dreamweaver appelle automatiquement la fonction getStepInstrument() si elle
est définie dans le fichier du module de débogage. Pour les fichiers ayant une autre
extension, une fonction appelée getStepInstrument() agit comme une fonction
définie par l'utilisateur (vous devez l'appeler explicitement).
Contrairement à la façon dont vous travaillez avec les fonctions principales API
JavaScript, vous êtes responsables de la rédaction du corps de chaque fonction et
du renvoi d'une valeur, si nécessaire, pour les modules de débogage. Pour les
fonctions de l'API principale, vous appelez et transmettez des arguments et
Dreamweaver génère des valeurs de renvoi, le cas échéant. Pour les modules de
débogage, Dreamweaver appelle les fonctions et leur transmet des arguments et
vous générez des valeurs de renvoi, le cas échéant.
Toutes les fonctions du module de débogage JavaScript sont facultatives. Si une
fonction n'est pas définie, rien ne se passe lorsque Dreamweaver l'appelle.
getFunctionEndInstrument()
Disponibilité
Dreamweaver 4.0
Description
Appelée après la dernière instruction dans une déclaration de fonction. S'il existe
des instructions de renvoi, ce module est appelé afin d'insérer l'instrumentation,
après que la valeur de renvoi a été évaluée et avant que la fonction ne renvoie les
chaînes.
Arguments
Aucun.
Valeurs renvoyées
Une chaîne contenant le code JavaScript à insérer à la fin de la fonction.
70
Chapitre 7
getFunctionStartInstrument()
Disponibilité
Dreamweaver 4.0
Description
Appelé avant la première instruction dans une déclaration de fonction. La
fonction getStepInstrument() est également appelée pour l'instruction.
Arguments
Aucun.
Valeurs renvoyées
Une chaîne contenant le code JavaScript à insérer au début de la fonction.
getBodyInstrument()
Disponibilité
Dreamweaver 4.0
Description
Cette fonction est appelée juste après l'instrumentation de tous les blocs de la
section HEAD.
Arguments
Aucun.
Valeurs renvoyées
Une chaîne contenant le code HTML à insérer en haut de la section <BODY>.
getHeadInstrument()
Disponibilité
Dreamweaver 4.0
Description
Cette fonction est appelée juste après l'instrumentation de tous les blocs de la
section HEAD, mais avant l'instrumentation des blocs de la section BODY.
Arguments
Aucun.
Valeurs renvoyées
Une chaîne contenant le code HTML à insérer en haut de la section <HEAD>.
getIncludedFileList()
Disponibilité
Dreamweaver 4.0
Modules de débogage JavaScript
71
Description
Appelée pour obtenir une liste de fichiers référencés par code insérés dans la
section head ou body (à partir des fonctions getHeadInstrument() et
getBodyInstrument()). Ces fichiers doivent se trouver dans le répertoire
Configuration/Debugger du dossier Program Files de Dreamweaver, avec le
module de débogage de l'instrumentation.
Arguments
Aucun.
Valeurs renvoyées
Un tableau de noms de fichiers devant être copiés dans le répertoire avec les
fichiers instrumentés.
getOnUnloadInstrument()
Disponibilité
Dreamweaver 4.0
Description
Cette fonction est appelée juste après l'appel de getHeadInstrument().
Arguments
Aucun.
Valeurs renvoyées
Une chaîne contenant le code JavaScript à insérer à la fin du gestionnaire
d'événements onUnload de la balise BODY.
getStepInstrument()
Disponibilité
Dreamweaver 4.0
Description
Appelée pour chaque instruction analysée dans un bloc. La fonction
StartBlock() est toujours appelée avant d'appeler cette fonction. Dreamweaver
enregistre chaque ligne pour laquelle il appelle cette fonction en tant que point
d'arrêt valide. Après le démarrage du débogueur, tous les points d'arrêt sont
déplacés vers des lignes de points d'arrêt valides.
Arguments
lineNumber, offset, bisInFuncton
•
lineNumber
•
offset représente le décalage du premier caractère de l'instruction suivante par
est le numéro de ligne de l'instruction suivante relative au début
du bloc (index de base 1).
rapport au début du bloc (index de base 0).
72
Chapitre 7
•
bisInFunction est une expression Booléenne indiquant si l'étape se trouve
dans une définition de fonction (true) ou dans l'étendue globale (false).
Valeurs renvoyées
Une chaîne contenant le code JavaScript à insérer avant l'instruction.
reportError()
Disponibilité
Dreamweaver 4.0
Description
Appelée lorsqu'une erreur de syntaxe est détectée. Les erreurs et avertissements ne
sont pas nécessairement signalés dans l'ordre.
Arguments
fileName, errorNumber, strDesc, lineNumber, offset
•
•
•
•
fileName
•
offset est le décalage du caractère auquel l'erreur s'est produite, par rapport au
est le nom du fichier.
errorNumber
strDesc
est l'identificateur numérique de l'erreur.
est la description de l'erreur.
est le numéro de ligne dans laquelle l'erreur s'est produite, par
rapport au début du bloc.
lineNumber
début du bloc.
Valeurs renvoyées
Aucune.
reportWarning()
Disponibilité
Dreamweaver 4.0
Description
Appelée lorsqu'un avertissement est détecté dans un fichier.
Arguments
fileName, errorNumber, strDesc, lineNumber, offset
•
•
•
•
fileName
est le nom du fichier.
errorNumber
strDesc
est l'identificateur numérique de l'avertissement.
est la description de l'avertissement.
est le numéro de ligne dans laquelle l'avertissement s'est produit,
par rapport au début du bloc.
lineNumber
Modules de débogage JavaScript
73
•
est le décalage du caractère auquel l'avertissement s'est produit, par
rapport au début du bloc.
offset
Valeurs renvoyées
Aucune.
startBlock()
Disponibilité
Dreamweaver 4.0
Description
Indique le début d'un nouveau bloc de code JavaScript. Le bloc peut être une
balise de script, un gestionnaire d'événements ou un fichier .js externe.
Arguments
fileName, lineNumber, offset
•
fileName
•
lineNumber
•
offset
est le nom du document HTML ou du fichier .js contenant le bloc.
L'emplacement est défini par un chemin relatif vers le document HTML
source.
est le numéro de ligne dans le document HTML ou le fichier .js,
correspondant au début du bloc (index de base 1).
est le décalage du premier caractère du code JavaScript à partir du
début du fichier (index de base 0).
Valeurs renvoyées
Aucune.
74
Chapitre 7
8
CHAPITRE 8
Inspecteurs de propriétés
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
L'inspecteur de propriétés est probablement le panneau flottant le plus connu de
l'interface Dreamweaver. Il est indispensable pour définir, vérifier et modifier le
nom, les dimensions, l'aspect et d'autres attributs de la sélection ; il permet
également de lancer des éditeurs internes et externes pour l'élément sélectionné.
Dreamweaver intègre plusieurs interfaces compatibles avec l'inspecteur de
propriétés permettant de définir des propriétés pour de nombreuses balises
HTML standard (ces inspecteurs intégrés font partie du code Dreamweaver
élémentaire ; vous ne trouverez donc pas de fichiers d'inspecteur de propriété leur
correspondant dans le dossier Configuration). Avec les fichiers d'inspecteur de
propriétés personnalisés, vous pouvez remplacer ces interfaces intégrées ou en
créer de nouvelles pour inspecter les balises personnalisées.
Les fichiers d'inspecteur de propriétés personnalisés sont des fichiers HTML qui
résident dans le dossier Configuration/Inspectors du dossier de l'application
Dreamweaver. La première ligne d'un fichier d'inspecteur de propriétés (la ligne
située au-dessus de la balise HTML de début) doit être un commentaire respectant la
syntaxe suivante :
<!-- tag:tagNameOrKeyword,priority:1to10,selection:¬
exactOrWithin,hline,vline, serverModel -->
où :
•
•
tagNameOrKeyword est la balise à inspecter ou l'un des mots clefs
suivants : *COMMENT* (pour les commentaires), *LOCKED* (pour les
verrouillées) ou *ASP* (pour les balises ASP).
régions
est la priorité du fichier d'inspecteur de propriétés : 1 indique que cet
inspecteur doit être utilisé uniquement lorsque aucun autre ne peut inspecter la
sélection ; 10 indique que cet inspecteur a priorité sur tous les autres pouvant
inspecter la sélection.
1to10
75
•
exactOrWithin indique si la sélection peut être contenue dans la balise
(within) ou si elle doit contenir exactement la balise (exact).
•
hline
•
vline
•
serverModel
(facultatif ) indique qu'une ligne grise horizontale doit apparaître entre
les moitiés supérieure et inférieure de l'inspecteur en mode étendu.
(facultatif ) indique qu'une ligne grise verticale doit apparaître entre le
champ de nom de balise et le reste des propriétés dans l'inspecteur (voir
l'inspecteur de propriétés d'image pour obtenir un exemple).
(facultatif ) indique le modèle de serveur de l'inspecteur de
propriétés. Si le modèle de serveur de l'inspecteur de propriétés n'est pas le
même que le modèle de serveur pour le document, l'inspecteur de propriétés
n'est pas utilisé pour afficher les propriétés de la sélection en cours.
Le commentaire suivant est approprié pour un inspecteur conçu pour inspecter la
balise HAPPY :
<!-- tag:HAPPY, priority:8,selection:exact,hline,vline, ¬
serverModel:ASP -->
Le corps (BODY) du fichier d'inspecteur de propriétés contient un formulaire
HTML. Toutefois, au lieu d'afficher le contenu du formulaire dans une boîte de
dialogue, Dreamweaver utilise le formulaire pour définir les zones d'entrée et la
mise en page de l'inspecteur.
Comment fonctionnent les fichiers
d'inspecteur de propriétés
Au démarrage, Dreamweaver lit la première ligne de chaque fichier .htm et .html
dans le dossier Configuration/Inspectors, recherchant la chaîne de commentaire
qui définit le type, la priorité et le type de sélection d'un inspecteur de propriétés.
Les fichiers qui ne possèdent pas ce commentaire en première ligne sont ignorés.
Lorsque l'utilisateur effectue une sélection dans Dreamweaver ou déplace le point
d'insertion vers un emplacement différent, la chaîne d'événements suivante a lieu :
76
Chapitre 8
1
Dreamweaver recherche tout inspecteur possédant un type de sélection within.
2
S'il n'existe aucun inspecteur within, Dreamweaver recherche l'arborescence
du document à partir de la balise actuellement sélectionnée pour vérifier s'il
existe des inspecteurs pour les autres balises entourant la sélection. Si, et
seulement si, il n'existe aucun inspecteur within, Dreamweaver recherche tous
les inspecteurs possédant un type de sélection exact.
3
Pour la première balise trouvée possédant un ou plusieurs inspecteurs,
Dreamweaver appelle chaque fonction canInspectSelection() de
l'inspecteur. Si la fonction renvoie false, Dreamweaver ne considère plus
l'inspecteur comme un candidat pour inspecter cette sélection.
4
S'il reste plusieurs inspecteurs potentiels après avoir appelé
canInspectSelection(), Dreamweaver trie les inspecteurs restant en
fonction de leur priorité.
5
Si plusieurs inspecteurs potentiels ont le même degré de priorité, Dreamweaver
choisit l'inspecteur suivant l'ordre alphabétique.
6
L'inspecteur choisi apparaît dans le panneau flottant Inspecteur de propriétés.
Si le fichier d'inspecteur de propriétés définit la fonction displayHelp(), une
petite icône point d'interrogation (?) est affichée dans le coin supérieur droit de
l'inspecteur.
7
Dreamweaver appelle la fonction inspectSelection() pour réunir des
informations sur la sélection en cours et renseigner les champs de l'inspecteur.
8
Les gestionnaires d'événements associés aux champs dans l'interface de
l'inspecteur de propriétés s'exécutent au fur et à mesure que l'utilisateur les
rencontre (par exemple, vous pouvez avoir un événement onBlur qui appelle
setAttribute() pour définir un attribut à la valeur venant d'être saisie par
l'utilisateur).
API de l'inspecteur de propriétés
Deux des fonctions de l'API de l'inspecteur de propriétés
(canInspectSelection() et inspectSelection()) sont requises. Les fonctions
de l'API de l'inspecteur de propriétés diffèrent des fonctions de l'API JavaScript
principale, sur trois points :
• Elles ne sont pas des méthodes de l'objet dreamweaver, dom ou site.
• Elles ne sont significatives que dans le contexte des fichiers d'inspecteur de
propriétés. En d'autres termes, Dreamweaver appelle automatiquement la
fonction canInspectSelection() dans un fichier d'inspecteur de propriétés,
tandis que dans tout autre fichier d'extension, une fonction nommée
canInspectSelection() fonctionne comme une fonction définie par
l'utilisateur et doit donc être appelée explicitement.
• Il vous incombe d'écrire le corps de chaque fonction et de renvoyer une valeur,
si nécessaire. Ce mode de fonctionnement est à l'opposé de celui des fonctions
de l'API principale dans laquelle vous appelez les fonctions et leur transmettez
des arguments, avant que Dreamweaver ne génère des valeurs renvoyées, le cas
échéant. Dans le cas de cette API spécifique, Dreamweaver appelle les fonctions
et leur transmet des arguments et vous générez ensuite des valeurs renvoyées, le
cas échéant.
canInspectSelection()
Description
Détermine si l'inspecteur de propriétés est approprié pour la sélection en cours.
Inspecteurs de propriétés
77
Arguments
Aucun.
Utilisez dom.getSelectedNode() pour obtenir la sélection en cours en tant
qu'objet JavaScript.
Valeurs renvoyées
true
si l'inspecteur peut inspecter la sélection en cours ; sinon false.
Exemple
L'occurrence suivante de canInspectSelection() renvoie true si la sélection
contient l'attribut CLASSID et si la valeur de cet attribut est "clsid:D27CDB6EAE6D-11cf-96B8-444553540000" (l'ID de classe pour Flash Player) :
function canInspectSelection(){
var theDOM = dw.getDocumentDOM();
var theObj = theDOM.getSelectedNode();
return (theObj.nodeType == Node.ELEMENT_NODE && ¬
theObj.hasAttribute("classid") && ¬
theObj.getAttribute("classid").toLowerCase()== ¬
"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000");
}
displayHelp()
Description
Si la fonction est définie, une icône point d'interrogation (?) apparaît dans le coin
supérieur droit de l'inspecteur de propriétés. Cette fonction est appelée lorsque
l'utilisateur clique sur l'icône.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Exemple
L'occurrence suivante de displayHelp() ouvre un fichier dans une fenêtre du
navigateur expliquant les champs de l'inspecteur de propriétés:
function displayHelp(){
dreamweaver.browseDocument('http://www.hooha.com/dw/¬
inspectors/inspHelp.html');
}
inspectSelection()
Description
Actualise le contenu des champs d'entrée de l'utilisateur en fonction des attributs
de la sélection en cours.
78
Chapitre 8
Arguments
maxOrMin
L'argument est max ou min, suivant si l'inspecteur de propriétés est en état
développé ou compressé.
Valeurs renvoyées
Aucune.
Exemple
L'occurrence suivante de inspectSelection() récupère la valeur de l'attribut
CONTENT et l'utilise pour remplir un champ de formulaire appelé keywords :
function inspectSelection() {
var dom = dreamweaver.getDocumentDOM();
var theObj = dom.getSelectedNode();
document.forms[0].keywords.value = ¬
theObj.getAttribute("content");
}
Inspecteurs de propriétés
79
Un exemple simple d'inspecteur de
propriétés
L'inspecteur de propriétés suivant inspecte une balise fictive appelée INTJ. La
balise INTJ est vide (c'est-à-dire qu'elle ne possède pas de balise de fermeture) ;
son type de sélection est donc exact. Tant que la sélection est exactement une
balise INTJ, l'inspecteur de propriétés doit s'afficher (afin que la fonction
canInspectSelection() renvoie true à chaque fois). Pour qu'un inspecteur
différent s'affiche en fonction de la valeur de l'attribut TYPE de la balise INTJ, par
exemple, la fonction canInspectSelection() doit vérifier la valeur de l'attribut
TYPE afin de déterminer quel est le bon inspecteur de propriétés. Ceci correspond
au fonctionnement des mots clés et des inspecteurs de propriétés, car « keywords »
et « description » ne sont pas des balises mais des valeurs de l'attribut NAME de la
balise META.
<!-- tag:INTJ,priority:5,selection:exact,vline,hline -->
<HTML>
<HEAD>
<TITLE>Interjection Inspector</TITLE>
<SCRIPT LANGUAGE="JavaScript">
function canInspectSelection(){
return true;
}
function inspectSelection() {
// Get the DOM of the current document var
// theDOM = dw.getDocumentDOM();
// Get the selected node var theObj = theDOM.getSelectedNode();
// Get the value of the TYPE attribute on the INTJ tag var
// theType = theObj.getAttribute('type');
// Initialize a variable called typeIndex to -1. This will be
// used to store the menu index that corresponds to
// the value of the TYPE attribute
var typeIndex = -1;
// If there was a TYPE attribute
if (theType){
// If the value of TYPE is "jeepers", set typeIndex to 0
if (theType.toLowerCase() == "jeepers"){
typeIndex = 0;
// If the value of TYPE is "jinkies", set typeIndex to 1
}else if (theType.toLowerCase() == "jinkies"){
typeIndex = 1;
// If the value of TYPE is "zoinks", set typeIndex to 2
}else if (theType.toLowerCase() == "zoinks"){
typeIndex = 2;
}
}
80
Chapitre 8
//
//
//
if
If the value of the TYPE attribute was "jeepers",
"jinkies", or "zoinks", choose the corresponding
option from the pop-up menu in the interface
(typeIndex != -1){
document.topLayer.document.topLayerForm.intType.¬
selectedIndex = typeIndex;
}
}
function setInterjectionTag(){
// Get the DOM of the current document
var theDOM = dw.getDocumentDOM();
// Get the selected node
var theObj = theDOM.getSelectedNode();
// Get the index of the selected option in the pop-up menu
// in the interface
var typeIndex = document.topLayer.document.¬
topLayerForm.intType.selectedIndex;
// Get the value of the selected option in the pop-up menu
// in the interface
var theType = document.topLayer.document.¬
topLayerForm.intType.options[typeIndex].value;
// Set the value of the TYPE attribute to theType
theObj.setAttribute('type',theType);
}
</SCRIPT>
</HEAD>
<BODY>
<SPAN ID="image" STYLE="position:absolute; width:23px; ¬
height:17px; z-index:16; left: 3px; top: 2px">
<IMG SRC="interjection.gif" WIDTH="36" HEIGHT="36" ¬
NAME="interjectionImage">
</SPAN>
<SPAN ID="label" STYLE="position:absolute; width:23px; ¬
height:17px; z-index:16; left: 44px; top: 5px">Interjection</SPAN>
<!-- If your form fields are in different layers, you must ¬
create a separate form inside each layer and reference it as ¬
shown in the inspectSelection() and setInterjectionTag() ¬
functions above. -->
<SPAN ID="topLayer" STYLE="position:absolute; z-index:1; ¬
left: 125px; top: 3px; width: 431px; height: 32px">
<FORM NAME="topLayerForm">
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0">
<TR>
<TD VALIGN="baseline" ALIGN="right">Entrez :</TD>
<TD VALIGN="baseline" ALIGN="right">
Inspecteurs de propriétés
81
<SELECT NAME="intType" STYLE="width:86" ¬
onChange="setInterjectionTag()">
<OPTION VALUE="jeepers">Jeepers***</OPTION>
<OPTION VALUE="jinkies">Jinkies***</OPTION>
<OPTION VALUE="zoinks">Zoinks***</OPTION>
</SELECT>
</TR>
</TABLE>
</FORM>
</SPAN>
</BODY>
</HTML>
82
Chapitre 8
9
CHAPITRE 9
Panneaux flottants
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Vous pouvez créer tous types de panneaux flottants ou d'inspecteurs sans les
limitations de taille ou de mise en page de l'inspecteur de propriétés.
Un inspecteur de propriétés personnalisé doit rester votre premier choix lorsque
vous définissez les propriétés de la sélection en cours. Toutefois, les panneaux
flottants personnalisés offrent plus d'espace et de souplesse pour afficher des
informations relatives à l'ensemble du document ou à plusieurs sélections.
Dreamweaver possède déjà plusieurs panneaux flottants intégrés accessibles depuis
le menu Fenêtre ; vous pouvez ajouter vos propres panneaux à ce menu à l'aide de
la fonction d'extension des menus (ces panneaux intégrés font partie du code
principal de Dreamweaver ; vous ne trouverez donc pas de fichier de panneau
flottant leur correspondant dans le dossier Configuration). Pour plus
d'informations sur l'ajout d'éléments au système de menus, reportez-vous au
chapitre « Personnalisation de Dreamweaver » du manuel Utilisation de
Dreamweaver.
Les fichiers de panneaux flottants personnalisés sont des fichiers HTML qui
résident dans le dossier Configuration/Floaters du dossier de l'application
Dreamweaver. La balise BODY d'un fichier de panneau flottant contient un
formulaire HTML. Des gestionnaires d'événements associés aux éléments du
formulaire peuvent appeler un code JavaScript pour effectuer des modifications
arbitraires dans le document en cours.
83
Fonctionnement des fichiers de panneau
flottant
Les panneaux flottants personnalisés peuvent être déplacés, redimensionnés et
leurs onglets combinés, à l'instar des panneaux flottants intégrées à Dreamweaver.
Les panneaux flottants personnalisés présentent les différences suivantes par
rapport aux panneaux flottants intégrés :
• Il n'est pas possible d'afficher une icône dans l'onglet d'un panneau flottant
personnalisé ; l'onglet affiche toujours le contenu de la balise TITLE du
panneau flottant.
• Les panneaux flottants personnalisés s'affichent en gris par défaut. La définition
de l'attribut BGCOLOR dans la balise BODY n'a aucun effet.
• Tous les panneaux flottants personnalisés s'affichent toujours en haut de la
fenêtre de document ou bien flottent derrière celle-ci lorsqu'ils sont inactifs,
suivant le paramètre de l'option Toutes autres palettes défini dans les
Préférences de panneaux flottants.
Les fichiers de panneau flottant diffèrent également des autres fichiers d'extension.
Contrairement aux autres fichiers d'extension, Dreamweaver ne charge pas de
fichiers de panneau flottant en mémoire au démarrage, sauf si les panneaux
flottants étaient affichés la dernière fois que Dreamweaver a été fermé. Si aucun
panneau flottant n'était visible lors de la dernière fermeture de Dreamweaver, les
fichiers définissant ces panneaux sont chargés uniquement lorsqu'ils sont
référencés à partir de l'une des fonctions suivantes :
dreamweaver.getFloaterVisibility(),
dreamweaver.setFloaterVisibility() ou dreamweaver.toggleFloater().
Lorsqu'un des fichiers du dossier Configuration appelle
dw.getFloaterVisibility(floaterName),
dw.setFloaterVisibility(floaterName) ou
dw.toggleFloater(floaterName), la chaîne d'événements suivante a lieu :
84
Chapitre 9
1
Si l’argument floaterName ne correspond pas à l'un des noms de panneau
flottant réservés, Dreamweaver recherche dans le dossier Configuration/
Floaters un fichier nommé floaterName.htm (pour obtenir une liste complète
des noms de panneau flottant réservés, voir la section
« dreamweaver.getFloaterVisibility() », page 554). Si le fichier
floaterName.htm est introuvable, Dreamweaver recherche
floaterName.html. Si aucun fichier de ce nom n'est trouvé, aucun autre
événement ne se produit.
2
Si le fichier de panneau flottant est chargé pour la première fois, la fonction
initialPosition() est appelée, si elle est définie, pour déterminer la position
par défaut du panneau flottant à l'écran et la fonction initialTabs() est
appelée, si elle est définie, pour déterminer son groupement d'onglets par
défaut.
3
Les fonctions selectionChanged() et documentEdited() sont appelées car il
est supposé que des modifications ont été apportées pendant que le panneau
flottant était masqué.
4
Lorsque le panneau flottant est visible, les événements suivants se produisent :
• Lorsqu'un élément différent est sélectionné, la fonction selectionChanged()
est appelée, si elle est définie.
• Lorsque l'utilisateur modifie le document, la fonction documentEdited() est
appelée, si elle est définie.
• Les gestionnaires d'événements associés aux champs dans l'interface de panneau
flottant s'exécutent au fur et à mesure que l'utilisateur les rencontre (par
exemple, un bouton associé à un gestionnaire d'événements onClick appelant
dw.getDocumentDOM().body.innerHTML=’’ a pour effet, lorsque l'utilisateur
clique dessus, de supprimer tous les éléments situés entre les balises BODY de
début et de fin dans le document).
5
Lorsque l'utilisateur quitte Dreamweaver, la visibilité, la position et le
groupement d'onglets actuellement définis pour le panneau flottant sont
enregistrés. Au démarrage suivant, l'application Dreamweaver charge les
fichiers de panneau flottant correspondant à tous les panneaux flottants qui
étaient affichés au moment de la dernière fermeture de l'application et elle
affiche les panneaux flottants au même endroit et avec le même groupement
d'onglets.
API du panneau flottant
Les fonctions personnalisées de l'API de panneau flottant sont toutes facultatives.
Ces fonctions diffèrent des fonctions de l'API JavaScript principale sur trois
points :
• Elles ne sont pas des méthodes de l'objet dreamweaver, dom ou site.
• Elles sont significatives uniquement dans le contexte des fichiers de panneau
flottant. En d'autres termes, Dreamweaver appelle automatiquement la
fonction documentEdited() seulement si elle est définie dans un fichier de
panneau flottant, tandis que dans tout autre fichier d'extension, une fonction
nommée documentEdited() fonctionne de la même façon qu'une fonction
définie par l'utilisateur et doit donc être appelée explicitement.
• Il vous incombe d'écrire le corps de chaque fonction et de renvoyer une valeur,
si nécessaire. Ce mode de fonctionnement est à l'opposé de celui des fonctions
de l'API principale dans laquelle vous appelez les fonctions et leur transmettez
des arguments, avant que Dreamweaver ne génère des valeurs renvoyées, le cas
échéant. Dans le cas de cette API spécifique, Dreamweaver appelle les fonctions
et leur transmet des arguments et vous générez ensuite des valeurs renvoyées, le
cas échéant.
Panneaux flottants
85
displayHelp()
Description
Si cette fonction est définie, un bouton Aide s'affiche sous les boutons OK et
Annuler dans la boîte de dialogue. Cette fonction est appelée lorsque l'utilisateur
clique sur le bouton Aide.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Exemple
Dans l'exemple suivant, la fonction displayHelp() ouvre dans une fenêtre de
navigateur un fichier contenant les instructions :
function displayHelp(){
dreamweaver.browseDocument('http://www.hotwired.com/¬
webmonkey/javascript? /code_library/wm_pos2_elmnt_dw/¬
?tw=javascript');
}
documentEdited()
Description
Appelée lorsque le panneau flottant s'affiche et une fois que la série de
modifications en cours est terminée, ce qui signifie que plusieurs modifications
peuvent être effectuées avant que cette fonction ne soit appelée. Cette fonction ne
doit être définie que si le panneau flottant doit assurer le suivi des modifications
apportées au document.
Remarque : ne définissez la fonction documentEdited() que si vous en avez
absolument besoin, car elle a un impact sur les performances.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
86
Chapitre 9
Exemple
Dans l'exemple suivant, la fonction documentEdited() recherche des calques
dans le document et met à jour un champ de texte affichant le nombre de calques
du document :
function documentEdited(){
/* create a list of all the layers in the document */
var theDOM = dw.getDocumentDOM();
var layersInDoc = theDOM.getElementsByTagName("layer");
var layerCount = layersInDoc.length;
/* update the numOfLayers field with the new layer count */
document.theForm.numOfLayers.value = layerCount;
}
initialPosition()
Description
Détermine la position initiale du panneau flottant lorsqu'il est appelé pour la
première fois. Si cette fonction n'est pas définie, la position par défaut est le centre
de l'écran.
Arguments
platform
Les valeurs possibles pour l'argument platform sont "Mac" et "Win".
Valeurs renvoyées
Une chaîne au format "leftPosInPixels,topPosInPixels".
Exemple
Dans l'exemple suivant, la fonction initialPosition() spécifie que lorsque le
panneau flottant s'affiche pour la première fois, il doit se trouver à 420 pixels du
côté gauche de l'écran et à 20 pixels du haut de l'écran sous Windows, et à
390 pixels du côté gauche et à 20 pixels du haut de l'écran sur Macintosh :
function initialPosition(platform){
var initPos = "420,20";
if (platform == "macintosh"){
initPos = "390,20";
}
return initPos;
}
Panneaux flottants
87
initialTabs()
Description
Détermine les autres panneaux flottants dont les onglets sont combinés à ceux de
ce panneau, lorsqu'il s'affiche pour la première fois. Si l'un des panneaux flottants
répertoriés s'est affiché précédemment, il n'est pas inclus dans le groupement
d'onglets. Ainsi, pour que les onglets de deux panneaux flottants personnalisés
soient combinés, chacun d'eux doit référencer l'autre dans sa fonction
initialTabs().
Arguments
Aucun.
Valeurs renvoyées
Chaîne au format "floaterName1,floaterName2,...floaterNameN".
Exemple
Dans l'exemple suivant, la fonction initialTabs() spécifie que lorsque le
panneau flottant s'affiche pour la première fois, ses onglets doivent être combinés
à ceux du panneau flottant scriptEditor :
function initialTabs(){
return "scriptEditor";
}
isAvailableInCodeView()
Description
Défini par un panneau flottant afin de déterminer si le panneau flottant doit être
activé lorsque l'Affichage de code est actif. Si cette fonction n'est pas définie, le
panneau flottant est désactivé dans l'Affichage de code.
Arguments
Aucun.
Valeurs renvoyées
Une valeur booléenne indiquant si le panneau flottant doit être activé.
selectionChanged()
Description
Appelée lorsque le panneau flottant s'affiche et à chaque changement de sélection
(lorsqu'un nouveau document devient actif ou lorsque le pointeur d'insertion
passe à un nouvel emplacement dans le document actif ). Cette fonction ne doit
être définie que si le panneau flottant doit assurer le suivi de la sélection.
Remarque : ne définissez la fonction selectionChanged() que si vous en avez
absolument besoin, car elle a un impact sur les performances.
88
Chapitre 9
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Exemple
Dans l'exemple suivant, la fonction selectionChanged() affiche un panneau
(calque) différent dans le panneau flottant selon que la sélection est un marqueur
de script ou autre chose :
function selectionChanged(){
/* get the selected node */
var theDOM = dw.getDocumentDOM();
var theNode = dw.getSelectedNode();
/* check to see if the node is a script marker */
if (theNode.nodeType == Node.ELEMENT_NODE && ¬
theNode.tagName == "SCRIPT"){
document.layers['blanklayer'].visibility = 'hidden';
document.layers['scriptlayer'].visibility = 'visible';
}else{
document.layers['scriptlayer'].visibility = 'hidden';
document.layers['blanklayer'].visibility = 'visible';
}
}
A propos des performances
La déclaration des fonctions selectionChanged() ou documentEdited() dans
vos panneaux flottants personnalisés risque d'avoir des répercussions négatives sur
les performances de Dreamweaver. Cela est dû au fait que la fonction
documentEdited() est appelée après chaque frappe d'une touche et que la
fonction selectionChanged() est appelée chaque fois qu'une touche de
direction est utilisée si Dreamweaver est resté inactif plus d'un dixième de
seconde. Il est important de tester votre panneau flottant avec divers scénarios, en
utilisant des documents volumineux (100 K ou plus de code HTML) autant que
possible.
Pour vous aider à éviter les pertes de performances, la fonction setTimeout() a
été implémentée en tant que méthode globale dans Dreamweaver 3. Tout comme
dans les navigateurs, setTimeout() accepte deux arguments : le code JavaScript
devant être appelé et le délai d'attente avant cet appel en millisecondes.
La méthode setTimeout() vous permet d'introduire dans votre traitement des
pauses au cours desquelles l'utilisateur peut poursuivre son interaction avec
l'application. Vous devez incorporer ces pauses de façon explicite étant donné que
l'écran se fige pendant le traitement des scripts et, par conséquent, empêche à
l'utilisateur d'effectuer des modifications supplémentaires (et à vous-même de
mettre à jour l'interface ou le panneau flottant).
Panneaux flottants
89
Le code suivant correspond à un panneau flottant qui affiche des informations sur
chacun des calques du document. Il utilise la méthode setTimeout() pour
marquer une pause d'une demi-seconde après le traitement de chaque calque :
/* create a flag that specifies whether an edit is being
processed, and set it to false. */
document.running = false;
/* this function called when document is edited */
function documentEdited(){
/* create a list of all the layers to be processed */
var dom = dw.getDocumentDOM();
document.layers = dom.getElementsByTagName("layer");
document.numLayers = document.layers.length;
document.numProcessed = 0;
/*
*
*
if
set a timer to call processLayer(); if we didn't get
to finish processing the previous edit, then the timer
is already set. */
(document.running = false){
setTimeout("processLayer()", 500);
}
/* set the processing flag to true */
document.running = true;
}
/* process one layer */
function processLayer(){
/* display information for the next unprocessed layer.
displayLayer() is a function you would write to
perform the "magic". */
displayLayer(document.layers[document.numProcessed]);
/* if there's more work to do, set a timeout to process
* the next layer. If we're finished, set the document.running
* flag to false. */
document.numProcessed = document.numProcessed + 1;
if (document.numProcessed < document.numLayers){
setTimeout("processLayer()", 500);
}else{
document.running = false;
}
}
90
Chapitre 9
Exemple de panneau flottant simple
Le panneau flottant suivant contient un champ de texte indiquant le contenu du
marqueur de script sélectionné (l'icône jaune qui s'affiche dans la fenêtre de
document pour marquer l'emplacement d'un script). Si aucun marqueur de script
n'est sélectionné, un calque contenant le texte (no script selected) s'affiche.
<html>
<head>
<title>Script Editor</title>
<script language="JavaScript">
function selectionChanged(){
/* get the selected node */
var theDOM = dw.getDocumentDOM();
var theNode = theDOM.getSelectedNode();
/* check to see if the node is a script marker */
if (theNode.nodeType == Node.ELEMENT_NODE && ¬
theNode.tagName == "SCRIPT"){
document.layers['scriptlayer'].visibility = 'visible';
document.layers['scriptlayer'].document.theForm.¬
scriptCode.value = theNode.innerHTML;
document.layers['blanklayer'].visibility = 'hidden';
}else{
document.layers['scriptlayer'].visibility = 'hidden';
document.layers['blanklayer'].visibility = 'visible';
}
}
/* update the document with any changes made by
the user in the textarea */
function updateScript(){
var theDOM = dw.getDocumentDOM();
var theNode = dw.getSelectedNode();
theNode.innerHTML = document.layers['scriptlayer'].document.¬
theForm.scriptCode.value;
}
</script>
</head>
<body>
<div id="blanklayer" style="position:absolute; width:422px; ¬
height:181px; z-index:1; left: 8px; top: 11px; ¬
visibility: hidden">
<center>
<br>
<br>
<br>
<br>
<br>
Panneaux flottants
91
(no script selected)
</center>
</div>
<div id="scriptlayer" style="position:absolute; width:422px; ¬
height:181px; z-index:1; left: 8px; top: 11px; ¬
visibility: visible">
<form name="theForm">
<textarea name="scriptCode" cols="80" rows="20" wrap="VIRTUAL" ¬
onBlur="updateScript()"></textarea>
</form>
</div>
</body>
</html>
Rappelez-vous qu'il n'est pas suffisant d'enregistrer ce code dans un fichier appelé
scriptEditor.htm situé dans le dossier Configuration/Floaters ; vous devez
également appeler dw.setFloaterVisibility(‘scriptEditor’,true) ou
dw.toggleFloater(‘scriptEditor’) à partir d'un endroit quelconque pour
charger le panneau flottant et le rendre visible. Le fichier menus.xml du menu
Fenêtre est l'endroit le plus logique à partir duquel vous pouvez effectuer cet
appel. La balise menuitem pourrait ressembler à ce qui suit :
<menuitem name="Script Editor" enabled="true" ¬
command="dw.toggleFloater('scriptEditor')"¬
checked="dw.getFloaterVisibility('scriptEditor')" />
92
Chapitre 9
10
CHAPITRE 10
Comportements
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les comportements permettent aux personnes qui ne savent pas rédiger des
programmes de créer des pages HTML interactives. Ils offrent aux concepteurs de
sites web un moyen d'affecter facilement des actions à des éléments de page en
remplissant un formulaire HTML.
Vous devez écrire des actions de comportement lorsque vous souhaitez partager
des fonctions avec des utilisateurs non-programmeurs ou lorsque vous souhaitez
insérer la même fonction JavaScript à plusieurs reprises tout en modifiant les
paramètres à chaque fois.
Remarque : vous ne pouvez pas utiliser les comportements pour insérer des fonctions
VBScript directement ; vous pouvez toutefois ajouter une fonction VBScript indirectement
en modifiant le DOM dans la fonction applyBehavior().
Le terme comportement fait référence à la combinaison d'un événement (tel que
onClick, onLoad ou onSubmit) et d'une action (par exemple, Vérifier le plug-in,
Atteindre l'URL, Intervertir une image). Le navigateur détermine quels éléments
HTML acceptent quels événements. Les fichiers répertoriant les événements que
chaque navigateur prend en charge sont stockés dans le dossier Configuration/
Behaviors/Events du dossier de l'application Dreamweaver.
Les actions constituent la partie d'un comportement sur laquelle vous avez le
contrôle ; ainsi, lorsque vous rédigez un comportement, vous rédigez en réalité un
fichier d'action. Les actions sont des fichiers HTML. La balise BODY d'un fichier
d'action contient généralement un formulaire HTML qui accepte les paramètres
de l'action (par exemple, les paramètres indiquant les calques à afficher ou
masquer). La balise HEAD d'un fichier d'action contient des fonctions JavaScript
qui traitent les entrées de formulaire de la balise BODY et contrôlent les fonctions,
arguments et gestionnaires d'événement insérés dans le document de l'utilisateur.
Remarque : pour plus d'informations sur les comportements des serveurs qui offrent une
fonctionnalité d'application web, voir « Comportements de serveur », page 107.
93
Fonctionnement des comportements
Lorsqu'un utilisateur sélectionne un élément HTML dans un document
Dreamweaver et ouvre le panneau Comportements, la chaîne d'événements
suivante se produit :
1
L'utilisateur clique sur le bouton plus (+) pour afficher le menu contextuel des
actions.
Pour déterminer le contenu du menu déroulant, UltraDev recherche d'abord
un fichier Behaviors.xml dans le dossier Actions dans le chemin d'accès
Configuration/Behaviors. Le fichier Behaviors.xml référence les fichiers HTML
dont la balise de titre ou le nom de fichier figureront dans le menu contextuel.
Si le fichier HTML référencé contient une balise de titre (title), le contenu de
cette balise s'affiche dans le menu. Si le fichier ne contient pas de balise de titre,
c'est le nom du fichier qui apparaît dans le menu.
S'il n'y a pas de fichier Behaviors.xml ou si le répertoire contient un ou
plusieurs fichiers HTML non mentionnés dans Behaviors.xml, UltraDev
recherche une balise de titre dans chaque fichier et fait figurer dans le menu le
nom de cette balise ou celui du fichier.
94
Chapitre 10
2
Dreamweaver appelle la fonction canAcceptBehavior() dans chaque fichier
d'action pour vérifier si l'action est adaptée au document ou à l'élément
sélectionné. Si cette fonction renvoie la valeur false, Dreamweaver estompe
l'action dans le menu déroulant des actions (par exemple, l'action Contrôler
Shockwave ou Flash est estompée lorsque le document de l'utilisateur ne
contient pas d'animation Shockwave). Si la valeur renvoyée est une liste
d'événements, Dreamweaver les compare un à un aux événements valides de
l'élément HTML actuellement sélectionné et du navigateur cible jusqu'à ce
qu'une correspondance soit trouvée.
3
Dreamweaver insère au début de la liste du menu déroulant des événements
l'événement correspondant obtenu à partir de la fonction
canAcceptBehavior() ; si aucune correspondance n'a été trouvée,
l'événement par défaut de l'élément HTML (marqué d'un astérisque dans le
fichier d'événements) devient le premier élément de la liste. Les autres
événements du menu sont retirés du fichier d'événements.
4
L'utilisateur sélectionne une action dans le menu déroulant des actions.
5
Dreamweaver appelle la fonction windowDimensions(), si elle est définie, pour
déterminer la taille de la boîte de dialogue des paramètres. Si la fonction
windowDimensions() n'est pas définie, la taille est déterminée
automatiquement.
6
Dreamweaver affiche une boîte de dialogue contenant les éléments BODY du
fichier d'action. Si la balise BODY du fichier d'action contient un gestionnaire
onLoad, Dreamweaver l'exécute.
7
L'utilisateur entre les paramètres de l'action. Dreamweaver exécute les
gestionnaires d'événements associés aux champs du formulaire au fur et à
mesure que l'utilisateur les rencontre.
8
L'utilisateur clique sur OK.
9
Dreamweaver appelle les fonctions behaviorFunction() et
applyBehavior() dans le fichier d'action sélectionné. Ces fonctions renvoient
des chaînes qui sont insérées dans le document de l'utilisateur.
10
Si l'utilisateur double-clique sur l'action dans la colonne des actions,
Dreamweaver rouvre la boîte de dialogue des paramètres en exécutant le
gestionnaire onLoad. Dreamweaver appelle alors la fonction
inspectBehavior() dans le fichier d'action sélectionné, ce qui a pour effet de
renseigner les champs à l'aide des données que l'utilisateur a entrées
précédemment.
Insertion de plusieurs fonctions dans le fichier de l'utilisateur
Les actions peuvent insérer plusieurs fonctions (la fonction de comportement
principale et un nombre illimité de fonctions d'aide) dans l'élément HEAD.
Plusieurs comportements peuvent même partager des fonctions d'aide, à
condition que les fonctions soient définies exactement de la même façon dans
chaque fichier d'action. Une façon d'assurer que les fonctions partagées sont
identiques consiste à stocker chaque fonction d'aide dans un fichier JavaScript
externe et à insérer ce dernier dans les fichiers d'action appropriés à l'aide de
<SCRIPT SRC="externalFile.js">.
Lorsque l'utilisateur supprime un comportement, Dreamweaver tente de
supprimer toutes les fonctions d'aide inutilisées associées à ce comportement. Si
d'autres comportements utilisent une fonction d'aide, celle-ci n'est pas supprimée.
Du fait que l'algorithme de suppression des fonctions d'aide pèche par excès de
prudence, Dreamweaver peut occasionnellement laisser une fonction inutilisée
dans le document de l'utilisateur.
Procédure à suivre lorsqu'une action exige une valeur
renvoyée
Il peut arriver qu'un gestionnaire d'événements exige une valeur renvoyée (par
exemple, onMouseOver="window.status='This is a link'; return true").
Mais si Dreamweaver insère "return behaviorName(args)" dans le
gestionnaire d'événements, les autres comportements de la liste sont ignorés.
Comportements
95
Pour contourner cette limitation, affectez à une variable appelée
document.MM_returnValue la valeur de renvoi désirée dans la chaîne renvoyée
par behaviorFunction(). Ce paramétrage entraîne l'insertion par Dreamweaver
de return document.MM_returnValue à la fin de la liste des actions du
gestionnaire d'événements. Reportez-vous au fichier Validate Form.js situé dans le
dossier Configuration/Behaviors/Actions du dossier de l'application Dreamweaver
pour voir un exemple d'utilisation de MM_returnValue.
API de comportement
Deux fonctions d'API de comportements sont obligatoires (applyBehavior() et
behaviorFunction()) ; les autres sont facultatives. Les fonctions de l'API de
comportement diffèrent des fonctions de l'API JavaScript principale sur trois
points :
• Elles ne sont pas des méthodes de l'objet dreamweaver, dom ou site.
• Elles ne sont significatives que dans le contexte des fichiers de comportement.
En d'autres termes, Dreamweaver n'appelle automatiquement la fonction
applyBehavior() que si elle est définie dans un fichier de comportement,
tandis que dans tout autre fichier d'extension, une fonction nommée
applyBehavior() se comporte comme une fonction utilisateur et vous devez
l'appeler explicitement.
• Il vous incombe d'écrire le corps de chaque fonction et de renvoyer une valeur,
si nécessaire. Ce mode de fonctionnement est à l'opposé de celui des fonctions
de l'API principale dans laquelle vous appelez les fonctions et leur transmettez
des arguments, avant que Dreamweaver ne génère des valeurs renvoyées, le cas
échéant. Dans le cas de cette API spécifique, Dreamweaver appelle les fonctions
et leur transmet des arguments et vous générez ensuite des valeurs renvoyées, le
cas échéant.
applyBehavior()
Description
Insère dans le document de l'utilisateur un gestionnaire d'événements qui appelle
la fonction insérée par behaviorFunction(). Cette fonction peut également
exécuter d'autres modifications dans le document de l'utilisateur, mais elle ne doit
pas supprimer l'objet auquel le comportement est appliqué ou qui reçoit l'action.
96
Chapitre 10
Arguments
uniqueName
Cet argument est un identifiant unique parmi toutes les instances de tous les
comportements du document de l'utilisateur. Son format est
functionNameInteger, où functionName correspond au nom de la fonction
insérée par behaviorFunction(). Cet argument peut être utile si vous insérez
une balise dans le document de l'utilisateur et souhaitez affecter une valeur unique
à son attribut NAME.
Valeurs renvoyées
Une chaîne contenant l'appel de fonction qui doit être inséré dans le document de
l'utilisateur, généralement après acceptation des paramètres entrés par l'utilisateur.
Si applyBehavior() détermine que l'utilisateur a effectué une entrée non valide,
la fonction peut renvoyer une chaîne d'erreur au lieu de l'appel de fonction.
Dreamweaver ne signale aucune erreur si la chaîne est vide (return "";), mais si
la chaîne n'est pas vide et qu'elle n'est pas non plus un appel de fonction,
Dreamweaver affiche une boîte de dialogue contenant le texte : Invalid Input
supplied for this behavior: [the string returned from
applyBehavior()] (l'entrée spécifiée est invalide pour ce comportement : [la
chaîne renvoyée par applyBehavior()]). Si la valeur renvoyée est null (return;),
Dreamweaver indique qu'une erreur s'est produite mais sans fournir plus de
détails.
Remarque : les guillemets contenus dans la chaîne renvoyée doivent être précédés d'une
barre oblique inverse (\) afin d'éviter que l'interpréteur JavaScript ne signale des erreurs.
Comportements
97
Exemple
Dans l'exemple suivant, la fonction applyBehavior() appelle la fonction
MM_openBrWindow() et lui transmet les paramètres fournis par l'utilisateur
(hauteur et largeur de la fenêtre ; si la fenêtre doit afficher des barres de
défilement, une barre d'outils, une barre d'emplacement et d'autres fonctions et
l'URL qui doit s'ouvrir dans la fenêtre) :
function applyBehavior() {
var i,theURL,theName,arrayIndex = 0;
var argArray = new Array(); //use array to produce correct ¬
number of commas w/o spaces
var checkBoxNames = new Array("toolbar","location",¬
"status","menubar","scrollbars","resizable");
for (i=0; i<checkBoxNames.length; i++) {
theCheckBox = eval("document.theForm." + checkBoxNames[i]);
if (theCheckBox.checked) argArray[arrayIndex++] = ¬
(checkBoxNames[i] + "=yes");
}
if (document.theForm.width.value)
argArray[arrayIndex++] = ("width=" + ¬
document.theForm.width.value);
if (document.theForm.height.value)
argArray[arrayIndex++] = ("height=" + ¬
document.theForm.height.value);
theURL = escape(document.theForm.URL.value);
theName = document.theForm.winName.value;
return "MM_openBrWindow('"+theURL+"',¬
'"+theName+"','"+argArray.join()+"')";
}
behaviorFunction()
Description
Insère une ou plusieurs fonctions (délimitées par les balises <SCRIPT
LANGUAGE="JavaScript"></SCRIPT> si aucune n'existe déjà) dans la balise HEAD
du document de l'utilisateur.
Arguments
Aucun.
Valeurs renvoyées
Soit une chaîne contenant les fonctions JavaScript à insérer dans le document de
l'utilisateur, soit une chaîne contenant le nom des fonctions à insérer dans le
document de l'utilisateur. Cette valeur doit être chaque fois identique (elle ne peut
pas dépendre des données entrées par l'utilisateur). Les fonctions sont insérées une
seule fois, quel que soit le nombre de fois que l'action est appliquée aux éléments
du document.
Remarque : les guillemets contenus dans la chaîne renvoyée doivent être précédés d'une
barre oblique inverse (\) afin d'éviter que l'interpréteur JavaScript ne signale des erreurs.
98
Chapitre 10
Exemple
Dans l'exemple suivant, la fonction behaviorFunction() renvoie une fonction
appelée MM_popupMsg() :
function behaviorFunction(){
return ""+
"function MM_popupMsg(theMsg) { //v1.0\n"+
" alert(theMsg);\n"+
"}";
}
Le code suivant est équivalent à la déclaration de fonction behaviorFunction()
précédente et il s'agit de la méthode utilisée pour déclarer la fonction
behaviorFunction() dans tous les comportements fournis avec Dreamweaver :
function MM_popupMsg(theMsg){ //v1.0
alert(theMsg);
}
function behaviorFunction(){
return "MM_popupMsg";
}
canAcceptBehavior()
Description
Indique si l'action est autorisée pour l'élément HTML sélectionné et définit
l'événement par défaut qui doit la déclencher. Peut également rechercher la
présence de certains objets (tels que des animations Shockwave) dans le document
de l'utilisateur et interdire l'action si ces objets sont absents.
Arguments
HTMLelement
L'argument est l'élément HTML sélectionné.
Valeurs renvoyées
L'une des valeurs suivantes :
• true si l'action est autorisée mais n'est associée à aucun événement préféré.
• Une liste des événements préférés (par ordre décroissant de préférence) de cette
action. La définition d'événements préférés remplace l'événement par défaut
(signalé par un astérisque dans le fichier d'événements) de l'objet sélectionné.
Voir les étapes 2 et 3 de la section « Fonctionnement des comportements »,
page 94.
•
false
si l'action n'est pas autorisée.
Si canAcceptBehavior() renvoie la valeur false, l'action apparaît estompée
dans le menu déroulant des actions du panneau Comportements.
Comportements
99
Exemple
Dans l'exemple suivant, la fonction canAcceptBehavior() renvoie une liste des
événements préférés du comportement si le document contient des images
nommées :
function canAcceptBehavior(){
var theDOM = dreamweaver.getDocumentDOM();
// Get an array of all images in the document
var allImages = theDOM.getElementsByTagName('IMG');
if (allImages.length > 0){
return "onMouseOver, onClick, onMouseDown";
}else{
return false;
}
}
displayHelp()
Description
Si cette fonction est définie, un bouton Aide apparaît sous les boutons OK et
Annuler dans la boîte de dialogue des paramètres. Cette fonction est appelée
lorsque l'utilisateur clique sur le bouton Aide.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Exemple
Dans l'exemple suivant, la fonction displayHelp() ouvre dans une fenêtre de
navigateur un fichier contenant les instructions d'utilisation du comportement :
function displayHelp(){
dreamweaver.browseDocument('http://www.hotwired.com/¬
webmonkey/javascript/code_library/wm_pos2_elmnt_dw/¬
?tw=javascript');
}
deleteBehavior()
Description
Annule toutes les modifications effectuées par la fonction applyBehavior().
Remarque : Dreamweaver supprime automatiquement la déclaration de fonction et le
gestionnaire d'événements associés à un comportement lorsque l'utilisateur supprime ce
comportement dans le panneau Comportements. Il est ainsi nécessaire de définir la
fonction deleteBehavior() uniquement si la fonction applyBehavior() a effectué des
modifications supplémentaires dans le document de l'utilisateur (par exemple, si elle a
inséré une balise).
100
Chapitre 10
Arguments
applyBehaviorString
Cet argument correspond à la chaîne qui a été renvoyée précédemment par la
fonction applyBehavior().
Valeurs renvoyées
Aucune.
identifyBehaviorArguments()
Description
Associe les arguments d'un appel de fonction de comportement à nav, dep, URL,
NS4.0ref, IE4.0ref, objName ou other de façon à ce que les URL utilisées dans
les comportements puissent être mises à jour si l'utilisateur enregistre le document
dans un autre emplacement et pour que les fichiers référencés puissent s'afficher
dans la carte du site et être considérés comme des fichiers dépendants afin de
pouvoir être téléchargés vers et depuis un serveur.
Arguments
theFunctionCall
Cet argument correspond à la chaîne qui a été renvoyée précédemment par la
fonction applyBehavior().
Valeurs renvoyées
Une chaîne contenant une liste des types d'arguments de l'appel de fonction
séparés par des virgules. La longueur de la liste doit être égale au nombre
d'arguments transmis lors de l'appel de fonction. Les types d'argument sont
toujours l'un des suivants :
•
nav indique que l'argument est une URL de navigation et qu'il doit donc être
affiché dans la carte du site.
•
dep indique que l'argument est une URL de fichier dépendant et qu'il doit
donc être inclus avec tous les autres fichiers dépendants lorsqu'un document
contenant ce comportement est téléchargé depuis ou vers un serveur.
•
URL indique que l'argument est à la fois une URL de navigation et une URL
dépendante (ou une URL de type inconnu), et qu'il doit donc être affiché dans
la carte du site et considéré comme un fichier dépendant lors du
téléchargement depuis ou vers un serveur.
•
NS4.0ref
indique que l'argument est une référence à un objet DOM de
Navigator.
•
IE4.0ref
•
objName
indique que l'argument est une référence à un objet DOM
d'Internet Explorer.
indique que l'argument est un nom d'objet simple, tel qu'il est
spécifié dans l'attribut NAME de l'objet. Ce type a été ajouté à Dreamweaver 3.
Comportements
101
•
other
indique que l'argument n'appartient à aucun des types ci-dessus.
Exemple
Cet exemple simple de fonction identifyBehaviorArguments() fonctionne
avec l'action de comportement Ouvrir la fenêtre Navigateur qui renvoie une
fonction comportant toujours trois arguments (l'URL à ouvrir, le nom de la
nouvelle fenêtre et la liste des propriétés de la fenêtre) :
function identifyBehaviorArguments(fnCallStr) {
return "URL,other,other";
}
Une version plus complexe de la fonction identifyBehaviorArguments() est
nécessaire pour les fonctions de comportement ayant un nombre variable
d'arguments (telles que Afficher-Masquer les calques). Pour cette version de la
fonction identifyBehaviorArguments(), il existe un nombre minimum
d'arguments et les arguments supplémentaires se présentent toujours en groupes
dont la taille est un multiple de ce nombre minimum. En d'autres termes, une
fonction dont le nombre d'arguments minimum est 4 peut avoir 4, 8 ou 12
arguments, mais elle n'en aura jamais 10.
function identifyBehaviorArguments(fnCallStr) {
var listOfArgTypes;
var itemArray = dreamweaver.getTokens(fnCallStr, ‘(),’);
// The array of items returned by getTokens() includes the
// function name, so the number of *arguments* in the array
// is the length of the array minus one. Divide by 4 to get the
// number of groups of arguments.
var numArgGroups = ((itemArray.length - 1)/4);
// For each group of arguments
for (i=0; i < numArgGroups; i++){
// Add a comma and "NS4.0ref,IE4.0ref,other,dep" (because this
// hypothetical behavior function has a minimum of four
// arguments the Netscape object reference, the IE object
// reference, a dependent URL, and perhaps a property value
// such as "show" or "hide") to the existing list of argument
// types, or if no list yet exists, add only
// "NS4.0ref,IE4.0ref,other,dep"
var listOfArgTypes += ((listOfArgTypes)?",":"") + ¬
"NS4.0ref,IE4.0ref,other,dep";
}
}
102
Chapitre 10
inspectBehavior()
Description
Recherche dans l'appel de fonction un comportement déjà appliqué au document
de l'utilisateur et définit les valeurs des options de la boîte de dialogue des
paramètres en conséquence. Si la fonction inspectBehavior() n'est pas définie,
les valeurs par défaut des options s'affichent.
Remarque : inspectBehavior() doit uniquement utiliser les informations qui lui sont
transmises via l'argument applyBehaviorString. N'essayez pas d'obtenir d'autres
informations sur le document de l'utilisateur (par exemple, en utilisant la fonction
dreamweaver.getDocumentDOM()) dans cette fonction.
Arguments
applyBehaviorString
Cet argument correspond à la chaîne qui a été renvoyée précédemment par la
fonction applyBehavior().
Valeurs renvoyées
Aucune.
Exemple
Dans l'exemple suivant, la fonction inspectBehavior(), extraite du fichier
Display Status Message.htm, renseigne le champ Message du formulaire des
paramètres avec le message que l'utilisateur a sélectionné lors de la première
application du comportement :
function inspectBehavior(msgStr){
var startStr = msgStr.indexOf("'") + 1;
var endStr = msgStr.lastIndexOf("'");
if (startStr > 0 && endStr > startStr) {
document.theForm.message.value = ¬
unescQuotes(msgStr.substring(startStr,endStr));
}
}
Remarque : pour plus d'informations sur la fonction unescQuotes(), voir le fichier
string.js du dossier Configuration/Shared/MM/Scripts/CMN.
windowDimensions()
Description
Définit les dimensions de la boîte de dialogue des paramètres. Si cette fonction
n'est pas définie, les dimensions de la fenêtre sont calculées automatiquement.
Remarque : ne définissez cette fonction que si vous souhaitez utiliser une boîte de
dialogue d'options ayant des dimensions supérieures à 640 x 480 pixels.
Comportements
103
Arguments
platform
La valeur de l'argument est soit "macintosh", soit "windows", selon la plateforme utilisée par l'utilisateur.
Valeurs renvoyées
Une chaîne de caractères au format "widthInPixels,heightInPixels".
Les dimensions renvoyées sont inférieures à la taille totale de la boîte de dialogue
parce qu'elles n'incluent pas la zone des boutons OK et Annuler. Si les dimensions
renvoyées ne permettent pas de faire apparaître toutes les options, des barres de
défilement s'affichent.
Exemple
Dans l'exemple suivant, la fonction windowDimensions() définit les dimensions
de la boîte de dialogue des paramètres à 648 x 520 pixels :
function windowDimensions(){
return "648,520";
}
Exemple de comportement simple
Pour mieux comprendre le fonctionnement des comportements et la façon dont
vous pouvez en créer un, il est utile d'examiner un exemple. Le dossier
Configuration/Behaviors/Actions du dossier de l'application Dreamweaver
contient de nombreux exemples ; toutefois, la plupart sont probablement trop
complexes pour les utilisateurs qui ne sont pas des programmeurs confirmés. Le
fichier d'action le plus simple pour commencer est Call JavaScript.htm (avec son
homologue, Call JavaScript.js, qui contient toutes les fonctions JavaScript).
104
Chapitre 10
Le code suivant présente un exemple relativement simple. Il vérifie la marque du
navigateur et atteint une page spécifique s'il s'agit de Netscape Navigator et une
page différente s'il s'agit de Microsoft Internet Explorer. Ce code peut facilement
être étendu pour vérifier d'autres marques (telles qu'Opera et WebTV) et modifié
pour exécuter d'autres actions que l'action d'atteindre des URL.
<html>
<head>
<title>behavior "Check Browser Brand"</title>
<meta http-equiv="Content-Type" content="text/html">
<script language="JavaScript">
// The function that will be inserted into the
// HEAD of the user's document
function checkBrowserBrand(netscapeURL,explorerURL) {
if (navigator.appName == "Netscape") {
if (netscapeURL) location.href = netscapeURL;
}else if (navigator.appName == "Microsoft Internet Explorer") {
if (explorerURL) location.href = explorerURL;
}
}
//******************* API **********************
function canAcceptBehavior(){
return true;
}
// Return the name of the function to be inserted into
// the HEAD of the user's document
function behaviorFunction(){
return "checkBrowserBrand";
}
// Create the function call that will be inserted
// with the event handler
function applyBehavior() {
var nsURL = escape(document.theForm.nsURL.value);
var ieURL = escape(document.theForm.ieURL.value);
if (nsURL && ieURL) {
return "checkBrowserBrand(\'" + nsURL + "\',\'" + ieURL + ¬
"\')";
}else{
return "Please enter URLs in both fields."
}
}
// Extract the arguments from the function call
// in the event handler and repopulate the
// parameters form
function inspectBehavior(fnCall){
var argArray = getTokens(fnCall, "()',");
Comportements
105
var nsURL = unescape(argArray[1]);
var ieURL = unescape(argArray[2]);
document.theForm.nsURL.value = nsURL;
document.theForm.ieURL.value = ieURL;
}
//***************** LOCAL FUNCTIONS
******************
// Put the cursor in the first text field
// and select the contents, if any
function initializeUI(){
document.theForm.nsURL.focus();
document.theForm.nsURL.select();
}
// Let the user browse to the Navigator and
// IE URLs
function browseForURLs(whichButton){
var theURL = dreamweaver.browseForFileURL();
if (whichButton == "nsURL"){
document.theForm.nsURL.value = theURL;
}else{
document.theForm.ieURL.value = theURL;
}
}
//*************** END OF JAVASCRIPT *****************
</script>
</head>
<body>
<form method="post" action="" name="theForm">
<table border="0" cellpadding="8">
<tr>
<td nowrap="nowrap">&nbsp;&nbsp;Go to this URL if the browser is ¬
Netscape Navigator:<br>
<input type="text" name="nsURL" size="50" value="">
<input type="button" name="nsBrowse" value="Browse..." ¬
onClick="browseForURLs('nsURL')"></td>
</tr>
<tr>
<td nowrap="nowrap">&nbsp;&nbsp;Go to this URL is the browser is ¬
Microsoft Internet Explorer:<br>
<input type="text" name="ieURL" size="50" value="">
<input type="button" name="ieBrowse" value="Browse..." ¬
onClick="browseForURLs('ieURL')"></td>
</tr>
</table>
</form>
</body>
</html>
106
Chapitre 10
11
CHAPITRE 11
Comportements de serveur
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les utilisateurs de Dreamweaver UltraDev ajoutent des comportements de serveur
à leurs documents afin d'exécuter des tâches côté serveur, comme par exemple
pour filtrer des enregistrements en fonction de critères préalablement définis,
parcourir des enregistrements, lier des listes de résultats à des pages d'informations
détaillées et insérer des enregistrements dans un jeu de résultats. Si l’utilisateur
insère sans cesse le même code d'exécution dans les documents, il a tout intérêt à
créer une nouvelle extension afin d'automatiser la mise à jour de documents à
l'aide de blocs de code couramment utilisés. UltraDev prend actuellement en
charge des extensions de comportements de serveur, afin d'ajouter des codes
d'exécution pour les serveurs de type ASP/JavaScript, ASP/VBScript, JSP
et CFML.
Le présent chapitre utilise les termes suivants :
• Extension de comportement de serveur : interface entre votre code côté
serveur et Dreamweaver UltraDev. Une extension de comportement de serveur
est composée d'un code JavaScript, d'un code HTML et habituellement d'un
code XML. Dans UltraDev 4.0, vous pouvez rédiger une partie de code
JavaScript afin de gérer l'interface utilisateur de l'extension et utiliser les
fonctions JavaScript pour traiter la gestion du code d'exécution dans le
document utilisateur. De même, vous pouvez créer un formulaire HTML pour
obtenir des entrées utilisateur pour votre comportement de serveur. Enfin, dans
les fichiers XML, vous avez la possibilité de décrire votre extension, y compris le
code d'exécution réel et les paramètres dynamiques. Dirigez UltraDev, grâce à
l'appel JavaScript de la fonction applySB(), jusqu'à ces fichiers XML, où vous
pouvez récupérer les composants de votre extension, afin de les ajouter ensuite
au document utilisateur.
107
• Occurrence de comportement de serveur : l'ajout par UltraDev du code
d'exécution au document utilisateur constitue une occurrence de
comportement de serveur. La plupart des comportements de serveur pouvant
être appliqués plusieurs fois, les occurrences peuvent être multiples. Chaque
occurrence de comportement de serveur est répertoriée dans le panneau
Comportements de serveur.
• Code d'exécution : ensemble des blocs de code ajoutés à un document
lorsqu'un comportement de serveur est appliqué. Ces blocs de code sont
d'ordinaire un code côté serveur, tel qu'une directive ASP comprise entre des
balises <% ... %>. Vous pouvez rédiger le code d'exécution d'un
comportement de serveur en langage JavaScript, Visual Basic, Java ou C.
• Bloc de code : l'extension de comportement de serveur insère des blocs de code
dans le document utilisateur. Un bloc de code est un bloc de script unique et
continu, tel qu'une balise côté serveur, une balise HTML, voire un attribut qui
ajoute une fonctionnalité côté serveur à une page web. Il arrive parfois que des
blocs de code insérés dans les documents de l'utilisateur dépendent d'autres
parties du document. Par exemple, si une partie de votre code d'exécution
dépend d'un jeu d'enregistrements, elle doit être placée au-dessous du bloc de
code dudit jeu. Certains blocs de code sont ainsi qualifiés de pondérés. Un
fichier XML désigne chaque bloc de code par le terme de participant. De
même, tous les participants (blocs de code) pour un comportement de serveur
donné forment un groupe XML.
Remarque : « Schéma XML de comportement de serveur », page 145, décrit les fichiers
groupes et participants, ainsi que la façon dont les fichiers XML d'UltraDev sont structurés.
Pour utiliser la nouvelle architecture d'UltraDev, vous devez placer l'information relative à
votre extension dans les fichiers XML. Les fichiers XML de comportement de serveur
contiennent la totalité du code d'exécution à insérer dans le document utilisateur, ainsi que
les chaînes de recherche servant au rapprochement du document et des données en cours
avec votre extension de comportement de serveur.
Architecture d'UltraDev
Lorsque vous rédigez ou modifiez une extension spécifique à UltraDev, utilisez les
services UltraDev et les fichiers XML pour rendre votre extension plus simple et
plus efficace. Selon les schémas de l'API de comportement de serveur et XML
d'UltraDev, vous créez des extensions à l'aide des fonctions *SB(), puis vous
placez le code d'exécution et les paramètres dynamiques dans les fichiers XML.
Non seulement ce type d'architecture simplifie la mise en œuvre de l'API
d'UltraDev, mais il permet également de distinguer le code d'exécution et la façon
dont il est déployé dans Dreamweaver UltraDev.
Le scénario typique suivant illustre ce qui se passe lorsqu'un utilisateur sélectionne
une extension de comportement de serveur pour la première fois.
108
Chapitre 11
Exécution d'un comportement de serveur
La figure suivante illustre le déroulement de haut niveau des opérations entre
l'utilisateur, l'extension de comportement de serveur et UltraDev, lorsqu'un
utilisateur sélectionne votre extension de comportement de serveur. Le résultat
final est un document mis à jour.
1
L'utilisateur clique sur le bouton Plus (+) pour sélectionner l'extension dans le
panneau Comportements de serveur.
2
Votre formulaire HTML invite l'utilisateur à saisir des données.
3
Le comportement de serveur fait appel au programme SBM (Server Behavior
Manager) afin qu'il procède à l'insertion du code d'exécution dans le document
utilisateur.
4
Le programme SBM fait lui-même appel à EDM (Extension Data Manager)
pour obtenir une description complète du comportement de serveur. Pour ce
faire, EDM extrait des fichiers XML que vous avez créés les informations
relatives à l'extension (données d'extension), y compris le code d'exécution.
5
Après obtention des données d'extension par EDM, le programme SBM met le
document utilisateur à jour avec le code d'exécution.
Comportements de serveur
109
Cette illustration généralisée vous indique le degré de dépendance de l'extension
vis-à-vis d'UltraDev quand il s'agit d'insérer le code d'exécution dans le document
utilisateur. La section suivante examine plus en détails ce système de stratification
corrélative.
Dossiers et fichiers de comportements de
serveur
L'interface utilisateur pour chaque comportement de serveur réside dans le dossier
Configuration/ServerBehaviors/NomdeModèledeServeur, où
NomdeModèledeServeur correspond à l'une des technologies ASP, JSP ou
ColdFusion. Tous les fichiers XML correspondants se trouvent dans les dossiers du
répertoire Configuration/ExtensionData.
Partage de fichiers entre modèles de serveur
Au sein de chaque sous-dossier de modèle de serveur (ASP, ColdFusion et JSP)
figurent les fichiers HTML de l'interface utilisateur associés aux comportements
pour le modèle de serveur concerné. Ces comportements sont intégrés au menu
Plus (+) du panneau Comportements de serveur. Par exemple, le fichier
InsertRecord.htm du dossier Configuration/ServerBehaviors/ASP correspond au
comportement Insérer un enregistrement, inclus dans le menu Plus (+) du
panneau Comportements de serveur lorsque le modèle de serveur sélectionné pour
votre site est ASP.
La plupart du temps, l'interface utilisateur est exactement la même pour les trois
modèles de serveur. Pour plus d'efficacité, nous avons intégré la prise en charge de
l'option Server-Side Include (SSI - Inclusions à partir du serveur). Par exemple, le
fichier Configuration/ServerBehaviors/ASP/Dynamic Textfield.htm contient la
directive d'inclusion <!-- #include virtual="../Dynamic Textfield.htm"
-->. Lorsque le fichier de comportement de serveur est chargé, Dreamweaver
UltraDev remplace la directive #include par le fichier HTML commun,
Dynamic Textfield.htm.
Partage des fichiers JavaScript pour économiser la mémoire
Vous pouvez gagner de l'espace en ajoutant une directive appropriée au fichier
JavaScript, s'il figure dans plusieurs fichiers HTML à la fois. Dreamweaver charge
dans la mémoire partagée les fichiers JavaScript comportant la directive spéciale, et
vous devez par conséquent faire très attention aux éventuels conflits de noms.
Pour faire de la place en mémoire, ajoutez le code suivant au début du fichier
JavaScript :
//SHARE-IN-MEMORY=true
110
Chapitre 11
Conseil: consultez les fichiers *.js du répertoire Configuration/Shared pour plus
d'exemples.
Si votre fichier contient la directive SHARE-IN-MEMORY et qu'un fichier HTML y
fait référence (à l'aide de la balise SCRIPT avec l'attribut SRC), Dreamweaver le
charge dans un emplacement centralisé afin qu'il soit, par la suite, implicitement
inclus dans tous les fichiers HTML.
Les fichiers JavaScript chargés à cet emplacement centralisé partageant la
mémoire, ils ne peuvent dupliquer aucune déclaration. Un conflit de noms peut
éventuellement se produire s'il y a définition simultanée d'une même variable ou
fonction à la fois dans votre fichier chargé dans la mémoire commune et dans un
autre fichier Javascript.
Pour illustrer ce cas de figure, supposons deux fichiers : le premier fichier,
shared.js, contient la directive d'inclusion //SHARE-IN-MEMORY=true. Le
second fichier, notshared.js, ne comporte aucune directive d'inclusion. Les
fichiers définissent tous deux la fonction applyServerBehavior(). Si <script
src="notshared.js"> apparaît dans un fichier myext.htm, Dreamweaver charge
notshared.js dans la mémoire. Si <script src="shared.js"> est incluse dans
un fichier, quel et où qu'il soit, Dreamweaver charge automatiquement
shared.js, qui est ensuite implicitement inclus dans myext.htm. Comme
applyServerBehavior() figure dans les deux fichiers, Dreamweaver n'est pas en
mesure de déterminer la fonction à exécuter. Par conséquent, il est conseillé de ne
pas intégrer la directive SHARED-IN-MEMORY si le fichier JavaScript et un autre
fichier susceptible d'être chargé en mémoire définissent une même fonction.
Conseil: ajoutez la directive SHARE-IN-MEMORY après avoir entièrement débogué le
code ; dans le cas contraire, vous devez quitter, puis redémarrer Dreamweaver et recharger
la version la plus récente de votre fichier (lors du débogage, il est plus pratique d'utiliser la
fonctionnalité « Recharger extensions » lors d'une modification, plutôt que de quitter
complètement Dreamweaver).
Exemple : Hello World
L'exemple suivant illustre le processus de création d'un nouveau comportement de
serveur, à l'aide des nombreux services déjà rédigés.
Remarque : cet exemple fait référence à des fonctions définies plus loin dans ce chapitre.
Etape 1
Etape 2
Rédigez le code d'exécution, puis testez-le.
Créez les fichiers XML groupes et participants.
Etape 3 Créez le fichier de comportement de serveur et appelez les
fonctions API.
A chaque étape, développez et testez l'exemple. Chaque étape est composée de
quelques rappels rapides, d'une explication détaillée et du code source approprié.
Comportements de serveur
111
Imaginez, pour commencer, un comportement ASP simple qui affiche « Hello
World » à partir du serveur ASP. Cet exemple contient un seul participant (une
simple balise ASP) et rien n'est modifié, ni ajouté sur la page. Les exemples de
fichiers suivants figurent dans le dossier Help/UltraDev/Samples :
Hello_World.htm, Hello_World.xml et Hello_World_main.xml.
Etape 4
Rédigez le code d'exécution, puis testez-le.
A ce niveau, il convient de veiller au bon fonctionnement du code, de déterminer
les parties du code devant être définies par l'utilisateur (c'est-à-dire les parties
susceptibles de varier) et de vérifier que l'extrait de code est facilement repérable
(après insertion dans le document utilisateur).
Remarque : dans cet exemple préliminaire, aucune information n'est requise de
l'utilisateur et le code ASP ne contient aucun paramètre. La chaîne de résultat est
simplement « Hello World ».
Chaque participant doit constituer une balise ou un attribut unique. Cet exemple
ne comporte qu'un seul participant et le code d'exécution dans ASP/JavaScript
est :
<% Response.Write("Hello World") %>
Pour vérifier que le code d'exécution fonctionne correctement, définissez un site
avec le modèle de serveur ASP et le langage JavaScript. Créez un document dans le
site et tapez cette ligne de code ASP dans le code source HTML (au sein de la
balise BODY). Quand vous prévisualisez ce fichier sur le serveur ASP, « Hello
World » doit apparaître sur la page.
Après avoir testé le code d'exécution pour vérifier qu'il fonctionne correctement,
vous pouvez passer à l'étape 5.
Etape 5
Créez les fichiers XML groupes et participants.
Le but de cette étape consiste à vérifier que vous disposez d'un fichier groupe et
d'au moins un fichier participant, puis à ajouter les balises XML élémentaires
requises pour l'insertion et la recherche du code d'exécution.
112
Chapitre 11
Pour chaque comportement de serveur, il vous faut au moins un fichier XML
participant et un fichier XML groupe. Commencez par créer un fichier
participant, nommé Hello World_main.xml et placez-le dans le dossier
Configuration/ExtensionData. Ce fichier se compose comme suit :
<participant>
<implementation serverModel="ASP/JavaScript">
<quickSearch>Hello World</quickSearch>
<insertText location="afterSelection">
<![CDATA[
<% Response.Write("Hello World") %>
]]>
</insertText>
<searchPatterns whereToSearch="directive">
<searchPattern>/Response\.Write\("Hello World"\)/i
</searchPattern>
</searchPatterns>
</implementation>
</participant>
La clé de ce fichier est la balise <insertText>, qui contient le code d'exécution à
insérer. Ce code est contenu dans une structure XML standard CDATA, afin
d'empêcher toute confusion de l'analyseur syntaxique XML par le code ASP.
Créez ensuite le fichier XML groupe. Le fichier groupe identifie le comportement
de serveur qui l'utilise et répertorie tous les participants. Dans le dossier
Configuration/ExtensionData, créez un fichier nommé Hello World.xml qui se
compose comme suit :
<group serverBehavior="Hello World.htm">
<title>Hello World</title>
<groupParticipants selectParticipant="Hello World_main">
<groupParticipant name="Hello World_main" />
</groupParticipants>
</group>
Ce fichier groupe se réfère au fichier de comportement de serveur que vous allez
créer et indique la présence d'un participant.
Etape 6
Créez le fichier de comportement de serveur.
Dans cette étape, vous intégrez tous les fichiers communs éventuellement
nécessaires et déclarant les fonctions élémentaires de comportement de serveur.
Commencez par enregistrer votre fichier HTML de comportement de serveur
dans le dossier Configuration/ServerBehaviors/ASP. Toutes les extensions
Dreamweaver sont divisées en deux fichiers, par exemple Recordset.htm et
Recordset.js, afin de faciliter la traduction en diverses langues. Pour votre exemple,
créez un seul fichier et nommez-le Hello World.htm. Au moment de tester le
comportement dans Dreamweaver, modifiez le fichier de comportement de
serveur à l'aide d'un éditeur de texte indépendant, tel que Bloc-notes ou
SimpleText.
Comportements de serveur
113
Vous allez utiliser de nombreuses fonctions et classes communes dans les étapes
restantes. Pour pouvoir accéder à l'ensemble du code utile, vous devez inclure les
fichiers commençant par les lettres ss à partir du dossier partagé.
<HTML>
<HEAD>
<SCRIPT SRC="../../Shared/MM/Scripts/CMN/UI.js"></SCRIPT>
<SCRIPT SRC="../../Shared/MM/Scripts/CMN/file.js"></SCRIPT>
<SCRIPT SRC="../../Shared/MM/Scripts/CMN/string.js"></SCRIPT>
<SCRIPT SRC="../../Shared/MM/Scripts/CMN/localText.js"></SCRIPT>
<SCRIPT SRC="../../Shared/MM/Scripts/CMN/docInfo.js"></SCRIPT>
<SCRIPT SRC="../../Shared/MM/Scripts/CMN/niceName.js"></SCRIPT>
<SCRIPT SRC="../../Shared/MM/Scripts/CMN/helper.js"></SCRIPT>
<SCRIPT SRC="../../Shared/MM/Scripts/Class/
ListControlClass.js"></SCRIPT>
<SCRIPT SRC="../../Shared/UltraDev/Scripts/ssClasses.js">¬
</SCRIPT>
<SCRIPT SRC="../../Shared/UltraDev/Scripts/ssDocManager.js">¬
</SCRIPT>
<SCRIPT SRC="../../Shared/UltraDev/Scripts/ssCmnElements.js">¬
</SCRIPT>
<SCRIPT SRC="../../Shared/UltraDev/Scripts/sbManager.js">¬
</SCRIPT>
Afin que votre comportement de serveur s'affiche dans le menu Plus (+) du
panneau Comportements de serveur, ajoutez les fonctions API requises, comme
suit :
<SCRIPT>
function findServerBehaviors() {
return findSBs();
}
function canApplyServerBehavior() {
return true;
}
function applyServerBehaviors(sbObj) {
var paramObj = new Object();
applySB(paramObj,sbObj);
}
function deleteServerBehavior(sbObj) {
deleteSB(sbObj)
}
function inspectServerBehavior(sbObj) {
}
function analyzeServerBehavior(sbObj, allRecs) {
}
</SCRIPT>
</HEAD>
114
Chapitre 11
Pour s'afficher, l'interface utilisateur d'une extension Dreamweaver doit contenir
une balise de formulaire (form). Pour l'instant, ajoutez une simple balise form à
l'intérieur d'une balise body :
<BODY>
<FORM>
Insert "Hello World".
</FORM>
</BODY>
</HTML>
Vous pouvez maintenant effectuer un test rapide. Redémarrez Dreamweaver et
ouvrez le fichier test. Ouvrez le panneau Comportements de serveur. Cliquez sur
le menu Plus (+), puis choisissez Hello World. Cliquez sur OK. Le texte ASP doit
être ajouté à votre document et Hello World doit être affiché dans le panneau
Comportements de serveur.
Exemple : Redirect If Empty
Dans l'exemple suivant, vous allez utiliser un code ASP pour diriger l'utilisateur
vers une autre page quand un jeu d'enregistrements est vide (aucun enregistrement
n'a été comptabilisé). Cet exemple contient un seul participant (une simple
balise ASP) et rien n'est modifié, ni ajouté sur la page. Cet exemple est possible
uniquement si des jeux d'enregistrements existent. Les exemples de fichiers
suivants figurent dans le sous-dossier Help/UltraDev/Samples de Dreamweaver
UltraDev : Redirect_If_Empty_main.xml, Redirect_If_Empty.xml et
Redirect_If_Empty.htm.
Remarque : l'exemple suivant utilise une adresse URL comme l'un des paramètres.
« URL » étant un mot réservé dans le code JavaScript, assurez-vous d'attribuer un nom
unique au paramètre (tel que new__url). Si vous terminez le nom du paramètre
conformément à la convention __url (c'est-à-dire deux caractères de soulignement, suivis
de « url »), Dreamweaver conserve le nom du chemin d'accès relatif dans l'URL lorsque
vous changez le fichier de place.
Etape 1
Rédigez le code d'exécution, puis testez-le.
A ce niveau, il convient de veiller au bon fonctionnement du code, de déterminer
les parties du code devant être définies par l'utilisateur (c'est-à-dire les parties
susceptibles de varier) et de vérifier que l'extrait de code est facilement repérable
(après insertion dans le document utilisateur).
Il s'agit de l'étape la plus importante. Les développeurs peuvent commencer avec
une interface utilisateur, à seule fin de constater que les contraintes du code
d'exécution modifient complètement la conception. Chaque participant doit
correspondre à une balise ou un attribut unique, identifiable à l'aide d'expressions
régulières. Pour cet exemple, le code d'exécution dans ASP/JavaScript est :
<% if (Recordset1.EOF) Response.Redirect("http://www.yahoo.com");
%>
Comportements de serveur
115
Ce code est composé de deux paramètres modifiables : le nom du jeu
d'enregistrements et l'URL. Le comportement de serveur a donc pour tâche de
récupérer et d'intégrer ces deux informations dans le code d'exécution, puis
d'ajouter ledit code à l'endroit approprié sur la page.
Pour vérifier que le code d'exécution fonctionne correctement, définissez un site
avec le modèle de serveur ASP et le langage JavaScript. Créez un document dans le
site, définissez un jeu d'enregistrements, puis effectuez un aperçu dans un
navigateur. Ajoutez ensuite le code d'exécution à la page, au-dessus de la balise
<HTML> mais en dessous du jeu d'enregistrements.
Après avoir testé le code d'exécution pour vérifier qu'il fonctionne correctement,
vous pouvez passer à l'étape 2.
Etape 2
Créez les fichiers XML groupes et participants.
Le but de cette étape consiste à vérifier que vous disposez d'un fichier groupe et
d'au moins un fichier participant, puis à ajouter les balises XML élémentaires
requises pour l'insertion et la recherche du code d'exécution.
Le code d'exécution dépendant d'un jeu d'enregistrements, il doit être positionné
en dessous du code de définition du jeu d'enregistrements, mais au-dessus de tout
autre code éventuellement dépendant du jeu d'enregistrements quand celui-ci
n'est pas vide. Utilisez l'attribut d'implantation (location) pour définir avec
précision ce positionnement au sein du fichier XML.
Pour chaque comportement de serveur, il vous faut au moins un fichier XML
participant et un fichier XML groupe. Commencez par créer un fichier
participant, nommé Redirect If Empty.xml, dans le dossier Configuration/
ExtensionData/. Ce fichier se compose comme suit :
<participant>
<implementation serverModel="ASP/JavaScript">
<quickSearch>Response.Redirect</quickSearch>
<insertText location="aboveHTML+51">
<![CDATA[
<% if (@@rs@@.EOF) Response.Redirect("@@new__url@@"); %>
]]>
</insertText>
<searchPatterns whereToSearch="directive">
<searchPattern paramNames="rs,new__url">
/if \((\w+)\.EOF\) Response\.Redirect\("(.*)"/i
</searchPattern>
</searchPatterns>
</implementation>
</participant>
Le texte d'insertion contient maintenant deux espaces réservés pour les données
paramétrées : @@rs@@ et @@new__url@@. Ces deux espace réservés sont remplacés
lors de l'insertion du texte. Le profil de recherche extrait maintenant les valeurs
des deux paramètres rs et new__url. Ces valeurs proviennent des première et
deuxième sous-expressions entre parenthèses (\w+) et (.*).
116
Chapitre 11
Créez ensuite le fichier XML groupe. Le fichier groupe identifie le comportement
de serveur qui l'utilise et répertorie tous les participants. Dans le dossier
Configuration/ExtensionData, créez un fichier nommé Redirect If Empty.xml,
qui se compose comme suit :
<group serverBehavior="Redirect If Empty.htm">
<title>Hello World</title>
<groupParticipants selectParticipant="Redirect If Empty_main">
<groupParticipant name="Redirect If Empty_main" />
</groupParticipants>
</group>
Ce fichier groupe se réfère au fichier de comportement de serveur que vous allez
créer et indique la présence d'un participant.
Etape 3
Créez le fichier de comportement de serveur.
Dans cette étape, vous intégrez tous les fichiers communs éventuellement
nécessaires et déclarant les fonctions élémentaires de comportement de serveur.
Commencez par créer votre fichier HTML de comportement de serveur dans le
dossier Configuration/ServerBehaviors/ASP. Toutes les extensions Dreamweaver
sont divisées en deux fichiers, par exemple Recordset.htm et Recordset.js, afin de
faciliter la traduction en diverses langues. Pour votre exemple, créez un seul fichier
et nommez-le Hello World.htm. Au moment de tester le comportement dans
Dreamweaver, modifiez le fichier de comportement de serveur à l'aide d'un
éditeur de texte indépendant, tel que Bloc-notes ou SimpleText.
Comportements de serveur
117
Vous allez utiliser de nombreuses fonctions et classes communes dans les étapes
restantes. Pour accéder à l'ensemble du code utile, vous devez inclure des fichiers
communs. Commencez par les notions de base :
<HTML>
<HEAD>
<SCRIPT SRC="../../Shared/MM/Scripts/CMN/UI.js"></SCRIPT>
<SCRIPT SRC="../../Shared/MM/Scripts/CMN/file.js"></SCRIPT>
<SCRIPT SRC="../../Shared/MM/Scripts/CMN/string.js"></SCRIPT>
<SCRIPT SRC="../../Shared/MM/Scripts/CMN/localText.js"></SCRIPT>
<SCRIPT SRC="../../Shared/MM/Scripts/CMN/docInfo.js"></SCRIPT>
<SCRIPT SRC="../../Shared/MM/Scripts/CMN/niceName.js"></SCRIPT>
<SCRIPT SRC="../../Shared/MM/Scripts/CMN/helper.js"></SCRIPT>
<SCRIPT SRC="../../Shared/MM/Scripts/CMN/displayHelp.js"></
SCRIPT>
<SCRIPT SRC="../../Shared/MM/Scripts/Class/ListControlClass.js">¬
</SCRIPT>
<SCRIPT SRC="../../Shared/UltraDev/Scripts/ssClasses.js">¬
</SCRIPT>
<SCRIPT SRC="../../Shared/UltraDev/Scripts/ssDocManager.js">¬
</SCRIPT>
<SCRIPT SRC="../../Shared/UltraDev/Scripts/ssCmnElements.js">¬
</SCRIPT>
<SCRIPT SRC="../../Shared/UltraDev/Scripts/sbManager.js">¬
</SCRIPT>
<SCRIPT SRC="../../Shared/Controls/Scripts/RecordsetMenu.js">¬
</SCRIPT>
<SCRIPT SRC="../../Shared/Controls/Scripts/TextField.js">¬
</SCRIPT>
Initialisez maintenant les deux commandes qui s'affichent dans votre interface
utilisateur à l'aide des classes de commande disponibles. La première commande
est un menu composé de jeux d'enregistrements et la deuxième un champ de texte
pour la saisie des URL.
<SCRIPT>
var rs = new RecordsetMenu("Redirect If Empty","rs");
var new__url = new TextField("Redirect If Empty","new__url");
function findServerBehaviors() {
return findSBs();
}
La fonction canApplyServerBehavior() détermine si le comportement de
serveur peut être exécuté. Dans cet exemple, elle renvoie la valeur false si la page
ne contient aucun jeu d'enregistrements.
function canApplyServerBehavior(sbObj) {
var success = true;
if (success) success = rs.canApplyServerBehavior(sbObj);
if (success) success = new__url.canApplyServerBehavior(sbObj);
return success;
}
118
Chapitre 11
La valeur que vous obtenez à la rédaction de la fonction
applyServerBehaviors() provient normalement de chaque commande
d'élément de formulaire. Dans ce cas, chaque commande peut être affectée d'un
paramètre paramObj, qui est ensuite transmis à applySB(). Par exemple, elles
créent les propriétés paramObj.rs et paramObj.new__url, que vous pouvez, par
ailleurs, définir manuellement à l'aide d'un élément de formulaire dépourvu de
classe de commande.
function applyServerBehavior(sbObj) {
var paramObj = new Object();
var errStr = "";
if (!errStr) errStr = rs.applyServerBehavior(sbObj, paramObj);
if (!errStr) errStr = new__url.applyServerBehavior(sbObj, ¬
paramObj);
if (!errStr) applySB(paramObj,sbObj);
return errStr;
}
La fonction inspectServerBehavior() sélectionne les valeurs précédentes dans
l'interface utilisateur lors de la modification d'une occurrence existante.
function inspectServerBehavior(sbObj) {
var success = true;
if (success) success = rs.inspectServerBehavior(sbObj);
if (success) success = new__url.inspectServerBehavior(sbObj);
}
function deleteServerBehavior(sbObj) {
deleteSB(sbObj);
}
La fonction analyzeServerBehavior() valide une occurrence du code
d'exécution du comportement de serveur pour vérifier qu'il est complet (c'est-àdire qu'il contient tous les participants). Par exemple, si le jeu d'enregistrements
dont il est fait référence est introuvable, cette fonction définit l'indicateur
« incomplete » et un point d'exclamation rouge s'affiche dans le panneau
Comportements de serveur.
function analyzeServerBehavior(sbObj, allRecs) {
rs.analyzeServerBehavior(sbObj, allRecs);
new__url.analyzeServerBehavior(sbObj, allRecs);
}
function initializeUI() {
rs.initializeUI();
new__url.initializeUI();
}
</SCRIPT>
Comportements de serveur
119
Vous définissez l'interface utilisateur dans le code HTML. L'interface utilisateur
doit être contenue dans une balise FORM. Dans ce cas, les noms attribués à chaque
élément de formulaire correspondent aux appels de classes de commande qui se
trouvent au-dessus (rs et new__url).
<META HTTP-EQUIV="Content-Type" CONTENT="text/html">
</HEAD>
<BODY onLoad="initializeUI()">
<FORM NAME="theForm">
<TABLE>
<TR>
<TD ALIGN="right" VALIGN="baseline" NOWRAP>
Recordset:
</TD>
<TD VALIGN="baseline" NOWRAP>
<SELECT NAME="rs" STYLE="width:230px">
<OPTION SELECTED>*** no Recordsets found ***</OPTION>
</SELECT>
</TD>
</TR>
<TR>
<TD ALIGN="right" VALIGN="baseline" NOWRAP>
Redirect URL:
</TD>
<TD VALIGN="baseline" NOWRAP>
<INPUT TYPE="text" NAME="new__url" STYLE="width:230px">
<INPUT TYPE="button" VALUE="Browse..." ¬
onClick="browseFile(document.theForm.url">
</TD>
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>
Techniques de comportements de serveur
Cette section traite des techniques, courantes et évoluées, utilisées pour la création
de comportements de serveur. La plupart des suggestions faites ici impliquant des
configurations particulières de fichiers XML, il est indispensable de lire le chapitre
sur le schéma XML avant de poursuivre. L'exemple utilisé fait de nombreuses
références aux fonctions définies dans ce chapitre.
120
Chapitre 11
Application de comportements de serveur
Les comportements de serveur sont appliqués lorsqu'un utilisateur clique sur OK
dans la boîte de dialogue Comportement de serveur. Cet événement utilisateur
appelle la fonction applyServerBehavior(), qui appelle généralement la
fonction applySB() pour traiter le code XML et insérer le code d'exécution dans
le document utilisateur. Le code à insérer est stocké dans les balises <insertText>
dans vos fichiers XML. L'attribut location de ces balises permet de définir
l'emplacement exact du code dans le document. Voici quelques conseils pour bien
définir l'attribut location.
Insertion du code au-dessus de la balise <html> Votre code d'exécution du
comportement de serveur doit être placé dans le document de l'utilisateur à
l'emplacement approprié. La plupart du code du serveur devant être traité avant le
code HTML, vous pouvez demander à Dreamweaver de l'insérer au-dessus de la
balise <html> dans le document utilisateur. Si le code est autonome et n'est en
relation avec aucun autre code, définissez l'emplacement sur aboveHTML.
Exemple :
<insertText location="aboveHTML"><![CDATA[<% ASP_CODE_HERE %>]]>¬
</insertText>
Cette instruction indique à Dreamweaver d'insérer le code d'exécution de
comportement de serveur directement au-dessus de la balise <HTML>.
Le code peut, le cas échéant, faire l'objet d'une pondération. Autrement dit, il doit
être situé au-dessus de la balise <HTML>, mais en dessous d'un autre bloc de code.
Vous pouvez ajouter une pondération numérique spécifique comprise entre 1 et
99 (par exemple, location="aboveHTML+10"). Dreamweaver UltraDev insère les
éléments pondérés dans l'ordre, de 1 à 99. 1 est le poids le plus léger et signifie que
le code est placé au début du document utilisateur. 99 est le poids le plus lourd et
signifie que le code est placé au-dessus, et proche, de la balise <HTML> dans le
document utilisateur (la première ligne du document est affectée d'une
pondération de 0. La ligne précédent la balise <HTML> a une pondération de 100.
Ces deux valeurs sont des valeurs réservées).
Remarque : l'attribut d'implantation belowHTML peut être lui aussi pondéré d'une valeur
comprise entre 1 et 99. Si l'attribut belowHTML a la valeur 1, le code est placé au-dessous,
et proche, de la balise de fermeture </HTML>. 99 signifie que le code est placé dans le bas
du document utilisateur. Rappelons que 0 et 100 sont des valeurs réservées.
Par exemple, un code qui dépend de l'existence d'un jeu d'enregistrements doit
forcément suivre le code dudit jeu. Le jeu d'enregistrements est affecté d'une
valeur de pondération de 50 ; Par conséquent, vous insérez votre code après le
code du jeu, à l'aide d'une pondération plus élevée (par exemple,
location="aboveHTML+60").
Remarque : une fois que le code est inséré, vous pouvez toujours le réorganiser
manuellement.
Comportements de serveur
121
Pour que plusieurs participants restent groupés, attribuez-leur la même
pondération. La première fois que le comportement de serveur est appliqué, les
participants sont ajoutés selon l'ordre dans lequel ils sont répertoriés dans le fichier
groupe. Lorsque le comportement de serveur est mis à jour, l'ordre des
participants reste inchangé.
Supposons, par exemple, que votre fichier groupe test.xml répertorie les
participants test_A, test_B et test_C, qui disposent tous trois d'une valeur
d'emplacement location="aboveHTML+40". Lorsque vous ajoutez ce
comportement de serveur, les participants sont insérés dans le document selon
l'ordre dans lequel ils ont été définis dans test.xml. Si vous supprimez le code du
participant test_B du document, un point d'exclamation rouge apparaît dans le
panneau Comportements de serveur, pour indiquer que l'occurrence du
comportement de serveur est incomplète. Si vous modifiez cette occurrence de
comportement et que vous la réappliquez, le code manquant est inséré entre le
code du participant test_A et celui de test_C. L'ordre des participants est ainsi
conservé.
Enveloppement d'une sélection Certains comportements de serveur agissent sur
un bloc de code sélectionné par l'utilisateur. Le comportement de serveur doit
envelopper la sélection pour pouvoir en fait s'y conformer. Le comportement de
serveur Afficher la région en est un exemple type. Si vous enveloppez la sélection
avec deux balises, vous créez deux participants XML. Si vous utilisez une seule
balise, vous créez un seul participant.
1
Enveloppement d'une sélection à l'aide de deux balises distinctes
En environnement ASP ou JSP, il est fréquent d'envelopper la sélection avec
deux balises distinctes, comme suit :
<% if (expression) { // tag1 mySBName %>
Random HTML selection here
<% } // tag2 end mySBName %>
Pour envelopper une sélection à l'aide des fichiers XML, créez deux
participants, le premier avec la valeur d'emplacement
location="beforeSelection" et le deuxième avec
location="afterSelection". Répertoriez ensuite les deux participants, selon
l'ordre dans lequel ils se trouvent dans le fichier XML groupe.
122
Chapitre 11
2
Enveloppement d'une sélection à l'aide d'une seule balise
Une autre technique permet d'envelopper la sélection à l'aide d'une seule balise.
Par exemple, en environnement Cold Fusion, vous pouvez envelopper la
sélection à l'aide d'une balise CFIF :
<CFIF expression EQ true>
Random HTML selection here
</CFIF>
Dans ce cas, comme il n'y a qu'une seule balise à ajouter, définissez
location="wrapSelection" et insertText d'après la balise toute entière,
comme suit :
<insertText location="wrapSelection">
<![CDATA[
<CFIF expression EQ true></CFIF>
]]>
</insertText>
Remarque : UltraDev équilibre la sélection avant d'appliquer ce comportement de
serveur. Si la sélection contient une balise d'ouverture sans la balise de fermeture
correspondante, elle est étendue pour renfermer l'ensemble de la balise.
Un comportement de serveur peut contenir des
participants qui sont simplement la valeur d'un attribut. Par exemple, pour qu'un
comportement de serveur représente une valeur dynamique, il peut être nécessaire
de définir l'attribut ACTION d'une balise FORM, comme suit :
Gestion des attributs
<FORM ACTION="<%=MY_URL%>">
Pour ce faire, il suffit de définir location="nodeAttribute+ACTION". Voici une
éventuelle représentation de insertText :
<insertText location="nodeAttribute+action" ¬
nodeParamName="form__tag">
<![CDATA[<%=MY_URL%>]]>
</insertText>
Remarque : l'attribut nodeParamName contient le nom du paramètre utilisé pour
transmettre un pointeur à une balise de formulaire. Si l'attribut ACTION ne figure pas déjà
dans le formulaire, il y est ajouté. Lorsque le comportement de serveur est supprimé,
l'attribut ACTION dans son ensemble disparaît. Pour que seule la valeur de l'attribut soit
éliminée lors de la suppression, ajoutez une balise de suppression au fichier XML
participant, puis définissez-la afin qu'elle supprime innerOnly, comme suit :
<delete deleteType="innerOnly" />
Vous pouvez éventuellement gérer un autre type d'attribut, c'est-à-dire un attribut
qui existe en tant que balise de serveur à l'intérieur d'une autre balise. Supposons,
par exemple, que vous souhaitiez ajouter un attribut conditionnel pour activer une
case à cocher. En environnement ASP, voici ce que cela pourrait donner :
<input type="checkbox" name="flag1" ¬
<%if(expr)Response.Write("checked")%> >
Comportements de serveur
123
Pour ajouter ce code ASP à l'intérieur d'une balise, utilisez
location="nodeAttribute". Aucun attribut n'étant nommé, il est ajouté
directement à la balise. Comme dans l'exemple ci-dessus, un pointeur est transmis
à une balise de saisie. Exemple :
<insertText location="nodeAttribute" nodeParamName="input__tag">
<![CDATA[<%if(expr)Response.Write("checked")%>]]>
</insertText>
Dans ce cas, seule la balise ASP entière est ajoutée ou supprimée ; une balise de
suppression s'avère donc inutile.
Recherche des comportements de serveur
Rédaction de profils de recherche Pour que des comportements de serveur
soient mis à jour ou supprimés, vous devez fournir à UltraDev les moyens de
trouver chaque occurrence dans un document. Pour cela, une balise quickSearch
et au moins une balise searchPattern (contenue dans la balise searchPatterns)
sont requises.
La balise quickSearch doit être une chaîne (et non une expression régulière)
indiquant l'éventuelle existence du comportement de serveur sur la page. Elle
respecte la casse. Elle doit être courte et unique et ne contenir aucun espace ni
autre section susceptible d'être modifiée par l'utilisateur. Supposons, par exemple,
que le participant soit composé de la simple balise ASP :
<% if (Recordset1.EOF) Response.Redirect("some_url_here") %>
La chaîne quickSearch à consulter pourrait être représentée comme suit :
<quickSearch>Response.Redirect</quickSearch>
Pour des raisons de performances, le processus de recherche des occurrences de
comportement de serveur commence par le profil quickSearch. Si cette chaîne
figure dans le document et que le participant identifie un comportement de
serveur (dans le fichier groupe, partType="identifier" pour ce participant), les
fichiers associés sont alors chargés et la fonction findServerBehaviors() est
appelée. A défaut de chaînes fiables à rechercher dans le participant (ou pour des
raisons de débogage), vous pouvez laisser la chaîne quickSearch vide :
<quickSearch></quickSearch>
Dans ce cas, le comportement de serveur est toujours chargé et la recherche du
document exécutée.
124
Chapitre 11
La balise searchPattern est ensuite utilisée pour analyser plus minutieusement le
document et pour extraire des valeurs de paramètre du code du participant. Les
profils de recherche spécifient l'emplacement de la recherche (l'attribut
whereToSearch) et exploitent une série de balises searchPattern contenant des
profils spécifiques. Ces profils peuvent utiliser de simples chaînes ou des
expressions régulières. Le code de l'exemple précédent est une directive ASP, à
savoir whereToSearch="directive", et une expression régulière identifie la
directive et extrait les paramètres, comme suit :
<quickSearch>Response.Write</quickSearch>
<searchPatterns whereToSearch="directive">
<searchPattern paramNames="rs,new__url">
/if\s*\((\w+)\.EOF\)\s*Response\.Redirect\("(.+)"/i
</searchPattern>
</searchPatterns>
La chaîne recherchée est définie comme une expression régulière, commençant et
finissant par une barre oblique et suivie d'un i pour éliminer le respect de la casse.
Dans l'expression régulière, les caractères spéciaux (parenthèses, points, etc.) sont
évités en les faisant précéder d'une barre oblique inverse. Les deux paramètres rs
et new__url sont extraits de la chaîne à l'aide de sous-expressions entre
parenthèses (les paramètres doivent être entre parenthèses). Ici, ils sont indiqués
par (\w+) et (.+). Ces valeurs correspondent aux valeurs des expressions
régulières normalement renvoyées par \1 et \2.
Il arrive parfois que vous vouliez identifier un
participant, en dépit de paramètres demeurés introuvables. Un des participants
peut éventuellement stocker des informations facultatives, telles qu'un numéro de
téléphone. Supposons, par exemple, le code ASP :
Profils de recherche facultatifs
<% //address block
LNAME = "joe";
FNAME = "smith";
PHONE = "123-4567";
%>
Les profils de recherche peuvent se présenter comme suit :
<quickSearch>address</quickSearch>
<searchPatterns whereToSearch="directive">
<searchPattern paramNames="lname">/LNAME\s*=\s*"(.*)"/i¬
</searchPattern>
<searchPattern paramNames="fname">/FNAME\s*=\s*"(.*)"/i¬
</searchPattern>
<searchPattern paramNames="phone">/PHONE\s*=\s*"(.*)"/i¬
</searchPattern>
</searchPatterns>
Comportements de serveur
125
Si le numéro de téléphone n'est pas spécifié, comme dans :
<% //address block
LNAME = "joe";
FNAME = "smith";
%>
c'est le participant tout entier qui ne sera pas reconnu. Pour résoudre ce problème,
rendez searchPattern facultative en lui ajoutant l'attribut isOptional, comme
suit :
<quickSearch>address</quickSearch>
<searchPatterns whereToSearch="directive">
<searchPattern paramNames="lname">/LNAME\s*=\s*"(.*)"/i¬
</searchPattern>
<searchPattern paramNames="fname">/FNAME\s*=\s*"(.*)"/i¬
</searchPattern>
<searchPattern paramNames="phone" isOptional="true">¬
/PHONE\s*=\s*"(.*)"/i
</searchPattern>
</searchPatterns>
A présent, le participant sera reconnu, que le numéro de téléphone soit trouvé ou
non.
Si un comportement de serveur
comporte plusieurs participants, ils doivent être identifiés dans le document
utilisateur et comparés les uns aux autres. Si l'utilisateur applique plusieurs
occurrences du comportement de serveur à un document, chaque groupe de
participants doit être comparé comme il se doit. Pour que la comparaison des
participants s'effectue correctement, vous devez éventuellement modifier ou
ajouter des paramètres, puis créer des participants qui soient identifiables de façon
unique.
Mode de comparaison des participants
Voici les règles de fonctionnement de cette comparaison : les participants sont
comparés quand l'ensemble des paramètres disposant du même nom ont la même
valeur. Au-dessus et en dessous de la balise <HTML> ne peut figurer qu'une seule
occurrence d'un participant, avec un jeu donné de valeurs de paramètre. Entre les
balises <HTML>...</HTML>, les participants concordent également en fonction de
leur position par rapport à la sélection ou aux Nudss communs utilisés pour
l'insertion.
Les participants sans paramètres concordent automatiquement. Supposons, par
exemple, qu'un comportement de serveur avec un fichier groupe :
<group serverBehavior="test.htm">
<title>Test</title>
<groupParticipants>
<groupParticipant name="test_p1" partType="identifier" />
<groupParticipant name="test_p1" partType="identifier" />
</groupParticipants>
</group>
126
Chapitre 11
puisse insérer deux participants simples au-dessus de la balise HTML, comme
suit :
<% //test_p1 %>
<% //test_p2 %>
<html>
Ces participants sont localisés, puis comparés les uns aux autres et le mot Test
s'affiche une fois dans le panneau Comportements de serveur. Si vous ajoutez de
nouveau ce comportement de serveur, rien n'est ajouté étant donné que les
participants existent déjà.
Si les paramètres des participants sont uniques, de multiples occurrences peuvent
être insérées au-dessus de la balise <HTML>. Par exemple, en ajoutant un paramètre
de nom au participant, un utilisateur peut saisir un nom unique dans la boîte de
dialogue du comportement de serveur Test. S'il saisit le nom « aaa », les
participants suivants seront insérés :
<% //test_p1 name="aaa" %>
<% //test_p2 name="aaa" %>
<html>
Si vous ajoutez de nouveau le comportement de serveur et saisissez un autre nom,
soit « bbb », le document se présentera comme suit :
<% //test_p1
<% //test_p2
<% //test_p1
<% //test_p2
<html>
name="aaa"
name="aaa"
name="bbb"
name="bbb"
%>
%>
%>
%>
et deux occurrences du mot Test seront répertoriées dans le panneau
Comportements de serveur. Si l'utilisateur tente d'ajouter une troisième
occurrence à la page et qu'il la nomme « aaa », rien n'est ajouté étant donné
qu'elle existe déjà.
Dans la balise <HTML>, le processus de concordance peut également avoir recours à
des informations de position. Supposons, par exemple, deux participants, l'un
ajouté avant la sélection et l'autre après, comme suit :
<% if (expression) { //mySBName %>
Random HTML selection here
<% } //end mySBName %>
Comportements de serveur
127
Ces deux participants ne sont pourvus d'aucun paramètre et sont donc regroupés.
Il est toutefois possible d'ajouter une autre occurrence de ce comportement de
serveur ailleurs dans le code HTML, comme suit :
<% if (expression) { //mySBName %>
Random HTML selection here
<% } //end mySBName %>
More HTML here...
<% if (expression) { //mySBName %>
Another HTML selection here
<% } //end mySBName %>
A présent, les deux occurrences de chaque participant sont identiques (chose
permise dans le code HTML) et sont comparées selon l'ordre dans lequel elles
apparaissent dans le document.
Voici un exemple type d'un problème de concordance et des solutions possibles
pour l'éviter. Imaginons que vous désiriez créer un participant capable de calculer
la taxe de certaines données dynamiques et d'afficher le résultat à la sélection.
Exemple :
<% total = Recordset1.Fields.Item("itemPrice").Value * 1.0825 %>
<html>
<body>
The total (with taxes) is $<%=total%>
</body>
</html>
Les deux participants concordent car ils n'ont aucun paramètre en commun.
Toutefois, si vous ajoutez une deuxième occurrence de ce comportement de
serveur, vous pouvez avoir :
<% total = Recordset1.Fields.Item("itemPrice").Value * 1.0825 %>
<% total = Recordset1.Fields.Item("salePrice").Value * 1.0825 %>
<html>
<body>
The total (with taxes) is $<%=total%>
Sale price (with taxes) is $<%=total%>
</body>
</html>
128
Chapitre 11
Ce comportement de serveur ne fonctionne plus correctement, car un seul
paramètre est nommé total. Pour résoudre le problème, vérifiez qu'il existe bien
un paramètre dont la valeur est unique pouvant être utilisé pour comparer les
participants. Dans cet exemple, vous pouvez faire en sorte que le nom de la
variable total soit unique en utilisant le nom de la colonne et avoir :
<% itemPrice_total = Recordset1.Fields.Item("itemPrice").¬
Value * 1.0825 %>
<% salePrice_total = Recordset1.Fields.Item("salePrice").¬
Value * 1.0825 %>
<html>
<body>
The total (with taxes) is $<%=itemPrice_total%>
Sale price (with taxes) is $<%=salePrice_total%>
</body>
</html>
A présent, les profils de recherche peuvent identifier de façon unique et comparer
les participants.
Mise à jour des comportements de serveur
Mise à jour des participants Par défaut, aucune balise <updatePatterns> ne
figure dans les fichiers XML participants et les occurrences du participant sont
mises à jour dans le document par un remplacement complet. Lorsqu'un
utilisateur modifie un comportement de serveur existant et clique sur OK, tout
participant contenant un paramètre dont la valeur a changé sera supprimé, puis
rajouté au même endroit.
Si l'utilisateur personnalise le code du participant dans le document, le participant
peut ne plus être reconnu car les profils de recherche recherchent l'ancien code.
Des profils de recherche plus courts permettent à l'utilisateur de personnaliser le
code du participant dans le document ; toutefois, la mise à jour de l'occurrence du
comportement de serveur risque d'entraîner le remplacement du participant et la
perte des modifications personnalisées.
Dans certains cas, il peut s'avérer préférable de laisser
l'utilisateur personnaliser le code du participant après insertion dans le document.
Pour ce faire, il suffit de limiter les profils de recherche et de fournir des profils de
mise à jour dans le fichier XML. Une fois le participant ajouté à la page, seules
quelques parties spécifiques seront mises à jour par le comportement de serveur.
Supposons, par exemple, un simple participant doté de deux paramètres :
Mise à jour de précision
<% if (Recordset1.EOF) Response.Redirect("some_url_here") %>
Comportements de serveur
129
Les profils de recherche peuvent se présenter comme suit :
<quickSearch>Response.Write</quickSearch>
<searchPatterns whereToSearch="directive">
<searchPattern paramNames="rs,new__url">
/if\s*\((\w+)\.EOF\)\s*Response\.Redirect\("(.+)"/i
</searchPattern>
</searchPatterns>
Le cas échéant, l'utilisateur peut ajouter un autre test à une occurrence particulière
de ce code, par exemple :
<% if (Recordset1.EOF || x > 2) Response.Redirect("some_url_here")
%>
A présent, les profils de recherche échouent (ils recherchent une parenthèse après
EOF). Pour rendre les profils de recherche plus flexibles, vous pouvez les raccourcir
en les partageant :
<quickSearch>Response.Write</quickSearch>
<searchPatterns whereToSearch="directive">
<searchPattern paramNames="rs">/(\w+)\.EOF/</searchPattern>
<searchPattern paramNames="new__url">
/if\s*\(.+\)\s*Response\.Redirect\("(.*)"/i
</searchPattern>
</searchPatterns>
Ces profils de recherche étant plus souples, l'utilisateur peut effectuer des ajouts au
code. Toutefois, s'il utilise le comportement de serveur pour modifier l'URL,
lorsqu'il clique sur OK, le participant est remplacé et ses personnalisations sont
perdues. Pour des mises à jour plus précises, ajoutez une balise updatePatterns
et un profil pour la mise à jour de chaque paramètre :
<updatePatterns>
<updatePattern paramNames="rs">/(\b)\w+(\.EOF)/¬
</updatePattern>
<updatePattern paramNames="new__url">
/(Response\.Redirect\(").*(")/i
</updatePattern>
</updatePatterns>
Dans les profils de mise à jour, les parenthèses sont inversées et placées autour du
texte avant et après le paramètre. Pour les profils de recherche, utilisez
textBeforeParam(param)textAfterParam. Pour les profils de mise à jour,
utilisez (textBeforeParam)param(textAfterParam). Tout ce qui se trouve
entre les deux sous-expressions entre parenthèses sera remplacé par la nouvelle
valeur du paramètre.
130
Chapitre 11
Suppression de comportements de serveur
L'utilisateur peut supprimer
une occurrence qu'il a sélectionnée dans le panneau Comportements de serveur en
cliquant sur le bouton Moins (-) ou en appuyant sur la touche Suppr du clavier.
Sont éliminés tous les participants, hormis ceux qui sont communs à d'autres
comportements de serveur. Notamment, si plusieurs comportements de serveur
ont un pointeur de participant relié au même Nuds, le Nuds ne sera pas supprimé.
Suppression par défaut et comptes de dépendance
Par défaut, vous supprimez les participants en éliminant la balise entière. Si
l'emplacement d'insertion correspond à "wrapSelection", seule la balise
extérieure est supprimée. La déclaration d'attribut dans son ensemble est
supprimée. Supposons, par exemple, un participant sur l'attribut ACTION d'une
balise de formulaire, comme suit :
<form action="<% my_participant %>">
Après la suppression, il ne reste plus que :
<form>
Il s'avère
parfois utile de limiter la façon dont les participants sont supprimés. Pour cela, il
suffit d'ajouter une balise de suppression (delete) au fichier XML. Supposons, par
exemple, un participant correspondant à l'attribut HREF d'un lien, comme suit :
Utilisation d'indicateurs pour limiter la suppression des participants
<a href="<%=MY_URL%>">Link Text</a>
Lorsque ce participant d'attribut est supprimé, la balise devient :
<a>Link Text</a>
qui n'apparaît plus sous forme de lien dans Dreamweaver. Vous pouvez
éventuellement ne supprimer que la valeur de l'attribut, en ajoutant la balise
suivante au fichier XML participant :
<delete deleteType="innerOnly"/>
Vous pouvez aussi éliminer la balise entière lorsque l'attribut est supprimé. La
chaîne au départ est la suivante :
<delete deleteType="tagOnly"/>
et le texte résultant (après la suppression) est :
Link Text
Simplification des comportements de
serveur
findSBs(), applySB() et deleteSB() sont trois fonctions auxiliaires à votre
disposition pour la création de comportements de serveur. Vous les appelez à
partir des fonctions API de comportement de serveur. Vous devez également créer
des fichiers XML, utilisés par les fonctions pour les données d'exécution.
Comportements de serveur
131
findSBs()
Disponibilité
Dreamweaver UltraDev 4.0
Description
Cette fonction recherche toutes les occurrences d'un comportement de serveur sur
la page en cours, ainsi que tous les participants. Elle définit le titre, le type, les
tableaux des participants, des poids et des types, l'attribut selectedNode et
l'indicateur « incomplete ». Elle crée également un objet de paramètre contenant
une liste de propriétés définissables par l'utilisateur (le nom d'un jeu
d'enregistrements et le nom d'une colonne, par exemple). Renvoyez ce tableau
depuis la fonction findServerBehaviors().
Arguments
est une chaîne de titre facultative utilisée pour remplacer
le titre XML. Utile pour la localisation. Voir « Schéma XML de comportement de
serveur », page 145 pour plus de détails.
serverBehaviorTitle
Valeurs renvoyées
Un tableau d'objets JavaScript, avec les propriétés requises définies. Cette fonction
renvoie un tableau vide si les fichiers XML groupes se réfèrent au comportement
de serveur appelant.
Exemple
Le code suivant recherche dans le document utilisateur en cours toutes les
occurrences d'un comportement de serveur particulier :
function findServerBehaviors() {
allMySBs = findSBs();
return allMySBs;
}
132
Chapitre 11
et renvoie le tableau suivant, étant donné deux comportements de serveur dans le
document utilisateur :
allMySBs[0].title
= "Redirect If Empty (Recordset1)"
allMySBs[0].type
= "redirectIfEmpty";
allMySBs[0].selectedNode = true;
allMySBs[0].incomplete
= false;
allMySBs[0].participants[0] = someAspNodePointer;
allMySBs[0].weights[0]
= aboveHTML+51;
allMySBs[0].types[0]
= "redirectIfEmpty_main";
allMySBs[0].parameters.rs = "Recordset1";
allMySBs[0].parameters.url = "http:www.yahoo.com";
allMySBs[1].title
= "Redirect If Empty (Recordset2)"
allMySBs[1].type
= "redirectIfEmpty";
allMySBs[1].selectedNode = true;
allMySBs[1].incomplete
= false;
allMySBs[1].participants[0] = someAspNodePointer;
allMySBs[1].weights[0]
= 51;
allMySBs[1].types[0]
= "redirectIfEmpty_main";
allMySBs[1].parameters.rs = "Recordset2";
allMySBs[1].parameters.url = "http://www.excite.com";
applySB()
Disponibilité
Dreamweaver UltraDev 4.0
Description
Cette fonction insère ou met à jour le code d'exécution du comportement de
serveur. Si le paramètre sbObj est null, la fonction insère un nouveau code
d'exécution ; dans le cas contraire, elle met à jour le code d'exécution existant
indiqué par l'objet sbObj. Définissez les paramètres utilisateur sous la forme de
propriétés sur un objet JavaScript, puis transmettez-les en tant que paramObj. Ils
doivent correspondre à tous les paramètres déclarés sous la forme @@paramName@@
dans le texte d'insertion XML. Si un participant dépend d'un pointeur de Nuds
(tel que le poids d'insertion relatif à un Nuds), une propriété nameTag doit être
définie.
Arguments
sbObj, paramObj
•
sbObj
•
paramObj
est l'occurrence de l'objet du comportement de serveur à ajouter au
document utilisateur.
est l'objet contenant les paramètres utilisateur.
Comportements de serveur
133
Valeurs renvoyées
true si le comportement de serveur a été correctement ajouté au document
utilisateur ; false dans le cas contraire.
Exemple
Dans l'exemple suivant, vous renseignez l'objet paramObj avec les données de
l'utilisateur, puis vous appelez la fonction applySB et transmettez les données et
votre comportement de serveur, sbObj.
function applyServerBehaviors(sbObj) {
// get all UI values here...
paramObj = new Object();
paramObj.rs
= rs;
paramObj.col
= col;
paramObj.formFields = ....;
paramObj.url
= new__url;
paramObj.form__tag = formObj;
applySB(paramObj, sbObj);
}
deleteSB()
Disponibilité
Dreamweaver UltraDev 4.0
Description
Cette fonction supprime tous les participants de l'occurrence du comportement
de serveur sbObj. Le participant dans son ensemble est supprimé, à moins que le
fichier XML n'indique des instructions de suppression spéciales à l'aide de la balise
<delete>. Elle ne supprime pas les participants appartenant à plusieurs
occurrences de comportement de serveur (comptage de référence > 1).
Arguments
est l'occurrence de l'objet du comportement de serveur à supprimer du
document utilisateur.
sbObj
Valeurs renvoyées
Aucune.
Exemple
L'exemple suivant illustre la suppression de tous les participants du comportement
de serveur sbObj, hormis ceux qui sont protégés par la balise <delete> du fichier
XML.
function deleteServerBehavior(sbObj) {
deleteSB(sbObj);
}
134
Chapitre 11
displayHelp()
Description
Si cette fonction est définie, un bouton Aide s'affiche sous les boutons OK et
Annuler dans la boîte de dialogue. Cette fonction est appelée lorsque l'utilisateur
clique sur le bouton Aide.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Exemple
Dans l'exemple suivant, la fonction displayHelp() ouvre dans une fenêtre de
navigateur un fichier contenant les instructions :
function displayHelp(){
dreamweaver.browseDocument('http://www.hotwired.com/¬
webmonkey/javascript/code_library/wm_pos2_elmnt_dw/¬
?tw=javascript');
}
Comment appeler les fonctions API de
comportement de serveur
Les fonctions API de comportement de serveur sont appelées dans les situations
suivantes :
• La fonction findServerBehaviors() est appelée à l'ouverture du document
et à chaque fois qu'un participant est modifié. Elle recherche des occurrences
du comportement de serveur dans le document utilisateur. Pour chaque
occurrence trouvée, findServerBehaviors() crée un objet JavaScript et lui
attache des informations d'état sous la forme de propriétés JavaScript.
Comportements de serveur
135
• Lorsqu'elle est mise en œuvre, UltraDev appelle la fonction
analyzeServerBehavior() pour chaque comportement trouvé dans le
document utilisateur après que toutes les fonctions findServerBehaviors()
ont été appelées.
Lorsque la fonction findServerBehaviors() crée un objet de comportement,
elle définit normalement les quatre propriétés (incomplete, participants,
selectedNode et title). Cependant, il est parfois plus facile de retarder la
configuration de certaines des propriétés jusqu'à ce que tous les autres
comportements de serveur aient trouvé des occurrences d'eux-mêmes. Par
exemple, le comportement Déplacer vers l'enregistrement suivant est composé
de deux participants : un objet lien et un objet jeu d'enregistrements. Au lieu de
rechercher l'objet de jeu d'enregistrements dans sa fonction
findServerBehaviors(), il est plus simple d'attendre que la fonction
findServerBehaviors() du comportement du jeu d'enregistrements soit
exécutée, car ledit jeu recherche toutes les occurrences de lui-même.
Lorsque la fonction analyzeServerBehavior() du comportement Déplacer
vers l'enregistrement suivant est appelée, un tableau lui est transmis, contenant
tous les comportements de serveur du document. La fonction peut rechercher
l'objet de jeu d'enregistrements dans le tableau, puis ajouter ledit jeu à son
tableau de participants.
En cours d'analyse, il arrive que deux comportements ou plus identifient une
seule balise dans le document utilisateur comme étant une occurrence de ce
comportement. Supposons, par exemple, que la fonction
findServerBehaviors() pour le comportement Attribut dynamique détecte
une occurrence du comportement Attribut dynamique associée à une balise
<input> dans le document utilisateur. Simultanément, la fonction
findServerBehaviors() pour le comportement Champ de texte dynamique
a analysé la même balise <input> et détecté une occurrence du comportement
Champ de texte dynamique.
Le panneau Comportements de serveur affiche alors à la fois le bloc Attribut
dynamique et le comportement Champ de texte dynamique. Pour corriger ce
problème, utilisez les fonctions analyzeServerBehavior() pour supprimer
tous les comportements de serveur redondants sauf un.
Pour supprimer un comportement de serveur, une fonction
analyzeServerBehavior() peut définir la propriété « deleted » dudit
comportement sur la valeur true. Si la propriété deleted a toujours la valeur
true lorsqu'UltraDev finit d'appeler les fonctions
analyzeServerBehavior(), le comportement disparaît de la liste.
136
Chapitre 11
• Lorsque l'utilisateur clique sur le bouton Plus (+) du panneau Comportements
de serveur, le menu contextuel s'affiche.
Pour déterminer le contenu du menu, UltraDev recherche d'abord un fichier
ServerBehaviors.xml dans le même répertoire que celui des comportements.
ServerBehaviors.xml fait référence aux fichiers HTML devant apparaître dans le
menu.
Si le fichier HTML référencé contient une balise de titre (title), le contenu de
cette balise s'affiche dans le menu. Par exemple, si le fichier ServerBehaviors/
ASP/GetRecords.htm contient la balise <title>Get More Records</title>,
le texte « Get More Records » s'affiche dans le menu.
Si le fichier ne contient pas de balise de titre, c'est le nom du fichier qui
apparaît dans le menu. Par exemple, si GetRecords.htm ne contient pas de
balise de titre, GetRecords s'affiche dans le menu.
S'il n'y a pas de fichier ServerBehaviors.xml ou si le répertoire contient un ou
plusieurs fichiers HTML non mentionnés dans ServerBehaviors.xml, UltraDev
recherche une balise « title » dans chaque fichier et fait figurer dans le menu le
nom de cette balise ou celui du fichier.
Si vous ne voulez pas qu'un fichier du répertoire ServerBehaviors s'affiche dans
le menu, ajoutez l'instruction suivante sur la première ligne du fichier HTML :
<!-- MENU-LOCATION=NONE -->
Remarque : pour qu'un fichier du répertoire ServerBehaviors s'applique à un seul
langage de script spécifique, ajoutez l'instruction suivante de manière à ce qu'elle
devienne la première ligne du fichier HTML :
<!-- SCRIPTING-LANGUAGE=XXX -->
où XXX correspond au langage de script. Cette instruction provoque
l'apparition du comportement de serveur dans le menu Plus (+) du panneau
Comportements de serveur, seulement quand le langage de script sélectionné
est XXX.
• La fonction canApplyServerBehavior() est appelée lorsque l'utilisateur
sélectionne un élément dans le menu. Si cette fonction renvoie la valeur true,
une boîte de dialogue s'affiche. Lorsque l'utilisateur clique sur OK, la fonction
applyServerBehavior() est appelée.
• Si l'utilisateur double-clique sur un comportement de serveur existant pour le
modifier, UltraDev affiche la boîte de dialogue, exécute le gestionnaire onLoad
sur la balise BODY (si elle existe), puis appelle inspectServerBehavior(). La
fonction inspectServerBehavior() renseigne les éléments du formulaire
avec les valeurs des paramètres en cours. Lorsque l'utilisateur clique sur OK,
UltraDev appelle à nouveau la fonction applyServerBehavior().
Comportements de serveur
137
• Si l'utilisateur clique sur le bouton Moins (-), la fonction
deleteServerBehavior()
deleteServerBehavior()
est appelée. La fonction
supprime les comportements correspondants du
document.
• Lorsque l'utilisateur sélectionne un comportement de serveur et appuie sur
Ctrl+C (ou Ctrl+X), UltraDev transmet l'objet représentant le comportement
de serveur à sa fonction copyServerBehavior(). La fonction
copyServerBehavior() ajoute à l'objet de comportement les propriétés
supplémentaires nécessaires à son collage ultérieur.
Une fois la fonction copyServerBehavior() renvoyée, UltraDev convertit
l'objet de comportement en un formulaire qui peut être placé dans le Pressepapiers. Pendant la conversion de l'objet, UltraDev supprime toutes les
propriétés faisant référence à des objets ; toute propriété de l'objet autre qu'un
nombre, un opérateur booléen ou une chaîne est perdue.
Lorsque l'utilisateur appuie sur Ctrl+V, UltraDev décompresse le contenu du
Presse-papiers et génère un nouvel objet de comportement de serveur. Ce
nouvel objet est identique à l'original, sauf qu'il ne contient aucune propriété
faisant référence à des objets. UltraDev transmet le nouvel objet de
comportement à pasteServerBehavior(). La fonction
pasteServerBehavior() ajoute le comportement au document utilisateur.
Une fois la fonction pasteServerBehavior() renvoyée, UltraDev appelle les
fonctions findServerBehaviors() pour obtenir la nouvelle liste des
comportements de serveur présents dans le document utilisateur.
Les utilisateurs peuvent copier et coller des comportements d'un document à
un autre. En fait, ils peuvent copier et coller des comportements d'une session à
une autre, c'est-à-dire copier un comportement, quitter UltraDev, redémarrer
UltraDev, puis coller le comportement. Pour échanger des informations, les
fonctions copyServerBehavior() et pasteServerBehavior() doivent se
baser uniquement sur les propriétés de l'objet de comportement.
API de comportement de serveur
Les fonctions suivantes sont les API que vous pouvez utiliser pour créer des
comportements de serveur. Pour vous simplifier la tâche, imbriquez des fonctions
*SB() à l'intérieur de ces fonctions et créez des fichiers XML. Pour plus
d’informations, voir « Simplification des comportements de serveur », page 131.
analyzeServerBehavior()
Disponibilité
Dreamweaver UltraDev 1.0
138
Chapitre 11
Description
Cette fonction permet aux comportements de serveur de définir leurs indicateurs
sur les valeurs incomplete et deleted.
Une fois la fonction findServerBehaviors() appelée pour tous les
comportements de serveur sur la page, un tableau de tous les comportements
s'affiche dans le document utilisateur. Pour chaque objet JavaScript présent dans le
tableau, la fonction analyzeServerBehavior() est appelée. Par exemple, pour le
comportement Texte dynamique, UltraDev appelle la fonction
analyzeServerBehavior() dans DynamicText.htm (ou DynamicText.js).
La fonction analyzeServerBehavior() a notamment pour but de terminer la
définition de toutes les propriétés (incomplete, participants, selectedNode et
title) sur l'objet de comportement (il est parfois plus facile d'exécuter cette tâche
après que findServerBehaviors() a généré une liste exhaustive des
comportements de serveur présents dans le document utilisateur).
L'autre but de la fonction analyzeServerBehavior() est de rechercher si
plusieurs comportements se réfèrent à la même balise dans le document
utilisateur. Dans ce cas, la propriété deleted est utilisée pour supprimer du
tableau tous les comportements sauf un.
Voici un exemple de la manière dont analyzeServerBehavior() fonctionne :
Supposons trois comportements de serveur sur une page : Recordset1,
DynamicText1 et DynamicText2. Pour que la liste soit considérée comme
exhaustive, les deux comportements de serveur DynamicText requièrent
Recordset1 pour exister sur la page. Après que findServerBehaviors() a repéré
les trois comportements de serveur, la fonction analyzeServerBehavior() est
appelée pour les trois comportements trouvés. Lorsque la fonction
analyzeServerBehavior() est appelée pour DynamicText1, elle inspecte le
tableau de tous les objets de comportement de serveur présents sur la page, à la
recherche de celui qui appartient à Recordset1. Si elle ne trouve pas l'objet
JavaScript de comportement de serveur qui appartient à Recordset1, la propriété
incomplete est affectée de la valeur true et un point d'exclamation est affiché
dans le panneau Comportements de serveur, indiquant à l'utilisateur qu'il y a un
problème. De même, lorsque la fonction analyzeServerBehavior() est appelée
pour DynamicText2, elle recherche l'objet JavaScript appartenant à Recordset1.
Comme Recordset1 ne dépend d'aucun autre comportement de serveur, il n'a pas
besoin de définir la fonction analyzeServerBehavior() dans cet exemple.
Arguments
behavior, [behaviorArray]
•
•
behavior
est un objet JavaScript représentant le comportement à analyser.
est un tableau d'objets JavaScript représentant l'ensemble
des comportements de serveur trouvés sur une page.
[behaviorArray]
Valeurs renvoyées
Aucune.
Comportements de serveur
139
applyServerBehavior()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Cette fonction consulte les valeurs des éléments de formulaire dans la boîte de
dialogue et ajoute le comportement au document utilisateur. UltraDev appelle
cette fonction lorsque l'utilisateur clique sur OK dans la boîte de dialogue
Paramètres. Si la fonction est exécutée avec succès, la boîte de dialogue Paramètres
est fermée. Si elle échoue, la boîte de dialogue Paramètres reste ouverte et un
message d'erreur s'affiche à l'écran. Cette fonction peut modifier un document
utilisateur.
Voir également « applySB() », page 133.
Arguments
serverBehavior
ou null
est un objet JavaScript représentant le comportement de
serveur ; transmis s'il modifie un comportement existant. S'il s'agit d'un nouveau
comportement, transmet la valeur null.
serverBehavior
Valeurs renvoyées
Une chaîne vide en cas de succès. Si la fonction échoue, la boîte de dialogue
Paramètres reste ouverte et un message d'erreur s'affiche à l'écran.
canApplyServerBehavior()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Cette fonction détermine si un comportement peut être appliqué. UltraDev
appelle cette fonction avant d'afficher la boîte de dialogue Paramètres. Si la
fonction renvoie la valeur true, la boîte de dialogue Paramètres s'affiche à l'écran.
Si elle renvoie false, la boîte de dialogue Paramètres ne s'affiche pas et la tentative
d'ajout d'un comportement de serveur est interrompue.
Arguments
behavior
ou null
est un objet JavaScript représentant le comportement ; transmis s'il
modifie un comportement existant. S'il s'agit d'un comportement existant,
transmet la valeur null.
behavior
Valeurs renvoyées
true
140
Chapitre 11
si le comportement peut être appliqué, sinon false.
copyServerBehavior()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Lorsqu'elle est mise en œuvre, cette fonction permet aux utilisateurs de copier des
occurrences du comportement de serveur spécifié. Elle est mise en œuvre pour les
jeux d'enregistrements, par exemple. Lorsqu'un utilisateur sélectionne un jeu
d'enregistrements dans les panneaux Comportements de serveur ou Liaisons de
données, il appuie sur les touches Ctrl+C pour copier le comportement dans le
Presse-papiers ou sur Ctrl+X pour le couper. Ctrl+C et Ctrl+X n'ont aucun effet
sur les comportements de serveur qui ne mettent pas en œuvre cette fonction.
L'utilisation de copyServerBehavior() n'est pas obligatoire. Pour plus
d'informations, voir « Comment appeler les fonctions API de comportement de
serveur », page 135.
Pour échanger des informations, les fonctions copyServerBehavior() et
pasteServerBehavior() doivent uniquement se baser sur les propriétés de
l'objet de comportement capables d'être converties en chaînes. Le Presse-papiers
ne contient que du texte brut ; il est, pour cette raison, nécessaire de résoudre les
Nudss participant dans le document et d'enregistrer le texte brut qui en résulte
dans une propriété secondaire.
Remarque : il est également important de mettre en œuvre la fonction
pasteServerBehavior() pour permettre à l'utilisateur de coller le comportement dans
un document UltraDev.
Arguments
behavior
est un objet JavaScript représentant le comportement.
Valeurs renvoyées
true si
false.
le comportement a été copié avec succès dans le Presse-papiers, sinon
deleteServerBehavior()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Cette fonction supprime le comportement du document utilisateur. Elle est
appelée lorsque l'utilisateur clique sur le bouton Moins (-) du panneau
Comportements de serveur. Elle permet de modifier un document utilisateur.
Voir également « deleteSB() », page 134.
Comportements de serveur
141
Arguments
behavior
est un objet JavaScript représentant le comportement.
Valeurs renvoyées
Aucune.
findServerBehaviors()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Cette fonction parcourt le document utilisateur à la recherche d'occurrences
d'elle-même. Pour chaque occurrence trouvée, findServerBehaviors() crée un
objet JavaScript et lui attache des informations d'état sous la forme de propriétés
JavaScript. Les quatre propriétés requises sont incomplete, participants,
title et selectedNode. Vous pouvez définir d'autres propriétés en fonction de
vos besoins. UltraDev appelle cette fonction après l'exécution d'un traducteur ou
chaque fois qu'un participant est modifié. Pour plus d'informations sur les
traducteurs de données, voir « Mode de fonctionnement des traducteurs de
données ».
Voir également « findSBs() », page 132 et « dw.getParticipants() », page 143.
Arguments
Aucun.
Valeurs renvoyées
Un tableau d'objets JavaScript ; la longueur du tableau correspond au nombre
d'occurrences du comportement trouvées dans la page.
inspectServerBehavior()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Cette fonction détermine les paramètres de la boîte de dialogue Paramètres en
fonction de l'objet de comportement spécifié. UltraDev appelle cette fonction
lorsqu'un utilisateur affiche la boîte de dialogue Paramètres, uniquement si
celui-ci modifie un comportement existant.
Arguments
behavior est un objet JavaScript représentant le comportement. Il s'agit du même
objet que celui renvoyé par findServerBehaviors() (appelée à l'ouverture du
document).
Valeurs renvoyées
Aucune.
142
Chapitre 11
pasteServerBehavior()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Lorsqu'elle est mise en œuvre, cette fonction permet aux utilisateurs de coller des
occurrences du comportement de serveur spécifié. Elle est utilisée avec
copyServerBehavior(). Lorsque l'utilisateur appuie sur les touches Ctrl+V pour
coller le comportement de serveur, UltraDev décompresse le contenu du Pressepapiers et génère un nouvel objet de comportement. Ce nouvel objet est identique
à l'original, sauf qu'il ne contient aucune propriété de pointeur. UltraDev
transmet le nouvel objet de comportement à pasteServerBehavior(). La
fonction pasteServerBehavior() se base sur les propriétés de l'objet de
comportement pour déterminer ce qui doit être ajouté au document utilisateur.
La fonction pasteServerBehavior() ajoute ensuite le comportement au
document utilisateur. Une fois la fonction pasteServerBehavior() renvoyée,
UltraDev appelle les fonctions findServerBehaviors() pour obtenir la nouvelle
liste des comportements de serveur présents dans le document utilisateur.
La mise en œuvre de la fonction pasteServerBehavior() n'est pas obligatoire.
Pour plus d'informations, voir « Comment appeler les fonctions API de
comportement de serveur », page 135.
Remarque : si vous implémentez cette fonction, vous devez également implémenter la
fonction copyServerBehavior().
Arguments
behavior
est un objet JavaScript représentant le comportement.
Valeurs renvoyées
true si
false.
le comportement a été collé avec succès depuis le Presse-papiers, sinon
dw.getParticipants()
Disponibilité
Dreamweaver UltraDev 4.0
Description
La fonction JavaScript dw.getParticipants() répertorie les participants
présents dans le document utilisateur. Une fois tous les participants du
comportement trouvés, UltraDev mémorise ces listes de participants au niveau
interne. En général, vous utilisez cette fonction avec findServerBehaviors()
pour repérer les occurrences d'un comportement dans le document utilisateur.
Arguments
est le nom du fichier groupe ou participant qui contient les noms
des participants à localiser dans le document utilisateur. Cette chaîne est le nom
de fichier, sans le suffixe d'extension .xml.
xmlFilename
Comportements de serveur
143
Valeurs renvoyées
Un tableau contenant toutes les occurrences du participant spécifié (ou, dans le cas
d'un fichier groupe, une occurrence d'un participant dans le groupe) apparaissant
dans le document utilisateur. Le tableau contient des objets JavaScript, avec un
élément pour chaque occurrence de chaque participant trouvé dans le document
utilisateur. Le tableau est trié selon l'ordre dans lequel les participants apparaissent
dans le document. Chaque objet JavaScript présente les propriétés suivantes :
•
participantNode
•
participantName
: un pointeur relié au Nuds dans le document utilisateur et
considéré comme participant.
: le nom du fichier XML du participant (moins le
suffixe « .xml »).
•
: un objet JavaScript qui stocke toutes les paires paramètre/valeur
(voir l'exemple).
parameters
Exemple
Etant donné un comportement avec un seul participant, nommé
« SetSession.xml », supposons que le profil de recherche du participant
recherche ce qui suit :
<% Session("@@parameterName@@") = "@@value@@" %>
Supposons également que le document utilisateur contienne deux occurrences du
participant :
<% Session("User") = "Bob" %>
<% Session("Password" = "password" %>
Un appel à la fonction dw.getParticipants("SetSession") renvoie un tableau
contenant deux éléments. Le premier élément présente les propriétés suivantes :
array[0].participantNode = ptrJsObj
Où ptrJsObj pointe vers un objet JavaScript dans le DOM du document
utilisateur. Cet objet JavaScript correspond à la directive de script
<% Session("User") = "Bob" %> :
array[0].participantName = "SetSession"
array[0].parameters.parameterName = "User"
array[0].parameters.value = "Bob"
144
Chapitre 11
12
CHAPITRE 12
Schéma XML de comportement de
serveur
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le schéma XML UltraDev sépare votre code d'exécution de comportement de
serveur en fonction de la façon dont UltraDev le déploie. Vous pouvez utiliser des
fichiers XML pour indiquer à UltraDev comment insérer, rendre, trouver, mettre
à jour et supprimer votre code d'exécution.
UltraDev accède à ces fichiers XML lorsque vous appelez les fonctions findSBs(),
applySB() et deleteSB() dans votre fichier Comportement de serveur. Si vous
créez un comportement de serveur entièrement nouveau, vous devez créer les
fichiers XML requis par UltraDev pour pouvoir associer et déployer vos fonctions
avec les données appropriées. Si vous modifiez un comportement de serveur créé
dans l'éditeur de comportements de serveur UltraDev, il est possible que vous
deviez également modifier les fichiers XML. Tandis que vous créez ou modifiez
chaque fichier XML, vous devez maintenir les dépendances qui existent entre les
composants XML.
Ce chapitre présente le schéma XML UltraDev et explique comment les fichiers
XML Groupe et Participant sont construits pour créer et modifier la description
des données de votre extension.
145
eXtensible Markup Language (Langage de
Marquage eXtensible)
Un langage de marquage est un moyen de définir et de déterminer la structure
d'un document. Il indique la façon dont les éléments sont organisés et non pas ce
qui est présenté. Le langage XML (eXtensible Markup Language) est décrit par le
W3C (World Wide Web Consortium ; http://www.w3.com/xml) comme un
profil d'application du langage SGML (Standard Generalized Markup Language ;
Langage de Marquage généralisé standard). XML a été qualifié de SGML
simplifié, abrégé ou limité, mais son influence sur la conception d'applications est
considérable. Contrairement au langage SGML, XML permet aux développeurs
de créer leurs propres balises, puis de les regrouper dans une structure hiérarchique
et de définir des règles d'utilisation de ces balises. XML change ainsi la façon dont
les informations sont structurées et partagées sur Internet, entre les fournisseurs et
entre les différents composants des environnements de développement à plusieurs
niveaux. UltraDev, cependant, utilise XML pour effectuer des opérations bien
spécifiques. C'est pourquoi il suffit de connaître le schéma et certaines règles de
base pour pouvoir créer et modifier sans aucune difficulté des fichiers XML
UltraDev.
Observation d'un fichier HTML
Vous pouvez utiliser votre connaissance de HTML, autre sous-ensemble de
SGML, pour observer XML. Vous avez probablement construit des sections
HTML similaires à ce qui suit :
<H1>Redwood Medical Group</H1>
<H2>Dr. Jon</H2>
<H3>Podiatry</H3>
<p>Dr. Jon is not taking new patients.</p>
Le Docteur Jon est membre du Groupe médical Redwood. Sa spécialité est la
podologie. Il ne peut pas prendre de nouveaux patients. L'emploi de la balise <H1>
indique que le Groupe médical Redwood est le plus haut niveau d'information
présenté. La balise <H1>, cependant, ne distingue le Groupe médical Redwood
d'aucun autre type d'informations qu'elle pourrait contenir. En d'autres termes, le
jeu de balises <H1></H1> pourrait tout aussi bien contenir <H1>Groupe de
Rock'n Roll Redwood</H1> et ainsi n'établir aucune distinction entre un groupe
médical et un groupe de rock and roll. XML peut établir cette distinction.
146
Chapitre 12
Observation d'un fichier XML
Voyez comment les mêmes informations pourraient être organisées dans un
document XML :
<!-- Medical Group Data -->
<GROUP medical="Redwood Medical Group">
<PARTICIPANT Doctor="Dr. Jon">
<SPECIALTY>Podiatry</SPECIALTY>
<AVAIL newPatients="false"/>
</PARTICIPANT>
</GROUP>
Le schéma XML spécifie les métadonnées des balises, c'est-à-dire la façon dont les
données sont structurées et utilisées. Dans l'exemple précédent, un commentaire
s'ouvre avec <!-- et se ferme avec -->. La balise <H1> est remplacée par une balise
donnant des informations porteuses de sens sur la façon dont ce type de document
organise ses données par rapport à un document contenant, par exemple, une liste
de groupes de rock and roll. Le premier élément <GROUP> indique que les données
sont classées par groupes. Le groupe contient des informations sur un groupe
médical, le Groupe médical Redwood. La paire nom=valeur, medical="Redwood
Medical Group", est un attribut. Un autre attribut est Doctor="Dr. Jon", qui
indique que le PARTICIPANT Dr. Jon participe à ce groupe médical en tant que
Docteur. La balise PARTICIPANT possède deux champs, SPECIALTY et AVAIL
(disponibilité), contenant les valeurs Podiatry (podologie) et false,
respectivement. Remarquez que la balise <AVAIL> n'a pas de balise de fermeture
correspondante. Au lieu de cela, la balise se termine par un /> pour indiquer que
le jeu de balises est complet.
L'organisation des données à l'intérieur de balises de métadonnées permet de faire
correspondre les balises à d'autres sources de données. Les balises peuvent être
reliées à des tableaux et à des champs de base de données. Dans cet exemple, les
valeurs Redwood Medical Group et Dr. Jon pourraient être extraites d'une base
de données.
Comme avec le code HTML, cet exemple donne une vue simplifiée d'un
document XML. Si vous observez le schéma XML d'UltraDev, vous constaterez
que les composants XML donnent les moyens d'implémenter un comportement
de serveur. Vous n'aurez pas à créer de nouveaux jeux de balises, groupes ou règles.
Vous devez comprendre les balises et les règles pour pouvoir utiliser les fichiers
XML UltraDev pour créer, mettre à jour et déployer vos extensions de
comportement de serveur.
Schéma XML de comportement de serveur
147
Schéma XML de comportement de serveur
UltraDev
Le schéma XML d'UltraDev structure les métadonnées par groupes et
participants, comme dans la section précédente, mais les participants représentent
des blocs de code et les groupes définissent les participants regroupés pour former
un comportement de serveur individuel. Il existe deux types de fichiers XML
correspondants : les fichiers Groupe et les fichiers Participant. Tous les fichiers
résident dans le dossier Configuration/ExtensionData et, au-dessous de ce niveau,
les dossiers peuvent être organisés en fonction des comportements de serveur que
vous créez.
Fichiers Groupe
En général, les fichiers Groupe contiennent une liste de participants et les fichiers
Participant comportent toutes les données sur les participants spécifiques au
modèle de serveur. Les fichiers Participant peuvent être utilisés par plusieurs
extensions.
Voici une vue de haut niveau du fichier XML Groupe UltraDev. Pour obtenir une
liste complète des éléments et des attributs, reportez-vous à la section « Fichiers
XML Groupe », page 153 plus avant dans ce chapitre.
<group serverBehavior="value">
<title>value</title>
<groupParticipants selectParticipant="value">
<groupParticipant name="value" partType="value" />
<groupParticipant name="value" partType="value" />
...
</groupParticipants>
</group>
L'élément group déclare un attribut du type serverBehavior. value est le nom
du fichier d'extension, par exemple, myExtension.htm (qui doit se trouver dans le
dossier Configuration/ServerBehaviors). Dans la balise de bloc
groupParticipants, chaque balise groupParticipant indique le fichier
Participant XML contenant le bloc de code à insérer. La valeur de l'attribut name
est le nom du fichier Participant moins l'extension .xml (par exemple,
myJSPCode).
Fichiers Participant
Un participant représente un bloc de code unique sur la page, tel une balise de
serveur, une balise HTML ou un attribut. Le fichier Participant décrit cet élément
pour chaque modèle de serveur pris en charge, comme ASP/JavaScript, ASP/
VBScript, JSP et ColdFusion. A l'intérieur de chaque spécification de modèle de
serveur, il décrit l'élément en détail : comment l'insérer, le trouver et le mettre à
jour.
148
Chapitre 12
Remarque : bien que cela ne soit pas obligatoire, un participant peut décrire un bloc de
code pour plus d'un modèle de serveur.
Pour pouvoir être utilisé par un comportement de serveur, le fichier Participant
doit figurer dans le fichier Groupe, lequel définit le comportement de serveur
particulier, et le comportement de serveur doit appeler les fonctions findSBs(),
applySB() et deleteSB(). Un seul et même fichier Participant peut être partagé
par plusieurs fichiers Groupe et par plusieurs comportements de serveur.
Si vous deviez expliquer à quelqu'un comment ajouter un comportement de
serveur, par exemple un code d'exécution JSP, à un document, vous devriez lui
donner des informations très détaillées, y compris le type de serveur à rechercher,
l'endroit où insérer le code, ce à quoi le code ressemble et les paramètres devant
être remplacés par les données utilisateur ou d'exécution. C'est ce que chaque
fichier XML Participant décrit pour chaque bloc de code.
Le fichier XML Participant décrit les données suivantes à propos de votre
comportement de serveur à l'aide de balises spécifiques à UltraDev :
• Le type de serveur
Exemple :
<implementation serverModel="JSP"> ... </implementation>
• Le code et l'endroit où placer l'occurrence unique. Ces informations sont
définies par les paramètres de balise XML insertText et sont insérées par la
fonction applySB().
Exemple :
<insertText location="aboveHTML">
<!CDATA[
<%= //specific run-time code here %>
]]>
</insertText>
• Comment reconnaître les occurrences figurant déjà sur la page. Ces occurrences
sont recherchées par la fonction findSB().
Exemple :
<searchPatterns whereToSearch="directive">
<searchPattern><!CDATA[/search pattern here/]]></
searchPattern>
<searchPattern><!CDATA[/another search pattern/]]></
searchPattern>
</searchPatterns>
Schéma XML de comportement de serveur
149
Ce fichier Participant déclare le modèle de serveur avec lequel il fonctionne. Le jeu
de balises implementation contient toutes les données sur le participant se
rapportant à un langage et à un modèle de serveur spécifiques. L'élément
quickSearch fournit la chaîne qu'UltraDev doit utiliser pour effectuer une
recherche rapide. La recherche rapide permet de trouver des marqueurs indiquant
que le document de l'utilisateur doit faire l'objet d'une recherche détaillée. La
recherche détaillée permet de déterminer si le document de l'utilisateur contient
un participant précis. La balise insertText fournit le texte à insérer dans le
document de l'utilisateur. Dans la balise de bloc searchPatterns, chaque
searchPattern contient un profil utilisé pour rechercher des occurrences de code
d'exécution et pour extraire des paramètres spécifiques.
Modification de fichiers XML
Vous devez respecter les conventions de codage UltraDev lorsque vous modifiez
un fichier. En particulier, faites très attention à la dépendance d'un élément par
rapport à un autre. Par exemple, si vous mettez à jour les balises que vous insérez,
il est possible que vous deviez également mettre à jour les profils de recherche.
Expressions régulières
Vous devez connaître les expressions régulières implémentées dans JavaScript 1.2.
Vous devez également savoir à quel moment il convient de les utiliser dans les
fichiers XML UltraDev. Par exemple, les expressions régulières ne peuvent pas être
utilisées dans les valeurs quickSearch. En revanche, elles sont employées dans
searchPattern pour la recherche et l'extraction de données.
Les expressions régulières décrivent des chaînes de texte en utilisant des caractères
affectés d'une signification spéciale (métacaractères) pour représenter le texte, le
diviser et le traiter selon des règles prédéfinies. Les expressions régulières sont des
outils d'analyse et de traitement puissants, du fait qu'elles constituent une
méthode généralisée de représentation de profil.
Tout bon manuel de référence sur JavaScript 1.2 comporte une section ou un
chapitre consacré aux expressions régulières. Nous examinons ici la façon dont les
fichiers XML Dreamweaver UltraDev utilisent les expressions régulières pour
rechercher des paramètres dans votre code d'exécution et pour extraire leurs
valeurs. Chaque fois qu'un utilisateur modifie un comportement de serveur, les
valeurs des paramètres doivent être extraites des occurrences du code d'exécution.
Ce processus d'extraction repose sur les expressions régulières.
150
Chapitre 12
Il importe que vous connaissiez quelques métacaractères (caractères spéciaux) et
métaséquences (regroupements de caractères spéciaux) utiles dans les fichiers XML
UltraDev.
Expression régulière
Description
\
Quitter les caractères spéciaux. Par exemple : \. rétablit le
métacaractère à un point littéral, \/ rétablit la barre oblique à son
sens littéral et \) rétablit la parenthèse à son sens littéral.
/ ... /i
Ne pas tenir compte de la casse lors de la recherche d'une
métaséquence.
/( ...)/
Créer une sous-expression entre parenthèses dans la
métaséquence.
\s*
Rechercher zéro ou plus espaces blancs.
Dans l'exemple Redirect If Empty (Rediriger si jeu d'enregistrements vide) du
chapitre « Comportements de serveur », page 107, le visiteur est renvoyé à une
autre page si un jeu d'enregistrements donné est vide. L'utilisateur de
Dreamweaver UltraDev doit indiquer le nom de ce jeu d'enregistrements et votre
bloc de code doit être mis à jour en fonction de ce nom. Dans le fichier XML,
l'espace réservé @@rs@@ indique l'emplacement de ce nom. Dans votre code
JavaScript d'extension, vous appelez la fonction applySB() et le gestionnaire de
données d'extension utilise les profils de recherche XML pour remplacer le
marqueur @@rs@@ par le nom du jeu d'enregistrements de l'utilisateur.
La balise XML <searchPatterns whereToSearch="directive"> indique
qu'une recherche doit être effectuée dans le code d'exécution. Chaque sous-balise
<searchPattern>...</searchPattern> définit un profil dans le code
d'exécution devant être identifié. Ainsi, l'exemple Redirect If Empty contient deux
profils.
Pour extraire des valeurs de paramètre de :
<% if (@@rs@@.EOF) Response.Redirect("@@new__url@@"); %>
rédigez une expression régulière qui identifie les chaînes rs et new__url
<searchPattern paramNames="rs,new__url">
/if \((\w+)\.EOF\) Response\.Redirect\("(.*)"/i
</searchPattern>
Une recherche est donc effectuée dans le document de l'utilisateur et, si une
correspondance est trouvée, les valeurs de paramètre sont extraites. La valeur de rs
est extraite à l'aide de la première sous-expression entre parenthèses (\w+). La
valeur de new__url est extraite à l'aide de la deuxième sous-expression entre
parenthèses (.*).
Schéma XML de comportement de serveur
151
Quelques mots sur la structure XML
Vous devez utiliser un nom de fichier unique pour identifier votre groupe de
comportements de serveur, comme, par exemple, updateRecord.xml. En règle
générale, vous devez donner à votre fichier Participant un nom correspondant à
celui du groupe, comme, par exemple, updateRecord_init.xml. Mais il peut
arriver que les fichiers Participant soient partagés entre plusieurs groupes de
comportements de serveur. Dans ce cas, nommez-les pour refléter leur fonction
exacte.
Remarque : l'espace de nom étant partagé indépendamment de la structure de dossier,
choisissez des noms à la fois descriptifs et uniques. Les noms de fichiers ne doivent pas
comporter plus de 31 caractères en raison des limitations Macintosh.
Le code d'exécution de votre comportement de serveur réside à l'intérieur de
fichiers XML. Le programme d'analyse XML ne doit confondre aucun de vos
codes d'exécution avec les balises XML. C'est pourquoi une balise spéciale doit
envelopper votre code d'exécution. La balise XML, CDATA, se charge de cette
protection. CDATA signifie « données de caractère » et correspond à tout texte autre
qu'une balise XML. Lorsque vous utilisez la balise CDATA, le programme d'analyse
XML n'essaie pas de l'interpréter en tant que balise, mais l'assimile plutôt à un
bloc de texte en clair. Les blocs marqués par la balise CDATA commencent par
<![CDATA[ et se terminent par ]]>.
Par exemple, si vous insérez le texte « Hello, World », il est prudent de spécifier
votre XML de la façon simple :
<insertText>Hello, World</insertText>
Cependant, si vous insérez un texte comportant des balises, comme par exemple
<img src='foo.gif'>, cela peut être source de confusion pour le programme
d'analyse. Dans ce cas, incorporez votre texte dans la construction CDATA :
<insertText><![CDATA[<img src='foo.gif'>]]></insertText>
Vous avez déjà vu un exemple de la balise CDATA dans le fichier Participant XML
de l'exemple Redirect If Empty du chapitre « Comportements de serveur ». Le
code d'exécution ASP est enveloppé par la balise CDATA définie comme suit :
<![CDATA[
<% if (@@rs@@.EOF) Response.Redirect("@@new__url@@"); %>
]]
En raison de la balise CDATA, les balises ASP <%= %>, ainsi que tout se qui se trouve
entre elles, ne sont pas traitées. Au lieu de cela, le gestionnaire de données
d'extension UltraDev (EDM) reçoit le texte non interprété :
<% if (Recordset1.EOF) Response.Redirect("http://www.yahoo.com");
%>
Dans les définitions XML suivantes, les emplacements où la balise CDATA est
recommandée sont indiqués dans les exemples.
152
Chapitre 12
Blocs de code dépendants
Il arrive que vous deviez créer deux blocs de code, dont un est le début d'un jeu de
balises et l'autre la fin (par exemple, lorsque vous enveloppez une sélection du
document avec le jeu de balises). Bien qu'il s'agisse de deux participants séparés, ils
dépendent l'un de l'autre et agissent comme un seul et même participant. Pour
empêcher les erreurs lors du traitement des deux participants, n'utilisez par de
profils de recherche et supprimez le type du deuxième participant, qui n'est en
réalité que la moitié du premier.
Fichiers XML Groupe
Balise XML : group
Description
Contient toutes les spécifications pour un groupe de participants.
Parent
Aucun.
Type
Balise de bloc.
Obligatoire
Oui.
Attribut : serverBehavior
Description
L'attribut serverBehavior indique le comportement de serveur qui peut utiliser
le groupe. Lorsque l'une des chaînes quickSearch du participant du groupe est
trouvée dans le document, le comportement de serveur indiqué par l'attribut
serverBehavior est notifié et a la possibilité d'effectuer une recherche
approfondie dans le document.
Dans certains cas, si plusieurs groupes sont associés à un seul et même
comportement de serveur, ce dernier doit déterminer le groupe qu'il veut utiliser.
Parent
group
Type
Attribut.
Obligatoire
Non.
Schéma XML de comportement de serveur
153
Valeur
Le nom exact (sans chemin) d'un fichier HTML de comportement de serveur
d'un dossier Configuration/ServerBehaviors. Exemple :
<group serverBehavior="redirectIfEmpty.htm">
Attribut : dataSource
Description
Cette fonction avancée prend en charge les nouvelles sources de données qui
peuvent être ajoutées à UltraDev.
Plusieurs versions d'un comportement de serveur peuvent différer, selon la source
de données utilisée. Par exemple, le comportement de serveur Région répétée est
conçu pour la source de données Recordset.htm standard. Si UltraDev est
développé afin de prendre en charge un nouveau type de source de données (un
objet COM, par exemple), vous pouvez configurer dataSource="COM.htm" dans
un fichier Groupe avec une implémentation différente de Région répétée. Le
comportement de serveur Région répétée applique alors la nouvelle
implémentation de Région répétée si la nouvelle source de données est
sélectionnée.
Parent
group
Type
Attribut.
Obligatoire
Non.
Valeur
Le nom exact d'un fichier de source de données dans un dossier Configuration/
DataSources. Exemple :
<group serverBehavior="Repeat Region.htm" ¬
dataSource="myCOMdataSource.htm">
Ce groupe définit une nouvelle implémentation de Région répétée à utiliser si la
source de données COM est utilisée. Dans applyServerBehaviors(), vous
pouvez indiquer que ce groupe doit être appliqué en définissant la propriété
MM_dataSource sur l'objet de paramètre, comme dans :
function applyServerBehavior(ssRec) {
var paramObj = new Object();
paramObj.rs = getComObjectName();
paramObj.MM_dataSource = "myCOMdataSource.htm";
applySB(paramObj, sbObj);
}
154
Chapitre 12
Attribut : subType
Description
Cette fonction avancée prend en charge plusieurs implémentations d'un
comportement de serveur.
Plusieurs versions d'un comportement de serveur peuvent différer, selon la
sélection de l'utilisateur. Lorsqu'un comportement de serveur est appliqué mais
que plusieurs fichiers Groupe sont appropriés, le fichier Groupe correct peut être
choisi par transmission d'une valeur subType. Le groupe ayant cette valeur
subType spécifique est appliqué.
Parent
group
Type
Attribut.
Obligatoire
Non.
Valeur
Une chaîne unique qui sera transmise avec l'appel de findGroups(). Exemple :
<group serverBehavior="myServerBehavior.htm" ¬
subType="longVersion">
Ce groupe définit la version longue de myServerBehavior. Vous avez également
une version avec subType="shortVersion". Dans applyServerBehaviors(),
vous pouvez indiquer le groupe qui doit être appliqué en définissant la propriété
MM_subType sur l'objet de paramètre, comme dans :
function applyServerBehavior(ssRec) {
var paramObj = new Object();
if (longVersionChecked) {
paramObj.MM_subType = "longVersion";
} else {
paramObj.MM_subType = "shortVersion";
}
applySB(paramObj, sbObj);
}
Balise XML : title
Description
Chaîne qui sera affichée dans le panneau Comportements de serveur pour chaque
occurrence de comportement de serveur trouvée dans le document courant.
Parent
group
Type
Balise de bloc.
Schéma XML de comportement de serveur
155
Obligatoire
Non.
Valeur
Chaîne de texte en clair. Peut comporter des noms de paramètre pour rendre
chaque occurrence unique. Exemple :
<title>Redirect If Empty (@@recordsetName@@)</title>
Balise XML : groupParticipants
Description
Contient un tableau de déclarations groupParticipant.
Parent
group
Type
Balise de bloc.
Obligatoire
Oui.
Attribut : selectParticipant
Description
Indique quel participant doit être sélectionné et mis en surbrillance dans le
document lorsqu'une occurrence est sélectionnée dans le panneau
Comportements de serveur. Les occurrences de comportements de serveur
énumérées dans ce panneau étant classées en fonction du participant sélectionné,
vous devez définir selectParticipant même si le participant n'est pas visible.
Cet attribut fonctionne uniquement pour les participants se trouvant à l'intérieur
des balises HTML, et non pour ceux se trouvant au-dessus de la balise HTML.
Parent
groupParticipants
Type
Attribut.
Obligatoire
Non.
Valeur
est le nom exact (moins le suffixe .xml) d'un seul et même
fichier Participant référencé comme un participant Groupe. Voir aussi « Attribut :
name », page 157. Exemple :
participantName
<groupParticipants selectParticipant="redirectIfEmpty_link">
156
Chapitre 12
Balise XML : groupParticipant
Description
Représente l'inclusion d'un participant unique dans le groupe.
Remarque : l'ordre dans lequel les balises groupParticipant sont énumérées a son
importance dans certains cas.
Parent
groupParticipants
Type
Balise.
Obligatoire
Oui (au moins un).
Attribut : name
Description
Désigne un participant particulier à inclure dans le groupe. L'attribut de nom
figurant dans la balise groupParticipant doit être le même que le nom de fichier
du participant (moins l'extension de fichier).
Parent
groupParticipant
Type
Attribut.
Obligatoire
Oui.
Valeur
Le nom exact (moins le suffixe .xml) de tout fichier Participant dans le dossier
Configuration/ServerExtData. Exemple :
<groupParticipant name="redirectIfEmpty_init">
Fait référence au fichier redirectIfEmpty_init.xml.
Attribut : partType
Description
Indique le type de participant.
Parent
groupParticipant
Type
Attribut.
Schéma XML de comportement de serveur
157
Obligatoire
Non.
Valeurs
identifier, member, option, multiple, data
•
identifier
•
member
•
option
•
multiple
•
data est un participant non standard utilisé par les programmeurs en tant que
lieu de stockage des données de groupe supplémentaires. N'est pris en compte
par rien d'autre. Exemple :
est un participant qui identifie le groupe entier. Si ce participant
est trouvé dans le document, le groupe est considéré comme existant, que
d'autres participants du groupe soient ou non trouvés. Il s'agit de la valeur par
défaut si partType n'est pas spécifié.
est un membre normal d'un groupe. Trouvé seul, il n'identifie pas un
groupe. S'il n'est pas trouvé dans un groupe, le groupe est jugé incomplet.
indique que le participant est facultatif. S'il n'est pas trouvé, le groupe
est quand même jugé complet (et aucun indicateur « incomplete » n'est affiché
dans le panneau Comportements de serveur).
indique que le participant est facultatif et que plusieurs de ses copies
peuvent être associées au comportement de serveur. Aucun des paramètres
uniques à ce participant ne sera utilisé lors du regroupement de participants (ils
peuvent avoir des valeurs différentes).
<groupParticipant name="redirectIfEmpty_extraData" ¬
partType="member">
Fichiers XML Participant
Balise XML : participant
Description
Contient toutes les spécifications pour un seul participant.
Parent
Aucun.
Type
Balise de bloc.
Obligatoire
Oui.
158
Chapitre 12
Balise XML : implementation
Description
Chaque balise <implementation> contient toutes les spécifications de participant
pertinentes pour un langage et un modèle de serveur uniques.
Parent
participant
Type
Balise de bloc.
Obligatoire
Oui.
Attribut : serverModel
Description
Spécifie le langage et le modèle de serveur pour la balise d'implémentation.
UltraDev 4 prenant en charge quatre modèles de serveur (ASP/JavaScript, ASP/
VBScript, JSP et ColdFusion), un participant peut comporter jusqu'à quatre
balises <implementation>, chacune avec un attribut serverModel différent.
Parent
implementation
Type
Attribut.
Obligatoire
Oui.
Valeurs
ASP/JavaScript, ASP/VBScript, JSP, ColdFusion
Exemple :
<implementation serverModel="ASP/JavaScript">
...participant info for ASP/JavaScript here...
</implementation>
Balise XML : quickSearch
Description
Simple chaîne de recherche utilisée à des fins de performance (il ne peut s'agir
d'une expression régulière). Si la chaîne est trouvée dans le document en cours,
tous les comportements de serveur faisant référence à ce participant ont la
possibilité de rechercher des participants dans le document. Peut être vide (pour
qu'il y ait toujours correspondance).
Schéma XML de comportement de serveur
159
Parent
participant
Type
Balise de bloc.
Obligatoire
Non.
Valeur
searchString,
chaîne littérale qui existe sur la page si le participant existe. Elle
doit être aussi unique que possible, bien qu'elle n'ait pas à être complètement
unique. Elle n'est pas sensible à la casse. Faites tout de même attention aux espaces
non essentiels qui pourraient être modifiés par l'utilisateur. Exemple :
<quickSearch>Response.Redirect</quickSearch>
Si la chaîne quickSearch est vide, elle est jugée comme correspondante et des
recherches plus précises utilisent les expressions régulières définies dans les balises
<searchPattern>. Cela peut être utile lorsqu'une simple chaîne ne peut pas être
utilisée pour exprimer un profil de recherche fiable et que des expressions
régulières sont requises.
Balise XML : insertText
Description
Donne des indications sur ce qui doit être inséré dans le document et à quel
endroit. Contient le texte devant être inséré dans le document. Les parties du texte
qui seront personnalisées doivent être indiquées par @@parameterName@@.
Dans certains cas, comme par exemple pour un participant traducteur
uniquement, vous n'aurez probablement pas besoin de cette balise.
Parent
implementation
Type
Balise de bloc.
Obligatoire
Non.
Valeur
Le texte devant être inséré dans le document. Si des parties du texte doivent être
personnalisées, elles peuvent être transmises ultérieurement en tant que
paramètres. Les paramètres doivent être incorporés entre deux signes @. Ce texte
pouvant interférer avec la structure XML, il doit utiliser la construction CDATA.
Exemple :
<insertText location="aboveHTML">
<![CDATA[<%= @@recordset@@).cursorType %>]]>
</insertText>
160
Chapitre 12
Lorsque le texte est inséré, @@recordset@@ est remplacé par un nom de jeu
d'enregistrements fourni par l'utilisateur.
Attribut : location
Description
Indique où le texte participant doit être inséré. L'emplacement d'insertion étant
relatif à l'attribut whereToSearch de la balise searchPatterns, veillez à définir
ces deux paramètres soigneusement (voir « Attribut : whereToSearch », page 164).
Parent
insertText
Type
Attribut.
Obligatoire
Oui.
Valeurs
aboveHTML[+weight], belowHTML[+weight], beforeSelection,
replaceSelection, wrapSelection, afterSelection, beforeNode,
replaceNode, afterNode, firstChildOfNode, lastChildOfNode,
nodeAttribute[+attribute]
•
insère le texte au-dessus de la balise <HTML> (appropriée
pour le code de serveur uniquement). Le poids peut être un nombre entier
compris entre 1 et 99 et est utilisé pour préserver l'ordre relatif entre les
différents participants. Par convention, les jeux d'enregistrements ont un poids
de 50. Si un participant fait référence à des variables de jeu d'enregistrements, il
devra par conséquent être affecté d'un poids plus élevé, de 60 par exemple, de
façon à ce que le code soit inséré au-dessous du jeu d'enregistrements.
Exemple :
aboveHTML[+weight]
<insert location="aboveHTML+60">
Si aucun poids n'est indiqué, un poids de 100 est attribué en interne et ajouté
au-dessous de tous les participants de poids spécifique. Exemple :
<insert location="aboveHTML">
•
belowHTML[+weight] est similaire à l'emplacement aboveHTML, si ce n'est que
ces participants sont ajoutés au-dessous de la balise </HTML> de fermeture.
•
beforeSelection
•
replaceSelection
•
wrapSelection équilibre la sélection actuelle, insère le texte avant la sélection
et ajoute la balise de fin appropriée après la sélection.
insère le texte avant le point d'insertion ou la sélection
actuelle. S'il n'y a pas de sélection, le texte est inséré à la fin de la balise <BODY>.
remplace la sélection actuelle par le texte. S'il n'y a pas de
sélection, le texte est inséré à la fin de la balise <BODY>.
Schéma XML de comportement de serveur
161
•
afterSelection
•
beforeNode
insère le texte après la sélection actuelle ou le point
d'insertion. S'il n'y a pas de sélection, le texte est inséré à la fin de la balise
<BODY>.
insère le texte avant un Nuds (emplacement spécifique dans le
DOM). Lorsqu'une fonction telle que applySBs() est appelée pour effectuer
l'insertion, le pointeur de Nuds doit être transmis en tant que paramètre de
paramObj. Le nom de ce paramètre définissable par l'utilisateur doit être
spécifié par l'attribut nodeParamName (voir la section « Attribut :
nodeParamName », page 163).
En résumé, si votre emplacement comporte le mot node, veillez à déclarer la
balise <nodeParamName>.
•
replaceNode
•
afterNode
•
insère le texte en tant que premier enfant d'une balise de
bloc. Par exemple, pour insérer un élément au début d'une balise FORM.
Nécessite la transmission d'un Nuds de la façon décrite pour beforeNode.
•
insère le texte en tant que dernier enfant d'une balise de
bloc. Par exemple, si vous souhaitez insérer quelque chose à la fin d'une balise
FORM (utile pour l'ajout de champs de formulaire masqués). Nécessite la
transmission d'un Nuds de la façon décrite pour beforeNode.
•
nodeAttribute[+attribute] définit un attribut d'un Nuds de balise.
Nécessite la transmission d'un Nuds de la façon décrite pour beforeNode. Si
l'attribut n'existe pas, il est créé.
remplace un Nuds par le texte. Nécessite la transmission d'un
Nuds de la façon décrite pour beforeNode.
insère le texte après un Nuds. Nécessite la transmission d'un Nuds
de la façon décrite pour beforeNode.
firstChildOfNode
lastChildOfNode
Par exemple, utilisez
<insert location="nodeAttribute+ACTION">
pour définir l'attribut ACTION d'un formulaire. Cela convertit la balise FORM de
l'utilisateur de <form> à <form action="myText">.
Si aucun attribut n'est indiqué, l'emplacement nodeAttribute provoque
l'ajout direct du texte à la balise ouverte. Par exemple, utilisez :
<insert location="nodeAttribute">
pour ajouter un attribut facultatif à une balise. Vous pouvez procéder ainsi pour
convertir une balise INPUT d'un utilisateur de
<input type="checkbox">
à
<input type="checkbox" <%if(foo)Reponse.Write("CHECKED")%>>
162
Chapitre 12
Remarque : pour location="nodeAttribute", le dernier profil de recherche est
utilisé pour déterminer où l'attribut commence et se termine. Veillez à ce que le dernier
profil trouve l'instruction entière.
Attribut : nodeParamName
Description
Est uniquement utilisé pour les emplacements d'insertion relatifs à un Nuds.
Indique le nom du paramètre qui sera utilisé pour transmettre le Nuds au moment
de l'insertion.
Parent
insertText
Type
Attribut.
Obligatoire
Seulement si l'emplacement d'insertion comporte le mot node.
Valeur
est un nom spécifié par l'utilisateur pour le paramètre de Nuds
transmis avec l'objet de paramètre à la fonction applySB(). Par exemple, si vous
insérez du texte dans un formulaire, vous pouvez utiliser un paramètre appelé
form__tag. Dans votre fonction applyServerBehavior() de comportement de
serveur, vous pouvez alors utiliser form__tag pour indiquer le formulaire précis à
mettre à jour. Exemple :
tagtype__Tag
function applyServerBehavior(ssRec) {
var paramObj = new Object();
paramObj.rs = getRecordsetName();
paramObj.form__tag = getFormNode();
applySB(paramObj, sbObj);
}
Dans votre fichier XML, vous indiquez le paramètre de Nuds form__tag.
Exemple :
<insertText location="lastChildOfNode" nodeParamName="form__tag">
<![CDATA[<input type="hidden" name="MY_DATA">]]>
</insertText>
Le texte est inséré en tant que lastChildOfNode et le Nuds spécifique est
transmis à l'aide de la propriété form__tag de l'objet de paramètre.
Schéma XML de comportement de serveur
163
Balise XML : searchPatterns
Description
Donne des indications sur la façon de rechercher le texte du participant dans le
document. Contient une liste de profils utilisés lors de la recherche d'un
participant. Si plusieurs profils de recherche sont définis, ils doivent tous être
trouvés dans le texte analysé (les profils de recherche ont une logique ET une
relation), à moins qu'ils ne soient marqués comme facultatifs à l'aide de
l'indicateur isOptional.
Parent
implementation
Type
Balise de bloc.
Obligatoire
Non.
Attribut : whereToSearch
Description
Indique où rechercher le texte du participant. Cet emplacement d'insertion étant
relatif à l'emplacement d'insertion, veillez à définir ces deux paramètres
soigneusement (voir « Attribut : location », page 161).
Parent
searchPatterns
Type
Attribut.
Obligatoire
Oui.
Valeurs
directive, tag+tagName, tag+*, comment, text
•
recherche toutes les directives de serveur (balises spécifiques au
serveur). Pour ASP et JSP, cela signifie une recherche dans toutes les balises <%
... %>.
directive
Remarque : la recherche n'est pas effectuée dans les attributs de balise, même s'ils
contiennent des directives.
164
Chapitre 12
•
tag+tagName
effectue une recherche dans le contenu de la balise donnée.
Exemple :
<searchPatterns whereToSearch="tag+FORM">
indique que le recherche doit se limiter aux seules balises de formulaire.
Par défaut, la recherche est effectuée dans toute la balise outerHTML. Pour les
balises INPUT, le type peut également être indiqué (après une barre oblique). Par
exemple, pour que la recherche soit effectuée dans tous les boutons d'envoi,
saisissez :
<searchPatterns whereToSearch="tag+INPUT/SUBMIT">
•
effectue une recherche dans le contenu de n'importe quelle balise.
Exemple :
tag+*
<searchPatterns whereToSearch="tag+*">
indique que la recherche doit être effectuée dans toutes les balises.
•
limite la recherche aux seuls commentaires HTML <!
Exemple :
comment
... >.
<searchPatterns whereToSearch="comment">
indique que la recherche sera effectuée dans des balises telles que <!-comment here -->.
•
text
my
limite la recherche aux sections de texte brut. Exemple :
<searchPatterns whereToSearch="text">
<searchPattern>XYZ</searchPattern>
</searchPatterns>
recherche un Nuds de texte contenant le texte XYZ.
Balise XML : searchPattern
Description
Profil utilisé pour identifier le texte participant et en extraire des valeurs de
paramètre. Chaque sous-expression de paramètre doit être mise entre parenthèses.
Vous pouvez avoir des profils sans paramètres (utilisés simplement pour identifier
le texte participant), des profils avec un paramètre ou des profils avec plusieurs
paramètres. Tous les profils obligatoires doivent être trouvés et chaque paramètre
doit être nommé et trouvé exactement une fois.
Parent
searchPatterns
Type
Balise de bloc.
Obligatoire
Oui.
Schéma XML de comportement de serveur
165
Valeurs
searchString, /regularExpression/, <empty>
•
searchString
•
•
/regularExpression/
est une simple chaîne de recherche (sensible à la casse). Elle ne
peut pas être utilisée pour l'extraction de paramètres.
est un profil de recherche d'expression régulière.
se produit lorsqu'aucun profil n'est indiqué. Dans ce cas, il est
toujours considéré qu'il y a correspondance et la valeur entière est affectée au
premier paramètre.
<empty>
Par exemple, pour identifier le texte participant
<%= RS1.Field.Items("author_id") %>, vous pouvez définir un profil
simple suivi d'un profil précis extrayant également les deux valeurs de
paramètre :
<searchPattern>Field.Items</searchPattern>
<searchPattern paramNames="rs,col">
<![CDATA[
/<%=\s*(\w+)\.Field\.Items\("(\w+)"\)/
]]>
</searchPattern>
Une correspondance précise est établie avec le profil, la valeur de la première
sous-expression (\w+) est affectée au paramètre « rs » et celle de la deuxième
sous-expression (\w+) au paramètre « col ».
Remarque : l'expression régulière doit impérativement commencer et se terminer par
une barre oblique. Sinon, elle sera utilisée en tant que recherche de chaîne littérale. Les
expressions régulières peuvent être suivies du modificateur d'expression régulière « i »
pour indiquer la non sensibilité à la casse (comme dans /pattern/i). Par exemple,
VBScript n'est pas sensible à la casse et doit donc utiliser /pattern/i. JavaScript est
sensible à la casse et doit utiliser /pattern/.
Si vous désirez affecter le contenu entier de l'emplacement de recherche limitée
à un paramètre, n'indiquez aucun profil, comme dans :
<searchPatterns whereToSearch="tag+OPTION">
<searchPattern>MY_OPTION_NAME</searchPattern>
<searchPattern paramNames="optionLabel"
limitSearch="innerOnly">
</searchPattern>
</searchPatterns>
Le paramètre « optionLabel » est alors affecté à tout le innerHTML d'une balise
OPTION.
166
Chapitre 12
Attribut : paramNames
Description
Liste séparée par virgule des noms de paramètre dont les valeurs sont extraites.
Elles sont affectées dans l'ordre de la sous-expression. Vous pouvez affecter des
paramètres uniques ou utiliser une liste séparée par virgule pour affecter plusieurs
paramètres. Si d'autres expressions entre parenthèses sont utilisées mais
n'indiquent pas de paramètres, des virgules supplémentaires peuvent être utilisées
en tant qu'espaces réservés dans la liste des noms de paramètres.
Les noms de paramètres doivent correspondre à ceux spécifiés dans le texte
d'insertion et dans les paramètres de mise à jour.
Parent
searchPattern
Type
Attribut.
Obligatoire
Oui.
Valeurs
paramName1, paramName2,
...
Chaque nom de paramètre doit être le nom exact d'un paramètre utilisé dans le
texte d'insertion. Par exemple, si le texte d'insertion contient @@p1@@, vous devez
définir exactement un paramètre avec ce nom :
<searchPattern paramNames="p1">patterns</searchPattern>
Pour extraire plusieurs paramètres utilisant un seul profil, utilisez une liste séparée
par virgule de noms de paramètre, dans l'ordre dans lequel les sous-expressions
apparaissent dans le profil. Par exemple, si votre profil de recherche est :
<searchPattern paramName="p1,,p2">/(\w+)_(BIG|SMALL)_(\w+)/¬
</searchPattern>
il y a deux paramètres séparés par du texte à extraire. Avec le texte suivant :
<%= a_BIG_b %>
la première sous-expression du profil de recherche correspond à "a", donc p1="a".
La deuxième sous-expression est ignorée (remarquez le ,,). La troisième
sous-expression correspond à "b", donc p2="b".
Attribut : limitSearch
Description
Limite la recherche à une partie de la balise whereToSearch.
Parent
searchPattern
Schéma XML de comportement de serveur
167
Type
Attribut.
Obligatoire
Non.
Valeurs
all, attribute+attribName, tagOnly, innerOnly
•
all (valeur par défaut) effectue une recherche dans la balise entière spécifiée
dans l'attribut whereToSearch.
•
attribute+attribName
effectue la recherche dans la seule valeur de l'attribut
spécifié. Exemple :
<searchPatterns whereToSearch="tag+FORM">
<searchPattern limitSearch="attribute+ACTION">
/MY_PATTERN/
</searchPattern>
</searchPatterns>
indique que la recherche doit se limiter à la seule valeur de l'attribut ACTION des
balises FORM. Si cet attribut n'est pas défini, la balise est ignorée.
•
tagOnly effectue la recherche dans la seule balise extérieure et ignore la
innerHTML. Valide uniquement lorsque whereToSearch est une balise.
•
innerOnly
balise
effectue la recherche dans la seule balise innerHTML et ignore la
balise extérieure. Valide uniquement lorsque whereToSearch est une balise.
Attribut : isOptional
Description
Indicateur signifiant que le profil de recherche n'est pas nécessaire pour que le
participant soit trouvé. Cela est utile pour les participants plus complexes pouvant
avoir des paramètres non essentiels à extraire. Vous pouvez créer des profils servant
à identifier de façon distincte un participant et avoir des profils facultatifs pour
l'extraction de paramètres non essentiels.
Parent
searchPattern
Type
Attribut.
Obligatoire
Non.
Valeurs
true, false
•
168
Chapitre 12
true si searchPattern n'a pas à être trouvé pour que le participant soit
identifié.
•
false
(valeur par défaut) si searchPattern doit être trouvé.
Considérez par exemple une chaîne de jeux d'enregistrements simple :
<%
var Recordset1 = Server.CreateObject("ADODB.Recordset");
Recordset1.ActiveConnection = "dsn=andescoffee;";
Recordset1.Source = "SELECT * FROM PressReleases";
Recordset1.CursorType = 3;
Recordset1.Open();
%>
Les profils de recherche doivent identifier le participant et extraire plusieurs
paramètres. Cependant, si un paramètre tel que cursorType n'est pas trouvé, cela
devrait toujours être considéré comme un jeu d'enregistrements. Le paramètre
cursor est facultatif. Dans le XML, les profils de recherche peuvent ressembler à
ceci :
<searchPattern paramNames="rs">/var (\w+) = Server.CreateObject/
</searchPattern>
<searchPattern paramNames="src">/ActiveConnection = "(.*)"/¬
</searchPattern>
<searchPattern paramNames="conn">/Source = "(.*)"/¬
</searchPattern>
<searchPattern paramNames="cursor" isOptional="true">¬
/CursorType = (\d+)/
</searchPattern>
Les trois premiers profils sont nécessaires pour identifier le jeu d'enregistrements.
Si le dernier paramètre n'est pas trouvé, le jeu d'enregistrements est quand même
identifié.
Balise XML : updatePatterns
Description
Cette fonction facultative avancée permet des mises à jour précises du participant.
Sans cette balise, le participant est automatiquement mis à jour par remplacement
du texte participant entier à chaque fois. Si vous spécifiez une balise
<updatePatterns>, elle doit contenir des profils précis pour trouver et remplacer
chaque paramètre du participant.
Cela peut s'avérer utile si l'utilisateur peut apporter des modifications non
préjudiciables au texte. Seules les parties du texte qui ont besoin d'être modifiées
seront mises à jour avec précision.
Parent
implementation
Type
Balise de bloc.
Schéma XML de comportement de serveur
169
Obligatoire
Non.
Balise XML : updatePattern
Description
Type d'expression régulière spécifique utilisé pour des mises à jour précises du
texte du participant. Il doit y avoir au moins une définition de profil de mise à
jour pour chaque paramètre unique déclaré dans le texte d'insertion (de la forme
@@paramName@@).
Parent
updatePatterns
Type
Balise de bloc.
Obligatoire
Oui (au moins une, si la balise updatePatterns est déclarée).
Valeurs
Expression régulière trouvant un paramètre placé entre deux sous-expressions
entre parenthèses, de la forme /(pre-pattern)parameter-pattern(postpattern)/. Vous devez avoir au moins un profil de mise à jour défini pour chaque
@@paramName@@ unique dans votre texte d'insertion. Par exemple, votre texte
d'insertion peut être :
<insertText location="afterSelection">
<![CDATA[<%= @@rs@@.Field.Items("@@col@@") %>]]>
</insertText>
et une occurrence particulière de ce texte sur une page peut ressembler à :
<%= RS1.Field.Items("author_id") %>
Remarquez qu'il y a deux paramètres, rs et col. Aussi, pour mettre à jour ce texte
une fois qu'il est inséré sur la page, vous devez mettre à jour deux définitions de
profil :
<updatePattern paramName="rs" >
/(\b)\w+(\.Field\.Items)/
</updatePattern>
<updatePattern paramName="col">
/(\bItems\(")\w+("\))/
</updatePattern>
Notez que des parenthèses littérales, ainsi que d'autres caractères d'expressions
régulières spéciaux, n'ont pas été pris en compte en raison de la barre oblique
inverse les précédant. L'expression du milieu, ici définie comme \w+, sera mise à
jour avec la dernière valeur transmise pour les paramètres « rs » et « col »,
respectivement. Les valeurs « RS1 » et « author_id » peuvent être mises à jour
avec de nouvelles valeurs de façon précise.
170
Chapitre 12
Plusieurs occurrences du même profil peuvent être mises à jour en même temps.
Pour cela, vous devez utiliser l'indicateur global d'expression régulière « g » après
la barre oblique de fermeture, comme dans /pattern/g.
Si le texte du participant est long et complexe, vous pouvez utiliser plusieurs
profils pour mettre à jour un seul paramètre. Par exemple, si votre texte de
participant est :
<% ...
Recordset1.CursorType = 0;
Recordset1.CursorLocation = 2;
Recordset1.LockType = 3;
%>
Pour mettre à jour le nom du jeu d'enregistrements dans les trois positions, vous
devez disposer de trois profils de mise à jour pour un seul paramètre, comme
dans :
<updatePattern paramName="rs">
/(\b)\w+(\.CursorType)/
</updatePattern>
<updatePattern paramName="rs">
/(\b)\w+(\.CursorLocation)/
</updatePattern>
<updatePattern paramName="rs">
/(\b)\w+(\.LockType)/
</updatePattern>
Vous pouvez maintenant transmettre une nouvelle valeur pour le jeu
d'enregistrements, qui sera mis à jour avec précision à trois endroits.
Attribut : paramName
Description
Indique le nom du paramètre dont la valeur est utilisée pour mettre à jour le
participant. Ce paramètre doit correspondre à ceux spécifiés dans les paramètres
de texte d'insertion et de recherche.
Parent
updatePattern
Type
Attribut.
Obligatoire
Oui.
Valeurs
Le nom exact d'un paramètre utilisé dans le texte d'insertion. Par exemple, si le
texte d'insertion contient @@rs@@, vous devez avoir un paramètre du nom :
<updatePattern paramName="rs">pattern</updatePattern>
Schéma XML de comportement de serveur
171
Balise XML : delete
Description
Cette fonction facultative avancée vous permet de contrôler la façon dont un
participant est supprimé. Sans cette balise, vous devez supprimer le participant
entièrement pour le supprimer (seulement si aucun comportement de serveur n'y
fait référence). En définissant une balise <delete>, vous pouvez spécifier qu'il ne
doit jamais être supprimé ou que seules certaines parties doivent l'être.
Parent
implementation
Type
Balise.
Obligatoire
Non.
Attribut : deleteType
Description
Indique le type de suppression à effectuer. Possède différentes significations, selon
que le participant est une directive, une balise ou un attribut. Par défaut, le
participant entier est supprimé.
Parent
delete
Type
Attribut.
Obligatoire
Non.
Valeurs
•
all (valeur par défaut) supprime la directive ou la balise entière. Pour les
attributs, supprime la définition entière.
•
•
none
n'est jamais automatiquement supprimé.
tagOnly supprime uniquement la balise extérieure mais laisse le contenu
balise innerHTML intact. Pour les attributs, supprime également la balise
de la
extérieure s'il s'agit d'une balise de bloc. Sans signification pour les directives.
172
Chapitre 12
•
innerOnly supprime uniquement le contenu (innerHTML) lorsqu'elle est
appliquée à des balises. Pour les attributs, supprime uniquement la valeur. Sans
signification pour les directives.
•
attribute+attribName
supprime uniquement l'attribut spécifié lorsqu'elle
est appliquée à des balises. Sans signification pour les directives et les attributs.
•
attribute+* supprime tous les attributs des balises. Sans signification pour les
directives et les attributs.
Par exemple, si votre comportement de serveur convertit le texte sélectionné en
lien, vous pouvez supprimer le lien lorsque vous effectuez une suppression de la
balise extérieure uniquement :
<delete deleteType="tagOnly"/>
Cela convertit un participant de lien <A
HREF="...">HELLO</A>
en HELLO.
Balise XML : translator
Description
Donne des informations pour la traduction d'un participant de façon à ce qu'il
puisse être rendu différemment et puisse éventuellement avoir un inspecteur de
propriétés personnalisé.
Parent
implementation
Type
Balise de bloc.
Obligatoire
Non.
Balise XML : searchPatterns
Description
Même description que pour les profils de recherche de nodeParamName décrits
dans la section « Balise XML : searchPatterns », page 164, si ce n'est que
whereToSearch est indiqué dans chaque balise de traduction.
Parent
translator
Type
Balise de bloc.
Obligatoire
Oui.
Balise XML : translations
Description
Contient une liste d'instructions de traduction. Chacune indique où rechercher le
participant et ce qu'il convient d'en faire.
Parent
translator
Schéma XML de comportement de serveur
173
Type
Balise de bloc.
Obligatoire
Non.
Balise XML : translation
Description
Contient une instruction de traduction unique indiquant où rechercher le
participant, quel type de traduction effectuer et par quoi remplacer le texte du
participant.
Parent
translations
Type
Balise de bloc.
Obligatoire
Non.
Attribut : whereToSearch
Description
Même description que celle de l'attribut whereToSearch pour les profils de
recherche nodeParamName décrits à la section « Attribut : whereToSearch »,
page 164.
Parent
translation
Type
Attribut.
Obligatoire
Oui.
Attribut : limitSearch
Description
Même description que celle de l'attribut limitSearch pour les profils de
recherche nodeParamName décrits à la section « Attribut : limitSearch », page 167.
Parent
translation
Type
Attribut.
174
Chapitre 12
Obligatoire
Non.
Attribut : translationType
Description
Indique le type de traduction à réaliser. Ces types sont prédéfinis et donnent à la
traduction une fonctionnalité précise. Par exemple, si vous spécifiez « données
dynamiques », tout ce qui est traduit doit se comporter comme des données
dynamiques UltraDev, c'est-à-dire ressembler à un espace réservé de données
dynamiques dans le mode de mise en page (notation entre accolades avec couleur
d'arrière-plan dynamique) et figurer dans le panneau Comportements de serveur.
Parent
translation
Type
Attribut.
Obligatoire
Oui.
Valeurs
•
indique que les directives traduites ressemblent à des données
dynamiques UltraDev et se comportent comme telles. Exemple :
dynamic data
<translation whereToSearch="tag+IMAGE"
limitSearch="attribute+SRC"
translationType="dynamic data">
•
dynamic image indique que les attributs traduits doivent ressembler à des
images dynamiques UltraDev et se comporter comme telles. Exemple :
<translation whereToSearch="IMAGE+SRC"
translationType="dynamic image">
•
indique que les directives traduites doivent se comporter
comme des sources dynamiques UltraDev. Exemple :
dynamic source
<translation whereToSearch="directive"
translationType="dynamic source">
•
indique que les balises <CFLOOP> traduites définissent
le début d'un contour tabulé. Exemple :
tabbed region start
<translation whereToSearch="CFLOOP"
translationType="tabbed region start">
•
tabbed region end indique que les balises </CFLOOP> traduites définissent la
fin d'un contour tabulé. Exemple :
<translation whereToSearch="CFLOOP"
translationType="tabbed region end">
Schéma XML de comportement de serveur
175
•
est le cas par défaut, dans lequel aucune fonctionnalité UltraDev
interne n'est ajoutée à la traduction. Il est courant de l'utiliser lors de la
spécification d'une balise à insérer pour un inspecteur de propriétés
personnalisé. Exemple :
custom
<translation whereToSearch="directive"
translationType="custom">
Balise XML : openTag
Description
Une balise facultative pouvant être insérée au début de la section de traduction.
Cela permet à certaines autres extensions, comme par exemple les inspecteurs de
propriétés personnalisés, de trouver la traduction.
Parent
translation
Type
Balise de bloc.
Obligatoire
Non.
Valeurs
tagName est un nom de balise valide. Ce nom doit être suffisamment unique pour
empêcher les conflits avec des types de balise connus. Par exemple, si vous
spécifiez :
<openTag>MM_DYNAMIC_CONTENT</openTag>
les données dynamiques sont traduites dans la balise <MM_DYNAMIC_CONTENT>.
Balise XML : attributes
Description
Contient une liste d'attributs à ajouter à la balise traduite spécifiée dans openTag.
Sinon, si openTag n'est pas définie et que searchPattern spécifie tag, cette
balise contient une liste d'attributs traduits à ajouter à la balise trouvée.
Parent
translation
Type
Balise de bloc.
Obligatoire
Non.
176
Chapitre 12
Balise XML : attribute
Description
Spécifie un attribut unique (ou un attribut traduit) devant être ajouté à la balise
traduite.
Parent
attributes
Type
Balise de bloc.
Obligatoire
Oui (au moins un).
Valeurs
est un attribut défini pour une valeur. Le
nom d'attribut est généralement fixe et la valeur contient des références de
paramètres extraites par les profils de paramètres. Exemple :
attributeName="attributeValue"
<attribute>SOURCE="@@rs@@"</attribute>
<attribute>BINDING="@@col@@"</attribute>
ou
<attribute>
mmTranslatedValueDynValue="VALUE={@@rs@@.@@col@@}"
</attribute>
Balise XML : display
Description
Chaîne d'affichage facultative devant être insérée dans la traduction.
Parent
translation
Type
Balise de bloc.
Obligatoire
Non.
Valeurs
se réfère à toute chaîne contenant du texte et du HTML. Peut
comporter des références de paramètres extraites par les profils de paramètres.
Exemple :
displayString
<display>{@@rs@@.@@col@@}</display>
fera la traduction se présenter sous la forme {myRecordset.myCol}.
Schéma XML de comportement de serveur
177
Balise XML : closeTag
Description
Balise facultative devant être insérée à la fin de la section traduite. Cela permet à
certaines autres extensions, comme par exemple les inspecteurs de propriétés
personnalisés, de trouver la traduction.
Parent
translation
Type
Balise de bloc.
Obligatoire
Non.
Valeurs
tagName est
openTag.
un nom de balise valide. Il doit correspondre à une traduction
Exemple
Si vous spécifiez :
<closeTag>MM_DYNAMIC_CONTENT</closeTag>
des données dynamiques sont traduites pour se terminer avec la balise
</MM_DYNAMIC_CONTENT>.
Utilisation du gestionnaire de données
Le gestionnaire de données d'extension (EDM) se compose des API de cette
section. Vous pouvez programmer l'accès et la manipulation des données
contenues dans les fichiers Groupe et Participant en appelant ces fonctions.
L'EDM fonctionne de la manière suivante :
• L'EDM exécute toutes les entrées/sorties de fichier XML pour les fichiers
Groupe et Participant.
• En exécutant toutes les demandes de données pour le modèle de serveur en
cours, l 'EDM agit comme un filtre de modèle de serveur.
• L'EDM renvoie automatiquement des valeurs par défaut pour les données non
spécifiées pour le participant demandé. Les valeurs par défaut sont spécifiées
par le participant « par défaut » (c'est-à-dire dans le fichier
defaultParticipant.xml).
getExtDataValue()
Disponibilité
Dreamweaver UltraDev 4.0
178
Chapitre 12
Description
Extrait les valeurs de champ d'un fichier XML pour les Nudss spécifiés.
Arguments
est une liste, de longueur variable, de qualifieurs de Nudss séparés
par virgule comprenant le nom du Groupe ou du Participant, le sous-bloc (le cas
échéant) et le nom du champ.
qualifier(s)
Valeurs renvoyées
La valeur du champ est renvoyée. Si aucune valeur n'est spécifiée, la valeur par
défaut est renvoyée.
getExtDataArray()
Disponibilité
Dreamweaver UltraDev 4.0
Description
Extrait un tableau de valeurs d'un fichier XML pour les Nudss spécifiés.
Arguments
est une liste, de longueur variable, de qualifieurs de Nudss séparés
par virgule comprenant le nom du Groupe ou du Participant, le sous-bloc (le cas
échéant) et le nom du champ.
qualifier(s)
Valeurs renvoyées
Tableau de noms de Nudss enfants.
getExtParticipants()
Disponibilité
Dreamweaver UltraDev 4.0
Description
Extrait la liste de participants d'un fichier Groupe XML ou de fichiers Participant.
Arguments
value, qualifier(s)
•
value
•
qualifier(s)
est une valeur de propriété ou une valeur vierge ne devant pas être prise
en compte.
est une liste, de longueur variable, de qualifieurs de Nudss
séparés par virgule ayant la propriété requise.
Valeurs renvoyées
Tableau de noms de participants ayant la propriété requise, si elle est spécifiée, et
la propriété correspond à la valeur requise, si elle est spécifiée.
Schéma XML de comportement de serveur
179
getExtGroups()
Disponibilité
Dreamweaver UltraDev 4.0
Description
Extrait le nom du groupe, qui est l'équivalent du nom d'un comportement de
serveur, d'un fichier Groupe XML.
Arguments
value, qualifier(s)
•
value
•
qualifier(s)
est une valeur de propriété ou une valeur vierge ne devant pas être prise
en compte.
est une liste, de longueur variable, de qualifieurs de Nudss
séparés par virgule ayant la propriété requise.
Valeurs renvoyées
Tableau de noms de groupes ayant la propriété requise, si elle est spécifiée, et la
propriété correspond à la valeur requise, si elle est spécifiée.
getGroup()
Disponibilité
Dreamweaver UltraDev 4.0
Description
Extrait le groupe, ou le comportement de serveur, du fichier XML.
Arguments
name est une référence au nom du groupe, qui est l'équivalent du nom du
comportement de serveur.
Valeurs renvoyées
Le groupe, en tant que chaîne constante.
addGroup()
Disponibilité
Dreamweaver UltraDev 4.0
Description
Ajoute le groupe, ou le comportement de serveur, au fichier XML.
Arguments
pGroup
pointe vers un groupe d'objets de données d'extension.
Valeurs renvoyées
Valeurs booléennes.
180
Chapitre 12
updateGroup()
Disponibilité
Dreamweaver UltraDev 4.0
Description
Met à jour le groupe, ou le comportement de serveur, dans le fichier XML.
Arguments
originalName, pGroup
•
originalName est une référence CString constante au groupe qui doit être mis
à jour.
•
pGroup
pointe vers le groupe mis à jour.
Valeurs renvoyées
Valeurs booléennes.
deleteGroup()
Disponibilité
Dreamweaver UltraDev 4.0
Description
Supprime un groupe d'un fichier XML.
Arguments
name
est le nom du groupe à supprimer.
Valeurs renvoyées
Valeurs booléennes.
getParticipant()
Disponibilité
Dreamweaver UltraDev 4.0
Description
Extrait le participant, ou le bloc de code, du fichier XML.
Arguments
name, serverModel
•
•
name
est une référence au nom de groupe.
serverModel
est le nom du modèle de serveur en cours.
Valeurs renvoyées
Le fichier XML participant, en tant que chaîne constante.
Schéma XML de comportement de serveur
181
addParticipant()
Disponibilité
Dreamweaver UltraDev 4.0
Description
Ajoute le participant, ou le bloc de code, au fichier XML.
Arguments
pParticipant
pointe vers un participant d'objet de données d'extension.
Valeurs renvoyées
Valeurs booléennes.
updateParticipant()
Disponibilité
Dreamweaver UltraDev 4.0
Description
Met à jour le participant, ou le bloc de code, dans le fichier XML.
Arguments
originalName, pParticipant
originalName est une référence CString constante au participant devant être mis
à jour.
pParticipant
pointe vers le participant mis à jour.
Valeurs renvoyées
Valeurs booléennes.
deleteParticipant()
Disponibilité
Dreamweaver UltraDev 4.0
Description
Arguments
name
est le nom du participant devant être supprimé.
Valeurs renvoyées
Valeurs booléennes.
objectExistsWithName()
Disponibilité
Dreamweaver UltraDev 4.0
182
Chapitre 12
Description
Cette fonction peut être utilisée pour comparer deux noms d'objets de données
d'extension.
Arguments
name
est le nom d'objet de données d'extension courant.
Valeurs renvoyées
Valeurs booléennes.
refreshExtData()
Disponibilité
Dreamweaver UltraDev 4.0
Description
Recharge tous les fichiers de données d'extension.
Conseil: vous pouvez créer une commande utile à partir de cette fonction, qui vous
permettra de recharger les modifications manuelles apportées aux fichiers XML de
comportement de serveur sans avoir à redémarrer UltraDev.
Arguments
Aucun.
Valeurs renvoyées
Données rechargées.
Utilisation du gestionnaire de traduction
Les traducteurs de données traduisent des balises spéciales, telles que le script ASP/
JSP ou les balises CFML, en balises pouvant être lues et affichées par
Dreamweaver UltraDev. Pour plus d'informations sur les traducteurs de données
et les concepts qui leur sont associés, voir « Traducteurs de données », page 293.
La création d'un nouveau traducteur ou l'amélioration d'un traducteur existant
peut s'avérer difficile. Dreamweaver UltraDev 4 simplifie ce procédé en
fournissant un nouveau service permettant de développer rapidement des
traducteurs puissants ; il s'agit du gestionnaire de traduction.
Utilisez le gestionnaire de traduction en deux étapes simples :
1
Intégrez le gestionnaire de traduction et les utilitaires associées dans l'en-tête de
votre traducteur.
<script
<script
<script
<script
SRC="TransData.js"></SCRIPT>
SRC="TMCallback.js"></SCRIPT>
SRC="Translator.js"></SCRIPT>
SRC="TranslationManager.js"></SCRIPT>
Schéma XML de comportement de serveur
183
2
Ajoutez les deux lignes suivantes à votre fonction translateMarkup() :
var TM = new TranslationManager(translatorClass, serverModel, ¬
serverLanguage);
var outStr = TM.translate(inStr);
// inStr is the string to be translated, outStr is the resulting
// translation
Le gestionnaire de traduction utilise les règles déclarées dans la section traducteur
des fichiers Participant XML pour générer une traduction devant être renvoyée par
la fonction translateMarkup(). Pour obtenir une description des traducteurs
des fichiers participants, voir « Fichiers Participant », page 148.
Les traducteurs ASP, JSP et ColdFusion de Dreamweaver UltraDev utilisent le
gestionnaire de traduction. Vous pouvez facilement étendre la fonctionnalité de
ces traducteurs en créant de nouveaux fichiers Participant avec les règles de
traduction déclarées dans leur section traducteur. Les développeurs peuvent se
partager ces fichiers Participant à l'aide d’Extension Manager.
Remarque : avant d'exécuter les traducteurs Macromedia, UltraDev exécute tous les
traducteurs tiers. Pour tout bloc de code donné, Dreamweaver applique le premier
traducteur trouvé.
Exemple de traducteur
L'exemple qui suit indique comment créer un traducteur à partir d'un nouveau
modèle de serveur. UltraDev contient des traducteurs pour ASP, JSP, JavaScript et
ColdFusion. Supposons toutefois que vous vouliez créer un nouveau modèle de
serveur pour PHP. Dans cet exemple, vous créez les traducteurs pour la façon dont
UltraDev rend les balises PHP dans le mode Création de la fenêtre de document.
Pour créer un nouveau traducteur PHP :
1
Créez un fichier HTML contenant le code JavaScript de votre traducteur.
Incluez le gestionnaire de traduction et les autres utilitaires.
<html>
<head>
<title>PHP Translator</title>
<script
<script
<script
<script
<script
184
Chapitre 12
SRC="TransData.js"></SCRIPT>
SRC="TMCallback.js"></SCRIPT>
SRC="Translator.js"></SCRIPT>
SRC="TranslationManager.js"></SCRIPT>
language=”JavaScript”>
2
La fonction translateMarkup() appelle le gestionnaire de traduction pour
qu'il traduise le document de l'utilisateur.
function translateMarkup(docNameStr, siteRootStr, inStr)
{
\\ Get the name of the server model from the document DOM
var serverModel = ¬
dw.getDocumentDOM().serverModel.getServerName();
\\ Get the server scripting language from the document DOM
var serverLanguage = ¬
dw.getDocumentDOM().serverModel.getServerLanguage();
\\ Call the Translation Manager with your new translator class,
\\ and the document server model type and scripting language.
var TM = new TranslationManager("PHP", serverModel, ¬
serverLanguage);
\\ Pass in the data and place the translation into outStr
var outStr = TM.translate(inStr);
\\ Return the translated document
return outStr;
}
3
La fonction getTranslatorInfo() fournit des informations sur le traducteur
et sur les fichiers sur lesquels il agit.
function getTranslatorInfo()
{
returnArray = new Array( 8 )
returnArray[0] = "MM_PHP" // uniquely identifies the ¬
translator
returnArray[1] = "PHP" // Describes he translator - 40 ¬
character limit
returnArray[2] = "1" // The number of file extensions
returnArray[3] = "php" // The file extension that the ¬
translator works with
returnArray[4] = "1" // The number of expressions
returnArray[5] = "<?php” // Expression
returnArray[6] = "allFiles" // default preference
returnArray[7] = "50" // priority level to apply translator
return returnArray
}
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
Schéma XML de comportement de serveur
185
4
Créez le fichier XML Participant.
<participant name="PHPData">
<implementation serverModel="PHP">
<translator>
<searchPatterns>
<searchPattern paramNames="rs,col">
<![CDATA[
//code to be translated
]]>
</searchPattern>
</searchPatterns>
<translations>
<translation whereToSearch="tag+*"
limitSearch="all"
translationType="dynamic data">
<openTag>MY_DYNAMIC_CONTENT</openTag>
<attributes>
<attribute>SOURCE=@@rs@@</attribute>
<attribute>BINDING="@@col@@"</attribute>
</attributes>
<display>{@@rs@@.@@col@@}</display>
<closeTag>MY_DYNAMIC_CONTENT</closeTag>
</translation>
</translations>
</translator>
</implementation>
</participant>
186
Chapitre 12
13
CHAPITRE 13
Sources de données
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les fonctions API des sources de données vous permettent de manipuler les
options des menus Plus (+) du panneau Liaisons de données.
Tous les fichiers de sources de données résident dans le dossier DataSources
contenu dans le dossier Configuration. Chaque modèle de serveur possède son
propre dossier : ASP, ColdFusion et JSP. Le sous-dossier de chaque modèle
contient des fichiers HTML associés aux sources de données de ce modèle de
serveur.
Fonctionnement des sources de données
Dans UltraDev, l'ajout de données dynamiques se fait à partir du panneau
Liaisons de données. Les objets de données dynamiques affichés dans le menu
Plus (+) sont basés sur le modèle de serveur spécifié pour le site. Par exemple, les
utilisateurs peuvent insérer des jeux d'enregistrements, des commandes, des
variables de demande, des variables de session et des variables d'application pour
les applications ASP.
Les étapes suivantes décrivent la procédure d'ajout de données dynamiques :
187
1
Lorsque vous cliquez sur le menu Plus (+) du panneau Liaisons de données, le
menu déroulant s'affiche.
Pour déterminer le contenu du menu, UltraDev commence par rechercher un
fichier DataSources.xml dans le même dossier que les sources de données (par
exemple, \Configuration\DataSources\ASP\DataSources.xml). Le fichier
DataSources.xml décrit le contenu du menu déroulant ; il contient les
références des fichiers HTML devant figurer dans le menu déroulant.
UltraDev recherche une balise de titre dans chaque fichier HTML référencé. Si
le fichier contient une balise de titre, le contenu de celle-ci est affiché dans le
menu. Si le fichier ne contient pas de balise de titre, c'est le nom du fichier qui
apparaît dans le menu.
Une fois qu'UltraDev a fini de travailler avec le fichier DataSources.xml ou si le
fichier n'existe pas, UltraDev analyse le reste du dossier pour vérifier s'il
contient d'autres éléments devant apparaître dans le menu. Si le dossier
principal s'avère contenir des fichiers qui ne figurent pas déjà dans le menu, ils
y sont ajoutés. Si des sous-dossiers contiennent des fichiers qui ne figurent pas
déjà dans le menu, UltraDev crée un sous-menu et les y ajoute.
2
Lorsque l'utilisateur choisit un élément dans le menu Plus (+), la fonction
addDynamicSource() est appelée afin que le code de la source de données soit
ajouté au document de l'utilisateur.
3
UltraDev passe en revue chaque fichier du dossier de modèles de serveur
approprié, en appelant la fonction findDynamicSources() dans chaque
fichier. Pour chaque valeur du tableau retourné, UltraDev appelle la fonction
generateDynamicSourceBindings() dans le même fichier afin d'obtenir une
liste à jour de toutes les sources de données pour le document de l'utilisateur.
Ces sources de données sont présentées à l'utilisateur sous forme d'arborescence
dans les boîtes de dialogue Données dynamiques ou Texte dynamique ou dans
le panneau Liaisons de données. Par exemple, l'arborescence des sources de
données d'un document ASP peut se présenter comme suit :
Recordset (Recordset1)
ColumnOneInRecordset
ColumnTwoInRecordset
Recordset (Recordset2)
ColumnOfRecordset
Request
NameOfRequestVariable
NameOfAnotherRequestVariable
Session
NameOfSessionVariable
188
Chapitre 13
4
Si l'utilisateur clique sur le bouton moins (-), UltraDev extrait le Nuds
sélectionné de l'arborescence et le transmet à deleteDynamicSource(), qui
supprime le code ajouté précédemment à l'aide de addDynamicSource(). Si la
suppression de la sélection n'est pas logique, la fonction renvoie un message
d'erreur. Une fois deleteDynamicSource() terminée, UltraDev actualise
l'arborescence des sources de données en appelant les fonctions
findDynamicSources() et generateDynamicSourceBindings().
5
Si l'utilisateur choisit une source de données et clique sur OK dans les boîtes de
dialogue Données dynamiques ou Texte dynamique ou clique sur Insérer ou
sur Lier dans le panneau Liaisons de données, UltraDev appelle la fonction
generateDynamicDataRef(). La valeur retournée est insérée dans le
document au point d'insertion.
6
Si l'utilisateur affiche les boîtes de dialogue Données dynamiques ou Texte
dynamique pour modifier un objet de données dynamiques existant, la
sélection dans l'arborescence de la source de données doit être initialisée sur
l'objet de données dynamiques. Pour initialiser l'arborescence, UltraDev passe
en revue chaque fichier du dossier de modèles de serveur approprié (le dossier
\Configuration\DataSources\ASP, par exemple), en appelant l'implémentation
de la fonction inspectDynamicDataRef() dans chaque fichier.
UltraDev appelle la fonction inspectDynamicDataRef() pour reconvertir
l'objet de données dynamiques du code du document de l'utilisateur en un
élément de l'arborescence (c'est l'opération inverse de celle qui se produit
lorsque la fonction generateDynamicDataRef() est appelée). Si
inspectDynamicDataRef() renvoie un tableau composé de deux éléments,
UltraDev fournit une indication visuelle en désignant l'élément de
l'arborescence lié à la sélection courante.
7
Chaque fois que l'utilisateur modifie la sélection, UltraDev appelle la fonction
inspectDynamicDataRef() pour déterminer si la nouvelle sélection est du
texte dynamique ou une balise avec un attribut dynamique. Si la nouvelle
sélection est dynamique, UltraDev affiche les liaisons de la sélection courante
dans le panneau Liaisons de données.
8
Vous pouvez, à partir du panneau Liaisons de données ou des boîtes de
dialogue Données dynamiques ou Texte dynamique, modifier le format des
données pour un objet de texte dynamique ou un attribut dynamique que
l'utilisateur a déjà ajouté à la page. Une fois le format modifié, UltraDev appelle
la fonction generateDynamicDataRef() pour extraire la chaîne à insérer dans
le document de l'utilisateur, puis transmet cette chaîne à
formatDynamicDataRef() (décrite au chapitre « Formatage des données »,
page 195). La chaîne renvoyée par formatDynamicDataRef() est insérée dans
le document.
Sources de données
189
Remarque : si vous voulez qu'un fichier du dossier DataSources s'applique
uniquement à un langage de script spécifique, ajoutez l'instruction suivante de manière
à ce qu'elle figure à la première ligne du fichier HTML :
<!-- SCRIPTING-LANGUAGE=XXX -->
où XXX correspond au langage de script. Cette instruction fait apparaître la
source de données dans le menu Plus du panneau Source de données
uniquement lorsque le langage de script sélectionné est XXX. Par exemple,
<!-- SCRIPTING-LANGUAGE=VBSCRIPT -->.
API de source de données
addDynamicSource()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Ajoute une source de données dynamiques. Comme il existe une implémentation
de cette fonction dans chaque fichier de source de données, UltraDev appelle
l'implémentation appropriée de la fonction addDynamicSource() dès qu'une
source de données est sélectionnée dans le menu Plus (+).
Par exemple, pour les jeux d'enregistrements ou les commandes, UltraDev appelle
la fonction dw.serverBehaviorInspectorpopupServerBehavior(), qui insère
un nouveau comportement de serveur dans le document. Pour les variables de
demande, de session et d'application, UltraDev affiche une boîte de dialogue
HTML/JavaScript permettant de recueillir le nom de la variable ; le
comportement stocke alors ce nom en vue d'une utilisation ultérieure.
Une fois la fonction addDynamicSource() renvoyée, UltraDev efface le contenu
de l'arborescence de la source de données et appelle les fonctions
findDynamicSources() et generateDynamicSourceBindings() pour remplir
l'arborescence de la source de données.
Valeurs renvoyées
Aucune.
deleteDynamicSource()
Disponibilité
Dreamweaver UltraDev 1.0
190
Chapitre 13
Description
Appelée lorsqu'un utilisateur d'UltraDev sélectionne une source de données dans
l'arborescence et clique sur le bouton Moins (-). La fonction
deleteDynamicSource() affiche un message d'erreur dans certaines conditions.
Par exemple, si un utilisateur tente de supprimer la colonne d'un jeu
d'enregistrements, un message lui indique de supprimer plutôt le jeu
d'enregistrements.
Ainsi, dans UltraDev, si la sélection est un jeu d'enregistrements ou une
commande, la fonction deleteDynamicSource() appelle
dw.serverBehaviorInspector.deleteServerBehavior(). Si la sélection est
une variable de requête, de session ou d'application, la fonction se souvient que la
variable a été supprimée et ne l'affiche plus par la suite. Une fois la fonction
deleteDynamicSource() renvoyée, UltraDev efface le contenu de l'arborescence
de la source de données et appelle les fonctions findDynamicSources() et
generateDynamicSourceBindings() pour obtenir une liste à jour de toutes les
sources de données associées au document de l'utilisateur.
Arguments
sourceName, bindingName
•
sourceName
est le nom du Nuds de niveau supérieur auquel le Nuds enfant est
associé.
•
bindingName
est le nom du Nuds enfant.
Valeurs renvoyées
Aucune.
displayHelp()
Description
Si cette fonction est définie, un bouton Aide s'affiche sous les boutons OK et
Annuler dans la boîte de dialogue. Cette fonction est appelée lorsque l'utilisateur
clique sur le bouton Aide.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Exemple
Dans l'exemple suivant, la fonction displayHelp() ouvre dans une fenêtre de
navigateur un fichier contenant les instructions :
function displayHelp(){
dreamweaver.browseDocument('http://www.hotwired.com/¬
webmonkey/javascript/code_library/wm_pos2_elmnt_dw/¬
?tw=javascript');
}
Sources de données
191
findDynamicSources()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Renvoie les Nudss de niveau supérieur de l'arborescence de la source de données
qui s'affiche dans le panneau Liaisons de données ou dans les boîtes de dialogue
Données dynamiques ou Texte dynamique. Chaque fichier de la source de
données contient une implémentation de la fonction findDynamicSources().
En actualisant l'arborescence, UltraDev parcourt tous les fichiers du dossier
DataSources et appelle la fonction findDynamicSources() dans chacun d'eux.
Valeurs renvoyées
Un tableau d'objets JavaScript. Chaque objet peut avoir jusqu'à cinq attributs :
1
La propriété title correspond au libellé qui apparaît à droite de l'icône de
chaque Nuds parent. La propriété title est obligatoire.
2
La propriété imageFile est le chemin d'un fichier contenant l'icône (image
GIF) représentant le Nuds parent dans l'arborescence du panneau Liaisons de
données ou dans les boîtes de dialogue Données dynamiques ou Texte
dynamique. La propriété imageFile est obligatoire.
3
La propriété allowDelete est facultative. Si cette propriété est définie sur
false, lorsque l'utilisateur clique sur ce Nuds dans le panneau Liaisons de
données, le bouton Moins (-) est désactivé. Si elle est définie sur true, le
bouton Moins (-) est activé. Si la propriété n'est pas définie, elle prend par
défaut la valeur true.
4
La propriété dataSource est le nom du fichier dans lequel la fonction
findDynamicSources() est définie. L'extension « .htm » n'est pas spécifiée.
Par exemple, la fonction findDynamicSources() de Configuration/
DataSources/ASP/session.htm définit la propriété dataSource sur session.
Cette propriété est obligatoire.
5
La propriété name est le nom du comportement de serveur associé à la source de
données, si elle existe. Cette propriété est obligatoire. Certaines sources de
données, telles que des jeux d'enregistrements, sont associées à des
comportements de serveur. Lorsque vous créez un jeu d'enregistrements et que
vous le nommez Auteurs, la propriété « name » doit être égale à Auteurs.
D'autres sources de données, telles que les variables de session, ne sont pas
associées à un comportement de serveur. Leur propriété « name » doit être une
chaîne vide (" ").
generateDynamicDataRef()
Disponibilité
Dreamweaver UltraDev 1.0
192
Chapitre 13
Description
Génère l'objet de données dynamiques pour un Nuds enfant.
Arguments
sourceName, bindingName
•
•
sourceName
est le nom du Nuds de niveau supérieur associé au Nuds enfant.
est le nom du Nuds enfant à partir duquel vous souhaitez
générer un objet de données dynamiques.
bindingName
Valeurs renvoyées
Une chaîne, que vous pouvez transmettre à formatDynamicDataRef() pour la
formater avant de l'insérer dans un document d'utilisateur.
generateDynamicSourceBindings()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Renvoie le Nuds enfant d'un Nuds de niveau supérieur.
Arguments
sourceName
est le nom du Nuds de niveau supérieur dont vous voulez renvoyer
les Nudss enfants.
sourceName
Valeurs renvoyées
Un tableau d'objets JavaScript. Chaque objet peut avoir jusqu'à quatre propriétés :
1
La propriété title correspond au libellé qui apparaît à droite de l'icône de
chaque Nuds parent. La propriété title est obligatoire.
2
La propriété allowDelete est facultative. Si cette propriété est définie sur
false, lorsque l'utilisateur clique sur ce Nuds dans le panneau Liaisons de
données, le bouton Moins (-) est désactivé. Si elle est définie sur true, le
bouton Moins (-) est activé. Si la propriété n'est pas définie, elle prend par
défaut la valeur true.
3
La propriété dataSource est le nom du fichier dans lequel la fonction
findDynamicSources() est définie. L'extension « .htm » n'est pas spécifiée.
Par exemple, la fonction findDynamicSources() de Configuration/
DataSources/ASP/session.htm définit la propriété dataSource sur session.
Cette propriété est obligatoire.
Sources de données
193
4
La propriété name est le nom du comportement de serveur associé à la source de
données, si elle existe. Cette propriété est obligatoire. Certaines sources de
données, telles que des jeux d'enregistrements, sont associées à des
comportements de serveur. Lorsque vous créez un jeu d'enregistrements et que
vous le nommez Auteurs, la propriété « name » doit être égale à Auteurs.
D'autres sources de données, telles que les variables de session, ne sont pas
associées à un comportement de serveur. Leur propriété « name » doit être une
chaîne vide (" ").
inspectDynamicDataRef()
Disponibilité
Dreamweaver UltraDev 1.0
Description
A partir d'un objet de données dynamiques, détermine le Nuds correspondant
dans l'arborescence des sources de données. La fonction
inspectDynamicDataRef() compare la chaîne transmise à la chaîne renvoyée par
generateDynamicDataRef() pour chaque Nuds de l'arborescence. En cas de
correspondance, la fonction inspectDynamicDataRef() indique quel Nuds de
l'arborescence correspond à la chaîne transmise. La fonction identifie le Nuds au
moyen d'un tableau composé de deux éléments. Le premier élément est le nom du
Nuds parent ; le second est le nom du Nuds enfant. Si aucune correspondance
n'est trouvée, inspectDynamicDataRef() renvoie un tableau vide.
Chaque implémentation de inspectDynamicDataRef() ne recherche que les
correspondances de son propre type d'objet. Par exemple, l'implémentation de la
fonction inspectDynamicDataRef() pour les jeux d'enregistrements ne trouve
une correspondance que si la chaîne transmise correspond à un Nuds de jeu
d'enregistrements dans l'arborescence.
Arguments
string
string
désigne l'objet de données dynamiques.
Valeurs renvoyées
Un tableau de deux éléments (nom du parent et nom de l'enfant) pour le Nuds
correspondant ; la valeur null si aucune correspondance n'est trouvée.
194
Chapitre 13
14
CHAPITRE 14
Formatage des données
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le chapitre précédent explique comment Dreamweaver UltraDev insère des
données dynamiques dans le document de l'utilisateur en ajoutant une expression
de serveur à l'endroit approprié. Lorsqu'un visiteur demande le document de
l'utilisateur à partir du serveur web, l'expression est convertie en une valeur de
base de données, en contenu d'une variable de requête ou en toute autre valeur
dynamique. L'utilisateur UltraDev peut formater la façon dont cette valeur
dynamique est présentée au visiteur.
Ce chapitre présente l'API utilisée pour formater les données dynamiques
renvoyées par les fonctions décrites dans le chapitre précédent. Les fonctions
décrites dans les deux chapitres fonctionnent de concert pour formater les données
dynamiques. Si l'utilisateur choisit un format pour les données dynamiques,
Dreamweaver UltraDev appelle la fonction de source de données
generateDynamicDataRef(), décrite au chapitre précédent, pour que la chaîne
soit insérée dans le document de l'utilisateur. Avant de l'insérer dans le document
de l'utilisateur, UltraDev transmet cette chaîne à la fonction
formatDynamicDataRef(), décrite dans ce chapitre. La chaîne renvoyée par cette
fonction formatDynamicDataRef() représente les données dynamiques
formatées finalement insérées dans le document de l'utilisateur.
L'utilisateur peut formater les données dynamiques de plusieurs façons. En
utilisant le menu Format des boîtes de dialogue Données dynamiques ou Texte
dynamique ou du panneau Liaisons de données, l'utilisateur peut formater les
données avant de les insérer dans un document HTML. S'il veut créer un format,
l'utilisateur peut choisir le menu Format, puis l'élément Modifier la liste de
formats et sélectionner ensuite un type de format dans le menu Plus (+). Le menu
Plus (+) contient une liste de types de format. Les types de format appartiennent à
des catégories de format de base (Devise, Date/Heure, Casse, etc.) et regroupent
tous les caractères communs à une catégorie, ce qui vous simplifie la tâche lorsque
vous en créez un.
195
Supposons par exemple que vous vouliez créer un nouveau format de devise. Le
formatage des devises consiste en fait à convertir un nombre en une chaîne et à
insérer des virgules et un symbole de devise (le signe du dollar, $, par exemple). Le
type de données de format Devise regroupe tous les paramètres communs et vous
demande une valeur pour chacun d'eux. Lorsque vous créez un nouveau format de
devise, il vous est demandé d'indiquer les valeurs requises.
Les utilisateurs d'UltraDev peuvent formater les données à l'aide de formats
prédéfinis ou créer de nouveaux formats à partir de types prédéfinis ou de types
qu'ils ont créés eux-mêmes.
Organisation du formatage de données
Tous les fichiers de format résident dans le dossier ServerFormats du dossier
Configuration. Chaque modèle de serveur possède son propre sous-dossier : ASP,
JSP et ColdFusion. Chaque sous-dossier contient un fichier XML et plusieurs
fichiers HTML.
Le fichier XML (Formats.xml) décrit tous les choix du menu Format. Les choix
Aucun et Modifier la liste de formats sont automatiquement ajoutés par UltraDev.
Le dossier contient également un fichier HTML pour chaque type de format
installé. Les types de format sont les suivants : Casse, Devise, Date/Heure, Maths,
Nombre, Pourcentage, Simple et Rogner.
Fichier Formats.xml
Ce fichier contient une balise <format> pour chaque élément du menu Format.
Chaque balise <format> contient les attributs obligatoires suivants :
•
file=fileName,
« Devise ».
•
title=string, qui est la chaîne qui apparaît dans le menu Format. Exemple
« Devise - Défaut ».
•
expression=regexp, qui est une expression régulière correspondant aux objets
de données dynamiques qui utilisent ce format. Cette expression permet de
connaître le format appliqué à un objet de données dynamiques. Par exemple,
l'expression correspondant au format « Devise - Défaut » serait
qui est le fichier HTML pour ce type de format. Exemple :
:
« <%\s*=\s*FormatCurrency\(.*, -1, -2, -2, 2\)\s*%>|<%\s*=\s*DoCurrency\(.*, -1, -2, -2, -2\)\s*%> ».
La
valeur de l'attribut d'expression doit être unique parmi toutes les balises
<format> du fichier. Elle doit être suffisamment précise pour garantir que
seules les occurrences de ce format correspondent à l'expression.
•
visibility=[hidden | visible], qui indique si la valeur est affichée dans le
menu Format. Si la valeur de visibility est hidden (masqué), le format ne
s'affiche pas dans le menu Format.
196
Chapitre 14
La balise <format> peut éventuellement contenir des attributs supplémentaires
ayant un nom arbitraire.
Certaines fonctions de formatage de données nécessitent un argument, format,
qui est un objet JavaScript. Cet objet est le Nuds correspondant à la balise
<format> dans le fichier Formats.xml. L'objet a une propriété JavaScript pour
chaque attribut de la balise <format> correspondante.
Voici un exemple de balise <format> pour «
Devise - Défaut »
:
<format file="Currency" title="Devise - Défaut" ¬
expression="<%\s*=\s*FormatCurrency\(.*, -1, -2, -2, -2\)\s*%>|¬
<%\s*=\s*DoCurrency\(.*, -1, -2, -2, -2\)\s*%>"
NumDigitsAfterDecimal=-1 IncludeLeadingDigit=-2 ¬
UseParensForNegativeNumbers=-2 GroupDigits=-2/>
Dans ce cas, le type de format est Devise. La chaîne « Devise - Défaut »
s'affiche dans le menu Format. L'expression <%\s*=\s*FormatCurrency\(.*,
1, -2, -2, -2\)\s*%>|<%\s*=\s*DoCurrency\(.*, -1, -2, -2, 2\)\s*%> est utilisée pour trouver des occurrences de ce format dans le document
de l'utilisateur.
NumDigitsAfterDecimal, IncludeLeadingDigit,
UseParensForNegativeNumbers et GroupDigits sont des paramètres du type de
format Devise ; ils sont facultatifs. Ces paramètres s'affichent dans la boîte de
dialogue Paramètres pour le type de format Devise. La boîte de dialogue
Paramètres apparaît chaque fois qu'un utilisateur choisit le type de format Devise
dans le menu Plus (+) de la boîte de dialogue Modifier la liste de formats. Les
valeurs indiquées pour ces paramètres sont utilisées pour définir le nouveau
format.
Menu Plus (+) de Modifier la liste de formats
Si vous ne voulez pas qu'un fichier du dossier ServerFormats apparaisse dans le
menu Plus (+) de Modifier la liste de formats, ajoutez l'instruction suivante de
manière à ce qu'elle figure sur la première ligne du fichier HTML :
<!-- MENU-LOCATION=NONE -->
Pour déterminer le contenu du menu, UltraDev commence par rechercher un
fichier ServerFormats.xml dans le même dossier que les formats de données (par
exemple, \Configuration\ServerFormats\ASP\ServerFormats.xml). Le fichier
ServerFormats.xml décrit le contenu du menu Plus (+) de la boîte de dialogue
Modifier la liste de formats. Il contient des références aux fichiers HTML devant
figurer dans le menu.
Remarque : si vous voulez qu'un fichier du dossier DataSources s'applique uniquement à
un langage de script spécifique, ajoutez l'instruction suivante de manière à ce qu'elle figure
à la première ligne du fichier HTML :
<!-- SCRIPTING-LANGUAGE=XXX -->
Formatage des données
197
où XXX correspond au langage de script. Cette instruction fait apparaître la source
de données dans le menu Plus du panneau Source de données uniquement lorsque
le langage de script sélectionné est XXX. Par exemple, <!-- SCRIPTINGLANGUAGE=VBSCRIPT -->.
UltraDev recherche une balise de titre dans chaque fichier HTML référencé. Si le
fichier contient une balise de titre, le contenu de celle-ci est affiché dans le menu.
Si le fichier ne contient pas de balise de titre, c'est le nom du fichier qui apparaît
dans le menu.
Lorsqu'UltraDev a fini de travailler avec le fichier ServerFormats.xml ou si ce
fichier n'existe pas, UltraDev analyse le reste du dossier pour vérifier s'il contient
d'autres éléments devant apparaître dans le menu. Si le dossier principal s'avère
contenir des fichiers qui ne figurent pas déjà dans le menu, ils y sont ajoutés. Si des
sous-dossiers contiennent des fichiers qui ne figurent pas déjà dans le menu,
UltraDev crée un sous-menu et les y ajoute.
Mise en service des fonctions de formatage
de données
Les fonctions de formatage de données sont appelées dans les cas suivants :
• Dans les boîtes de dialogue Données dynamiques ou Texte dynamique,
l'utilisateur choisit un Nuds à partir de l'arborescence de la source de données
et un format dans le menu Format. Lorsque le format est sélectionné, UltraDev
appelle generateDynamicDataRef(), puis transmet la valeur renvoyée de
generateDynamicDataRef() à formatDynamicDataRef(). La valeur
renvoyée de formatDynamicDataRef() s'affiche dans le paramètre Code de la
boîte de dialogue. Quand l'utilisateur clique sur OK, la chaîne de code est
insérée dans le document de l'utilisateur ainsi qu'à l'emplacement du point
d'insertion. UltraDev appelle ensuite la fonction applyFormat() pour insérer
une déclaration de fonction. Pour plus d'informations, voir
« generateDynamicDataRef() », page 192. Un processus similaire a lieu lorsque
l'utilisateur utilise le panneau Liaisons de données.
• L'utilisateur change le format ou efface l'élément de données dynamiques. La
fonction deleteFormat() est alors appelée. Cette fonction deleteFormat()
supprime les scripts correspondants du document.
198
Chapitre 14
• Lorsque l'utilisateur clique sur le bouton plus (+) de la boîte de dialogue
Modifier la liste de formats, UltraDev affiche un menu contenant tous les types
de format pour le modèle de serveur utilisé. Chaque type de format correspond
à un fichier du dossier Configuration\ServerFormats\[ModèleServeur].
Si l'utilisateur choisit, dans le menu Plus (+), un format qui nécessite un
paramètre spécifié par l'utilisateur, UltraDev soumet la balise « body » au
gestionnaire onLoad, puis ouvre la boîte de dialogue Paramètres, qui affiche les
paramètres de ce type de format. Dans cette boîte de dialogue, l'utilisateur
choisit les paramètres du format et clique sur OK. UltraDev appelle alors la
fonction applyFormatDefinition().
Si le format choisi ne nécessite pas l'affichage d'une boîte de dialogue et permet
à l'utilisateur de choisir des paramètres, UltraDev appelle la fonction
applyFormatDefinition() lorsque l'utilisateur choisit le type de format dans
le menu Plus (+).
• Par la suite, si l'utilisateur modifie le format (en le sélectionnant dans la boîte
de dialogue Modifier la liste de formats et en cliquant sur le bouton Modifier),
UltraDev appelle la fonction inspectFormatDefinition() avant d'afficher la
boîte de dialogue Paramètres, de façon à ce que les commandes de formulaire
puissent être initialisées sur les valeurs correctes.
API de formatage de données
applyFormat()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Ajoute une déclaration de fonction de format au document de l'utilisateur.
Lorsqu'un utilisateur choisit un format dans le champ Format des boîtes de
dialogue Données dynamiques ou Texte dynamique ou dans le panneau Liaisons
de données, UltraDev apporte deux modifications au document de l'utilisateur : il
ajoute la fonction de format appropriée au-dessus de la balise HTML (si elle ne s'y
trouve pas déjà) et il modifie l'objet de données dynamiques pour appeler la
fonction de format appropriée.
UltraDev ajoute la déclaration de fonction en appelant la fonction JavaScript
applyFormat() dans le fichier Format des données. Il modifie l'objet de données
dynamique en appelant la fonction formatDynamicDataRef().
La fonction applyFormat() doit utiliser le DOM (Document Object Model,
Modèle d'objet de document) pour ajouter des déclarations de fonction au début
du document de l'utilisateur. Par exemple, si l'utilisateur choisit Devise - Défaut,
la fonction ajoute la déclaration de la fonction Currency.
Formatage des données
199
Cette fonction peut modifier un document de l'utilisateur.
Arguments
format
est un objet JavaScript qui décrit le format à appliquer. Cet objet
JavaScript constitue le Nuds correspondant à la balise <format> dans le fichier
Formats.xml. L'objet a une propriété JavaScript pour chaque attribut de la balise
<format> correspondante.
format
Valeurs renvoyées
Aucune.
applyFormatDefinition()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Applique les changements à un format créé à partir de la boîte de dialogue
Modifier le format.
Les utilisateurs peuvent créer, modifier ou supprimer des formats à partir de la
boîte de dialogue Modifier la liste de formats. Cette fonction est appelée pour
appliquer toutes les modifications réalisées. Elle peut également définir d'autres
propriétés, nommées arbitrairement, pour l'objet. Chaque propriété est stockée en
tant qu'attribut de la balise <format> dans le fichier Formats.xml.
Arguments
format
est un objet JavaScript correspondant à ce format. Cette fonction doit
faire de la propriété expression de l'objet JavaScript l'expression régulière du
format. Elle peut également définir d'autres propriétés, nommées arbitrairement,
pour l'objet. Chacune de ces propriétés est stockée en tant qu'attribut de la balise
<format>.
format
Valeurs renvoyées
L'objet de format est renvoyé, si la fonction est correctement appliquée. En cas
d'erreur, une chaîne d'erreur est renvoyée. Si une chaîne vide est renvoyée, le
formulaire est fermé mais le nouveau format n'est pas créé, ce qui revient à
annuler l'opération.
deleteFormat()
Disponibilité
Dreamweaver UltraDev 1.0
200
Chapitre 14
Description
Supprime la déclaration de fonction du format au début du document de
l'utilisateur.
Lorsque l'utilisateur change le format d'un objet de données dynamiques (dans le
panneau Liaisons de données ou dans les boîtes de dialogue Données dynamiques
ou Texte dynamique) ou supprime un objet de données dynamiques formaté,
UltraDev supprime la déclaration de fonction au début du document, ainsi que
l'appel de la fonction de l'objet de données dynamique en appliquant la fonction
deleteFormat().
La fonction deleteFormat() doit utiliser le DOM pour supprimer la déclaration
de fonction au début du document.
Arguments
format
est un objet JavaScript qui décrit le format à supprimer. Cet objet
JavaScript constitue le Nuds correspondant à la balise <format> dans le fichier
Formats.xml.
format
Valeurs renvoyées
Aucune.
formatDynamicDataRef()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Ajoute à l'objet de données dynamiques l'appel de la fonction de format.
Lorsqu'un utilisateur choisit un format dans le champ Format des boîtes de
dialogue Données dynamiques ou Texte dynamique ou dans le panneau Liaisons
de données, UltraDev apporte deux modifications au document de l'utilisateur : il
ajoute la fonction de format appropriée au-dessus de la balise HTML (si elle ne s'y
trouve pas déjà) et il modifie l'objet de données dynamiques pour appeler la
fonction de format appropriée.
UltraDev ajoute la déclaration de fonction en appelant la fonction JavaScript
applyFormat() dans le fichier de format des données. Il modifie l'objet de
données dynamique en appelant la fonction formatDynamicDataRef().
La fonction formatDynamicDataRef() est appelée lorsque l'utilisateur choisit un
format dans le champ Format du panneau Liaisons de données ou dans les boîtes
de dialogue Données dynamiques ou Texte dynamique. Elle ne modifie pas le
document de l'utilisateur.
Formatage des données
201
Arguments
dynamicDataObject, format
•
•
dynamicDataObject
est une chaîne contenant l'objet de données dynamiques.
est un objet JavaScript qui décrit le format à appliquer. Cet objet
JavaScript constitue le Nuds correspondant à la balise <format> dans le fichier
Formats.xml. L'objet a une propriété JavaScript pour chaque attribut de la
balise <format> correspondante.
format
Valeurs renvoyées
La nouvelle valeur de l'objet de données dynamiques est renvoyée.
Si une erreur a lieu, la fonction affiche un message d'avertissement dans certaines
conditions. Si la fonction renvoie une chaîne vide, le champ Format prend la
valeur Aucun.
inspectFormatDefinition()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Initialise les commandes de formulaire lorsqu'un utilisateur essaie de modifier un
format existant dans la boîte de dialogue Modifier la liste de formats.
Arguments
format
est un objet JavaScript qui décrit le format à appliquer. Cet objet
JavaScript constitue le Nuds correspondant à la balise <format> dans le fichier
Formats.xml. L'objet a une propriété JavaScript pour chaque attribut de la balise
<format> correspondante.
format
Valeurs renvoyées
Aucune.
202
Chapitre 14
15
CHAPITRE 15
Modèles de serveur
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les modèles de serveur sont des techniques permettant d'exécuter des scripts sur
un serveur. Lorsqu'il définit un site à l'aide de Dreamweaver UltraDev, l'utilisateur
spécifie le modèle de serveur qu'il exploite. UltraDev utilise ce modèle pour
déterminer le code approprié à utiliser lorsque l'utilisateur ajoute des éléments
dynamiques aux pages du site.
Tous les modèles de serveur résident dans le sous-dossier ServerModels du dossier
Configuration. Chaque modèle de serveur possède son propre fichier : ASP 2.0,
ColdFusion 4.0 et JSP 1.0.
Fonctions API des modèles de serveur
UltraDev utilise les fonctions getServerLanguages(), getFileExtensions()
et getVersionArray() pour déterminer les options à présenter à l'utilisateur dans
l'onglet Serveur d'application de la boîte de dialogue Définition du site.
displayHelp()
Description
Si cette fonction est définie, un bouton Aide s'affiche sous les boutons OK et
Annuler dans la boîte de dialogue. Cette fonction est appelée lorsque l'utilisateur
clique sur le bouton Aide.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
203
Exemple
Dans l'exemple suivant, la fonction displayHelp() ouvre dans une fenêtre de
navigateur un fichier contenant les instructions :
function displayHelp(){
dreamweaver.browseDocument('http://www.hotwired.com/¬
webmonkey/javascript/code_library/wm_pos2_elmnt_dw/¬
?tw=javascript');
}
getFileExtensions()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Renvoie les extensions des fichiers avec lesquels un modèle de serveur peut
fonctionner. Par exemple, le modèle de serveur ASP prend en charge les extensions
de fichier .asp et .htm. Cette fonction renvoie un tableau de chaînes ; UltraDev
utilise ces chaînes pour compléter la liste Extension de page par défaut contenue
dans la catégorie Serveur d'application de la boîte de dialogue Définition du site.
Arguments
Aucun.
Valeurs renvoyées
Un tableau de chaînes représentant les extensions de fichier autorisées.
getServerLanguages()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Renvoie les langages de script d'un modèle de serveur pris en charge. Cette
fonction renvoie un tableau de chaînes ; UltraDev utilise ces chaînes pour
compléter la liste Langage de script par défaut contenue dans la catégorie Serveur
d'application de la boîte de dialogue Définition du site.
Un modèle de serveur peut prendre en charge plusieurs langages de script. Par
exemple, le modèle de serveur ASP prend en charge JavaScript et VBScript.
Remarque : si vous voulez qu'un fichier du répertoire ServerFormats s'applique
uniquement à un langage de script spécifique, ajoutez l'instruction suivante sur la première
ligne du fichier HTML :
<!-- SCRIPTING-LANGUAGE=XXX -->
où XXX correspond au langage de script. Cette instruction provoque l'apparition
du comportement de serveur dans le menu Plus du panneau Comportements de
serveur, seulement quand le langage de script sélectionné est XXX.
204
Chapitre 15
Arguments
Aucun.
Valeurs renvoyées
Un tableau de chaînes représentant les langages de script pris en charge.
getServerExtension()
Disponibilité
Dreamweaver UltraDev 4.0
Description
Renvoie l'extension par défaut des fichiers exploitant le modèle de serveur en
cours. L'objet serverModel est défini sur le modèle de serveur du site sélectionné
si aucun document utilisateur n'est sélectionné.
Arguments
Aucun.
Valeurs renvoyées
Une chaîne représentant les extensions de fichier prises en charge.
getVersionArray()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Met en correspondance les techniques de serveur avec les numéros de version.
Cette fonction est appelée par dom.serverModel.getServerVersion().
Arguments
Aucun.
Valeurs renvoyées
Un tableau d'objets de version, chacun portant un nom et une valeur de version :
• ASP version 2.0
• ADODB version 2.1
Modèles de serveur
205
206
Chapitre 15
16
CHAPITRE 16
API d'intégration de Fireworks
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
FWLaunch est une bibliothèque C partagée qui donne aux auteurs d'objets, de
commandes, de comportements et d'inspecteurs de propriétés la possibilité de
communiquer avec Fireworks. Ce chapitre décrit l'API d'intégration de Fireworks
et son utilisation. Pour obtenir des informations générales sur la façon dont les
bibliothèques C interagissent avec l'interpréteur JavaScript dans Dreamweaver,
voir « Extensions C », page 319.
API d'intégration de Fireworks
Toutes les fonctions de l'API d'intégration de Fireworks sont des méthodes
associées à l'objet FWLaunch. Les arguments facultatifs sont indiqués entre
accolades ({ }).
FWLaunch.bringDWToFront()
Disponibilité
Dreamweaver 3.0, Fireworks 3.0
Description
Fait passer Dreamweaver au premier plan.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
207
FWLaunch.bringFWToFront()
Disponibilité
Dreamweaver 3.0, Fireworks 3.0
Description
Fait passer Fireworks au premier plan s'il est en cours d'exécution.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
FWLaunch.execJsInFireworks()
Disponibilité
Dreamweaver 3.0, Fireworks 3.0
Description
Transmet la chaîne JavaScript spécifiée à Fireworks en vue de son exécution.
Arguments
javascriptOrFileURL
L’argument est soit une chaîne de JavaScript littéral, soit le chemin d’accès d'un
fichier .js ou .jsf, exprimé sous la forme d’une URL de type file://.
Valeurs renvoyées
Un objet cookie si le code JavaScript a été transmis avec succès ou un code
d'erreur non nul indiquant que l'une des erreurs suivantes s'est produite :
• Utilisation non valide ; l'argument javascriptOrFileURL a été spécifié
comme étant null ou sous forme d'une chaîne vide ou le chemin d'accès au
fichier .js ou .jsf n'était pas valide.
• Erreur d'E/S de fichier ; Fireworks ne peut pas créer de fichier réponse car le
disque est saturé.
• Erreur de notification de Dreamweaver ; l'utilisateur n'exécute pas une version
valide de Dreamweaver (3.0 ou ultérieure).
• Erreur de lancement du traitement de Fireworks ; la fonction n'a pas lancé une
version valide de Fireworks (3.0 ou ultérieure).
• L'utilisateur a annulé l'opération.
208
Chapitre 16
FWLaunch.getJsResponse()
Disponibilité
Dreamweaver 3.0, Fireworks 3.0
Description
Détermine si Fireworks est toujours en train d'exécuter le code JavaScript qui lui a
été transmis par la fonction FWLaunch.execJsInFireworks(), que l'exécution
du script se soit terminée avec succès ou qu'une erreur se soit produite.
Arguments
progressTrackerCookie
L'argument est l'objet cookie renvoyé par FWLaunch.execJsInFireworks().
Valeurs renvoyées
Une chaîne contenant le résultat du script transmis à
FWLaunch.execJsInFireworks() si l'opération s'est terminée avec succès, null
si Fireworks est toujours en train d'exécuter le code JavaScript, ou un code
d'erreur non nul indiquant que l'une des erreurs suivantes s'est produite :
• Utilisation non valide ; une erreur JavaScript s'est produite pendant que
Fireworks exécutait le script.
• Erreur d'E/S de fichier ; Fireworks ne peut pas créer de fichier réponse car le
disque est saturé.
• Erreur de notification de Dreamweaver ; l'utilisateur n'exécute pas une version
valide de Dreamweaver (3.0 ou ultérieure).
• Erreur de lancement du traitement de Fireworks ; la fonction n'a pas lancé une
version valide de Fireworks (3.0 ou ultérieure).
• L'utilisateur a annulé l'opération.
API d'intégration de Fireworks
209
Valeurs renvoyées
Le code suivant transmet la chaîne "prompt('Please enter your name:')" à
la fonction FWLaunch.execJsInFireworks(), puis il vérifie le résultat :
var progressCookie = FWLaunch.execJsInFireworks("prompt('Please
enter your name:')");
var doneFlag = false;
while (!doneFlag){
// check for completion every 1/2 second
setTimeout('checkForCompletion()',500);
}
function checkForCompletion(){
if (progressCookie != null) {
var response = FWLaunch.getJsResponse(progressCookie);
if (response != null) {
if (typeof(response) == "number") {
// error or user-cancel, time to close the window
// and let the user know we got an error
window.close();
alert("An error occurred.");
}else{
// got a valid response!
alert("Nice to meet you, " + response);
window.close();
}
doneFlag = true;
}
}
}
FWLaunch.mayLaunchFireworks()
Disponibilité
Dreamweaver 2.0, Fireworks 2.0
Description
Détermine s'il est possible de lancer une session d'optimisation de Fireworks.
Arguments
Aucun.
Valeurs renvoyées
Une valeur booléenne indiquant si la plate-forme est Windows ou Macintosh. Sur
Macintosh, indique si une autre session d'optimisation de Fireworks est déjà en
cours d'exécution.
210
Chapitre 16
FWLaunch.optimizeInFireworks()
Disponibilité
Dreamweaver 2.0, Fireworks 2.0
Description
Lance une session d'optimisation de Fireworks pour l'image spécifiée.
Arguments
docURL, imageURL, {targetWidth}, {targetHeight}
• Le premier argument est le chemin d'accès du document actif, exprimé sous la
forme d'une URL de type file://.
• Le deuxième argument est le chemin de l'image sélectionnée. S'il s'agit d'un
chemin relatif, il est relatif à docURL.
• Le troisième argument, s'il est fourni, est la largeur par rapport à laquelle
l'image doit être redimensionnée.
• Le quatrième argument, s'il est fourni, est la hauteur par rapport à laquelle
l'image doit être redimensionnée.
Valeurs renvoyées
0 si une session d'optimisation de Fireworks a été lancée avec succès pour l'image
spécifiée ; sinon, un code d'erreur non nul indiquant que l'une des erreurs
suivantes s'est produite :
• Utilisation non valide ; l'argument docURL, l'argument imageURL, ou les deux,
ont été spécifiés comme étant null ou sous forme d'une chaîne vide.
• Erreur d'E/S de fichier ; Fireworks ne peut pas créer de fichier réponse car le
disque est saturé.
• Erreur de notification de Dreamweaver ; l'utilisateur n'exécute pas une version
valide de Dreamweaver (2.0 ou ultérieure).
• Erreur de lancement du traitement de Fireworks ; la fonction n'a pas lancé une
version valide de Fireworks (2.0 ou ultérieure).
• L'utilisateur a annulé l'opération.
API d'intégration de Fireworks
211
FWLaunch.validateFireworks()
Disponibilité
Dreamweaver 2.0, Fireworks 2.0
Description
Recherche la version spécifiée de Fireworks sur le disque dur de l'utilisateur.
Arguments
{versionNumber}
L'argument est un nombre à virgule flottante supérieur ou égal à 2.0 ; il représente
la version de Fireworks qui doit être recherchée. Si cet argument n’est pas défini, il
prend par défaut la valeur 2.0.
Valeurs renvoyées
Une valeur booléenne indiquant si la version spécifiée de Fireworks a été trouvée.
Exemple
Le code suivant vérifie si Fireworks 3.0 est installé :
if (FWLaunch.validateFireworks(3.0)){
alert( "Fireworks 3.0 is installed.");
}else{
alert( "Fireworks 3.0 is not installed.");
}
212
Chapitre 16
Exemple simple d'intégration de Fireworks
La commande suivante demande à Fireworks d'inviter l'utilisateur à entrer son
nom, puis renvoie le nom à Dreamweaver.
<html>
<head>
<title>Prompt in Fireworks</title>
<meta http-equiv="Content-Type" content="text/html; ¬
charset=iso-8859-1">
<script>
function commandButtons(){
return new Array("Prompt", "promptInFireworks()", "Cancel", ¬
"readyToCancel()", "Close","window.close()");
}
var gCancelClicked = false;
var gProgressTrackerCookie = null;
function readyToCancel() {
gCancelClicked = true;
}
function promptInFireworks() {
var isFireworks3 = FWLaunch.validateFireworks(3.0);
if (!isFireworks3) {
alert("You must have Fireworks 3.0 or later to use this ¬
command");
return;
}
// Tell Fireworks to execute the prompt() method.
gProgressTrackerCookie = FWLaunch.execJsInFireworks¬
("prompt('Please enter your name:')");
// null means it wasn't launched, a number means an error code
if (gProgressTrackerCookie == null || ¬
typeof(gProgressTrackerCookie) == "number") {
window.close();
alert("an error occurred");
gProgressTrackerCookie = null;
} else {
// bring Fireworks to the front
FWLaunch.bringFWToFront();
// start the checking to see if Fireworks is done yet
checkOneMoreTime();
}
}
function checkOneMoreTime() {
// Call checkJsResponse() every 1/2 second to see if Fireworks
// is done yet
API d'intégration de Fireworks
213
window.setTimeout("checkJsResponse();", 500);
}
function checkJsResponse() {
var response = null;
// The user clicked the cancel button, close the window
if (gCancelClicked) {
window.close();
alert("cancel clicked");
} else {
// We're still going, ask Fireworks how it's doing
if (gProgressTrackerCookie != null)
response = ¬
FWLaunch.getJsResponse(gProgressTrackerCookie);
if (response == null) {
// still waiting for a response, call us again in 1/2 a
// second
checkOneMoreTime();
} else if (typeof(response) == "number") {
// if the response was a number, it means an error
// occurred
// the user cancelled in Fireworks
window.close();
alert("an error occurred.");
} else {
// got a valid response! This return value might not
// always be a useful one, since not all functions in
// Fireworks return a string, but we know this one does,
// so we can show the user what we got.
window.close();
FWLaunch.bringDWToFront(); // bring Dreamweaver to the ¬
front
alert("Nice to meet you, " + response + "!");
}
}
}
</script>
</head>
<body>
<form>
<table width="313" nowrap>
<tr>
<td>This command asks Fireworks to execute the prompt() ¬
function. When you click Prompt, Fireworks comes forward and ¬
asks you to enter a value into a dialog box. That value is then ¬
returned to Dreamweaver and displayed in an alert.</td>
</tr>
</table>
</form>
</body>
</html>
214
Chapitre 16
17
CHAPITRE 17
API des objets Flash
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
L'API des objets Flash est une extension de l'API d'objets permettant aux
développeurs d'extension de construire des objets pour créer un contenu Flash
simple. Cette API fournit un moyen de définir des paramètres dans un modèle
Flash Generator (fichier .swt) pour réaliser une animation Flash ou un fichier
image. Outre qu'elle permet de créer de nouveaux objets Flash, l'API permet
également de lire et de manipuler des objets Flash existants. Les fonctionnalités
bouton Flash et texte Flash sont construites à l'aide de cette API.
Le fichier de modèle Flash Generator .swt contient toutes les informations
indispensables à la construction d'un fichier d'objet Flash (.swf ). Ces fonctions
API vous permettent de créer un nouveau fichier .swf (ou fichier image) à partir
d'un fichier .swt en remplaçant les paramètres du fichier .swt par des valeurs
réelles. Pour plus d'informations sur Flash et Flash Generator, voir les manuels
respectifs.
SWFFile.createFile()
Description
Génère un nouveau fichier Objet Flash à partir du modèle et du tableau de
paramètres spécifiés. Crée également une version GIF, PNG, JPEG et MOV du
titre si les noms de fichier sous ces formats sont précisés.
Pour pouvoir déterminer un paramètre facultatif placé après les paramètres
facultatifs que vous ne voulez pas spécifier, vous devez déterminer des chaînes
vides pour ces paramètres. Par exemple, si vous souhaitez spécifier un fichier .png,
mais pas de fichier .gif, vous devez déterminer une chaîne vide avant de préciser le
nom du fichier .png.
Arguments
templateFile, templateParams, swfFileName, {gifFileName},
{pngFileName}, {jpgFileName}, {movFileName}, {generatorParams}
215
•
templateFile
•
templateParams
•
est le nom de fichier de sortie d'un nom de fichier .swf, exprimé
sous la forme d'une URL de type file:// ou sous la forme d'une chaîne vide à
ignorer.
•
{gifFileName} est le nom de fichier de sortie d'un nom de fichier .gif,
exprimé sous la forme d'une URL de type file://. Facultatif.
•
{pngFileName} est le nom de fichier de sortie d'un nom de fichier .png,
exprimé sous la forme d'une URL de type file://. Facultatif.
•
{jpgFileName} est le nom de fichier de sortie d'un nom de fichier .jpeg,
exprimé sous la forme d’une URL de type file://. Facultatif.
•
{movFileName} est le nom de fichier de sortie d'un nom de fichier d'animation
QuickTime, exprimé sous la forme d'une URL de type file://. Facultatif.
•
{generatorParams} est un tableau de chaînes représentant les indicateurs
facultatifs de la ligne de commande de Generator. Facultatif. Dans le tableau,
chaque indicateur doit être suivi de ses éléments de données. Les indicateurs
couramment utilisés sont répertoriés dans le tableau suivant.
est le chemin d'accès du fichier modèle, exprimé sous la forme
d'une URL de type file://. Il peut s'agir d'un fichier .swt.
est un tableau de paires nom/valeur dans lequel les noms
identifient les paramètres du fichier .swt et les valeurs correspondent à la
définition que vous voulez leur attribuer. Pour qu'un fichier .swf soit reconnu
comme étant un objet Flash par Dreamweaver, le premier paramètre doit être
"dwType". Sa valeur doit être une chaîne représentant le nom du type d'objet,
telle que "Flash Text".
swfFileName
Indicateur
d'option
Données
Description
Exemple
-defaultsize
largeur, hauteur
"-defaultsize",
Définit la taille de l'image de
sortie en fonction des largeur et "640", "480"
hauteur indiquées.
-exactFit
aucune
Etend le contenu de l'image de
sortie pour qu'il s'adapte
exactement à la taille de sortie
indiquée.
"-exactFit"
Valeurs renvoyées
Chaîne contenant l'une des valeurs suivantes :
•
•
"noError"
signifie que l'appel s'est déroulé sans anomalie.
"invalidTemplateFile"
signifie que le fichier de modèle choisi était invalide
ou introuvable.
•
216
Chapitre 17
signifie qu'au moins un des noms de fichier de sortie
spécifiés n'était pas valable.
"invalidOutputFile"
•
"invalidData"
•
•
"initGeneratorFailed"
•
signifie qu'un ou plusieurs des paramètres templateParams
n'étaient pas valables.
signifie que Generator n'a pas pu être initialisé.
"outOfMemory" signifie que l'opération n'a pas pu se terminer correctement
faute de mémoire.
"unknownError"
signifie qu'une erreur inconnue s'est produite.
Exemple
Le code JavaScript suivant crée un fichier Objet Flash de type "myType" qui
remplace chaque occurrence du mot "text" par "Hello World" à l'intérieur du
fichier modèle. Il va créer un fichier .gif et un fichier .swf.
var params = new Array;
params[0] = "dwType";
params[1] = "myType";
params[2] = "text";
params[3] = "Hello World";
errorString = SWFFile.createFile( "file:///MyMac/test.swt", ¬
params, "file:///MyMac/test.swf", "file:///MyMac/test.gif");
SWFFile.getNaturalSize()
Description
Renvoie la taille initiale d'une animation Flash.
Arguments
fileName
est un chemin d'accès de l'animation Flash, exprimé sous la forme
d'une URL de type file://.
fileName
Valeurs renvoyées
Un tableau contenant deux éléments, représentant la largeur et la hauteur de
l'animation, ou null si le fichier n'est pas un fichier Flash.
SWFFile.getObjectType()
Description
Renvoie le type d'objet Flash, c'est-à-dire la valeur transmise dans le paramètre
dwType lorsque le fichier a été créé par la fonction SWFFile.createFile().
Arguments
fileName
est un chemin d'accès du fichier Objet Flash, exprimé sous la forme
d'une URL de type file://. Il s'agit généralement d'un fichier .swf.
fileName
API des objets Flash
217
Valeurs renvoyées
Une chaîne représentant le type d'objet ou null si le fichier n'est pas un fichier
Objet Flash ou s'il est demeuré introuvable.
Exemple
Le code suivant vérifie si le fichier test.swf est un objet Flash de type myType :
if ( SWFFile.getObjectType("file:///MyMac/test.swf") == ¬
"myType" ){
alert ("This is a myType object.");
}else{
alert ("This is not a myType object.");
}
SWFFile.readFile()
Description
Lit un fichier Objet Flash.
Arguments
fileName
est un chemin d'accès du fichier Objet Flash à lire, exprimé sous la
forme d'une URL de type file://.
fileName
Valeurs renvoyées
Tableau de chaînes. Le premier élément du tableau est le chemin d'accès complet
du fichier modèle .swt. Les chaînes suivantes représentent les paramètres (paires
nom/valeur) de l'objet. Dans le tableau, chaque nom est suivi de sa valeur. La
première paire nom/valeur est "dwType" suivie de sa valeur ; null est renvoyé si le
fichier demeure introuvable ou s'il n'est pas de type Objet Flash.
Exemple
L'appel suivant :
var params = SWFFile.readFile("file:///MyMac/test.swf");
renvoie dans le tableau des paramètres ce qui suit :
"file:///MyMac/test.swt"
this .swf file
"dwType"
"myType"
"text"
"Hello World"
218
Chapitre 17
// the template file used to create ¬
//
//
//
//
first parameter
first parameter value
second parameter
second parameter value
18
CHAPITRE 18
API de Design Notes
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
UltraDev 4, Dreamweaver 4 et Fireworks 4 offrent aux créateurs de sites web et
aux développeurs un nouveau moyen de stocker et de récupérer des informations
complémentaires sur les documents (telles que des commentaires de révision, des
notes de modification ou le fichier source d'un document GIF ou JPEG) dans des
fichiers appelés Design Notes.
MMNotes est une bibliothèque C partagée qui permet aux auteurs d'extensions
de lire et d'écrire dans les fichiers Design Notes. A l'instar de la bibliothèque
partagée DWfile, MMNotes possède une API JavaScript qui permet d'appeler les
fonctions de la bibliothèque à partir d'objets, de commandes, de comportements,
de panneaux flottants, d'inspecteurs de propriétés et de traducteurs de données.
MMNotes possède également une API C qui donne à d'autres applications la
possibilité de lire et d'écrire dans les fichiers Design Notes. La bibliothèque
partagée MMNotes peut être utilisée indépendamment de Dreamweaver, que
Dreamweaver soit installé ou non.
Pour plus d'informations sur l'utilisation de la fonctionnalité Design Notes dans
Dreamweaver, voir le manuel Utilisation de Dreamweaver.
Fonctionnement de Design Notes
Chaque fichier Design Notes stocke des informations relatives à un seul
document. Si un fichier Design Notes est associé à un ou plusieurs documents
dans un dossier, Dreamweaver crée un sous-dossier _notes pour y stocker les
fichiers Design Notes. Le dossier _notes et les fichiers Design Notes qu'il contient
ne sont pas visibles dans la fenêtre Site, mais ils s'affichent dans le Finder
Macintosh ou dans l'Explorateur Windows. Un nom de fichier Design Notes est
composé du nom du fichier principal suivi de l'extension .mno. Par exemple, le
fichier Design Notes associé à avocado8.gif est avocado8.gif.mno.
219
Les fichiers Design Notes sont des fichiers XML stockant des informations sous la
forme d'une série de paires clé/valeur. La clé décrit le type des informations
stockées, et la valeur représente les informations elles-mêmes. Les clés sont limitées
à 64 caractères.
Le fichier Design Notes associé au fichier foghorn.gif pourrait ressembler à ce qui
suit :
<?xml version="1.0" encoding="iso-8859-1" ?>
<info>
<infoitem key="FW_source" value="file:///C|sites/¬
dreamcentral/images/sourceFiles/foghorn.png" />
<infoitem key="Author" value="Heidi B." />
<infoitem key="Status" value="Final draft, approved ¬
by Jay L." />
</info>
API JavaScript de Design Notes
Toutes les fonctions de l'API JavaScript de Design Notes sont des méthodes
associées à l'objet MMNotes. Les arguments facultatifs sont indiqués entre accolades
({ }).
MMNotes.close()
Description
Ferme le fichier Design Notes spécifié et enregistre les modifications éventuelles.
Si toutes les paires clé/valeur ont été supprimées, Dreamweaver supprime le fichier
Design Notes.
Arguments
fileHandle
L'argument est l'identificateur de fichier renvoyé par MMNotes.open().
Valeurs renvoyées
Aucune.
Exemple
Voir « MMNotes.set() », page 224.
MMNotes.filePathToLocalURL()
Description
Convertit le chemin d'accès du lecteur local spécifié en une URL de type file://.
Arguments
drivePath
L'argument est une chaîne contenant le chemin d'accès complet du lecteur.
220
Chapitre 18
Valeurs renvoyées
Une chaîne contenant l'URL de type file:// du fichier spécifié.
Exemple
Un appel à la fonction MMNotes.filePathToLocalURL('C:/sites/webdev/
index.htm') renvoie "file:///c|sites/webdev/index.htm".
MMNotes.get()
Description
Obtient la valeur de la clé spécifiée dans le fichier Design Notes indiqué.
Arguments
fileHandle, keyName
• Le premier argument est l'identificateur de fichier renvoyé par
MMNotes.open().
• Le deuxième argument est une chaîne contenant le nom de la clé.
Valeurs renvoyées
Une chaîne contenant la valeur de la clé.
Exemple
Voir « MMNotes.getKeys() », page 221 .
MMNotes.getKeyCount()
Description
Obtient le nombre de paires clé/valeur du fichier Design Notes spécifié.
Arguments
fileHandle
L'argument est l'identificateur de fichier renvoyé par MMNotes.open().
Valeurs renvoyées
Un nombre entier représentant le nombre de paires clé/valeur du fichier Design
Notes spécifié.
MMNotes.getKeys()
Description
Obtient une liste de toutes les clés d'un fichier Design Notes.
Arguments
fileHandle
L'argument est l'identificateur de fichier renvoyé par MMNotes.open().
API de Design Notes
221
Valeurs renvoyées
Un tableau de chaînes, chacune d'elles contenant le nom d'une clé.
Exemple
Le code suivant peut être utilisé dans un panneau flottant personnalisé afin
d'afficher les informations Design Notes relatives au document actif :
var noteHandle = MMNotes.open(dw.getDocumentDOM().URL);
var theKeys = MMNotes.getKeys(noteHandle);
var noteString = "";
var theValue = "";
for (var i=0; i < theKeys.length; i++){
theValue = MMNotes.get(noteHandle,theKeys[i]);
noteString += theKeys[i] + " = " theValue + "\n";
}
document.theForm.bigTextField.value = noteString;
MMNotes.getSiteRootForFile()
Description
Détermine la racine du site pour le fichier Design Notes spécifié.
Arguments
fileURL
L’argument est le chemin d’un fichier local, exprimé sous la forme d’une URL de
type file://.
Valeurs renvoyées
Une chaîne contenant le chemin d'accès du dossier racine local du site, exprimé
sous la forme d'une URL de type file://, ou une chaîne vide si Dreamweaver (ou
UltraDev) n'est pas installé ou si le fichier Design Notes se trouve en dehors de
tout site défini par Dreamweaver ou UltraDev.
MMNotes.getVersionName()
Description
Obtient le nom de version de la bibliothèque partagée MMNotes indiquant
l'application qui l'a implémentée.
Arguments
Aucun.
Valeurs renvoyées
Une chaîne contenant le nom de l'application qui a implémenté la bibliothèque
partagée MMNotes.
222
Chapitre 18
Exemple
L'appel de la fonction MMNotes.getVersionName() à partir d'une commande,
d'un objet, d'un comportement, d'un inspecteur de propriétés, d'un panneau
flottant ou d'un traducteur de données Dreamweaver renvoie "Dreamweaver".
L'appel de la fonction MMNotes.getVersionName() à partir de Fireworks renvoie
également la valeur "Dreamweaver" étant donné que Fireworks utilise la même
version de la bibliothèque (celle qui a été créée par l'équipe technique de
Dreamweaver).
MMNotes.getVersionNum()
Description
Obtient le numéro de version de la bibliothèque partagée MMNotes.
Arguments
Aucun.
Valeurs renvoyées
Une chaîne contenant le numéro de version.
MMNotes.localURLToFilePath()
Description
Convertit l'URL de type file:// spécifiée en un chemin d'accès du lecteur local.
Arguments
fileURL
L’argument est le chemin d’un fichier local, exprimé sous la forme d’une URL de
type file://.
Valeurs renvoyées
Une chaîne contenant le chemin d'accès du lecteur local pour le fichier spécifié.
Exemple
Un appel à la fonction MMNotes.localURLToFilePath('file:///
MacintoshHD/images/moon.gif') renvoie "MacintoshHD:images:moon.gif".
MMNotes.open()
Description
Ouvre le fichier Design Notes associé au fichier spécifié ou crée un fichier Design
Notes s'il n'en existe pas.
Arguments
filePath, {bForceCreate}
• Le premier argument est le chemin du fichier principal auquel le fichier Design
Notes est associé, exprimé sous la forme d’une URL de type file://.
API de Design Notes
223
• Le deuxième argument est une valeur booléenne indiquant si la Note doit être
créée même si la fonctionnalité Design Notes est désactivée pour le site ou si
filePath n'est associé à aucun site.
Valeurs renvoyées
L'identificateur du fichier Design Notes ou zéro (0) si le fichier n'a pas été ouvert
ni créé.
Exemple
Voir « MMNotes.set() », page 224 .
MMNotes.remove()
Description
Supprime la clé spécifiée (et sa valeur) du fichier Design Notes indiqué.
Arguments
fileHandle, keyName
• Le premier argument est l'identificateur de fichier renvoyé par
MMNotes.open().
• Le deuxième argument est une chaîne contenant le nom de la clé à supprimer.
Valeurs renvoyées
Une valeur booléenne indiquant si l'opération a réussi.
MMNotes.set()
Description
Crée ou met à jour une paire clé/valeur dans un fichier Design Notes.
Arguments
fileHandle, keyName, valueString
• Le premier argument est l'identificateur de fichier renvoyé par
MMNotes.open().
• Le deuxième argument est une chaîne contenant le nom de la clé.
• Le troisième argument est une chaîne contenant la valeur.
Valeurs renvoyées
Une valeur booléenne indiquant si l'opération a réussi.
224
Chapitre 18
Exemple
Le code suivant ouvre le fichier Design Notes associé à un fichier situé sur le site
dreamcentral appelé peakhike99/index.html, ajoute une nouvelle paire clé/valeur,
modifie la valeur d'une clé existante, puis ferme le fichier Note.
var noteHandle = MMNotes.open('file:///c|sites/dreamcentral/
peakhike99/index.html',true);
MMNotes.set(noteHandle,"Author","M. G. Miller");
MMNotes.set(noteHandle,"Last Changed","August 28, 1999");
MMNotes.close(noteHandle);
API C de Design Notes
Outre l'API JavaScript, la bibliothèque partagée MMNotes affiche une API C
permettant aux autres applications de créer des fichiers Design Notes. Il n'est pas
nécessaire d'appeler les fonctions C directement si vous utilisez la bibliothèque
partagée MMNotes dans Dreamweaver ; les versions JavaScript de ces fonctions
les appellent pour vous.
Cette section contient une description de ces fonctions, de leurs arguments et des
valeurs qu'elles renvoient ; les définitions de toutes les fonctions et de tous les
types de données sont disponibles dans le fichier MMInfo.h du dossier Extending/
c_files dans le dossier de l'application Dreamweaver.
Les arguments facultatifs sont indiqués entre accolades ({ }).
void CloseNotesFile()
Description
Ferme le fichier Design Notes spécifié et enregistre les modifications éventuelles.
Si toutes les paires clé/valeur ont été supprimées de la Note, Dreamweaver
supprime cette dernière.
Arguments
FileHandle noteHandle
L'argument est l'identificateur de fichier renvoyé par OpenNotesFile().
Valeurs renvoyées
Aucune.
BOOL FilePathToLocalURL()
Description
Convertit le chemin d'accès du lecteur local spécifié en une URL de type file://.
Arguments
const char* drivePath, char* localURLBuf, int localURLMaxLen
API de Design Notes
225
• Le premier argument est une chaîne contenant le chemin d'accès complet du
lecteur.
• Le deuxième argument est la zone de mémoire tampon où l'URL de type file://
doit être stockée.
• Le troisième argument est la taille maximale de localURLBuf.
Valeurs renvoyées
Une valeur booléenne indiquant si l'opération a réussi ; stockage de l'URL de type
file:// dans localURLBuf.
BOOL GetNote()
Description
Obtient la valeur de la clé spécifiée dans le fichier Design Notes indiqué.
Arguments
FileHandle noteHandle, const char keyName[64], char* valueBuf, int
valueBufLength
• Le premier argument est l'identificateur de fichier renvoyé par
OpenNotesFile().
• Le deuxième argument est une chaîne contenant le nom de la clé.
• Le troisième argument est la zone de mémoire tampon où la valeur doit être
stockée.
• Le quatrième argument est le nombre entier renvoyé par
GetNoteLength(noteHandle,keyName),
indiquant la longueur maximale de
la mémoire tampon des valeurs.
Valeurs renvoyées
Une valeur booléenne indiquant si l'opération a réussi ; stockage de la valeur de la
clé dans valueBuf.
Exemple
Le code suivant obtient la valeur de la clé comments dans le fichier Design Notes
associé à welcome.html :
FileHandle noteHandle = OpenNotesFile("file:///c|sites/avocado8/¬
iwjs/welcome.html");
int valueLength = GetNotesLength( noteHandle, "comments");
char* valueBuffer = new char[valueLength + 1] ¬
GetNote(noteHandle, "comments", valueBuffer, valueLength + 1);
printf("Comments: %s",valueBuffer);
CloseNotesFile(noteHandle);
226
Chapitre 18
int GetNoteLength()
Description
Obtient la longueur de la valeur associée à la clé spécifiée.
Arguments
FileHandle noteHandle, const char keyName[64]
• Le premier argument est l'identificateur de fichier renvoyé par
OpenNotesFile().
• Le deuxième argument est une chaîne contenant le nom de la clé.
Valeurs renvoyées
Un nombre entier représentant la longueur de la valeur.
Exemple
Voir « BOOL GetNote() », page 226 .
int GetNotesKeyCount()
Description
Obtient le nombre de paires clé/valeur du fichier Design Notes spécifié.
Arguments
FileHandle noteHandle
L'argument est l'identificateur de fichier renvoyé par OpenNotesFile().
Valeurs renvoyées
Un nombre entier représentant le nombre de paires clé/valeur du fichier Design
Notes spécifié.
BOOL GetNotesKeys()
Description
Obtient une liste de toutes les clés d'un fichier Design Notes.
Arguments
FileHandle noteHandle, char* keyBufArray[64], int keyArrayMaxLen
• Le premier argument est l'identificateur de fichier renvoyé par
OpenNotesFile().
• Le deuxième argument est le tableau en mémoire tampon où les clés doivent
être stockées.
• Le troisième argument est le nombre entier renvoyé par
GetNotesKeyCount(noteHandle), indiquant le nombre maximum d'éléments
contenu dans le tableau en mémoire tampon des clés.
API de Design Notes
227
Valeurs renvoyées
Une valeur booléenne indiquant si l'opération a réussi ; stockage des noms de clé
dans keyBufArray.
Exemple
Le code suivant imprime les noms de clé et les valeurs de toutes les clés du fichier
Design Notes associé à welcome.html :
typedef char[64] InfoKey;
FileHandle noteHandle = OpenNotesFile("file:///c|sites/avocado8/¬
iwjs/welcome.html");
if (noteHandle > 0){
int keyCount = GetNotesKeyCount(noteHandle);
if (keyCount <= 0)
return;
InfoKey* keys = new InfoKey[keyCount];
BOOL succeeded = GetNotesKeys(noteHandle, keys, keyCount);
if (succeeded){
for (int i=0; i < keyCount; i++){
printf(“Key is: %s\n", keys[i]);
printf("Value is: %s\n\n", GetNote(noteHandle, keys[i]);
}
delete keys;
}
CloseNotesFile(noteHandle);
BOOL GetSiteRootForFile()
Description
Détermine la racine du site pour le fichier Design Notes spécifié.
Arguments
char* filePath, char* siteRootBuf, int siteRootBufMaxLen, {InfoPrefs*
infoPrefs}
• Le premier argument est l'identificateur de fichier renvoyé par
OpenNotesFile().
• Le deuxième argument est la zone de mémoire tampon où la racine du site doit
être stockée.
• Le troisième argument est la taille maximale de siteRootBuf.
• Le quatrième argument est une référence à un struct dans lequel les
préférences du site doivent être stockées.
Valeurs renvoyées
Une valeur booléenne indiquant si l'opération a réussi ; stockage de la racine du
site dans siteRootBuf. Si infoPrefs est spécifié, la fonction renvoie également
les préférences Design Notes pour le site. Le struct InfoPrefs possède deux
variables : bUseDesignNotes et bUploadDesignNotes, toutes deux de type BOOL.
228
Chapitre 18
BOOL GetVersionName()
Description
Obtient le nom de version de la bibliothèque partagée MMNotes indiquant
l'application qui l'a implémentée.
Arguments
char* versionNameBuf, int versionNameBufMaxLen
• Le premier argument est la zone de mémoire tampon où le nom de version doit
être stocké.
• Le deuxième argument est la taille maximale de versionNameBuf.
Valeurs renvoyées
Une valeur booléenne indiquant si l'opération a réussi ; stockage du nom de
version dans versionNameBuf.
BOOL GetVersionNum()
Description
Obtient le numéro de version de la bibliothèque partagée MMNotes.
Arguments
char* versionNumBuf, int versionNumBufMaxLen
• Le premier argument est la zone de mémoire tampon où le numéro de version
doit être stocké.
• Le deuxième argument est la taille maximale de versionNumBuf.
Valeurs renvoyées
Une valeur booléenne indiquant si l'opération a réussi ; stockage du numéro de
version dans versionNumBuf.
BOOL LocalURLToFilePath()
Description
Convertit l'URL de type file:// spécifiée en un chemin d'accès du lecteur local.
Arguments
const char* localURL, char* drivePathBuf, int drivePathMaxLen
• Le premier argument est le chemin d’un fichier local, exprimé sous la forme
d’une URL de type file://.
• Le deuxième argument est la zone de mémoire tampon où le chemin d'accès du
lecteur local doit être stocké.
• Le troisième argument est la taille maximale de drivePathBuf.
API de Design Notes
229
Valeurs renvoyées
Une valeur booléenne indiquant si l'opération a réussi ; stockage du chemin
d'accès du lecteur local dans drivePathBuf.
FileHandle OpenNotesFile()
Description
Ouvre le fichier Design Notes associé au fichier spécifié ou crée un fichier Design
Notes s'il n'en existe pas.
Arguments
const char* localFileURL, {BOOL bForceCreate}
• Le premier argument est une chaîne contenant le chemin du fichier principal
auquel le fichier Design Notes est associé, exprimé sous la forme d’une URL de
type file://.
• Le deuxième argument est une valeur booléenne indiquant si le fichier Design
Notes doit être créé même si la fonctionnalité Design Notes est désactivée pour
le site ou si filePath n'est associé à aucun site.
FileHandle OpenNotesFilewithOpenFlags()
Description
Ouvre le fichier Design Notes associé au fichier spécifié ou crée un fichier Design
Notes s'il n'en existe pas. Vous pouvez ouvrir le fichier en mode lecture seule.
Arguments
const char* localFileURL, {BOOL bForceCreate}, {BOOL bReadOnly}
• Le premier argument est une chaîne contenant le chemin du fichier principal
auquel le fichier Design Notes est associé, exprimé sous la forme d’une URL de
type file://.
• Le deuxième argument est une valeur booléenne indiquant si le fichier Design
Notes doit être créé même si la fonctionnalité Design Notes est désactivée pour
le site ou si filePath n'est associé à aucun site. La valeur par défaut est false.
Cet argument est facultatif, mais vous devez le définir si vous spécifiez le
troisième argument.
• Le troisième argument est une valeur booléenne indiquant si le fichier doit être
ouvert en mode lecture seule. La valeur par défaut est false. Cet argument est
facultatif.
BOOL RemoveNote()
Description
Supprime la clé spécifiée (et sa valeur) du fichier Design Notes indiqué.
230
Chapitre 18
Arguments
FileHandle noteHandle, const char keyName[64]
• Le premier argument est l'identificateur de fichier renvoyé par
OpenNotesFile().
• Le deuxième argument est une chaîne contenant le nom de la clé à supprimer.
Valeurs renvoyées
Une valeur booléenne indiquant si l'opération a réussi.
BOOL SetNote()
Description
Crée ou met à jour une paire clé/valeur dans un fichier Design Notes.
Arguments
FileHandle noteHandle, const char keyName[64], const char* value
• Le premier argument est l'identificateur de fichier renvoyé par
OpenNotesFile().
• Le deuxième argument est une chaîne contenant le nom de la clé.
• Le troisième argument est une chaîne contenant la valeur.
Valeurs renvoyées
Une valeur booléenne indiquant si l'opération a réussi.
API de Design Notes
231
232
Chapitre 18
19
CHAPITRE 19
API d'E/S de fichiers
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Dreamweaver est livré avec une bibliothèque partagée C, appelée DWFile, qui
donne aux auteurs d'objets, de commandes, de comportements, de traducteurs de
données, de panneaux flottants et d'inspecteurs de propriétés la possibilité de lire
et d'écrire des fichiers sur le système de fichiers local. Ce chapitre décrit l'API
d'entrée/sortie de fichiers et son utilisation.
Pour obtenir des informations générales sur la façon dont les bibliothèques C
interagissent avec l'interpréteur JavaScript dans Dreamweaver, voir
« Extensions C », page 319.
Vérification de l'installation de DWfile
Pour que l'accès aux fonctions de la bibliothèque DWfile soit possible, cette
bibliothèque doit se trouver dans le dossier Configuration/JSExtensions et être
chargée par Dreamweaver. Comme DWfile n'était pas fourni avec Dreamweaver 2
(l'utilisateur devait le télécharger séparément et l'installer), vérifiez que cette
bibliothèque est disponible avant d'appeler une de ses fonctions. Pour ce faire,
vérifiez le code typeof(DWfile). Si DWfile n'existe pas, typeof(DWfile)
renvoie undefined. Par exemple, si vous utilisez DWfile dans le contexte d'une
commande, vous pouvez vérifier si DWfile fait partie de la fonction
canAcceptCommand() :
// Returns true if typeof(DWfile) is not undefined, false
// otherwise.
function canAcceptCommand(){
return (typeof(DWfile) != "undefined");
}
233
API d'E/S de fichiers
Toutes les fonctions de l'API d'E/S de fichiers sont des méthodes associées à l'objet
DWfile. Les arguments facultatifs sont indiqués entre accolades ({ }). Les fonctions
ayant une disponibilité de la version 2.0 sont celles qui étaient incluses dans la
version de DWfile fournie sous forme de téléchargement pour Dreamweaver 2 à
partir du site web de Macromedia. Il est possible que cette version de DWfile ait
été installée avec certains objets propriétaires.
DWfile.copy()
Disponibilité
Dreamweaver 3.0
Description
Copie le fichier spécifié vers l'URL spécifiée.
Arguments
originalURL, copyURL
• Le premier argument est le fichier que vous souhaitez copier, exprimé sous la
forme d'une URL de type file://.
• Le deuxième argument est l'emplacement dans lequel est enregistré le fichier
copié, exprimé sous la forme d'une URL de type file://.
Valeurs renvoyées
true
si la copie a réussi, sinon false.
Exemple
Le code suivant copie un fichier appelé myconfig.cfg vers myconfig_backup.cfg.
var fileURL = "file:///c|/Config/myconfig.cfg";
var newURL ="file:///c|/Config/myconfig_backup.cfg";
DWfile.copy(fileURL, newURL);
DWfile.createFolder()
Disponibilité
Dreamweaver 2.0
Description
Crée un dossier (répertoire) à l'emplacement spécifié.
Arguments
folderURL
L'argument est l'emplacement du dossier que vous souhaitez créer, exprimé sous la
forme d'une URL de type file://.
Valeurs renvoyées
true
234
Chapitre 19
si le dossier a été créé avec succès, sinon false.
Exemple
Le code suivant tente de créer un dossier nommé tempFolder à la racine du
lecteur C et affiche un message d'avertissement indiquant si l'opération a réussi.
var folderURL = "file:///c|/tempFolder";
if (DWfile.createFolder(folderURL)){
alert("Created " + folderURL);
}else{
alert("Unable to create " + folderURL);
}
DWfile.exists()
Disponibilité
Dreamweaver 2.0
Description
Vérifie l'existence du fichier spécifié.
Arguments
fileURL
L'argument est le fichier que vous recherchez, exprimé sous la forme d'une URL
de type file://.
Valeurs renvoyées
true
si le fichier existe, sinon false.
Exemple
Le code suivant recherche un fichier nommé mydata.txt et affiche un message
d'avertissement indiquant à l'utilisateur si le fichier existe.
var fileURL = "file:///c|/temp/mydata.txt";
if (DWfile.exists(fileURL)){
alert( fileURL + " exists!");
}else{
alert( fileURL + " does not exist.");
}
DWfile.getAttributes()
Disponibilité
Dreamweaver 2.0
Description
Obtient les attributs du fichier ou dossier spécifié.
Arguments
fileURL
L'argument est le fichier ou le dossier dont vous souhaitez obtenir les attributs,
exprimé sous la forme d'une URL de type file://.
API d'E/S de fichiers
235
Valeurs renvoyées
Une chaîne représentant les attributs du fichier ou dossier spécifié ou null si le
fichier ou dossier n'existe pas. Les caractères de la chaîne représentent les attributs
de la façon suivante :
•
•
•
•
R
signifie lecture seule.
D
signifie dossier (répertoire).
H
signifie masqué.
S
indique un fichier ou dossier système.
Exemple
Le code suivant extrait les attributs du fichier mydata.txt et il affiche un message
d'avertissement si le fichier est en lecture seule.
var URL = "file:///c|/temp/mydata.txt";
var str = DWfile.getAttributes(URL);
if (str && (str.indexOf("R") != -1)){
alert(URL + " is read only!");
}
DWfile.getModificationDate()
Disponibilité
Dreamweaver 2.0
Description
Renvoie l'heure à laquelle le fichier a été modifié pour la dernière fois.
Arguments
fileURL
L'argument est le fichier dont vous recherchez l'heure de la dernière modification,
exprimé sous la forme d'une URL de type file://.
Valeurs renvoyées
Une chaîne contenant un nombre hexadécimal qui représente le nombre d'unités
de temps écoulées depuis une base de temps. La signification exacte des unités de
temps et de la base de temps dépend de la plate-forme ; sous Windows, par
exemple, une unité de temps est égale à 100 ns et la base de temps est le
1er janvier 1600.
236
Chapitre 19
Exemple
Comme la valeur renvoyée par cette fonction n'est pas une date et une heure
identifiables (et parce qu'elle dépend de la plate-forme), il est utile d'appeler la
fonction deux fois et de comparer les valeurs renvoyées. Par exemple, le code
suivant renvoie les dates de modification de file1.txt et file2.txt et il affiche un
message d'avertissement indiquant quel fichier est le plus récent.
var file1 = "file:///c|/temp/file1.txt";
var file2 = "file:///c|/temp/file2.txt";
var time1 = DWfile.getModificationDate(file1);
var time2 = DWfile.getModificationDate(file2);
if (time1 == time2){
alert("file1 and file2 were saved at the same time");
}else if (time1 < time2){
alert("file1 older than file2");
}else{
alert("file1 is newer than file2");
}
DWfile.getCreationDate()
Disponibilité
Dreamweaver 4.0
Description
Indique l'heure à laquelle le fichier a été créé.
Arguments
fileURL
L'argument est le fichier dont vous recherchez l'heure de création, exprimé sous la
forme d'une URL de type file://.
Valeurs renvoyées
Une chaîne contenant un nombre hexadécimal qui représente le nombre d'unités
de temps écoulées depuis une base de temps. La signification exacte des unités de
temps et de la base de temps dépend de la plate-forme ; sous Windows, par
exemple, une unité de temps est égale à 100 ns et la base de temps est le
1er janvier 1600.
API d'E/S de fichiers
237
Exemple
Vous pouvez appeler cette fonction ainsi que la fonction
DWfile.getModificationDate() pour un fichier afin de comparer les dates de
modification et de création.
var file1 = "file:///c|/temp/file1.txt";
var time1 = DWfile.getCreationDate(file1);
var time2 = DWfile.getModificationDate(file1);
if (time1 == time2){
alert("file1 has not been modified since it was created");
}else if (time1 < time2){
alert("file1 was last modified on time2");
}
DWfile.listFolder()
Disponibilité
Dreamweaver 2.0
Description
Obtient une liste du contenu du dossier spécifié.
Arguments
folderURL, {constraint}
• Le premier argument est le dossier pour lequel vous souhaitez obtenir une liste
de contenu, exprimé sous la forme d'une URL de type file://, plus un masque
de fichier à caractères génériques facultatif. Les caractères génériques valides
sont * (correspond à 1 ou plusieurs caractères) et ? (correspond à un seul
caractère).
• Le deuxième argument, s'il est fourni, doit être soit «
files » (renvoyer
uniquement les fichiers), soit « directories » (renvoyer uniquement les
répertoires). Si cet argument est omis, la fonction renvoie à la fois des fichiers et
des répertoires.
Valeurs renvoyées
Un tableau de chaînes représentant le contenu du dossier.
Exemple
Le code suivant obtient une liste de tous les fichiers texte (.txt) du dossier Temp et
affiche la liste dans un message d'avertissement.
var folderURL = "file:///c|/temp";
var fileMask = "*.txt";
var list = listFolder(folderURL + "/" + fileMask, "files");
if (list){
alert(folderURL + " contains: " + list.join("\n"));
}
238
Chapitre 19
DWfile.read()
Disponibilité
Dreamweaver 2.0
Description
Lit le contenu du fichier spécifié dans une chaîne.
Arguments
fileURL
L'argument est le fichier que vous souhaitez lire, exprimé sous la forme d'une
URL de type file://.
Valeurs renvoyées
Une chaîne comprenant le contenu du fichier ou null en cas d'échec de la lecture.
Exemple
Le code suivant lit le fichier mydata.txt et, s'il réussit, affiche un message
d'avertissement renfermant le contenu du fichier.
var fileURL = "file:///c|/temp/mydata.txt";
var str = DWfile.read( fileURL);
if (str){
alert( fileURL + " contains: " + str);
}
DWfile.remove()
Disponibilité
Dreamweaver 3.0
Description
Déplace le fichier spécifié dans la Corbeille.
Arguments
fileURL
L'argument est le fichier que vous souhaitez supprimer, exprimé sous la forme
d'une URL de type file://.
Valeurs renvoyées
true
si l'opération a réussi, sinon false.
DWfile.write()
Disponibilité
Dreamweaver 2.0
Description
Rédige la chaîne spécifiée dans le fichier spécifié. Si le fichier spécifié n'existe pas, il
est créé.
API d'E/S de fichiers
239
Arguments
fileURL, text, {mode}
• Le premier argument est le fichier dans lequel vous écrivez, exprimé sous la
forme d'une URL de type file://.
• Le deuxième argument est la chaîne qui doit être écrite.
• Le troisième argument, s'il est fourni, doit être « append ». Si cet argument
est omis, le contenu du fichier est écrasé par la chaîne.
Valeurs renvoyées
true
si l'écriture de la chaîne dans le fichier a réussi, sinon false.
Exemple
Le code suivant tente d'écrire la chaîne "xxx" dans le fichier mydata.txt et affiche
un message d'avertissement si l'écriture a réussi. Il essaie alors d'ajouter la chaîne
"aaa" au fichier et affiche un deuxième message d'avertissement si l'écriture a
réussi. Après l'exécution de ce script, le fichier mydata.txt contient uniquement le
texte xxxaaa.
var fileURL = "file:///c|/temp/mydata.txt";
if (DWfile.write(fileURL, "xxx")){
alert("Wrote xxx to " + fileURL);
}
if (DWfile.write(fileURL, "aaa", "append")){
alert("Appended aaa to " + fileURL);
}
240
Chapitre 19
20
CHAPITRE 20
API HTTP
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les extensions ne fonctionnent pas uniquement dans le système de fichiers local.
Dreamweaver offre un mécanisme d'acquisition d'informations depuis un serveur
web et d'envoi d'informations à un serveur web via le protocole HTTP
(Hypertext Transfer Protocol). Ce chapitre décrit l'API HTTP et son utilisation.
API HTTP
Toutes les fonctions de l'API HTTP sont des méthodes associées à l'objet MMHttp.
La plupart d'entre elles acceptent au moins une URL comme argument et la
plupart renvoient un objet. Le port par défaut pour les arguments URL est 80 ;
pour spécifier un port différent, ajoutez deux points (:) et le numéro de port à la
suite de l'URL. Exemple :
MMHttp.getText("http://www.myserver.com:8025");
Pour les fonctions qui renvoient un objet, cet objet possède deux propriétés :
statusCode et data.
statusCode
•
•
•
•
indique l'état de l'opération ; les valeurs possibles sont notamment :
200: Status OK (état OK)
400: Unintelligible request (requête incompréhensible)
404: Requested URL not found (URL demandée introuvable)
405: Server does not support requested method (le serveur ne prend pas en
charge la méthode demandée)
• 500: Unknown server error (erreur de serveur inconnue)
• 503: Server capacity reached (capacité du serveur atteinte)
241
Pour obtenir une liste complète des codes d'état pour votre serveur, consultez
votre fournisseur d'accès Internet ou votre administrateur système.
La valeur de la propriété data varie selon la fonction ; les valeurs possibles sont
spécifiées dans les listes des fonctions individuelles.
Les fonctions qui renvoient un objet ont également une version de rappel
(« callback »). Les fonctions de rappel permettent aux autres fonctions de
s'exécuter pendant que le serveur web traite une requête HTTP. Elles sont utiles si
vous effectuez plusieurs requêtes HTTP à partir de Dreamweaver. La version de
rappel d'une fonction transmet directement son ID et sa valeur de renvoi à la
fonction spécifiée sous la forme de son premier argument.
Les arguments facultatifs sont indiqués entre accolades ({ }).
MMHttp.clearTemp()
Description
Supprime tous les fichiers du dossier Configuration/Temp situé dans le dossier de
l'application Dreamweaver.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Exemple
Le code suivant, lorsqu'il est enregistré dans un fichier du dossier Configuration/
Shutdown, supprime tous les fichiers du dossier Configuration/Temp lorsque
l'utilisateur quitte Dreamweaver :
<html>
<head>
<title>Clean Up Temp Files on Shutdown</title>
</head>
<body onLoad="MMHttp.clearTemp()">
</body>
</html>
MMHttp.getFile()
Description
Obtient le fichier situé à l'URL spécifiée et l'enregistre dans le dossier
Configuration/Temp du dossier de l'application Dreamweaver sur le disque dur de
l'utilisateur. Dreamweaver crée automatiquement des sous-dossiers qui
reproduisent la structure de dossiers du serveur ; par exemple, si le fichier spécifié
est dans http://www.dreamcentral.com/people/index.html, Dreamweaver
enregistre le fichier index.html dans le sous-dossier People du dossier
www.dreamcentral.com.
242
Chapitre 20
Arguments
URL, {prompt}, {saveURL}, {titleBarLabel}
• Le premier argument est une URL absolue sur un serveur web ; si « http:// »
n'est pas indiqué dans l'URL, il est supposé.
• Le deuxième argument est une valeur booléenne spécifiant s'il faut inviter
l'utilisateur à enregistrer le fichier. Si saveURL est en dehors du dossier
Configuration/Temp, une valeur de prompt égale à false n'est pas prise en
compte pour des raisons de sécurité.
• Le troisième argument est l'emplacement sur le disque dur de l'utilisateur où le
fichier doit être enregistré, exprimé sous la forme d’une URL de type file://. Si
l'argument prompt a pour valeur true ou si saveURL est en dehors du dossier
Configuration/Temp, l'utilisateur peut remplacer saveURL dans la boîte de
dialogue d'enregistrement.
• Le quatrième argument est le libellé qui doit figurer dans la barre de titre de la
boîte de dialogue d'enregistrement.
Valeurs renvoyées
Un objet représentant la réponse du serveur. La propriété data de cet objet est une
chaîne contenant l'emplacement où le fichier a été enregistré, exprimé sous la
forme d'une URL de type file://. Normalement, la propriété statusCode de
l'objet contient le code d'état envoyé par le serveur. Toutefois, si une erreur de
disque se produit lors de l'enregistrement du fichier sur le lecteur local, la
propriété statusCode contient un entier représentant l'un des codes d'erreur
suivants en cas d'échec de l'opération :
•
•
•
•
1: Unspecified error (erreur inconnue)
2: File not found (fichier introuvable)
3: Invalid path (chemin non valide)
4: Number of open files limit reached (la limite du nombre de fichiers ouverts
est atteinte)
• 5: Access denied (accès refusé)
• 6: Invalid file handle (identificateur de fichier non valide)
• 7: Cannot remove current working directory (impossible de supprimer le
répertoire de travail en cours)
•
•
•
•
•
•
•
8: No more directory entries (pas d'autre entrée de répertoire)
9: Error setting file pointer (erreur lors de la définition du pointeur de fichier)
10: Hardware error (erreur matérielle)
11: Sharing violation (violation de partage)
12: Lock violation (violation de verrouillage)
13: Disk full (disque saturé)
14: End of file reached (fin du fichier atteinte)
API HTTP
243
Exemple
Le code suivant obtient un fichier HTML, enregistre tous les fichiers dans le
dossier Configuration/Temp, puis ouvre la copie locale du fichier HTML dans un
navigateur :
var httpReply = MMHttp.getFile("http://www.dreamcentral.com/¬
people/profiles/scott.html",
false);
if (httpReply.statusCode == 200){
var saveLoc = httpReply.data;
dw.browseDocument(saveLoc);
}
MMHttp.getFileCallback()
Description
Obtient le fichier situé à l'URL spécifiée, l'enregistre dans le dossier
Configuration/Temp du dossier de l'application Dreamweaver sur le disque dur de
l'utilisateur, puis appelle la fonction spécifiée avec l’ID et le résultat de la requête.
Lorsque le fichier est enregistré localement, Dreamweaver crée automatiquement
des sous-dossiers qui reproduisent l'arborescence du serveur ; par exemple, si le
fichier spécifié est dans http://www.dreamcentral.com/people/index.html,
Dreamweaver enregistre le fichier index.html dans le sous-dossier People du
dossier www.dreamcentral.com.
Arguments
callbackFunction, URL, {prompt}, {saveURL}, {titleBarLabel}
• Le premier argument est le nom de la fonction JavaScript à appeler lorsque la
requête HTTP est terminée.
• Le deuxième argument est une URL absolue sur un serveur web ; si « http:// »
n'est pas indiqué dans l'URL, il est supposé.
• Le troisième argument est une valeur booléenne spécifiant s'il faut inviter
l'utilisateur à enregistrer le fichier. Si saveURL est en dehors du dossier
Configuration/Temp, une valeur de prompt égale à false n'est pas prise en
compte pour des raisons de sécurité.
• Le quatrième argument est l'emplacement sur le disque dur de l'utilisateur où
le fichier doit être enregistré, exprimé sous la forme d’une URL de type file://.
Si l'argument prompt a pour valeur true ou si saveURL est en dehors du
dossier Configuration/Temp, l'utilisateur peut remplacer saveURL dans la boîte
de dialogue d'enregistrement.
• Le cinquième argument est le libellé qui doit figurer dans la barre de titre de la
boîte de dialogue d'enregistrement.
244
Chapitre 20
Valeurs renvoyées
Un objet représentant la réponse du serveur. La propriété data de cet objet est une
chaîne contenant l'emplacement où le fichier a été enregistré, exprimé sous la
forme d'une URL de type file://. Normalement, la propriété statusCode de
l'objet contient le code d'état envoyé par le serveur. Toutefois, si une erreur disque
se produit lors de l'enregistrement du fichier sur le lecteur local, la propriété
statusCode contient un nombre entier représentant un code d'erreur. Voir
« MMHttp.getFile() », page 242 pour une liste des codes d'erreur possibles.
MMHttp.getText()
Description
Extrait le contenu du document situé à l'URL spécifiée.
Arguments
URL
L'argument est une URL absolue sur un serveur web ; si « http:// » n'est pas
indiqué dans l'URL, il est supposé.
Valeurs renvoyées
Un objet représentant la réponse du serveur. La propriété data de cet objet est une
chaîne englobant le contenu du document.
Exemple
Le code suivant obtient le contenu d'un fichier situé sur un serveur web et le place
dans un nouveau document Dreamweaver sans titre :
var httpReply = MMHttp.getText("http://www.dreamcentral.com/¬
people/profiles/lori.html");
if (httpReply.statusCode == 200){
var newDoc = dw.createDocument();
newDoc.documentElement.outerHTML = httpReply.data;
}
MMHttp.getTextCallback()
Description
Extrait le contenu du document situé à l'URL spécifiée et le passe à la fonction
spécifiée.
Arguments
callbackFunc, URL
• Le premier argument est le nom de la fonction JavaScript à appeler lorsque la
requête HTTP est terminée.
• Le deuxième argument est une URL absolue sur un serveur web ; si « http:// »
n'est pas indiqué dans l'URL, il est supposé.
API HTTP
245
Valeurs renvoyées
Un objet représentant la réponse du serveur. La propriété data de cet objet est une
chaîne englobant le contenu du document.
Exemple
Le code suivant renseigne un champ de formulaire avec le texte renvoyé par la
fonction MMHttp.GetTextCallback() ou affiche un message d'erreur si la
fonction renvoie une erreur :
var requestID = MMHttp.getTextCallback("httpCallback", ¬
"www.dreamcentral.com/index.html")
function httpCallback(requestID,reply) {
if (reply.statusCode == 200) {
document.theForm.docContents.value = reply.data;
}else{
alert("Request #: " + requestID + "returned the following ¬
error: " + reply.statusCode);
}
}
MMHttp.postText()
Description
Exécute un envoi HTTP des données spécifiées à l'URL spécifiée. En règle
générale, les données associées à une opération d'envoi se présentent sous la forme
de texte codé en formulaire, mais il peut s'agir de tout type de données que le
serveur peut accepter.
Arguments
URL, dataToPost, {contentType}
• Le premier argument est une URL absolue sur un serveur web ; si « http:// »
n'est pas indiqué dans l'URL, il est supposé.
• Le deuxième argument correspond aux données à envoyer. Si le troisième
argument est « application/x-www-form-urlencoded » ou s'il n'est pas
spécifié, dataToPost doit être codé en formulaire conformément à la
section 8.2.1 de la spécification RFC 1866 (disponible à l'adresse http://
www.faqs.org/rfcs/rfc1866.html).
• Le troisième argument est le type de contenu des données à envoyer. S'il n'est
pas spécifié, il prend par défaut la valeur «
application/x-www-form-
urlencoded ».
Valeurs renvoyées
Un objet représentant la réponse du serveur. La propriété data de cet objet est une
chaîne englobant les données résultant de l'opération d'envoi.
246
Chapitre 20
MMHttp.postTextCallback()
Description
Exécute un envoi HTTP du texte à l'URL spécifiée et passe la réponse du serveur
à la fonction spécifiée. En règle générale, les données associées à une opération
d'envoi se présentent sous la forme de texte codé en formulaire, mais il peut s'agir
de tout type de données que le serveur peut accepter.
Arguments
callbackFunc, URL, dataToPost, {contentType}
• Le premier argument est le nom de la fonction JavaScript à appeler lorsque la
requête HTTP est terminée.
• Le deuxième argument est une URL absolue sur un serveur web ; si « http:// »
n'est pas indiqué dans l'URL, il est supposé.
• Le troisième argument correspond aux données à envoyer. Si le troisième
argument est « application/x-www-form-urlencoded » ou s'il n'est pas
spécifié, data doit être codé en formulaire conformément à la section 8.2.1 de
la spécification RFC 1866 (disponible à l'adresse http://www.faqs.org/rfcs/
rfc1866.html).
• Le quatrième argument est le type de contenu des données à envoyer. S'il n'est
pas spécifié, il prend par défaut la valeur «
application/x-www-form-
urlencoded ».
Valeurs renvoyées
Un objet représentant la réponse du serveur. La propriété data de cet objet est une
chaîne englobant les données résultant de l'opération d'envoi.
API HTTP
247
248
Chapitre 20
21
CHAPITRE 21
API de base de données
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les fonctions de base de données vous permettent d'utiliser des instructions SQL
et des procédures stockées. A l'aide de ces fonctions, vous pouvez obtenir certaines
informations sur le schéma de base de données. Un schéma de base de données
donne la structure de la base (ces données structurelles sont également appelées
méta-données). La structure d'une base de données comprend les noms des
tableaux et des colonnes de la base de données. Les fonctions de l'API de base de
données vous permettent d'extraire les noms des tableaux et des colonnes des
instructions SQL et des procédures stockées, d'extraire les noms d'utilisateur et les
mots de passe servant à établir des connexions de base de données et d'afficher les
résultats d'une instruction SQL ou d'une procédure stockée exécutée. Ces
fonctions sont utilisées au moment de la conception, lorsque les utilisateurs
développent leurs applications web, par opposition au moment de l'exécution,
c'est-à-dire lorsque l'application web est déployée.
Les fonctions de base de données peuvent être utilisées par n'importe quelle
extension. En fait, les fonctions API de comportements de serveur, formats de
données et sources de données d'UltraDev utilisent les fonctions de base de
données.
L'exemple suivant illustre la définition de la fonction de comportement de serveur,
getDynamicBindings(), pour le jeu d'enregistrements (le fichier Recordset.js
figure dans le dossier /Configuration/ServerBehaviors/ASP).
249
Notez que la fonction MMDB.getColumnList() est utilisée.
fonction getDynamicBindings(elementNode)
{
var ss = findSSrec(elementNode, LABEL_Type)
var
var
var
var
connString = ss.activeconnection
connName = ss.connectionName
statement = ss.source
rsName = ss.rsName
var pa = new Array()
if (String(ss.ParamArray) != "undefined")
{
for (var i = 0; i < ss.ParamArray.length; i++)
{
pa[i] = new Array()
pa[i][0] = ss.ParamArray[i].name
pa[i][1] = ss.ParamArray[i].value
}
}
var statement = ReplaceParamsWithVals(statement, pa)
return MMDB.getColumnList(connName, statement)
}
Fonctions de l'API de base de données
La liste suivante décrit certains des arguments communs aux fonctions de base de
données :
• La plupart des fonctions de base de données utilisent un nom de connexion
comme argument. Pour obtenir la liste des noms de connexion valides, utilisez
le Gestionnaire de connexions d'UltraDev ou la fonction
MMDB.getConnectionList().
• Les procédures stockées exigent souvent des paramètres. Il existe deux façons de
spécifier des valeurs de paramètres pour certaines fonctions de base de données.
En premier lieu, vous pouvez fournir un tableau de valeurs de paramètre
(paramValuesArray). Si vous ne spécifiez que des valeurs de paramètre, cellesci doivent être dans l'ordre dans lequel la procédure stockée les demande.
Spécifiez ensuite les valeurs de paramètre pour fournir un tableau des noms de
paramètre (paramNameArray) (vous pouvez utiliser la fonction
MMDB.getSPParamsAsString() pour extraire les paramètres de la procédure
stockée). Si vous fournissez des noms de paramètre, les valeurs spécifiées dans
paramValuesArray doivent être dans l'ordre dans lequel les noms ont été
spécifiés dans paramNameArray.
250
Chapitre 21
getColdFusionDsnList()
Disponibilité
Dreamweaver UltraDev 4.0
Description
Extrait les DSN ColdFusion du serveur du site, en utilisant les fonctions
getRdsUserName() et getRdsPassword().
Arguments
Aucun.
Valeurs renvoyées
Un tableau contenant les DSN ColdFusion définis sur le serveur pour le site en
cours.
MMDB.getColumnAndTypeList()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Extrait une liste de colonnes et de leurs types à partir d'une instruction SQL
SELECT exécutée.
Arguments
connName, statement
•
connName
•
statement
désigne le nom de la connexion UltraDev spécifié dans le
Gestionnaire de connexion. Ce nom sert à établir une connexion de base de
données à une source de données active.
désigne l'instruction SQL SELECT à exécuter.
Valeurs renvoyées
Un tableau de chaînes représentant une liste de colonnes (et leurs types)
correspondant à l'instruction SELECT ou une erreur si l'instruction SQL était
incorrecte ou si la connexion n'a pas pu être établie.
Exemple
Le code var
columnArray = MMDB.getColumnAndTypeList("EmpDB","Select
* from Employees") renvoie le tableau de chaînes suivantes :
columnArray[0] = "EmpName" , columnArray[1] = "varchar", ¬
columnArray[2] = "EmpFirstName", columnArray[3] = "varchar", ¬
columnArray[4] = "Age", columnArray[5] = "integer"
MMDB.getColumnList()
Disponibilité
Dreamweaver UltraDev 1.0
API de base de données
251
Description
Extrait une liste de colonnes à partir d'une instruction SQL SELECT exécutée.
Arguments
connName, statement
•
connName
•
statement
désigne un nom de connexion UltraDev spécifié dans le
Gestionnaire de connexion. Ce nom sert à établir une connexion de base de
données à une source de données active.
désigne l'instruction SQL SELECT à exécuter.
Valeurs renvoyées
Un tableau de chaînes représentant une liste de colonnes correspondant à
l'instruction SELECT ou une erreur si l'instruction SQL était incorrecte ou si la
connexion n'a pas pu être établie.
Exemple
Le code var columnArray = MMDB.getColumnList("EmpDB","Select * from
Employees") renvoie le tableau de chaînes suivantes :
columnArray[0] = "EmpName", columnArray[1] = "EmpFirstName", ¬
columnArray[2] = "Age"
MMDB.getColumnsOfTable()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Extrait une liste de toutes les colonnes du tableau spécifié.
Arguments
connName, tableName
•
connName
•
tableName
connName.
désigne le nom de la connexion UltraDev spécifié dans le
Gestionnaire de connexion. Ce nom sert à établir une connexion de base de
données à une source de données active.
est le nom d'un tableau de la base de données désignée par
Valeurs renvoyées
Un tableau de chaînes, chaque chaîne désignant le nom d'une colonne du tableau.
Exemple
L'instruction MMDB.getColumnsOfTable
chaînes suivantes :
("EmpDB","Employees");
["EmpID", "FirstName", "LastName"]
252
Chapitre 21
renvoie les
MMDB.getConnectionList()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Extrait une liste de toutes les chaînes de connexion définies dans le Gestionnaire
de connexion.
Arguments
Aucun.
Valeurs renvoyées
Un tableau de chaînes, chaque chaîne désignant le nom d'une connexion tel qu'il
apparaît dans le Gestionnaire de connexion.
Exemple
La fonction MMDB.getConnectionList() peut renvoyer les chaînes ["EmpDB",
"Test", "TestEmp"].
MMDB.getConnectionName()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Extrait un nom de connexion correspondant à la chaîne de connexion spécifiée.
Cette fonction est utile lorsque vous devez resélectionner un nom de connexion
dans l'interface utilisateur à partir des données de la page.
Si vous avez une chaîne de connexion faisant référence à deux pilotes différents,
vous pouvez spécifier à la fois la chaîne de connexion et le pilote correspondant au
nom de connexion que vous souhaitez obtenir. Par exemple, vous pourriez avoir
deux connexions :
Connexion1 possède les propriétés suivantes :
ConnectionString="jdbc:inetdae:velcro-qa-5:1433?database=pubs"
DriverName="com.inet.tds.TdsDriver"
Connexion2 possède les propriétés suivantes :
ConnectionString="jdbc:inetdae:velcro-qa-5:1433?database=pubs"
DriverName="com.inet.tds.TdsDriver2"
Les chaînes de connexion de Connexion1 et Connexion2 sont identiques.
Connexion2 établit une connexion avec une version plus récente de TdsDriver.
Vous devez transmettre le nom du pilote à cette fonction pour définir
complètement le nom de connexion que vous souhaitez obtenir.
API de base de données
253
Arguments
connString, {driverName}
•
connString
désigne la chaîne de connexion utilisée pour obtenir le nom de
connexion.
•
driverName
est un argument facultatif définissant connString de façon plus
précise.
Valeurs renvoyées
Une chaîne de nom de connexion correspondant à la chaîne de connexion.
Exemple
Le code suivant renvoie la chaîne "EmpDB" :
var connectionName = MMDB.getConnectionName ¬
("dsn=EmpDB;uid=;pwd=");
MMDB.getConnectionString()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Extrait une chaîne de connexion associée au nom de connexion spécifié.
Arguments
connName
désigne un nom de connexion UltraDev spécifié dans le Gestionnaire
de connexion. Ce nom sert à établir une connexion de base de données à une
source de données active.
connName
Valeurs renvoyées
Une chaîne correspondant au nom de connexion.
Exemple
Le code var connectionString = MMDB.getConnectionString
renvoie différentes chaînes pour une connexion ADO ou JDBC.
("EmpDB")
Pour une connexion ADO, il peut renvoyer la chaîne suivante :
"dsn=EmpDB;uid=;pwd=";
Pour une connexion JDBC, il peut renvoyer la chaîne suivante :
"jdbc:inetdae:192.168.64.49:1433?database=pubs&user=JoeUser&¬
password=joesSecret"
MMDB.getDriverName()
Disponibilité
Dreamweaver UltraDev 1.0
254
Chapitre 21
Description
Extrait le nom du pilote associé à la connexion spécifiée. Seule une connexion
JDBC a un nom de pilote dans Dreamweaver UltraDev 1.0.
Arguments
connName
désigne un nom de connexion UltraDev spécifié dans le Gestionnaire
de connexion. Ce nom sert à établir une connexion de base de données à une
source de données active.
connName
Valeurs renvoyées
Une chaîne contenant le nom du pilote.
Exemple
L'instruction MMDB.getDriverName
suivante :
("EmpDB");
peut renvoyer la chaîne
"jdbc/oracle/driver/JdbcOracle"
MMDB.getPassword()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Extrait le mot de passe utilisé pour la connexion spécifiée.
Arguments
connName
désigne un nom de connexion UltraDev spécifié dans le Gestionnaire
de connexion. Ce nom sert à établir une connexion de base de données à une
source de données active.
connName
Valeurs renvoyées
Une chaîne de mot de passe associée au nom de connexion.
Exemple
L'instruction MMDB.getPassword
("EmpDB");
peut renvoyer "joessecret".
MMDB.getRuntimeConnectionType()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Renvoie le type de connexion d'exécution du nom de connexion spécifié.
Cette fonction peut renvoyer une des valeurs suivantes : "ADO", "ADODSN",
"JDBC" ou "CFDSN".
API de base de données
255
Arguments
connName
désigne le nom de la connexion UltraDev spécifié dans le Gestionnaire
de connexion. Ce nom sert à établir une connexion de base de données à une
source de données active.
connName
Valeurs renvoyées
Une chaîne correspondant au type de connexion.
Exemple
Le code suivant renverrait la chaîne "ADO" pour une connexion ADO :
var connectionType = MMDB.getRuntimeConnectionType ("EmpDB")
MMDB.getSPColumnList()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Extrait une liste de colonnes de jeu de résultats générée par un appel à la procédure
stockée spécifiée.
Arguments
connName, statement, paramValuesArray
•
connName
•
statement
•
est un tableau contenant une liste de valeurs test de
paramètre de conception. Spécifiez les valeurs de paramètre dans l'ordre
attendu par la procédure stockée. Vous pouvez utiliser la fonction
MMDB.getSPParamsAsString() pour obtenir les paramètres de la procédure
stockée.
désigne un nom de connexion UltraDev spécifié dans le
Gestionnaire de connexion. Ce nom sert à établir une connexion de base de
données à une source de données active.
est le nom de la procédure stockée qui renvoie le jeu de résultats
lorsqu'elle est exécutée.
paramValuesArray
Valeurs renvoyées
Un tableau de chaînes représentant la liste de colonnes. Cette fonction renvoie
une erreur si l'instruction SQL est incorrecte ou si la chaîne de connexion est
erronée.
Exemple
Le code suivant pourrait renvoyer une liste de colonnes de jeu de résultats générées
à partir de la procédure stockée exécutée, getNewEmployeesMakingAtLeast :
var paramValueArray = new Array("2/1/2000", "50000")
var columnArray = MMDB.getSPColumnList("EmpDB", ¬
"getNewEmployeesMakingAtLeast", paramValueArray)
256
Chapitre 21
Les valeurs renvoyées sont :
columnArray[0] = "EmpID", columnArray[1] = "LastName", ¬
columnArray[2] ="startDate", columnArray[3] = "salary"
MMDB.getSPColumnListNamedParams()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Extrait une liste de colonnes de jeu de résultats générée par un appel à la procédure
stockée spécifiée.
Arguments
connName, statement, paramNameArray, paramValuesArray
•
connName
•
statement
•
est un tableau contenant une liste de noms de paramètre.
Vous pouvez utiliser la fonction MMDB.getSPParamsAsString() pour obtenir
les paramètres de la procédure stockée.
•
est un tableau contenant une liste de valeurs test de
paramètre de conception. Vous pouvez éventuellement spécifier si la procédure
exige des paramètres lors de son exécution. Si vous avez fourni des noms de
paramètre dans paramNameArray, spécifiez les valeurs de paramètre dans l'ordre
dans lequel leurs noms apparaissent dans paramNameArray. Si vous n'avez pas
indiqué paramNameArray, spécifiez les valeurs dans l'ordre attendu par la
procédure stockée.
désigne un nom de connexion UltraDev spécifié dans le
Gestionnaire de connexion. Ce nom sert à établir une connexion de base de
données à une source de données active.
est le nom de la procédure stockée qui renvoie le jeu de résultats
lorsqu'elle est exécutée.
paramNameArray
paramValuesArray
Valeurs renvoyées
Un tableau de chaînes représentant la liste de colonnes. Cette fonction renvoie
une erreur si l'instruction SQL est incorrecte ou si la chaîne de connexion est
erronée.
Exemple
Le code suivant pourrait renvoyer une liste de colonnes de jeu de résultats générées
à partir de la procédure stockée exécutée, getNewEmployeesMakingAtLeast :
var paramNameArray = new Array("startDate", "salary")
var paramValueArray = new Array("2/1/2000", "50000")
var columnArray = MMDB.getSPColumnListNamedParams("EmpDB", ¬
"getNewEmployeesMakingAtLeast", paramNameArray, paramValueArray)
API de base de données
257
Les valeurs renvoyées sont :
columnArray[0] = "EmpID", columnArray[1] = "LastName", ¬
columnArray[2] ="startDate", columnArray[3] = "salary"
MMDB.getSPParamsAsString()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Renvoie une chaîne délimitée par des virgules contenant la liste des paramètres
que prend la procédure stockée.
Arguments
connName, procName
•
connName
•
procName
désigne un nom de connexion UltraDev spécifié dans le
Gestionnaire de connexion. Ce nom sert à établir une connexion de base de
données à une source de données active.
est le nom de la procédure stockée.
Valeurs renvoyées
Une chaîne délimitée par des virgules contenant la liste des paramètres exigés par
la procédure stockée. Les noms, la direction et le type de données des paramètres
sont inclus, séparés par des points-virgules (;).
Exemple
Le code MMDB.getSPParamsAsString
("EmpDB","getNewEmployeesMakingAtLeast") pourrait renvoyer une
de nom de formulaire startDate;direction:in;datatype:date,
salary;direction:in;datatype:integer
chaîne
Ici, la procédure stockée getNewEmployeesMakingAtLeast possède deux
paramètres : startDate et Salary. Pour startDate, la direction est in et le type
de données est date. Pour salary, la direction est in et le type de données est
date.
MMDB.getTables()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Extrait une liste de tous les tableaux définis pour la base de données spécifiée.
Chaque objet de tableau a trois propriétés : table, schema et catalog. Table est
le nom du tableau, schema le nom du schéma contenant le tableau et catalog le
nom du catalogue contenant le tableau.
258
Chapitre 21
Arguments
connName
désigne un nom de connexion UltraDev spécifié dans le Gestionnaire
de connexion. Ce nom sert à établir une connexion de base de données à une
source de données active.
connName
Valeurs renvoyées
Un tableau d'objets ; chaque objet a trois propriétés : table, schema et catalog.
Exemple
L'instruction MMDB.getTables ("EmpDB"); pourrait produire un tableau de
deux objets. Les propriétés du premier objet pourrait être les suivantes :
object1[table:"Employees", schema:"personnel", catalog:"syscat"]
Les propriétés du deuxième objet pourrait être les suivantes :
object2[table:"Departments", schema:"demo", catalog:"syscat2"]
MMDB.getUserName()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Renvoie un nom d'utilisateur pour la connexion spécifiée.
Arguments
connName
désigne un nom de connexion UltraDev spécifié dans le Gestionnaire
de connexion. Ce nom sert à établir une connexion de base de données à une
source de données active.
connName
Valeurs renvoyées
Une chaîne de nom d'utilisateur associée au nom de connexion.
Exemple
L'instruction MMDB.getUserName
("EmpDB");
pourrait renvoyer "amit".
MMDB.getViews()
Disponibilité
Dreamweaver UltraDev 4.0
Description
Extrait une liste de tous les modes d'affichage définis pour la base de données
spécifiée. Chaque objet mode a les propriétés catalog, schema et view. Catalog
ou schema permet de restreindre/filtrer le nombre de modes d'affichage rattachés à
un nom de schéma individuel ou à un nom de catalogue défini comme faisant
partie des informations de connexion.
API de base de données
259
Arguments
connName
désigne un nom de connexion UltraDev spécifié dans le Gestionnaire
de connexion. Ce nom sert à établir une connexion de base de données à une
source de données active.
connName
Valeurs renvoyées
Un tableau des objets mode d'affichage ; chaque objet possède trois propriétés :
catalog, schema et view.
Exemple
L'exemple suivant renvoie les modes pour une valeur de connexion donnée,
CONN_LIST.getValue() :
var viewObjects = MMDB.getViews(CONN_LIST.getValue())
for (i = 0; i < viewObjects.length; i++)
{
thisView = viewObjects[i]
thisSchema = Trim(thisView.schema)
if (thisSchema.length == 0)
{
thisSchema = Trim(thisView.catalog)
}
if (thisSchema.length > 0)
{
thisSchema += "."
}
views.push(String(thisSchema + thisView.view))
}
MMDB.showConnectionMgrDialog()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Affiche la boîte de dialogue Gestionnaire de connexion.
Arguments
Aucune.
Valeurs renvoyées
Aucune. La boîte de dialogue Gestionnaire de connexion s’affiche.
MMDB.showResultset()
Disponibilité
Dreamweaver UltraDev 1.0
260
Chapitre 21
Description
Affiche une boîte de dialogue contenant les résultats de l'exécution de
l'instruction SQL spécifiée. Cette boîte de dialogue contient une grille dont l'entête reflète les informations de colonne et les données du jeu de résultats généré
par la procédure stockée exécutée. Si la chaîne de connexion ou l'instruction SQL
n'est pas valide, une erreur apparaît. Vous pouvez utiliser cette fonction pour
vérifier la validité de l'instruction SQL.
Arguments
connName, SQLstatement
•
connName
•
SQLstatement
désigne un nom de connexion UltraDev spécifié dans le
Gestionnaire de connexion. Ce nom sert à établir une connexion de base de
données à une source de données active.
désigne l'instruction SQL SELECT.
Valeurs renvoyées
Aucune. Cette fonction renvoie une erreur si l'instruction SQL est incorrecte ou si
la chaîne de connexion est erronée.
Exemple
Le code suivant affiche le résultat de l'instruction SQL exécutée :
MMDB.showResultset("EmpDB","Select EmpName,EmpFirstName,Age ¬
from Employees")
MMDB.showSPResultset()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Affiche une boîte de dialogue contenant les résultats de l'exécution de la procédure
stockée spécifiée. Cette boîte de dialogue contient une grille dont l'en-tête reflète
les informations de colonne et les données du jeu de résultats généré par la
procédure stockée exécutée. Si la chaîne de connexion ou la procédure stockée
n'est pas valide, une erreur apparaît. Vous pouvez utiliser cette fonction pour
vérifier la validité de la procédure stockée.
Arguments
connName, procName, paramValuesArray
•
connName
•
procName
désigne le nom de la connexion UltraDev spécifié dans le
Gestionnaire de connexion. Ce nom sert à établir une connexion de base de
données à une source de données active.
est le nom de la procédure stockée à exécuter.
API de base de données
261
•
est un tableau contenant une liste de valeurs test de
paramètre de conception. Spécifiez les valeurs de paramètre dans l'ordre
attendu par la procédure stockée. Vous pouvez utiliser la fonction
MMDB.getSPParamsAsString() pour obtenir les paramètres de la procédure
stockée.
paramValuesArray
Valeurs renvoyées
Aucune. Cette fonction renvoie une erreur si l'instruction SQL est incorrecte ou si
la chaîne de connexion est erronée.
Exemple
Le code suivant affiche le résultat de la procédure stockée exécutée :
var paramValueArray = new Array("2/1/2000", "50000")
MMDB.showSPResultset("EmpDB", "getNewEmployeesMakingAtLeast", ¬
paramValueArray)
MMDB.showSPResultsetNamedParams()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Affiche une boîte de dialogue contenant les résultats de l'exécution de la procédure
stockée spécifiée. Cette boîte de dialogue contient une grille dont l'en-tête reflète
les informations de colonne et les données du jeu de résultats généré par la
procédure stockée exécutée. Si la chaîne de connexion ou la procédure stockée
n'est pas valide, une erreur apparaît. Vous pouvez utiliser cette fonction pour
vérifier la validité de la procédure stockée. Cette fonction diffère de
MMDB.showSPResultset() car vous pouvez spécifier les valeurs de paramètre par
leur nom, au lieu de l'ordre attendu par la procédure stockée.
Arguments
connName, procName, paramNameArray, paramValuesArray
262
Chapitre 21
•
connName
•
procName
•
est un tableau contenant une liste de noms de paramètres.
Vous pouvez utiliser la fonction MMDB.getSPParamsAsString() pour obtenir
les paramètres de la procédure stockée.
•
paramValuesArray
désigne un nom de connexion UltraDev spécifié dans le
Gestionnaire de connexion. Ce nom sert à établir une connexion de base de
données à une source de données active.
est le nom de la procédure stockée qui renvoie le jeu de résultats
lorsqu'elle est exécutée.
paramNameArray
est un tableau contenant une liste de valeurs test de
paramètre de conception.
Valeurs renvoyées
Aucune. Cette fonction renvoie une erreur si l'instruction SQL est incorrecte ou si
la chaîne de connexion est erronée.
Exemple
Le code suivant affiche le résultat de la procédure stockée exécutée :
var paramNameArray = new Array("startDate", "salary")
var paramValueArray = new Array("2/1/2000", "50000")
MMDB.showSPResultsetNamedParams("EmpDB","getNewEmployees¬
MakingAtLeast", paramNameArray, paramValueArray)
API de base de données
263
264
Chapitre 21
22
CHAPITRE 22
API JavaBean
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ce chapitre présente les API pour JavaBeans. Les fonctions MMJB*() sont des
accroches JavaScript qui appellent des introspections Java pour la prise en charge
des JavaBeans. Ces fonctions extraient des noms de classe, des méthodes, des
propriétés et des événements des JavaBeans, qui peuvent être affichés dans votre
interface utilisateur Dreamweaver. Pour utiliser ces fonctions JavaScript et
permettre à Dreamweaver d'accéder à votre JavaBean, ce dernier doit résider dans
le dossier Configuration/Classes.
Remarque : packageName.className correspond à une seule entrée de chaîne.
MMJB.getProperties()
Disponibilité
Dreamweaver UltraDev 4.0
Description
Introspecte la classe de bean et renvoie ses propriétés.
Arguments
packageName.className
correspond au nom de la classe, qui fait partie du
chemin de la classe. Ce doit être un élément d'archives Java .jar ou .zip résidant
dans le chemin de classe de votre système ou un fichier .class installé dans le
dossier Configuration/Classes.
packageName.className
Valeurs renvoyées
Un tableau de chaînes des propriétés JavaBean. En cas d'erreur, le tableau renvoyé
est vide.
265
MMJB.getMethods()
Disponibilité
Dreamweaver UltraDev 4.0
Description
Introspecte la classe de bean et renvoie ses méthodes.
Arguments
packageName.className
correspond au nom du paquet de la classe, qui fait
partie du chemin de la classe. Ce doit être un élément d'archives Java .jar ou .zip.
packageName.className
Valeurs renvoyées
Un tableau de chaînes des méthodes JavaBean. En cas d'erreur, le tableau renvoyé
est vide.
MMJB.getEvents()
Disponibilité
Dreamweaver UltraDev 4.0
Description
Introspecte la classe de bean et renvoie ses événements.
Arguments
packageName.className
correspond au nom du paquet de la classe, qui fait
partie du chemin de la classe. Ce doit être un élément d'archives Java .jar ou .zip.
packageName.className
Valeurs renvoyées
Un tableau de chaînes des événements JavaBean. En cas d'erreur, le tableau
renvoyé est vide.
MMJB.getIndexedProperties()
Disponibilité
Dreamweaver UltraDev 4.0
Description
Introspecte la classe de bean et renvoie ses propriétés indexées. Les propriétés
indexées sont des modèles de création qui se comportent comme des ensembles.
Arguments
packageName.className
correspond au nom du paquet de la classe, qui fait
partie du chemin de la classe. Ce doit être un élément d'archives Java .jar ou .zip.
packageName.className
266
Chapitre 22
Valeurs renvoyées
Un tableau de chaînes des propriétés indexées du JavaBean. En cas d'erreur, le
tableau renvoyé est vide.
MMJB.getClasses()
Disponibilité
Dreamweaver UltraDev 4.0
Description
Lit tous les noms de classe JavaBean à partir du dossier Configuration/Classes.
Arguments
Aucun.
Valeurs renvoyées
Un tableau de chaînes des noms de classe qui réside dans le dossier Configuration/
Classes. En cas d'erreur, le tableau renvoyé est vide.
MMJB.getClassesFromPackage()
Disponibilité
Dreamweaver UltraDev 4.0
Description
Lit toutes les classes JavaBean du paquet.
Arguments
packageName.pathName
correspond au chemin du paquet. Ce doit être un
élément d'archives Java .jar ou .zip. Par exemple,
C:\jdbcdrivers\Una2000_Enterprise.zip.
packageName.pathName
Valeurs renvoyées
Un tableau de chaînes des noms de classe dans le fichier Java .jar ou .zip spécifié.
En cas d'erreur, le tableau renvoyé est vide.
MMJB.getErrorMessage()
Disponibilité
Dreamweaver UltraDev 4.0
Description
Extrait le dernier message d'erreur de Dreamweaver envoyé pendant l'utilisation
de l'interface MMJB.
Arguments
Aucun.
Valeurs renvoyées
Une chaîne du message Dreamweaver de la dernière erreur.
API JavaBean
267
268
Chapitre 22
23
CHAPITRE 23
API d'intégration de commande source
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
L'API d'intégration de commande source vous permet de rédiger des DLL
(bibliothèques de liens dynamiques) afin d'étendre les fonctions d'archivage et
d'extraction de Dreamweaver à l'aide des fonctionnalités d'autres systèmes de
commande source (tels que Sourcesafe, CVS ou Whirlwind). Ces fonctions d'API
permettent également de décrire comment l'utilisateur de Dreamweaver peut
interagir avec le système de commande source intégré.
Pour implémenter cette API, rédigez un fragment de code DLL niveau C/partagé
conforme à l'API définie dans ce chapitre. Vous devez prendre un charge au moins
un jeu de fonctions d'API afin que Dreamweaver puisse l'intégrer au système de
commande source. Les DLL sont placées dans le dossier Configuration/
SourceControl.
Lors du démarrage, Dreamweaver charge chaque fichier DLL. Dreamweaver
détermine les API prises en charge par la DLL en appelant GetProcAddress() sur
les diverses API. Si une adresse n'existe pas, Dreamweaver suppose que la DLL ne
prend pas en charge l'API. Si l'adresse existe, Dreamweaver utilise la version de la
DLL de la fonction pour prendre en charge la fonctionnalité. Lorsqu'un
utilisateur Dreamweaver définit ou modifie un site, puis choisit l'onglet SCS du
serveur web, les choix correspondant aux DLL chargées depuis le dossier
Configuration/SourceControl s'affichent (en plus des éléments standard) sur
l'onglet.
Pour ajouter des éléments personnalisés au menu Site > Commande source,
ajoutez le code suivant dans le menu Site du fichier menus.xml :
<menu name="Source Control" id="DWMenu_MainSite_Site_Source¬
Control"><menuitem dynamic name="None"file="Menus/MM/¬
File_SCSItems.htm" id="DWMenu_MainSite_Site_NewFeatures_¬
Default" />
</menu>
269
Intégration à Dreamweaver
Lorsqu'un utilisateur Dreamweaver choisit des fonctions de connexion au serveur,
de transfert de fichiers ou de Design Notes, Dreamweaver appelle la version de
la DLL de la fonction API correspondante (Connect(), Disconnect(), Get(),
Put(), Checkin(), Checkout(), Undocheckout() et Synchronize()). La DLL
est responsable de la gestion de la requête, notamment de l'affichage des boîtes de
dialogue qui rassemblent les informations ou permettent à l'utilisateur d'interagir
avec la DLL. La DLL est également responsable de l'affichage des messages
d'informations ou d'erreur.
Le système de commande source peut éventuellement prendre en charge les
Design Notes et l'archivage et l'extraction. Pour activer les Design Notes dans les
systèmes de commande source, l'utilisateur Dreamweaver doit choisir l'onglet
Design Notes dans la boîte de dialogue Définir les sites et cocher la case pour
activer cette fonction (de la même façon qu'avec les systèmes FTP et de réseau
local dans la version 3.0). Si le système de commande source ne prend pas en
charge les Design Notes et que l'utilisateur désire les utiliser, Dreamweaver
transporte les fichiers Design Note (.mno) pour conserver les Design Notes (de la
même façon qu'avec les systèmes FTP et de réseau local dans la version 3.0).
Les fonctions d'archivage et d'extraction sont traitées différemment ; si le système
de commande source les prend en charge, l'utilisateur ne peut pas éviter leur
utilisation dans la boîte de dialogue Design Notes. Si l'utilisateur essaie de
court-circuiter le système de commande source, un message d'erreur s'affiche.
Ajout d'une fonctionnalité de système de commande source
Pour ajouter une fonctionnalité de système de commande source à Dreamweaver,
rédigez un gestionnaire GetNewFeatures qui renvoie un jeu d'éléments de menu
et les fonctions C correspondantes. Si, par exemple, vous rédigez une DLL
Sourcesafe et voulez permettre aux utilisateurs de Dreamweaver de consulter
l'historique d'un fichier, vous pouvez rédiger un gestionnaire GetNewFeatures
qui renvoie l'élément de menu Historique et le nom de fonction C de
l'historique. Ainsi, lorsque l'utilisateur clique avec le bouton droit de la souris
sur un fichier, l'élément Historique s'affiche dans le menu. Si l'utilisateur choisit
l'élément de menu Historique, Dreamweaver appelle la fonction historique
transmettant les fichiers sélectionnés à la DLL. La DLL affiche alors la boîte de
dialogue Historique pour permettre à l'utilisateur d'interagir comme s'il utilisait
Sourcesafe.
Fonctions obligatoires de l'API d'intégration
de commande source
L'API d'intégration de commande source possède des fonctions obligatoires et
facultatives. Les fonctions répertoriées dans cette section sont obligatoires.
270
Chapitre 23
SCS_GetAgentInfo()
Description
Demande à la DLL de renvoyer son nom et sa description, qui sont affichés dans
la boîte de dialogue Définir les sites. Le nom apparaît dans le menu contextuel
Accès au serveur (par exemple, sourcesafe, webdav, perforce) et la description
s'affiche juste en dessous du menu.
Arguments
name, version, description, dwAppVersion
•
name est le nom du système de commande source. Le nom s'affiche dans la
zone de liste modifiable permettant de sélectionner un système de commande
source dans l'onglet Commande source de la boîte de dialogue Définir les sites.
Le nom ne doit pas compter plus de 32 caractères.
•
version
•
description
•
dwAppVersion
est une chaîne indiquant la version de la DLL. La version s'affiche
dans l'onglet Commande source de la boîte de dialogue Définir les sites. La
version ne doit pas compter plus de 32 caractères.
est une chaîne décrivant le système de commande source. La
description s'affiche dans l'onglet Commande source de la boîte de dialogue
Définir les sites. La description ne doit pas compter plus de 256 caractères.
est une chaîne représentant la version de Dreamweaver qui
appelle la DLL. La DLL peut utiliser cette chaîne pour déterminer la version et
la langue de Dreamweaver.
Valeurs renvoyées
true
si l'insertion réussit, false si elle échoue.
SCS_Connect()
Description
Connecte l'utilisateur à son système de commande source. Si la DLL ne possède
pas d'informations de connexion, elle affiche une boîte de dialogue qui invite
l'utilisateur à fournir ces informations et stocke ces données pour une utilisation
ultérieure.
Arguments
connectionData, siteName
•
connectionData
•
siteName
est un descripteur des données que l'agent veut recevoir de
Dreamweaver lorsqu'il appelle d'autres fonctions API.
est une chaîne pointant vers le nom du site. Le nom du site ne doit
pas compter plus de 64 caractères.
Valeurs renvoyées
true
si l'insertion réussit, false si elle échoue.
API d'intégration de commande source
271
SCS_Disconnect()
Description
Déconnecte l'utilisateur du système de commande source.
Arguments
connectionData
est un pointeur vers les données de l'agent transférées vers
Dreamweaver au cours de l'appel de Connect().
connectionData
Valeurs renvoyées
true
si l'insertion réussit, false si elle échoue.
SCS_IsConnected()
Description
Détermine l'état de la connexion.
Arguments
connectionData
est un pointeur vers les données de l'agent transférées vers
Dreamweaver au cours de l'appel de Connect().
connectionData
Valeurs renvoyées
true
si connecté, sinon false.
SCS_GetRootFolderLength()
Description
Renvoie la longueur du nom du dossier racine.
Arguments
connectionData
•
est un pointeur vers les données de l'agent transférées vers
Dreamweaver au cours de l'appel de Connect().
connectionData
Valeurs renvoyées
Un nombre entier représentant la longueur du nom du dossier racine. Si la
fonction renvoie < 0, Dreamweaver considère cette réponse comme une erreur et
tente de récupérer le message d'erreur de la DLL si elle est prise en charge.
SCS_GetRootFolder()
Description
Renvoie le nom du dossier racine.
272
Chapitre 23
Arguments
connectionData, remotePath, folderLen
•
connectionData
•
remotePath
•
folderLen
est un pointeur vers les données de l'agent transférées vers
Dreamweaver au cours de l'appel de Connect().
est une mémoire tampon dans laquelle est enregistré le chemin
distant complet du dossier racine.
est un nombre entier indiquant la longueur de remotePath. C'est
la valeur renvoyée par GetRootFolderLength.
Valeurs renvoyées
true
si l'insertion réussit, false si elle échoue.
SCS_GetFolderListLength()
Description
Renvoie le nombre d'éléments dans le dossier transmis.
Arguments
connectionData, remotePath
•
connectionData
•
remotePath
est un pointeur vers les données de l'agent transférées vers
Dreamweaver au cours de l'appel de Connect().
est le chemin complet du dossier distant que la DLL vérifie pour
connaître le nombre d'éléments.
Valeurs renvoyées
Un nombre entier indiquant le nombre d'éléments dans le dossier en cours. Si la
fonction renvoie < 0, Dreamweaver considère cette réponse comme une erreur et
tente de récupérer le message d'erreur de la DLL si elle est prise en charge.
SCS_GetFolderList()
Description
Renvoie une liste de fichiers et de dossiers dans le dossier transmis, notamment des
informations pertinentes telles que la date de modification, la taille et si l'élément
est un dossier ou un fichier.
Arguments
connectionData, remotePath, itemList, numItems
•
connectionData
•
remotePath
•
•
itemList
est un pointeur vers les données de l'agent transférées vers
Dreamweaver au cours de l'appel de Connect().
est le chemin complet du dossier distant que la DLL vérifie pour
connaître le nombre d'éléments.
est une liste pré-allouée de structures itemInfo.
numItems est le nombre d'éléments
GetFolderListLength).
alloués à itemList (renvoyé par
API d'intégration de commande source
273
Valeurs renvoyées
true
si l'insertion réussit, false si elle échoue.
SCS_Get()
Description
Extrait une liste de fichiers ou de dossiers et les stocke localement.
Arguments
connectionData, remotePathList, localPathList, numItems
•
connectionData
•
remotePathList
•
est un pointeur vers les données de l'agent transférées vers
Dreamweaver au cours de l'appel de Connect().
est une liste de chemins de fichiers ou de dossiers distants
complets à acquérir.
localPathList
est une copie de la liste des chemins de fichiers ou de dossiers
locaux complets.
•
numItems
est le nombre d'éléments dans chaque liste.
Valeurs renvoyées
true
si l'insertion réussit, false si elle échoue.
SCS_Put()
Description
Place une liste de fichiers ou de dossiers locaux dans le système de commande
source.
Arguments
connectionData, localPathList, remotePathList, numItems
•
connectionData
•
localPathList est une liste de chemins de fichiers ou de dossiers locaux
complets à placer.
•
remotePathList
est un pointeur vers les données de l'agent transférées vers
Dreamweaver au cours de l'appel de Connect().
est une copie de la liste de chemins de fichiers ou de dossiers
distants complets.
•
numItems
est le nombre d'éléments dans chaque liste.
Valeurs renvoyées
true
si l'insertion réussit, false si elle échoue.
SCS_NewFolder()
Description
Crée un nouveau dossier.
274
Chapitre 23
Arguments
connectionData, remotePath
•
connectionData
•
remotePath
est un pointeur vers les données de l'agent transférées vers
Dreamweaver au cours de l'appel de Connect().
est le nom complet du dossier distant créé par la DLL.
Valeurs renvoyées
true
si l'insertion réussit, false si elle échoue.
SCS_Delete()
Description
Supprime une liste de fichiers ou de dossiers du système de commande source.
Arguments
connectionData, remotePathList, numItems
•
connectionData
•
remotePathList
•
numItems
est un pointeur vers les données de l'agent transférées vers
Dreamweaver au cours de l'appel de Connect().
est une liste de chemins de fichiers ou de dossiers distants
complets à supprimer.
est le nombre d'éléments dans remotePathList.
Valeurs renvoyées
true
si l'insertion réussit, false si elle échoue.
SCS_Rename()
Description
Renomme ou déplace un fichier ou un dossier selon les valeurs spécifiées pour
oldRemotePath et newRemotePath. Si, par exemple, oldRemotePath est égal à
"$/dossier1/fichier1" et newRemotePath est égal à "$/dossier1/
fichierrenommé1", fichier1 est renommé fichierrenommé1 et placé dans
dossier1.
Si oldRemotePath est égal à "$/dossier1/fichier1" et newRemotePath est égal
à "$/dossier1/sousdossier1/fichier1", fichier1 est déplacé dans le
répertoire sousdossier1.
Pour savoir si l'invocation de cette fonction constitue un déplacement ou
l'attribution d'un nouveau nom, vérifiez les chemins parents des deux valeurs
d'entrée ; s'ils sont identiques, il s'agit de l'opération « renommer ».
Arguments
connectionData, oldRemotePath, newRemotePath
•
est un pointeur vers les données de l'agent transférées vers
Dreamweaver au cours de l'appel de Connect().
connectionData
API d'intégration de commande source
275
•
oldRemotePath
est un chemin de fichier ou de dossier distant complet à
renommer.
•
newRemotePath
est le chemin distant complet du nouveau nom de fichier ou
de dossier.
Valeurs renvoyées
true
si l'insertion réussit, false si elle échoue.
SCS_ItemExists()
Description
Détermine si un fichier ou un dossier existe ou non sur le serveur.
Arguments
connectionData, remotePath
•
connectionData
•
remotePath
est un pointeur vers les données de l'agent transférées vers
Dreamweaver au cours de l'appel de Connect().
est un chemin de fichier ou de dossier distant complet.
Valeurs renvoyées
true
s'il existe, sinon false.
Fonctions facultatives de l'API d'intégration
de commande source
L'API d'intégration de commande source possède des fonctions obligatoires et
facultatives. Les fonctions répertoriées dans cette section sont facultatives.
SCS_GetConnectionInfo()
Description
Affiche une boîte de dialogue permettant à l'utilisateur de modifier ou de
configurer les informations de connexion de ce site. N'établit pas la connexion.
Elle est appelée lorsque l'utilisateur clique sur le bouton Paramètres, dans la
section Infos distantes de la boîte de dialogue Définir les sites.
Arguments
connectionData, siteName
•
connectionData
•
siteName
est un descripteur des données que l'agent veut recevoir de
Dreamweaver lorsqu'il appelle d'autres fonctions API.
est une chaîne pointant vers le nom du site, qui ne doit pas dépasser
64 caractères.
Valeurs renvoyées
true
276
Chapitre 23
si l'insertion réussit, false si elle échoue.
SCS_SiteDeleted()
Description
Notifie à la DLL que le site a été supprimé ou qu'il n'est plus lié à ce système de
commande source, ce qui signifie que le système de commande source peut
supprimer les informations encore présentes pour ce site.
Arguments
siteName
est une chaîne pointant vers le nom du site, qui ne doit pas dépasser
64 caractères.
siteName
Valeurs renvoyées
true
si l'insertion réussit, false si elle échoue.
SCS_SiteRenamed()
Description
Notifie à la DLL que l'utilisateur a renommé le site, pour qu'il puisse mettre à jour
les informations relatives à ce site.
Arguments
oldSiteName, newSiteName
•
oldSiteName
•
newSiteName
est une chaîne pointant vers le nom d'origine du site avant qu'il
ne soit renommé, ce nom ne devant pas dépasser 64 caractères.
est une chaîne pointant vers le nouveau nom du site renommé,
ce nom ne devant pas dépasser 64 caractères.
Valeurs renvoyées
true
si l'insertion réussit, false si elle échoue.
SCS_GetNumNewFeatures()
Description
Renvoie le nombre de nouvelles fonctions à ajouter à Dreamweaver (comme
Historique de fichier, Différences, etc.).
Arguments
Aucun.
Valeurs renvoyées
Un nombre entier représentant le nombre de nouvelles fonctions à ajouter à
Dreamweaver. Si la fonction renvoie < 0, Dreamweaver considère cette réponse
comme une erreur et tente de récupérer le message d'erreur de la DLL si elle est
prise en charge.
API d'intégration de commande source
277
SCS_GetNewFeatures()
Description
Renvoie une liste d'éléments à ajouter aux menus principaux et contextuels de
Dreamweaver. Par exemple, la DLL Sourcesafe peut ajouter Historique et
Différences de fichiers au menu principal.
Arguments
menuItemList, menuItemList, enablerList, numNewFeatures
•
menuItemList
•
functionList
•
enablerList
•
numNewFeatures est le nombre d'éléments
en appelant GetNumNewFeatures().
est une liste de chaînes renseignée par la DLL ; il indique les
éléments à ajouter aux menus principaux et contextuels. Chaque chaîne peut
contenir 32 caractères maximum.
est renseigné par la DLL ; il indique les routines de la DLL à
appeler lorsque l'utilisateur choisit l'élément de menu correspondant.
est renseigné par la DLL ; il indique les routines de la DLL à
appeler lorsque Dreamweaver a besoin de déterminer si l'élément de menu
correspondant est activé.
ajoutés par la DLL ; il est récupéré
Valeurs renvoyées
true
si l'insertion réussit, false si elle échoue.
SCS_GetCheckoutName()
Description
Renvoie le nom d'extraction de l'utilisateur en cours. Si cette fonction n'est pas
prise en charge par le système de commande source et est activée par l'utilisateur,
elle utilise la fonction interne d'archivage/extraction de Dreamweaver qui
transporte les fichiers .lck depuis et vers le système de commande source.
Arguments
connectionData, checkOutName, emailAddress
•
connectionData
•
•
checkOutName
est le nom d'extraction de l'utilisateur en cours.
emailAddress
est l'adresse électronique de l'utilisateur en cours.
est un pointeur vers les données de l'agent transférées vers
Dreamweaver au cours de l'appel de Connect().
Valeurs renvoyées
true
278
Chapitre 23
si l'insertion réussit, false si elle échoue.
SCS_Checkin()
Description
Archive une liste de fichiers ou de dossiers locaux dans le système de commande
source. La DLL doit configurer le fichier en lecture seule. Si cette fonction n'est
pas prise en charge par le système de commande source et est activée par
l'utilisateur, elle utilise la fonction interne d'archivage/extraction de Dreamweaver
qui transporte les fichiers .lck depuis et vers le système de commande source.
Arguments
connectionData, localPathList, remotePathList, successList,
numItems
•
connectionData
•
localPathList est une liste de chemins de fichiers ou de dossiers locaux
complets à archiver.
•
remotePathList
est un pointeur vers les données de l'agent transférées vers
Dreamweaver au cours de l'appel de Connect().
est une copie de la liste de chemins de fichiers ou de dossiers
distants complets.
•
successList
•
numItems
est une liste de valeurs booléennes renseignée par la DLL, qui
permet à Dreamweaver de savoir lequel des fichiers correspondants a été archivé
avec succès.
est le nombre d'éléments dans chaque liste.
Valeurs renvoyées
true
si l'insertion réussit, false si elle échoue.
SCS_Checkout()
Description
Extrait une liste de fichiers ou de dossiers locaux du système de commande source.
La DLL doit accorder les privilèges permettant de modifier le fichier. Si cette
fonction n'est pas prise en charge par le système de commande source et est activée
par l'utilisateur, elle utilise la fonction interne d'archivage/extraction de
Dreamweaver qui transporte les fichiers .lck depuis et vers le système de
commande source.
Arguments
connectionData, remotePathList, localPathList, successList,
numItems
•
connectionData
•
remotePathList
est un pointeur vers les données de l'agent transférées vers
Dreamweaver au cours de l'appel de Connect().
est une liste de chemins de fichiers ou de dossiers distants
complets à extraire.
API d'intégration de commande source
279
•
localPathList
est une copie de la liste des chemins de fichiers ou de dossiers
locaux complets.
•
successList
•
numItems
est une liste de valeurs booléennes renseignée par la DLL, qui
permet à Dreamweaver de savoir lequel des fichiers correspondants a été extrait
avec succès.
est le nombre d'éléments dans chaque liste.
Valeurs renvoyées
true
si l'insertion réussit, false si elle échoue.
SCS_UndoCheckout()
Description
Annule l'état d'extraction d'une liste de fichiers ou de dossiers. La DLL doit
configurer le fichier en lecture seule. Si cette fonction n'est pas prise en charge par
le système de commande source et est activée par l'utilisateur, elle utilise la
fonction interne d'archivage/extraction de Dreamweaver qui transporte les fichiers
.lck depuis et vers le système de commande source.
Arguments
connectionData, remotePathList, localPathList, successList,
numItems
•
connectionData
•
remotePathList
•
est un pointeur vers les données de l'agent transférées vers
Dreamweaver au cours de l'appel de Connect().
est une liste de chemins de dossiers ou de fichiers distants
complets pour lesquels annuler l'extraction.
localPathList
est une copie de la liste des chemins de fichiers ou de dossiers
locaux complets.
•
successList
•
numItems
est une liste de valeurs booléennes renseignée par la DLL, qui
permet à Dreamweaver de savoir quelles extractions de fichiers correspondants
ont été annulées avec succès.
est le nombre d'éléments dans chaque liste.
Valeurs renvoyées
true
si l'insertion réussit, false si elle échoue.
SCS_GetNumCheckedOut()
Description
Renvoie le nombre de personnes qui disposent d'un fichier extrait.
Arguments
connectionData, remotePath
280
Chapitre 23
•
connectionData
•
remotePath
est un pointeur vers les données de l'agent transférées vers
Dreamweaver au cours de l'appel de Connect().
est le chemin de dossier ou de fichier distant complet à vérifier
pour voir combien d'utilisateurs l'ont extrait.
Valeurs renvoyées
Un nombre entier représentant le nombre de personnes qui disposent du fichier
extrait. Si la fonction renvoie < 0, Dreamweaver considère cette réponse comme
une erreur et tente de récupérer le message d'erreur de la DLL si elle est prise en
charge.
SCS_GetFileCheckoutList()
Description
Renvoie une liste de personnes qui disposent d'un fichier extrait. Si cette liste est
vide, c'est que personne n'a de fichier extrait.
Arguments
connectionData, remotePath, checkOutList, emailAddressList,
numCheckedOut
•
connectionData
•
remotePath
•
checkOutList
•
emailAddressList
•
numCheckedOut est le nombre de personnes qui ont le fichier extrait. Il est
renvoyé par GetNumCheckedOut().
est un pointeur vers les données de l'agent transférées vers
Dreamweaver au cours de l'appel de Connect().
est le chemin de dossier ou de fichier distant complet à vérifier
pour voir combien d'utilisateurs l'ont extrait.
est une liste de chaînes correspondant aux utilisateurs qui
disposent du fichier extrait. Chaque chaîne ne doit pas avoir plus de
64 caractères.
est une liste de chaînes correspondant aux adresses
électroniques des utilisateurs. Chaque chaîne ne doit pas avoir plus de
64 caractères.
Valeurs renvoyées
true
si l'insertion réussit, false si elle échoue.
SCS_GetErrorMessageLength()
Description
Renvoie la longueur du message d'erreur interne en cours de la DLL. Il est utilisé
pour allouer la mémoire tampon transmise dans la fonction GetErrorMessage().
Cette fonction doit uniquement être appelée si une fonction d'API renvoie false
ou < 0, ce qui indique une défaillance.
API d'intégration de commande source
281
Arguments
connectionData
est un pointeur vers les données de l'agent transférées vers
Dreamweaver au cours de l'appel de Connect().
connectionData
Valeurs renvoyées
Un nombre entier représentant la longueur du message d'erreur.
SCS_GetErrorMessage()
Description
Renvoie le dernier message d'erreur. Si vous implémentez getErrorMessage(),
Dreamweaver l'appelle à chaque fois qu'une de vos fonctions d'API renvoie
false.
Si une routine renvoie -1 ou false, cela indique qu'un message d'erreur doit être
disponible.
Arguments
connectionData, errorMsg, msgLength
•
connectionData
•
errorMsg
•
msgLength
est un pointeur vers les données de l'agent transférées vers
Dreamweaver au cours de l'appel de Connect().
est une chaîne pré-allouée de la DLL dans laquelle vient se placer le
message d'erreur.
est la longueur de la mémoire tampon errorMsg transmise.
Valeurs renvoyées
true
si l'insertion réussit, false si elle échoue.
SCS_GetNoteCount()
Description
Renvoie le nombre de clés Design Note pour le chemin de dossier ou de fichier
distant spécifié. Si cela n'est pas pris en charge par le système de commande
source, Dreamweaver obtient ces informations du fichier compagnon Design
Note (.mno).
Arguments
connectionData, remotePath
282
Chapitre 23
•
connectionData
•
remotePath
est un pointeur vers les données de l'agent transférées vers
Dreamweaver au cours de l'appel de Connect().
est le chemin de dossier ou de fichier distant complet que la DLL
vérifie pour connaître le nombre de Design Notes qui lui sont rattachées.
Valeurs renvoyées
Un nombre entier représentant le nombre de Design Notes associées au fichier. Si
la fonction renvoie < 0, Dreamweaver considère cette réponse comme une erreur
et tente de récupérer le message d'erreur de la DLL si elle est prise en charge.
SCS_GetMaxNoteLength()
Description
Renvoie la longueur de la Design Note la plus longue pour le fichier ou le dossier
spécifié. Si cela n'est pas pris en charge par le système de commande source,
Dreamweaver obtient ces informations du fichier compagnon Design
Note (.mno).
Arguments
connectionData, remotePath
•
connectionData
•
remotePath
est un pointeur vers les données de l'agent transférées vers
Dreamweaver au cours de l'appel de Connect().
est le chemin de fichier ou de dossier distant complet que la DLL
vérifie pour connaître la longueur maximale de Design Note.
Valeurs renvoyées
Un nombre entier représentant la taille de la Design Note la plus longue associée
au fichier. Si la fonction renvoie < 0, Dreamweaver considère cette réponse
comme une erreur et tente de récupérer le message d'erreur de la DLL si elle est
prise en charge.
SCS_GetDesignNotes()
Description
Récupère des paires clé-valeur des méta-informations pour le fichier ou le dossier
spécifié. Si cela n'est pas pris en charge par le système de commande source,
Dreamweaver récupère ces informations dans le fichier Design Note (.mno)
correspondant.
Arguments
connectionData, remotePath, keyList, valueList, showColumnList,
noteCount, noteLength
•
connectionData
•
remotePath
•
•
keyList
est un pointeur vers les données de l'agent transférées vers
Dreamweaver au cours de l'appel de Connect().
est le chemin de fichier ou de dossier distant complet que la DLL
vérifie pour connaître le nombre d'éléments.
est une liste de clés Design Note, telle que «
Status ».
est une liste de valeurs Design Note correspondant aux clés Design
Note, comme « Awaiting Signoff ».
valueList
API d'intégration de commande source
283
•
showColumnList
•
noteCount
•
noteLength
est une liste de valeurs booléennes correspondant aux clés
Design Note, qui indique si Dreamweaver peut afficher la clé sous forme de
colonne dans la fenêtre Site.
est le nombre de Design Notes rattachées à ce fichier ou dossier ;
cette valeur est renvoyée en appelant GetNoteCount().
est la longueur maximale d'une Design Note ; c'est la valeur
renvoyée en appelant GetMaxNoteLength().
Valeurs renvoyées
true
si l'insertion réussit, false si elle échoue.
SCS_SetDesignNotes()
Description
Enregistre les paires clé-valeur dans les méta-informations du fichier ou du dossier
spécifié. Cela remplace le jeu de méta-informations du fichier. Si cette fonction
n'est pas prise en charge par le système de commande source, Dreamweaver
enregistre les Design Notes dans des fichiers .mno.
Arguments
connectionData, remotePath, keyList, valueList, showColumnList,
noteCount, noteLength
•
connectionData
•
remotePath
•
•
keyList
•
showColumnList
•
noteCount
•
noteLength est la longueur de la Design Note la plus longue pour le fichier ou
est un pointeur vers les données de l'agent transférées vers
Dreamweaver au cours de l'appel de Connect().
est le chemin de fichier ou de dossier distant complet que la DLL
vérifie pour connaître le nombre d'éléments.
est une liste de clés Design Note, telle que «
est une liste de valeurs Design Note correspondant aux clés Design
Note, comme « Awaiting Signoff ».
valueList
est une liste de valeurs booléennes correspondant aux clés
Design Note, qui indique si Dreamweaver peut afficher la clé sous forme de
colonne dans la fenêtre Site.
est le nombre de Design Notes rattachées à ce fichier ou dossier ;
cela permet à la DLL de connaître la taille des listes spécifiées. Si noteCount est
nul, toutes les Design Notes sont supprimées de ce fichier.
le dossier spécifié.
Valeurs renvoyées
true
284
Chapitre 23
Status ».
si l'insertion réussit, false si elle échoue.
SCS_IsRemoteNewer()
Description
Vérifie chaque chemin distant spécifié pour voir si la copie distante est plus
récente. Si cela n'est pas pris en charge par le système de commande source,
Dreamweaver utilise son algorithme interne isRemoteNewer.
Arguments
connectionData, remotePathList, localPathList, remoteIsNewerList,
numItems
•
connectionData
•
remotePathList
•
est un pointeur vers les données de l'agent transférées vers
Dreamweaver au cours de l'appel de Connect().
est une liste de chemins de fichiers ou de dossiers distants
complets à comparer pour voir les états les plus récents.
localPathList
est une copie de la liste des chemins de fichiers ou de dossiers
locaux complets.
•
remoteIsNewerList est une liste de nombres entiers, renseignée par la DLL,
qui permet à Dreamweaver de savoir quel est le fichier correspondant le plus
récent du côté distant. Les valeurs valides sont les suivantes : 1 lorsque la
version distante est la plus récente, -1 lorsque la version locale est la plus
récente, 0 lorsque les versions sont identiques.
•
numItems
est le nombre d'éléments dans chaque liste.
Valeurs renvoyées
true
si l'insertion réussit, false si elle échoue.
Activateurs
Si les activateurs facultatifs ne sont pas pris en charge par le système de commande
source ou que l'application n'est pas connectée au serveur, Dreamweaver
détermine quand les éléments de menu sont activés, en fonction des informations
qu'il possède sur les fichiers distants.
SCS_canConnect()
Description
Indique si l'élément de menu Connecter doit être activé ou non.
Arguments
Aucun.
Valeurs renvoyées
true
si activé, sinon false.
API d'intégration de commande source
285
SCS_canGet()
Description
Indique si l'élément de menu Acquérir doit être activé ou non.
Arguments
connectionData, remotePathList, localPathList, numItems
•
connectionData
•
remotePathList
•
est un pointeur vers les données de l'agent transférées vers
Dreamweaver au cours de l'appel de Connect().
est une liste de chemins de fichiers ou de dossiers distants
complets à acquérir.
localPathList
est une copie de la liste des chemins de fichiers ou de dossiers
locaux complets.
•
numItems
est le nombre d'éléments dans chaque liste.
Valeurs renvoyées
true
si activé, sinon false.
SCS_canCheckout()
Description
Indique si l'élément de menu Extraire doit être activé ou non.
Arguments
connectionData, remotePathList, localPathList, numItems
•
connectionData
•
remotePathList
•
est un pointeur vers les données de l'agent transférées vers
Dreamweaver au cours de l'appel de Connect().
est une liste de chemins de fichiers ou de dossiers distants
complets à extraire.
localPathList
est une copie de la liste des chemins de fichiers ou de dossiers
locaux complets.
•
numItems
est le nombre d'éléments dans chaque liste.
Valeurs renvoyées
true
si activé, sinon false.
SCS_canPut()
Description
Indique si l'élément de menu Placer doit être activé ou non.
Arguments
connectionData, localPathList, remotePathList, numItems
286
Chapitre 23
•
connectionData
•
localPathList est une liste de chemins de fichiers ou de dossiers locaux
complets à placer.
•
remotePathList
est un pointeur vers les données de l'agent transférées vers
Dreamweaver au cours de l'appel de Connect().
est une copie de la liste de chemins de fichiers ou de dossiers
distants complets.
•
numItems
est le nombre d'éléments dans chaque liste.
Valeurs renvoyées
true
si activé, sinon false.
SCS_canCheckin()
Description
Indique si l'élément de menu Archiver doit être activé ou non.
Arguments
connectionData, localPathList, remotePathList, numItems
•
connectionData
•
localPathList est une liste de chemins de fichiers ou de dossiers locaux
complets à archiver.
•
remotePathList
est un pointeur vers les données de l'agent transférées vers
Dreamweaver au cours de l'appel de Connect().
est une copie de la liste de chemins de fichiers ou de dossiers
distants complets.
•
numItems
est le nombre d'éléments dans chaque liste.
Valeurs renvoyées
true
si activé, sinon false.
SCS_CanUndoCheckout()
Description
Indique si l'élément de menu Annuler l'extraction doit être activé ou non.
Arguments
connectionData, remotePathList, localPathList, numItems
•
connectionData
•
remotePathList
•
localPathList est une liste de chemins de fichiers ou de dossiers locaux
complets à placer.
est un pointeur vers les données de l'agent transférées vers
Dreamweaver au cours de l'appel de Connect().
est une liste de chemins de fichiers ou de dossiers distants
complets à extraire.
API d'intégration de commande source
287
•
numItems
est le nombre d'éléments dans chaque liste.
Valeurs renvoyées
true
si activé, sinon false.
SCS_canNewFolder()
Description
Indique si l'élément de menu Nouveau dossier doit être activé ou non.
Arguments
connectionData, remotePath
•
connectionData
•
remotePath
est un pointeur vers les données de l'agent transférées vers
Dreamweaver au cours de l'appel de Connect().
est un chemin de fichier ou de dossier distant complet que
l'utilisateur a sélectionné pour indiquer où sera créé le nouveau dossier.
Valeurs renvoyées
true
si activé, sinon false.
SCS_canDelete()
Description
Indique si l'élément de menu Supprimer doit être activé ou non.
Arguments
connectionData, remotePathList, numItems
•
connectionData
•
remotePathList
•
numItems
est un pointeur vers les données de l'agent transférées vers
Dreamweaver au cours de l'appel de Connect().
est une liste de chemins de fichiers ou de dossiers distants
complets à supprimer.
est le nombre d'éléments dans chaque liste.
Valeurs renvoyées
true
si activé, sinon false.
SCS_canRename()
Description
Indique si l'élément de menu Renommer doit être activé ou non.
Arguments
connectionData, remotePathList
•
288
Chapitre 23
est un pointeur vers les données de l'agent transférées vers
Dreamweaver au cours de l'appel de Connect().
connectionData
•
est le chemin de fichier ou de dossier distant complet qui a pu
être renommé.
remotePath
Valeurs renvoyées
true
si activé, sinon false.
structure de itemInfo
name
char[256]
nom de fichier ou de dossier
isFolder
bool
true si c'est un dossier, false si c'est un fichier
month
int
composant mois de la date de modification,
de 1 à 12
day
int
composant jour de la date de modification,
de 1 à 31
year
int
composant année de la date de modification, 1900+
hour
int
composant heure de la date de modification,
de 0 à 23
minutes
int
composant minute de la date de modification,
de 0 à 59
seconds
int
composant seconde de la date de modification,
de 0 à 59
type
char[256]
type de fichier (s'il n'est pas défini par la DLL, DW
utilise l'extension de fichier pour déterminer le type,
comme il le fait à présent)
size
int
en octets
SCS_BeforeGet()
Description
Dreamweaver appelle cette fonction avant d'acquérir ou d'extraire un ou plusieurs
fichiers. Cela permet à votre DLL d'effectuer une opération, comme l'ajout d'un
commentaire d'extraction, sur un groupe de fichiers.
Arguments
*connectionData
*connectionData
est un pointeur vers les données de connexion.
Valeurs renvoyées
Une valeur booléenne true en cas de succès, sinon false.
API d'intégration de commande source
289
Exemple
Pour acquérir un groupe de fichiers, Dreamweaver effectue des appels vers la DLL
dans l'ordre suivant :
SCS_BeforeGet(connectionData);
SCS_Get(connectionData,remotePathList1,localPathList1,¬
successList1);
SCS_Get(connectionData,remotePathList2,localPathList2,¬
successList2);
SCS_Get(connectionData,remotePathList3,localPathList3,¬
successList3);
SCS_AfterGet(connectionData);
SCS_BeforePut()
Description
Dreamweaver appelle cette fonction avant de placer ou d'archiver un ou plusieurs
fichiers. Cela permet à votre DLL d'effectuer une opération, comme l'ajout d'un
commentaire d'archivage, sur un groupe de fichiers.
Arguments
*connectionData
*connectionData
est un pointeur vers les données de connexion.
Valeurs renvoyées
Une valeur booléenne true en cas de succès, sinon false.
Exemple
Pour acquérir un groupe de fichiers, Dreamweaver effectue des appels vers la DLL
dans l'ordre suivant :
SCS_BeforePut(connectionData);
SCS_Put(connectionData,localPathList1,remotePathList1,¬
successList1);
SCS_Put(connectionData,localPathList2,remotePathList2,¬
successList2);
SCS_Put(connectionData,localPathList3,remotePathList3,¬
successList3);
SCS_AfterPut(connectionData);
SCS_AfterGet()
Description
Dreamweaver appelle cette fonction après avoir acquis ou extrait un ou plusieurs
fichiers. Cela permet à votre DLL d'effectuer n'importe quelle opération après
l'acquisition ou l'extraction d'un lot, comme la présentation d'une boîte de
dialogue de résumé.
Arguments
*connectionData
*connectionData
290
Chapitre 23
est un pointeur vers les données de connexion.
Valeurs renvoyées
Une valeur booléenne true en cas de succès, sinon false.
Exemple
Voir l'exemple de la section « SCS_BeforeGet() », page 289.
SCS_AfterPut()
Description
Dreamweaver appelle cette fonction après avoir placé ou archivé un ou plusieurs
fichiers. Cela permet à la DLL d'effectuer n'importe quelle opération après le
placement ou l'archivage d'un lot, comme la présentation d'une boîte de dialogue
de résumé.
Arguments
*connectionData
*connectionData
est un pointeur vers les données de connexion.
Valeurs renvoyées
true
en cas de succès, sinon false.
Exemple
Voir l'exemple de la section « SCS_BeforePut() », page 290.
API d'intégration de commande source
291
292
Chapitre 23
24
CHAPITRE 24
Traducteurs de données
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Définition d'un traducteur de données
Les traducteurs de données permettent de convertir des marqueurs spécialisés, tels
que des SSI (server-side includes, inclusions à partir du serveur), des instructions
JavaScript conditionnelles ou d'autres codes non HTML (ePerl, PHP3, JSP,
CFML ou ASP, par exemple), en code HTML pouvant être lu et affiché par
Dreamweaver. Dans Dreamweaver 3, vous pouvez traduire des attributs contenus
dans les balises ainsi que des balises entières ou des blocs de code.
Conseil: si vous suivez la procédure décrite dans ce chapitre, vous constaterez que la
création d'un nouveau traducteur implique que vous rédigiez vos propres fonctions et, si
possible, vos DLL ou autres bibliothèques partagées. UltraDev propose une autre
méthode, qui utilise une implémentation simplifiée des appels aux API
getTranslatorInfo() et translateMarkup() ainsi qu'un fichier participant XML.
Cette méthode plus simple met à profit les services du Gestionnaire de traduction
d'UltraDev. Pour obtenir une description de cette autre méthode de création de
traducteurs, voir le « Utilisation du gestionnaire de traduction », page 183. Vous y trouverez
également des renseignements sur le schéma XML d'UltraDev et les fichiers participants.
Les balises ou les blocs de code convertis doivent être délimités dans des régions
verrouillées pour que les marqueurs d'origine soient préservés. Les attributs
convertis ne nécessitent pas de verrouillage, ce qui simplifie le processus de
contrôle des balises qui les contiennent.
Tous les traducteurs de données (blocs/balises ou attributs) sont des fichiers
HTML. La balise HEAD d'un traducteur de données contient au moins deux
fonctions JavaScript : une fonction spécifiant l'action du traducteur et les fichiers
sur lesquels il agit, une autre fonction chargée d'exécuter la traduction, et un
nombre illimité de fonctions associées. La balise BODY d'un traducteur de données
est vide.
293
La traduction de données, surtout lorsqu'elle porte sur des balises entières ou des
blocs de code, peut comporter plusieurs opérations complexes qui ne peuvent pas
être effectuées avec JavaScript ou qui seraient effectuées de façon plus efficace
sous C. Si vous connaissez bien les langages C ou C++, lisez également
« Extensions C », page 319
Fonctionnement des traducteurs de
données
Dreamweaver traite tous les fichiers de traducteur de la même façon, qu'ils
convertissent des balises entières ou uniquement des attributs. Au démarrage,
Dreamweaver lit tous les fichiers du dossier Configuration/Translators et appelle la
fonction getTranslatorInfo() pour obtenir des informations sur le traducteur.
Dreamweaver ignore tous les fichiers dans lesquels la fonction
getTranslatorInfo() est absente ou qui contiennent une erreur empêchant de
la définir.
Remarque : pour éviter que des erreurs JavaScript n'affectent le démarrage, les erreurs
détectées dans un fichier de traducteur ne sont signalées qu'après le chargement de tous
les traducteurs. Pour plus d'informations sur les traducteurs de débogage, voir
« Recherche de bogues dans le traducteur », page 316.
Dreamweaver appelle également la fonction translateMarkup() dans tous les
fichiers de traducteur appropriés (spécifiés dans les préférences de traduction)
chaque fois que l'utilisateur ajoute un nouveau contenu ou modifie un contenu
existant qui requiert une traduction. Par conséquent, Dreamweaver appelle la
fonction translateMarkup() lorsque l'utilisateur effectue l'une des opérations
suivantes :
•
•
•
•
•
Ouverture d'un fichier dans Dreamweaver.
Retour à la fenêtre de document après modifications dans le panneau HTML.
Modification des propriétés d'un objet dans le document actif.
Insertion d'un objet (à l'aide du panneau Objets ou du menu Insertion).
Actualisation du document actif après sa modification dans une autre
application.
• Application d'un modèle au document.
• Collage ou déplacement d'un contenu vers ou à l'intérieur de la fenêtre de
document.
• Enregistrement des modifications dans un fichier dépendant.
• Appel d'une commande, d'un comportement, d'un inspecteur de propriétés ou
de toute autre extension qui définit la propriété innerHTML ou outerHTML d'un
objet de balise ou la propriété data d'un objet de commentaire.
294
Chapitre 24
• Sélection de Fichier > Convertir > Compatible navigateurs 3.0.
• Sélection de Modifier > Mode Mise en forme > Convertir les tableaux en
calques.
• Sélection de Modifier > Mode Mise en forme > Convertir les calques en
tableau.
• Sélection de Modifier > Traduire > translatorName.
• Modification d'une balise ou d'un attribut dans Quick Tag Editor, suivie de
l'activation de la touche Tab ou Entrée.
API de traducteur de données
Il existe trois fonctions personnalisées dans l'API de traducteur de données. Les
fonctions de l'API de traducteur de données diffèrent des fonctions de l'API
JavaScript principale sur trois points :
• Elles ne sont pas des méthodes de l'objet dreamweaver, dom ou site.
• Elles ne sont significatives que dans le contexte des fichiers de traducteur de
données. En d'autres termes, Dreamweaver n'appelle automatiquement la
fonction translateMarkup() que si elle est définie dans un fichier de
traducteur de données, tandis que dans tout autre fichier d'extension, une
fonction nommée translateMarkup() se comporte comme une fonction
utilisateur et vous devez l'appeler explicitement.
• Il vous incombe d'écrire le corps de chaque fonction et de renvoyer une valeur,
si nécessaire. Ce mode de fonctionnement est à l'opposé de celui des fonctions
de l'API principale dans laquelle vous appelez les fonctions, leur transmettez
des arguments, puis Dreamweaver génère des valeurs renvoyées, le cas échéant.
Dans le cas de cette API spécifique, Dreamweaver appelle les fonctions et leur
transmet des arguments et vous générez ensuite des valeurs renvoyées, le cas
échéant.
getTranslatorInfo()
Description
Affiche des informations sur le traducteur et sur les fichiers qu'il peut traiter.
Conseil: UltraDev fournit une implémentation simplifiée des appels de
getTranslatorInfo() et translateMarkup(), qui utilise le Gestionnaire de
traduction d'UltraDev ainsi qu'un fichier participant XML. Pour obtenir une description de
cette autre méthode de création de traducteurs, voir « Utilisation du gestionnaire de
traduction », page 183. Vous y trouverez également des renseignements sur les fichiers
participants XML d'UltraDev.
Arguments
Aucun.
Traducteurs de données
295
Valeurs renvoyées
Tableau de chaînes. Les éléments du tableau doivent apparaître dans l'ordre
suivant :
•
translatorClass
•
title
•
nExtensions indique le nombre d'extensions de fichier qui suivent. Si
nExtensions est égal à 0, le traducteur peut s'exécuter sur n'importe quel
fichier. Si nExtensions est égal à 0, nRegExps est l'élément suivant du tableau.
•
extension indique une extension de fichier (par exemple, « htm » ou
« SHTML ») que le traducteur peut exécuter. Cette chaîne ne respecte pas
identifie le traducteur de façon unique. Cette chaîne doit
commencer par une lettre et contenir uniquement des caractères
alphanumériques, des traits d'union (-) et des caractères de soulignement (_).
décrit le traducteur en 40 caractères maximum. Cette chaîne apparaît
dans le menu Modifier > Traduire.
la
casse et ne doit pas commencer par un point. Le tableau doit contenir le même
nombre d'éléments extension que celui spécifié dans nExtensions.
•
nRegExps indique le nombre d'expressions régulières qui suivent. Si nRegExps
est égal à 0, runDefault est l'élément suivant du tableau.
•
regExps indique une expression régulière à rechercher. Le tableau doit contenir
le même nombre d'éléments regExps que celui spécifié dans nRegExps, et au
moins un des éléments regExps doit correspondre à une partie du code source
HTML du document pour que le traducteur puisse traiter un fichier.
296
Chapitre 24
•
runDefault indique la préférence par défaut pour l'exécution de ce traducteur.
Les valeurs possibles sont « allFiles », « noFiles », « byExtension » et
« byExpression ». Si vous définissez runDefault sur « byExtension » sans
spécifier d'extension (voir extension, ci-dessus), l'effet produit est le même
que celui obtenu avec la valeur « allFiles ». Si vous définissez runDefault
sur "byExpression" sans spécifier d'expressions (voir regExps, ci-dessus),
l'effet produit est le même que celui obtenu avec la valeur "noFiles".
•
indique la priorité par défaut pour l'exécution de ce traducteur.
Cette priorité est un nombre compris entre 0 et 100. Si vous ne définissez pas
ce paramètre, la priorité par défaut est 100. 0 est la priorité la plus haute et
100 la plus basse. Lorsque plusieurs traducteurs s'appliquent à un document, ce
paramètre détermine l'ordre dans lequel ils sont appliqués. La priorité la plus
haute est appliquée en premier. Lorsque plusieurs traducteurs ont la même
priorité, ils sont appliqués dans l'ordre alphabétique par translatorClass.
priority
Exemple
Dans l'exemple suivant, la fonction getTranslatorInfo() fournit des
informations relatives à un traducteur pour SSI :
function getTranslatorInfo(){
var transArray = new Array(11);
transArray[0] = "SSI";
transArray[1] = "Server-Side Includes";
transArray[2] = "4";
transArray[3] = "htm";
transArray[4] = "stm";
transArray[5] = "html";
transArray[6] = "shtml";
transArray[7] = "2";
transArray[8] = "<!--#include file";
transArray[9] = "<!--#include virtual";
transArray[10] = "byExtension";
transArray[11] = "50";
return transArray;
}
translateMarkup()
Description
Exécute la traduction.
Conseil: UltraDev fournit une implémentation simplifiée des appels de
getTranslatorInfo() et translateMarkup(), qui utilise le Gestionnaire de
traduction d'UltraDev ainsi qu'un fichier participant XML. Pour obtenir une description de
cette autre méthode de création de traducteurs, voir « Utilisation du gestionnaire de
traduction », page 183. Vous y trouverez également des renseignements sur les fichiers
participants XML d'UltraDev.
Arguments
docName, siteRoot, docContent
• Le premier argument est une chaîne contenant l'URL de type file:// du
document à traduire.
• Le deuxième argument est une chaîne contenant l'URL de type file:// de la
racine du site sur lequel se trouve le document à traduire. Si le document se
trouve en dehors d'un site, cette chaîne peut être vide.
• Le troisième argument est une chaîne englobant le contenu du document.
Valeurs renvoyées
Chaîne contenant le document traduit.
Traducteurs de données
297
Exemple
Dans l'exemple suivant, la fonction translateMarkup() appelle la fonction C
translateASP() contenue dans une DLL (Windows) ou dans une bibliothèque
de code (Macintosh) appelée ASPTrans :
function translateMarkup(docName, siteRoot, docContent){
var translatedString = "";
if (docContent.length > 0){
translatedString = ASPTrans.translateASP(docName, siteRoot, ¬
docContent);
}
return translatedString;
}
Pour obtenir un exemple entièrement JavaScript, voir « Exemple de traducteur
d'attributs simple », page 301 ou « Exemple de traducteur de blocs/balises
simple », page 307.
liveDataTranslateMarkup function()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Traduit les documents lorsque l'utilisateur travaille dans la fenêtre Live Data.
Lorsque l'utilisateur choisit Affichage > Live Data ou clique sur le bouton
Actualiser, UltraDev appelle la fonction liveDataTranslateMarkup() au lieu de
la fonction translateMarkup().
Arguments
docName, siteRoot, docContent
• Le premier argument est une chaîne contenant l'URL de type file:// du
document à traduire.
• Le deuxième argument est une chaîne contenant l'URL de type file:// de la
racine du site sur lequel se trouve le document à traduire. Si le document se
trouve en dehors d'un site, cette chaîne peut être vide.
• Le troisième argument est une chaîne englobant le contenu du document.
Valeurs renvoyées
Chaîne contenant le document traduit.
298
Chapitre 24
Exemple
L'instance suivante de liveDataTranslateMarkup() appelle la fonction C
translateASP(), qui est contenue dans un fichier DLL (Windows) ou dans une
bibliothèque de code (Macintosh) dont le nom est ASPTrans :
function liveDataTranslateMarkup(docName, siteRoot, docContent){
var translatedString = "";
if (docContent.length > 0){
translatedString = ASPTrans.translateASP(docName, siteRoot, ¬
docContent);
}
return translatedString;
}
Choix du type de traducteur
Tous les traducteurs sont identiques dans une certaine mesure : ils doivent
contenir les fonctions getTranslatorInfo() et translateMarkup() et ils
doivent résider dans le dossier Configuration/Translators. Ils se distinguent
toutefois par le type de code qu'ils insèrent dans le document de l'utilisateur et par
la façon dont ce code doit être contrôlé.
• Pour traduire de petites parties de balises serveur qui déterminent des valeurs
d'attribut ou ajoutent conditionnellement des attributs à une balise HTML
standard, vous devez écrire un traducteur d'attributs. Les balises HTML
standard contenant des attributs traduits peuvent être contrôlées à l'aide des
inspecteurs de propriétés intégrés à Dreamweaver. Il n'est pas nécessaire de
rédiger un inspecteur de propriétés personnalisé (voir « Ajout d'un attribut
traduit à une balise », page 300).
• Pour traduire une balise entière (une SSI, par exemple) ou un bloc de code
(JavaScript, ColdFusion, PHP ou tout autre script), vous devez écrire un
traducteur de blocs/balises. Le code généré par un traducteur de blocs/balises
ne peut pas être contrôlé à l'aide des inspecteurs de propriétés intégrés à
Dreamweaver. Vous devez rédiger un inspecteur personnalisé pour le contenu
traduit si vous souhaitez que les utilisateurs puissent modifier les propriétés du
code d'origine (voir « Verrouillage des balises ou des blocs de code traduits »,
page 306).
Traducteurs de données
299
Ajout d'un attribut traduit à une balise
La traduction des attributs est étroitement liée à la capacité de l'analyseur de
Dreamweaver 3 à ignorer les balises serveur. Dreamweaver 3 ignore déjà les types
de balises serveur les plus courants (tels que ASP, CFML et PHP) par défaut ; si
vous utilisez des balises serveur dont les marqueurs de début et de fin sont
différents, vous pouvez modifier la base de données de balises propriétaires (balises
tierces) pour assurer le bon fonctionnement de votre traducteur. Pour plus
d'informations sur la façon de modifier la base de données de balises propriétaires,
voir le chapitre « Personnalisation de Dreamweaver » du manuel Utilisation de
Dreamweaver.
Du fait que Dreamweaver gère la conservation des balises serveur d'origine, la
tâche du traducteur est de générer une valeur d'attribut valide pouvant s'afficher
dans la fenêtre de document (donc, si vous utilisez des balises de serveur
uniquement pour des attributs qui n'ont pas d'effet visible pour l'utilisateur, vous
n'avez pas besoin de traducteur).
Le traducteur crée une valeur d'attribut ayant un effet visible dans la fenêtre de
document en ajoutant un attribut spécial, mmTranslatedValue, à la balise qui
contient les balises de serveur. L'attribut mmTranslatedValue et sa valeur ne sont
toutefois pas visibles dans l'inspecteur HTML et ils ne sont pas enregistrés avec le
document.
L'attribut mmTranslatedValue doit être unique à l'intérieur de la balise. Si vous
pensez que votre traducteur devra probablement traduire plusieurs attributs dans
une même balise, vous devez ajouter au traducteur une routine qui ajoute des
numéros à l'attribut mmTranslatedValue (par exemple, mmTranslatedValue1,
mmTranslatedValue2, etc.).
La valeur de l'attribut mmTranslatedValue doit être une chaîne codée en URL
contenant au moins une paire attribut/valeur valide. Cela signifie que
mmTranslatedValue="src=%22open.jpg%22" est une traduction valide à la fois
pour src="<? if (dayType == weekday) then open.jpg else closed.jpg"
?> et pour <? if (dayType == weekday) then src="open.jpg" else
src="closed.jpg" ?>. La chaîne mmTranslatedValue="%22open.jpg%22"
n'est valide pour aucun de ces deux exemples parce qu'elle contient uniquement la
valeur, et non l'attribut.
Traduction de plusieurs attributs à la fois
L'attribut mmTranslatedValue peut contenir plusieurs paires attribut/valeur
valides. Considérez ce qui suit comme du code non traduit :
<img <? if (dayType==weekday) then src="open.jpg" width="320" ¬
height="100" else
src="closed.jpg" width="100" height="320" ?> alt="We're open 24 ¬
hours a day from
12:01am Monday until 11:59pm Friday">
300
Chapitre 24
Les balises traduites peuvent ressembler à ce qui suit :
<img <? if (dayType==weekday) then src="open.jpg" width="320" ¬
height="100" else
src="closed.jpg" width="100" height="320" ?>
mmTranslatedValue="src=%22open.jpg%22 width=%22320%22 ¬
height=%22100%22"
alt="We're open 24 hours a day from 12:01am Monday until 11:59pm ¬
Friday">
Notez que les espaces entre les paires attribut/valeur dans l'attribut
mmTranslatedValue ne sont pas codés. Etant donné que l'application
Dreamweaver recherche ces espaces lorsqu'elle essaie de restituer la valeur traduite,
chaque paire attribut/valeur de l'attribut mmTranslatedValue doit être codée
séparément, puis toutes les paires doivent être de nouveau regroupées pour former
l'ensemble de l'attribut mmTranslatedValue. Pour avoir un exemple de la façon
dont il faut procéder, voir la section « Exemple de traducteur d'attributs simple »,
page 301.
Exemple de traducteur d'attributs simple
Pour mieux comprendre le principe de la traduction d'attributs, il est utile
d'examiner un exemple. Le traducteur suivant est un marqueur « Pound
Conditional » (Poco), une syntaxe fictive quelque peu similaire à ASP ou PHP. La
première étape pour assurer le bon fonctionnement de ce traducteur consiste à
créer une balise tagspec pour le marqueur Poco ; cela évitera à Dreamweaver
d'analyser les instructions Poco non traduites.
La balise tagspec pour le marqueur Poco ressemble à ce qui suit :
<tagspec tag_name="poco" start_string="<#" end_string="#>"
detect_in_attribute="true" icon="poco.gif" icon_width="17"
icon_height="15"></tagspec>
Traducteurs de données
301
Le fichier poco.xml qui contient la balise tagspec est stocké dans le dossier
Configuration/ThirdPartyTags, de même que l'icône des balises Poco.
<html>
<head>
<title>Conditional Translator</title>
<meta http-equiv="Content-Type" content="text/html; charset=">
<script language="JavaScript">
/*************************************************************
* This translator handles the following statement syntaxes: *
* <# if (condition) then foo else bar #>
*
* <# if (condition) then att="foo" else att="bar" #>
*
* <# if (condition) then att1="foo" att2="jinkies"
*
* att3="jeepers" else att1="bar" att2="zoinks" #>
*
*
*
* It does not handle statements with no else clause.
*
*************************************************************/
/*************************************************************
* This translator handles the following statement syntaxes: *
* <# if (condition) then foo else bar #>
*
* <# if (condition) then att="foo" else att="bar" #>
*
* <# if (condition) then att1="foo" att2="jinkies"
*
* att3="jeepers" else att1="bar" att2="zoinks" #>
*
*
*
* It does not handle statements with no else clause.
*
*************************************************************/
var count = 1;
function translateMarkup(docNameStr, siteRootStr, inStr){
var count = 1;
// Counter to ensure unique mmTranslatedValues
var outStr = inStr;
// String that will be manipulated
var spacer = "";
// String to manage space between encoded attributes
var start = inStr.indexOf('<# if'); // 1st instance of Pound ¬
Conditional code
/* Declared but not initalized. */
var attAndValue;
// Boolean indicating whether the attribute is part of
// the conditional statement
var trueStart;
// The beginning of the true case
var falseStart;
// The beginning of the false case
var trueValue;
// The HTML that would render in the true case
var attName;
// The name of the attribute that is being'
// set conditionally.
var equalSign;
302
Chapitre 24
// The position of the equal sign just to the
// left of the <#, if there is one
var transAtt;
// The entire translated attribute
var transValue;
// The value that must be URL-encoded
var back3FromStart;
// Three characters back from the start position
// (used to find equal sign to the left of <#
var tokens;
// An array of all the attributes set in the true case
var end;
// The end of the current conditional statement.
// As long as there's still a <# conditional that hasn't been
// translated
while (start != -1){
back3FromStart = start-3;
end = outStr.indexOf(' #>',start);
equalSign = outStr.indexOf('="<# if',back3FromStart);
attAndValue = (equalSign != -1)?false:true;
trueStart = outStr.indexOf('then', start);
falseStart = outStr.indexOf(' else', start);
trueValue = outStr.substring(trueStart+5, falseStart);
tokens = dreamweaver.getTokens(trueValue,' ');
//
//
//
//
if
If attAndValue is false, find out what attribute you're
translating by backing up from the equal sign to the
first space. The substring between the space and the
equal sign is the attribute.
(!attAndValue){
for (var i=equalSign; i > 0; i--){
if (outStr.charAt(i) == " "){
attName = outStr.substring(i+1,equalSign);
break;
}
}
transValue = attName + '="' + trueValue + '"';
transAtt = ' mmTranslatedValue' + count + '="' + ¬
escape(transValue) + '"';
outStr = outStr.substring(0,end+4) + transAtt + ¬
outStr.substring(end+4);
// If attAndValue is true, and tokens is greater than
// 1, then trueValue is a series of attribute/value
// pairs, not just one. In that case, each attribute/value
// pair must be encoded separately and then added back
// together to make the translated value.
}else if (tokens.length > 1){
transAtt = ' mmTranslatedValue' + count + '="'
for (var j=0; j < tokens.length; j++){
tokens[j] = escape(tokens[j]);
Traducteurs de données
303
if (j>0){
spacer=" ";
}
transAtt += spacer + tokens[j];
}
transAtt += '"';
outStr = outStr.substring(0,end+3) + transAtt + ¬
outStr.substring(end+3)
// If attAndValue is true and tokens is not greater
// than 1, then trueValue is a single attribute/value pair.
// This is the simplest case, where all that is necessary is
// to encode trueValue.
}else{
transValue = trueValue;
transAtt = ' mmTranslatedValue' + count + '="' + ¬
escape(transValue) + '"';
outStr = outStr.substring(0,end+3) + transAtt + ¬
outStr.substring(end+3);
}
// Increment the counter so that the next instance
// of mmTranslatedValue will have a unique name, and
// then find the next <# conditional in the code.
count++;
start = outStr.indexOf('<# if',end);
}
// Return the translated string.
return outStr
}
function getTranslatorInfo(){
returnArray = new Array(7);
returnArray[0]
returnArray[1]
returnArray[2]
returnArray[3]
returnArray[4]
returnArray[5]
returnArray[6]
returnArray[0]
returnArray[1]
returnArray[2]
returnArray[3]
returnArray[4]
returnArray[5]
returnArray[6]
=
=
=
=
=
=
=
=
=
=
=
=
=
=
"Pound_Conditional";//The translatorClass
"Pound Conditional Translator";//The title
"2"; //The number of extensions
"html"; //The first extension
"htm";//The second extension
"1";// The number of expressions
"<#";//The first expression
"Pound_Conditional";//The translatorClass
"Pound Conditional Translator";//The title
"2"; //The number of extensions
"html"; //The first extension
"htm";//The second extension
"1";// The number of expressions
"<#";//The first expression
return returnArray
}
304
Chapitre 24
</script>
</head>
<body>
</body>
</html>
Contrôle des attributs traduits
Lorsque les balises de serveur sont utilisées pour spécifier un seul attribut et que
cet attribut est représenté dans un inspecteur de propriétés, Dreamweaver affiche
les balises de serveur dans l'inspecteur de propriétés.
Le marqueur s'affiche, qu'il soit associé ou non à un traducteur. Si un traducteur
est associé au marqueur, un éclair apparaît au-dessus de l'icône dans le panneau.
Le traducteur s'exécute chaque fois que l'utilisateur modifie les balises serveur se
trouvant dans le panneau.
Remarque : l'icône en forme d'éclair n'apparaît pas lorsque du texte ou des cellules, des
lignes ou des colonnes de tableau sont sélectionnés. La traduction se produit également si
l'utilisateur modifie les balises de serveur se trouvant dans le panneau et s'il existe un
traducteur traitant ce type de marqueur.
Lorsque les balises de serveur sont utilisées pour contrôler plusieurs attributs dans
une balise, elles n'apparaissent pas dans l'inspecteur de propriétés. Toutefois,
l'éclair signale à l'utilisateur qu'il existe un marqueur traduit pour l'élément
sélectionné.
Les champs de l'inspecteur de propriétés sont toujours modifiables ; les utilisateurs
peuvent entrer des valeurs pour les attributs susceptibles d'être contrôlés par les
balises de serveur, ce qui peut entraîner l'existence d'attributs en double. Si une
valeur traduite et une valeur régulière sont définies pour un attribut donné,
Dreamweaver affiche la valeur traduite dans la fenêtre de document. Vous devez
décider si votre traducteur va rechercher les attributs en double et les supprimer.
Traducteurs de données
305
Verrouillage des balises ou des blocs de
code traduits
En règle générale, vous attendez d'un traducteur qu'il modifie les marqueurs de
façon à ce que Dreamweaver puisse les afficher, mais vous souhaitez sauvegarder
les marqueurs d'origine, et non les modifications. Pour répondre à ce besoin,
Dreamweaver fournit des balises XML spécifiques qui entourent le contenu
traduit et permettent de faire référence au code d'origine. La syntaxe des
balises XML est la suivante :
<MM:BeginLock translatorClass="translatorClass" ¬
type="tagNameOrType" depFiles="dependentFilesList" ¬
orig="encodedOrignalMarkup">
Translated content
<MM:EndLock>
où :
est l'identifiant unique du traducteur (la première chaîne du
tableau renvoyé par getTranslatorInfo()).
translatorClass
est une chaîne identifiant le type du marqueur (ou le nom de
balise associé au marqueur) contenu dans le verrou. Cette chaîne ne peut contenir
que des caractères alphanumériques, des traits d'union (-) ou des caractères de
soulignement (_). Vous pouvez vérifier cette valeur dans la fonction
canInspectSelection() d'un inspecteur de propriétés personnalisé pour
déterminer si cet inspecteur est approprié pour le contenu. Pour plus
d'informations, voir « Creation d'inspecteurs de propriétés pour contenu
verrouillé », page 313. Un contenu verrouillé ne peut pas être contrôlé par les
inspecteurs de propriétés intégrés de Dreamweaver. Par exemple, la spécification
de type="IMG" n'entraîne pas l'affichage de l'inspecteur d'images.
tagNameOrType
est une chaîne contenant une liste de fichiers séparés par
des virgules dont dépendent les marqueurs verrouillés. Les fichiers sont référencés
à partir du disque dur (par exemple, C:\sites\avocado8\copyright.html sous
Windows ou MyHD:sites:avocado8:copyright.html sur Macintosh). Si
l'utilisateur met à jour l'un des fichiers de la liste dependentFilesList,
Dreamweaver retraduit automatiquement le contenu dans le document contenant
la liste.
dependentFilesList
est une chaîne contenant les marqueurs d'origine non
traduits et codés à l'aide d'un extrait de code URL (utilisez %22 pour “, %3C
pour <, %3E pour > et %25 pour %). La façon la plus rapide de coder une chaîne
en URL consiste à utiliser la méthode escape(). Par exemple, si myString est
égal à '<img src="foo.gif">', escape(myString) renvoie
%3Cimg%20src=%22foo.gif%22%3E.
encodedOriginalMarkup
306
Chapitre 24
L'exemple suivant montre la partie de code verrouillée pouvant être générée à
partir de la traduction de la SSI <!--#include virtual="/footer.html" --> :
<MM:BeginLock translatorClass="MM_SSI" type="ssi" ¬
depFiles="C:\sites\webdev\footer.html" orig="%3C!--#include ¬
virtual=%22/footer.html%22%20--%3E">
<!-- begin footer -->
<CENTER>
<HR SIZE=1 NOSHADE WIDTH=100%>
<BR>
[<A TARGET="_top" HREF="/">home</A>]
[<A TARGET="_top" HREF="/products/">products</A>]
[<A TARGET="_top" HREF="/services/">services</A>]
[<A TARGET="_top" HREF="/support/">support</A>]
[<A TARGET="_top" HREF="/company/">about us</A>]
[<A TARGET="_top" HREF="/help/">help</A>]
</CENTER>
<!-- end footer -->
<MM:EndLock>
Exemple de traducteur de blocs/balises simple
Pour mieux comprendre le principe de la traduction, il est utile d'examiner un
traducteur entièrement écrit en JavaScript (c'est-à-dire, un traducteur dont aucune
fonctionnalité ne dépend d'une bibliothèque C). Le traducteur suivant serait plus
efficace écrit en C, mais la version JavaScript est plus simple et constitue un
exemple idéal pour montrer comment fonctionnent les traducteurs.
Traducteurs de données
307
A l'instar de la plupart des traducteurs, celui-ci est conçu pour émuler le
comportement d'un serveur. Supposons que votre serveur web soit configuré pour
remplacer la balise KENT par la photo d'un technicien différent selon le jour de la
semaine, l'heure de la journée ou la plate-forme de l'utilisateur. Le traducteur
exécute la même opération, mais uniquement localement.
<html>
<head>
<title>Kent Tag Translator</title>
<meta http-equiv="Content-Type" content="text/html; charset=">
<script language="JavaScript">
/**********************************************************
* The getTranslatorInfo() function provides information *
* about the translator, including its class and name,
*
* the types of documents that are likely to contain the *
* markup to be translated, the regular expressions that *
* a document containing the markup to be translated
*
* would match, and the default Translation preference
*
* (whether the translator should run on all files, no
*
* files, in files with the specified extensions, or in
*
* files matching the specified expressions).
*
**********************************************************/
function getTranslatorInfo(){
//Create a new array with 6 slots in it
returnArray = new Array(6);
returnArray[0] = "DREAMWEAVER_TEAM"// The translatorClass
returnArray[1] = "Kent Tags"// The title
returnArray[2] = "0" // The number of extensions
returnArray[3] = "1"// The number of expressions
returnArray[4] = "<kent"// Expression
returnArray[5] = "byExpression"// Default Translation
preference
return returnArray;
returnArray[0] = "DREAMWEAVER_TEAM"// The translatorClass
returnArray[1] = "Kent Tags"// The title
returnArray[2] = "0" // The number of extensions
returnArray[3] = "1"// The number of expressions
returnArray[4] = "<kent"// Expression
returnArray[5] = "byExpression"// Default Translation
preference
return returnArray;
}
/
*****************************************************************
*******
* The translateMarkup() function performs the actual translation.
*
* In this translator, the translateMarkup() function is written *
* entirely in JavaScript (that is, it does not rely on a C
library) -- *
308
Chapitre 24
* and it's also extremely inefficient. It's a simple example,
however,
*
* which is good for learning.
*
*****************************************************************
*********/
/**********************************************************
* The translateMarkup() function performs the actual
*
* translation. In this translator, the translateMarkup() *
* function is written entirely in JavaScript (that is,
*
* it does not rely on a C library). It's not very
*
* efficient, but it's good for learning.
*
**********************************************************/
function translateMarkup(docNameStr, siteRootStr, inStr){
var outStr = "";// The string to be returned after translation
var start = inStr.indexOf('<kent>');// The first position of the
KENT tag
// in the document.
var replCode = replaceKentTag();// Calls the replaceKentTag()
function
// to get the code that will
replace KENT.
var outStr = "";// The string to be returned after translation
var start = inStr.indexOf('<kent>');// The first position of the
KENT tag
// in the document.
var replCode = replaceKentTag();// Calls the replaceKentTag()
function
// to get the code that
will replace KENT.
//If the document does not contain any content, terminate the
translation.
if ( inStr.length <= 0 ){
return "";
}
// As long as start, which is equal to the location in inStr of
the
// KENT tag, is not equal to -1 (that is, as long as there is
another
// KENT tag in the document)
while (start != -1){
// Copy everything up to the start of the KENT tag.
// This is very important, as translators should never change
// anything other than the markup that is to be translated.
outStr = inStr.substring(0, start);
// Replace the KENT tag with the translated HTML, wrapped in
special
// locking tags. For more information on the replacement
operation, see
// the comments in the replaceKentTag() function.
outStr = outStr + replCode;
Traducteurs de données
309
// Copy everything after the KENT tag.
outStr = outStr + inStr.substring(start+6);
// Use the string you just created for the next trip through
// the document. This is the most inefficient part of all.
inStr = outStr;
start = inStr.indexOf('<kent>');
}
// When there are no more KENT tags in the document, return
outStr.
return outStr;
}
/**************************************************************
* The replaceKentTag() function assembles the HTML that will *
* replace the KENT tag and the special locking tags that will *
* surround the HTML. It calls the getImage() function to *
* determine the SRC of the IMG tag.
*
**************************************************************/
/**********************************************************
* The replaceKentTag() function assembles the HTML that *
* will replace the KENT tag and the special locking tags *
* that will surround the HTML. It calls the getImage()
*
* function to determine the SRC of the IMG tag.
*
**********************************************************/
function replaceKentTag(){
// The image to display.
var image = getImage();
// The location of the image on the local disk.
var depFiles = dreamweaver.getSiteRoot() + image;
// The IMG tag that will be inserted between the lock tags.
var imgTag = '<IMG SRC="/' + image + '" WIDTH="320" HEIGHT="240"
ALT="Kent">\n';
// 1st part of the opening lock tag. The remainder of the tag is
assembled below.
var start = '<MM:BeginLock translatorClass="DREAMWEAVER_TEAM"
type="kent"';
// The closing lock tag.
var end = '<MM:EndLock>';
//Assemble the lock
var replCode = start
replCode = replCode
replCode = replCode
replCode = replCode
return replCode;
}
/
310
Chapitre 24
tags and the replacement HTML.
+ ' depFiles="' + depFiles + '"';
+ ' orig="%3Ckent%3E">\n';
+ imgTag;
+ end;
*****************************************************************
*
* The getImage() function determines which image to display*
* based on the day of the week, the time of day and the *
* user's platform. The day and time are figured based on UTC *
* time (Greenwich Mean Time) minus 8 hours, which gives*
* Pacific Standard Time (PST). No allowance is made for Daylight
*
* Savings Time in this routine.
*
*****************************************************************
*/
/**********************************************************
* The getImage() function determines which image to
*
* display based on the day of the week, the time of day *
* and the user's platform. The day and time are figured *
* based on UTC time (Greenwich Mean Time) minus 8 hours, *
* which gives Pacific Standard Time (PST). No allowance *
* is made for Daylight Savings Time in this routine.
*
**********************************************************/
function getImage(){
var today = new Date();// Today's date & time.
var day = today.getUTCDay();
// Day of the week in the GMT
time zone.
// 0=Sunday, 1=Monday, and so
on.
var hour = today.getUTCHours();// The current hour in GMT, based
on the
// 24-hour clock.
var SFhour = hour - 8;// The time in San Francisco, based on the
// 24-hour clock.
var platform = navigator.platform; // User's platform. All
Windows machines
// are identified by Dreamweaver
as "Win32",
// all Macs as "MacPPC".
var imageRef;// The image reference to be returned.
var today = new Date();// Today's date & time.
var day = today.getUTCDay();
// Day of the week in the GMT
time zone.
// 0=Sunday, 1=Monday, and so
on.
var hour = today.getUTCHours();// The current hour in GMT, based
on the
// 24-hour clock.
var SFhour = hour - 8;// The time in San Francisco, based on the
// 24-hour clock.
var platform = navigator.platform; // User's platform. All
Windows machines
// are identified by Dreamweaver
as "Win32",
// all Macs as "MacPPC".
var imageRef;// The image reference to be returned.
// If SFhour is negative, you have two adjustments to make.
Traducteurs de données
311
// First, subtract one from the day count because it is already
the wee
// hours of the next day in GMT. Second, add SFhour to 24 to
// give a valid hour in the 24-hour clock.
if (SFhour < 0){
day = day - 1;
// The day count back one would make it negative, and it's
Saturday,
// so set the count to 6.
if (day < 0){
day = 6;
}
SFhour = SFhour + 24;
}
// Now determine which photo to show based on whether it's a
workday or a
// weekend; what time it is; and, if it's a time and day when
Kent is
// working, what platform the user is on.
//If it's not Sunday
if (day != 0){
//And it's between 10am and noon, inclusive
if (SFhour >= 10 && SFhour <= 12){
imageRef = "images/kent_tiredAndIrritated.jpg";
//Or else it's between 1pm and 3pm, inclusive
}else if (SFhour >= 13 && SFhour <= 15){
imageRef = "images/kent_hungry.jpg";
//Or else it's between 4pm and 5pm, inclusive
}else if (SFhour >= 16 && SFhour <= 17){
//If user is on Mac, show Kent working on Mac
if (platform == "MacPPC"){
imageRef = "images/kent_gettingStartedOnMac.jpg";
//If user is on Win, show Kent working on Win
}else{
imageRef = "images/kent_gettingStartedOnWin.jpg";
}
//Or else it's after 6pm but before the stroke of midnight
}else if (SFhour >= 18){
//If it's Saturday
if (day == 6){
imageRef = "images/kent_dancing.jpg";
//If it's not Saturday, check the user's platform
}else if (platform == "MacPPC"){
imageRef = "images/kent_hardAtWorkOnMac.jpg";
}else{
imageRef = "images/kent_hardAtWorkOnMac.jpg";
}
}else{
imageRef = "images/kent_sleeping.jpg";
}
312
Chapitre 24
//If it's after midnight and before 10am, or anytime on Sunday
}else{
imageRef = "images/kent_sleeping.jpg";
}
return imageRef;
}
</script>
</head>
<body>
</body>
</html>
Creation d'inspecteurs de propriétés pour contenu verrouillé
Une fois que vous avez créé un traducteur, vous devez créer un inspecteur de
propriétés pour le contenu afin de permettre à l'utilisateur d'en modifier les
propriétés (par exemple, le fichier à inclure ou l'une des conditions d'une
instruction conditionnelle). Le contrôle d'un contenu traduit pose un problème
particulier pour les raisons suivantes :
• L'utilisateur peut décider de modifier les propriétés du contenu traduit et ces
modifications doivent être répercutées dans le contenu non traduit.
• Le DOM contient le contenu traduit (ce qui signifie que les balises de
verrouillage et les balises qu'elles englobent sont des Nudss du DOM), mais la
propriété outerHTML de documentElement ainsi que les fonctions
dreamweaver.getSelection() et dreamweaver.nodeToOffsets() agissent
sur la source non traduite.
• Les balises que vous contrôlez sont différentes avant et après la traduction.
S'il existe un risque que l'utilisateur désactive votre traducteur tandis qu'un autre
inspecteur de propriétés n'a pas encore commencé à traiter les balises non
traduites, vous devez créer deux inspecteurs de propriétés : un pour la ou les
balises non traduites et un deuxième pour la région verrouillée générée par la
traduction. Les deux inspecteurs peuvent avoir une interface identique, mais le
commentaire figurant en tête du fichier et les fonctions canInspectSelection()
et inspectSelection() doivent être différents.
Par exemple, un commentaire de l'inspecteur de la balise HAPPY non traduite
pourrait être :
<!-- tag:HAPPY,priority:5,selection:exact,hline,vline -->
Un commentaire de l'inspecteur de la balise HAPPY traduite pourrait alors être :
<!-- tag:*LOCKED*,priority:5,selection:within,hline,vline -->
Traducteurs de données
313
La fonction canInspectSelection() pour l'inspecteur de la balise HAPPY non
traduite est simple : étant donné que le type de sélection est exact, elle peut
renvoyer la valeur true sans analyse supplémentaire. Pour l'inspecteur de la balise
HAPPY traduite, cette fonction est plus compliquée ; le mot clé *LOCKED* indique
que l'inspecteur est approprié lorsque la sélection se trouve à l'intérieur d'une
région verrouillée, mais étant donné qu'un document peut comporter plusieurs
régions verrouillées, des vérifications supplémentaires doivent être effectuées pour
déterminer si l'inspecteur correspond à cette région verrouillée en particulier.
Le contrôle d'un contenu traduit présente encore un autre problème. Lorsque
vous appelez la fonction dom.getSelection(), les valeurs renvoyées par défaut
sont des décalages d'octets dans la source non traduite. Pour étendre la sélection
de façon à sélectionner uniquement la région verrouillée, utilisez la méthode
suivante :
var currentDOM = dw.getDocumentDOM();
var offsets = currentDOM.getSelection();
var theSelection =
currentDOM.offsetsToNode(offsets[0],offsets[0]+1);
L'utilisation de offsets[0]+1 comme deuxième argument permet de vous
assurer que vous restez dans les limites de la balise de verrouillage de début lorsque
vous traduisez les décalages d'octets en Nuds. Si vous utilisez offsets[1] comme
deuxième argument, vous risquez de sélectionner le Nuds situé au-dessus du
verrou.
Une fois la sélection effectuée (après vous être assuré qu'elle est du type
node.ELEMENT_NODE), vous pouvez vérifier l'attribut type pour vous assurer que
la région verrouillée correspond à cet inspecteur. Exemple :
if (theSelection.nodeType == node.ELEMENT_NODE && ¬
theSelection.getAttribute('type') == 'happy'){
return true;
}else{
return false
}
314
Chapitre 24
Pour renseigner les champs de l'inspecteur pour la balise traduite, vous devez
analyser la valeur de l'attribut orig. Par exemple, si le code non traduit est
<HAPPY TIME="22"> et que l'inspecteur de propriétés contient un champ libellé
Time, vous devez extraire la valeur de l'attribut TIME à partir de la chaîne orig.
function inspectSelection() {
var currentDOM = dw.getDocumentDOM();
var currSelection = currentDOM.getSelection();
var theObj = currentDOM.offsetsToNode¬
(curSelection[0],curSelection[0]+1);
if (theObj.nodeType != Node.ELEMENT_NODE) {
return;
}
// To convert the encoded characters back to their
// original values, use the unescape() method.
var origAtt = unescape(theObj.getAttribute("ORIG"));
// Convert the string to lower case for processing
var origAttLC = origAtt.toLowerCase();
var timeStart = origAttLC.indexOf('time="');
var timeEnd = origAttLC.indexOf('"',timeStart+6);
var timeValue = origAtt.substring(timeStart+6,timeEnd);
document.layers['timelayer'].document.timeForm.timefield.¬
value = timeValue;
}
Une fois l'attribut orig analysé en vue de renseigner les champs de l'inspecteur de
propriétés pour la balise traduite, vous aurez probablement le réflexe de définir la
valeur de l'attribut orig si l'utilisateur modifie cette valeur dans l'un des champs.
Ce n'est pourtant pas la procédure conseillée étant donné que vous allez
probablement vous heurter aux restrictions s'appliquant aux modifications d'une
région verrouillée. Vous pouvez contourner ce problème en modifiant les
marqueurs d'origine puis en retraduisant.
Traducteurs de données
315
L'inspecteur de propriétés pour SSI traduites (Configuration/Inspectors/
ssi_translated.js) illustre cette technique avec sa fonction setComment(). Au lieu
de réécrire l'attribut orig, l'inspecteur assemble un nouveau commentaire de SSI.
Il insère ensuite ce commentaire dans le document à la place de l'ancien en
réécrivant l'intégralité du contenu du document, ce qui a pour effet de générer un
nouvel attribut orig. Le code suivant résume cette technique :
// Assemble the new include comment. radioStr and URL are
// variables defined earlier in the code.
newInc = "<!--#include " + radioStr + "=" + '"' + URL + '"' ¬
+" -->";
// Get the contents of the document.
var entireDocObj = dreamweaver.getDocumentDOM();
var docSrc = entireDocObj.documentElement.outerHTML;
// Store everything up to the SSI comment and everything after
// the SSI comment in the beforeSelStr and afterSelStr variables.
var beforeSelStr = docSrc.substring(0, curSelection[0] );
var afterSelStr = docSrc.substring(curSelection[1]);
// Assemble the new contents of the document.
docSrc = beforeSelStr + newInc + afterSelStr;
// Set the outerHTML of the HTML tag (represented by
// the documentElement object) to the new contents,
// and then set the selection back to the locked region
// surrounding the SSI comment.
entireDocObj.documentElement.outerHTML = docSrc;
entireDocObj.setSelection(curSelection[0], curSelection[0]+1);
Recherche de bogues dans le traducteur
Si la fonction translateMarkup() contient certains types d'erreurs, le traducteur
est chargé correctement, mais son exécution échoue sans que l'utilisateur en soit
informé lorsqu'il est appelé. Bien que cette panne discrète empêche Dreamweaver
de devenir instable, elle peut ralentir le développement, surtout lorsque vous
essayez de rechercher une erreur de syntaxe mineure dans 10, 20 ou 30 lignes de
code.
Si l'exécution du traducteur échoue, une méthode de débogage efficace consiste à
convertir le traducteur en commande, en procédant comme suit :
1
316
Chapitre 24
Copiez tout le contenu du fichier du traducteur dans un nouveau document,
puis enregistrez-le dans le dossier Configuration/Commands du dossier de
l'application Dreamweaver.
2
Au début du document, entre les balises SCRIPT, ajoutez la fonction suivante :
function commandButtons(){
return new Array( "OK","translateMarkup(dreamweaver.¬
getDocumentPath('document'), dreamweaver.getSiteRoot(), ¬
dreamweaver.getDocumentDOM().documentElement.outerHTML); ¬
window.close()", "Cancel", "window.close()");
}
3
A la fin de la fonction translateMarkup(), supprimez du commentaire la
ligne return whateverTheReturnValueIs (valeur renvoyée) et remplacez-la
par dreamweaver.getDocumentDOM().documentElement.outerHTML =
whateverTheReturnValueIs. Exemple :
// return theCode;
dreamweaver.getDocumentDOM().documentElement.outerHTML = ¬
theCode;
}
/* end of translateMarkup() */
4
Dans la balise BODY du document, ajoutez un formulaire sans champs de saisie.
Exemple :
<body>
<form>
Hello.
</form>
</body>
5
Redémarrez Dreamweaver, puis choisissez votre « commande du traducteur »
dans le menu Commandes. Lorsque vous cliquez sur OK, la fonction
translateMarkup() est appelée et simule une traduction.
Si aucun message d'erreur ne s'affiche et que la traduction continue à échouer,
votre code contient probablement une erreur de logique.
6
Ajoutez des instructions alert() en des points stratégiques de la fonction
translateMarkup() de façon à vous assurer que vous touchez les ramifications
appropriées et vérifier ainsi les valeurs des variables et des propriétés en
différents points. Exemple :
for (var i=0; i< foo.length; i++){
alert("we're at the top of foo.length array, and the value ¬
of i is " + i);
/* rest of loop */
}
7
Une fois les instructions alert() ajoutées, choisissez votre commande dans le
menu Commandes, cliquez sur Annuler, puis choisissez-la de nouveau. Cette
opération recharge le fichier de commande en intégrant vos modifications.
Traducteurs de données
317
318
Chapitre 24
25
CHAPITRE 25
Extensions C
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le mécanisme d'extension C vous permet d'utiliser les fichiers d'extension
Dreamweaver en combinant un code JavaScript et votre propre code C. Créez des
fonctions en langage C, intégrez-les à une DLL ou à une bibliothèque partagée,
enregistrez la bibliothèque dans le dossier Configuration/JSExtensions du dossier
de l'application Dreamweaver, puis appelez les fonctions à partir de JavaScript à
l'aide de l'interpréteur JavaScript intégré à Dreamweaver.
Par exemple, supposons que vous souhaitiez définir un objet Dreamweaver
permettant d'insérer dans le document actif le contenu d'un fichier utilisateur.
Etant donné que le code JavaScript côté client ne prend pas en charge les E/S de
fichier, vous devez créer une fonction en C pour fournir cette fonctionnalité.
319
Vous pouvez utiliser le code HTML et JavaScript ci-dessous pour créer un objet
Insérer le texte à partir d'un fichier simple. Notez que la fonction objectTag()
appelle une fonction C nommée readContentsOfFile() qui est stockée dans
une bibliothèque appelée myLibrary.
<HTML>
<HEAD>
<SCRIPT>
function objectTag() {
fileName = document.forms[0].myFile.value;
return myLibrary.readContentsOfFile(fileName);
}
</SCRIPT>
</HEAD>
<BODY>
<FORM>
Entrez le nom du fichier à insérer :
<INPUT TYPE="file" NAME="myFile">
</FORM>
</BODY>
</HTML>
320
Chapitre 25
La fonction readContentsOfFile() accepte une liste d'arguments fournis par
l'utilisateur, décompresse l'argument contenant le nom du fichier, lit le contenu
du fichier et le compresse en guise de valeur renvoyée. Pour plus d'informations
sur les structures de données et les fonctions JavaScript apparaissant dans
readContentsOfFile(), voir la section « API d'extension C », page 322.
JSBool
readContentsOfFile(JSContext *cx, JSObject *obj, unsigned int ¬
argc, jsval *argv, jsval *rval)
{
char *fileName, *fileContents;
JSBool success;
unsigned int length;
/* Make sure caller passed in exactly one argument. If not,
* then tell the interpreter to abort script execution. */
if (argc != 1){
JS_ReportError(cx, "Wrong number of arguments", 0);
return JS_FALSE;
}
/* Convert the argument to a string */
fileName = JS_ValueToString(cx, argv[0], &length);
if (fileName == NULL){
JS_ReportError(cx, "The argument must be a string", 0);
return JS_FALSE;
}
/* Use the string (the file name) to open and read a file */
fileContents = exerciseLeftToTheReader(fileName);
/* Store file contents in rval, which is the return value ¬
passed
* back to the caller */
success = JS_StringToValue(cx, fileContents, 0, *rval);
free(fileContents);
/* Return true to continue or false to abort the script */
return success;
}
Pour vous assurer que la fonction readContentsOfFile() s'exécute correctement
sans provoquer d'erreur JavaScript, vous devez l'enregistrer avec l'interpréteur
JavaScript en incluant une fonction nommée MM_Init() dans votre bibliothèque.
Lorsque l'application Dreamweaver charge la bibliothèque au démarrage, elle
appelle la fonction MM_Init() pour extraire trois informations :
• le nom JavaScript de la fonction ;
• un pointeur vers la fonction ;
• le nombre d'arguments attendus par la fonction.
Extensions C
321
La fonction MM_Init() de myLibrary pourrait ressembler à ceci :
void
MM_Init()
{
JS_DefineFunction("readContentsOfFile", readContentsOfFile,
1);
}
Votre bibliothèque doit inclure exactement une instance de la macro suivante :
/* MM_STATE is a macro that expands to some definitions that are
* needed to interact with Dreamweaver. This macro must
* be defined exactly once in your library. */
MM_STATE
Remarque : la bibliothèque peut être implémentée en C ou C++, mais le fichier contenant
MM_Init() et MM_STATE doit être implémenté en C. Le compilateur C++ modifie les noms
de fonction, ce qui rend impossible la détection de la fonction MM_Init() dans
Dreamweaver.
API d'extension C
Dans votre bibliothèque, le code C doit interagir avec l'interpréteur JavaScript de
Dreamweaver à trois moments distincts :
• au démarrage, pour enregistrer les fonctions de la bibliothèque ;
• lorsque la fonction est appelée, pour décompresser les arguments qui sont
transmis de JavaScript à C ;
• avant le retour de la fonction, pour compresser la valeur renvoyée.
Pour accomplir ces tâches, l'interpréteur définit plusieurs types de données et
affiche une API. Les définitions pour les types de données et les fonctions
repertoriées dans cette section s'affichent dans le fichier mm_jsapi.h. Pour que
votre bibliothèque puisse fonctionner correctement, vous devez insérer
mm_jsapi.h en haut de chaque fichier de votre bibliothèque en utilisant la ligne
suivante :
#include "mm_jsapi.h"
typedef struct JSContext JSContext
Description
Un pointeur vers ce type de données opaque est transmis à la fonction C.
Certaines des fonctions de l'API utilisent ce pointeur comme argument.
322
Chapitre 25
typedef struct JSObject JSObject
Description
Un pointeur vers ce type de données opaque est transmis à la fonction C. Ce type
de données représente un objet pouvant correspondre à un objet de tableau ou
tout autre type d'objet.
typedef struct jsval jsval
Description
Une structure de données opaque pouvant contenir un nombre entier ou un
pointeur vers un nombre à virgule flottante, une chaîne ou un objet. Certaines des
fonctions de l'API permettent de lire les valeurs des arguments de fonction à partir
du contenu d'un jsval et d'autres permettent d'écrire la valeur renvoyée par la
fonction en écrivant un jsval.
typedef enum { JS_FALSE = 0, JS_TRUE = 1 } JSBool
Description
Un type de données simple utilisé pour stocker une valeur booléenne.
typedef JSBool (*JSNative)(JSContext *cx, JSObject *obj,
unsigned int argc, jsval *argv, jsval *rval)
Description
Signature permettant l'implémentation sous C de fonctions JavaScript, où :
•
cx
•
obj est un pointeur vers l'objet dans le contexte duquel le script s'exécute.
Pendant l'exécution du script, le mot clé this désigne cet objet.
•
•
argc
correspond au nombre d'arguments transmis à la fonction.
argv
argc
est un pointeur vers un tableau d'arguments jsval. Le tableau comporte
éléments en longueur.
•
rval est un pointeur vers un jsval unique. La valeur renvoyée par la fonction
doit être enregistrée dans *rval.
est un pointeur vers une structure JSContext opaque qui doit être transmis
à certaines fonctions de l'API JavaScript. Cette variable contient le contexte
d'exécution de l'interpréteur.
La fonction renvoie la valeur JS_TRUE en cas de succès ou JS_FALSE en cas
d'échec. Si la valeur JS_FALSE est renvoyée, l'exécution du script en cours s'arrête.
Extensions C
323
JSBool JS_DefineFunction()
Description
Enregistre une fonction C avec l'interpréteur JavaScript dans Dreamweaver. Après
le renvoi de cette fonction, des scripts JavaScript appelant la fonction spécifiée
dans name exécutent le code vers lequel pointe call.
Normalement, vous appelez cette fonction à partir de la fonction MM_Init() que
Dreamweaver appelle lors de son démarrage.
Arguments
char *name, JSNative call, unsigned int nargs
•
•
•
name
est le nom de la fonction tel qu'il apparaît dans JavaScript.
call est un pointeur vers une fonction C. La fonction doit accepter les mêmes
arguments que readContentsOfFile et renvoyer une valeur JSBool indiquant
le succès ou l'échec de l'exécution de la fonction.
nargs
est le nombre d'arguments que la fonction doit recevoir.
Valeurs renvoyées
Valeur booléenne indiquant le succès (JS_TRUE) ou l'échec (JS_FALSE) de
l'exécution de la fonction.
char *JS_ValueToString()
Description
Extrait un argument de fonction à partir d'un jsval, le convertit en chaîne (si
possible) et renvoie la valeur convertie à l'appelant.
Arguments
JSContext *cx, jsval v, unsigned int *pLength
•
•
•
cx
v
est le pointeur JSContext opaque transmis à la fonction JavaScript.
est le jsval à partir duquel la chaîne sera extraite.
est un pointeur vers un nombre entier qui n'est pas signé. Cette
fonction définit pour *plength une valeur égale à la longueur de la chaîne en
octets.
pLength
Valeurs renvoyées
Un pointeur vers une chaîne en cas de succès ou null en cas d'échec.
JSBool JS_ValueToInteger()
Description
Extrait un argument de fonction à partir d'un jsval, le convertit en nombre
entier (si possible) et renvoie la valeur convertie à l'appelant.
324
Chapitre 25
Arguments
JSContext *cx, jsval v, long *lp
•
•
•
cx
v
est le pointeur JSContext opaque transmis à la fonction JavaScript.
est le jsval à partir duquel la chaîne sera extraite.
est un pointeur vers un nombre entier de 4 octets. Cette fonction stocke la
valeur convertie dans *lp.
lp
Valeurs renvoyées
Valeur booléenne indiquant le succès (JS_TRUE) ou l'échec (JS_FALSE) de
l'exécution de la fonction.
JSBool JS_ValueToDouble()
Description
Extrait un argument de fonction d'un jsval, le convertit en réel double (si
possible) et renvoie la valeur convertie à l'appelant.
Arguments
JSContext *cx, jsval v, double *dp
•
•
•
cx
v
est le pointeur JSContext opaque transmis à la fonction JavaScript.
est le jsval à partir duquel la chaîne sera extraite.
est un pointeur vers un réel double de 8 octets. Cette fonction stocke la
valeur convertie dans *dp.
dp
Valeurs renvoyées
Valeur booléenne indiquant le succès (JS_TRUE) ou l'échec (JS_FALSE) de
l'exécution de la fonction.
JSBool JS_ValueToBoolean()
Description
Extrait un argument de fonction à partir d'un jsval, le convertit en valeur
booléenne (si possible) et renvoie la valeur convertie à l'appelant.
Arguments
JSContext *cx, jsval v, JSBool *bp
•
•
•
cx
v
est le pointeur JSContext opaque transmis à la fonction JavaScript.
est le jsval à partir duquel la chaîne sera extraite.
est un pointeur vers un JSBool. Cette fonction stocke la valeur convertie
dans *bp.
bp
Valeurs renvoyées
Valeur booléenne indiquant le succès (JS_TRUE) ou l'échec (JS_FALSE) de
l'exécution de la fonction.
Extensions C
325
JSBool JS_ValueToObject()
Description
Extrait un argument de fonction à partir d'un jsval, le convertit en objet (si
possible) et renvoie la valeur convertie à l'appelant. Si l'objet correspond à un
tableau, utilisez JS_GetArrayLength() et JS_GetElement() pour lire son
contenu.
Arguments
JSContext *cx, jsval v, JSObject **op
•
•
•
cx
v
est le pointeur JSContext opaque transmis à la fonction JavaScript.
est le jsval à partir duquel la chaîne sera extraite.
est un pointeur vers un (JSObject *). Cette fonction stocke la valeur
convertie dans *op.
op
Valeurs renvoyées
Valeur booléenne indiquant le succès (JS_TRUE) ou l'échec (JS_FALSE) de
l'exécution de la fonction.
JSBool JS_StringToValue()
Description
Stocke la valeur renvoyée d'une chaîne dans un jsval.
Arguments
JSContext *cx, char *bytes, size_t sz, jsval *vp
•
•
cx
est le pointeur JSContext opaque transmis à la fonction JavaScript.
bytes est la chaîne à stocker dans le jsval. La chaîne est copiée de façon à ce
que l'appelant puisse la libérer lorsqu'elle ne sera plus nécessaire. Si la taille de la
chaîne n'est pas spécifiée (voir l'argument sz), alors la chaîne doit se terminer
par un 0.
•
sz
•
vp est un pointeur vers le jsval dans lequel le contenu de la chaîne doit être
copié.
indique la taille de la chaîne en octets. Si sz est égal à 0, la longueur de la
chaîne se terminant par 0 est calculée automatiquement.
Valeurs renvoyées
Valeur booléenne indiquant le succès (JS_TRUE) ou l'échec (JS_FALSE) de
l'exécution de la fonction.
JSBool JS_DoubleToValue()
Description
Stocke la valeur renvoyée d'un nombre à virgule flottante dans un jsval.
326
Chapitre 25
Arguments
JSContext *cx, double dv, jsval *vp
•
•
•
cx
est le pointeur JSContext opaque transmis à la fonction JavaScript.
dv
est un nombre à virgule flottante de 8 octets.
vp est un pointeur vers le jsval dans lequel le contenu du réel double doit être
copié.
Valeurs renvoyées
Valeur booléenne indiquant le succès (JS_TRUE) ou l'échec (JS_FALSE) de
l'exécution de la fonction.
JSVal JS_BooleanToValue()
Description
Stocke la valeur renvoyée d'une valeur booléenne dans un jsval.
Arguments
JSBool bv
Valeurs renvoyées
Un argument JSVal contenant la valeur booléenne transmise.
JSVal JS_IntegerToValue()
Description
Stocke la valeur renvoyée d'un nombre entier dans un jsval.
Arguments
long lv
Valeurs renvoyées
Un argument JSVal contenant le nombre entier transmis.
JSVal JS_ObjectToValue()
Description
Stocke la valeur renvoyée d'un objet dans un jsval. Utilise la fonction JS_
NewArrayObject() pour créer un objet de tableau et utilise JS_SetElement()
pour en définir le contenu.
Arguments
JSObject *obj
Valeurs renvoyées
Un JSVal contenant l'objet transmis.
Extensions C
327
char *JS_ObjectType()
Description
A partir d'une référence d'objet, renvoie une chaîne décrivant le type de l'objet.
Pour les objets de tableau, la valeur renvoyée est Array.
Arguments
JSObject *obj
En principe, cet argument est transmis et converti à l'aide de
JS_ValueToObject().
Valeurs renvoyées
Pointeur vers une chaîne terminée par 0. L'appelant ne doit pas libérer cette chaîne
une fois le traitement terminé.
JSObject *JS_NewArrayObject()
Description
Crée un nouvel objet contenant un tableau d'arguments jsval.
Arguments
JSContext *cx, unsigned int length, jsval *v
•
•
•
cx
est le pointeur JSContext opaque transmis à la fonction JavaScript.
length
correspond au nombre d'éléments que le tableau doit contenir.
v est un pointeur facultatif vers les arguments jsval devant être stockés dans le
tableau. Si la valeur renvoyée est différente de null, v correspond à un tableau
contenant des éléments length. Si la valeur renvoyée est null, le contenu
initial de l'objet de tableau est indéterminé (et il peut être défini à l'aide de
JS_SetElement()).
Valeurs renvoyées
Un pointeur vers un nouvel objet de tableau (array) ou null en cas d'échec de
l'exécution de la fonction.
long JS_GetArrayLength()
Description
A partir d'un pointeur vers un objet de tableau, extrait le nombre d'éléments
contenus dans le tableau.
Arguments
JSContext *cx, JSObject *obj
•
•
328
Chapitre 25
cx
est le pointeur JSContext opaque transmis à la fonction JavaScript.
obj
est une référence à un objet de tableau.
Valeurs renvoyées
Nombre d'éléments contenus dans le tableau ou -1 en cas d'échec de l'exécution
de la fonction.
JSBool JS_GetElement()
Description
Lit un seul élément d'un objet de tableau.
Arguments
JSContext *cx, JSObject *obj, unsigned int index, jsval *v
•
•
•
cx
•
v
est le pointeur JSContext opaque transmis à la fonction JavaScript.
obj
est un pointeur vers un objet de tableau.
est un index des nombres entiers du tableau. Le premier élément est
l'index 0, le dernier élément est l'index (length - 1).
index
est un pointeur vers un jsval dans lequel sera copié le contenu du jsval
figurant dans le tableau.
Valeurs renvoyées
Valeur booléenne indiquant le succès (JS_TRUE) ou l'échec (JS_FALSE) de
l'exécution de la fonction.
JSBool JS_SetElement()
Description
Ecrit un seul élément d'un objet de tableau.
Arguments
JSContext *cx, JSObject *obj, unsigned int index, jsval *v
•
•
•
cx
•
v
est le pointeur JSContext opaque transmis à la fonction JavaScript.
obj
est un pointeur vers un objet de tableau.
est un index des nombres entiers du tableau. Le premier élément est
l'index 0, le dernier élément est l'index (length - 1).
index
est un pointeur vers un jsval dont le contenu doit être copié dans le jsval
du tableau.
Valeurs renvoyées
Valeur booléenne indiquant le succès (JS_TRUE) ou l'échec (JS_FALSE) de
l'exécution de la fonction.
Extensions C
329
JSBool JS_ExecuteScript()
Description
Compile et exécute une chaîne JavaScript. Si le script génère une valeur renvoyée,
elle est renvoyée dans *rval.
Arguments
JSContext *cx, JSObject *obj, char *script, unsigned in sz, jsval
*rval
•
•
cx
est le pointeur JSContext opaque transmis à la fonction JavaScript.
obj est un pointeur vers l'objet dans le contexte duquel le script s'exécute.
Pendant l'exécution du script, le mot clé this désigne cet objet. En général, il
s'agit du pointeur JSObject transmis à la fonction JavaScript.
•
script
•
sz
•
rval est un pointeur vers un jsval unique. La valeur renvoyée pour la
fonction est stockée dans *rval.
est une chaîne contenant le code JavaScript. Si la taille de la chaîne
n'est pas spécifiée (voir l'argument sz), alors la chaîne doit se terminer par
un 0.
indique la taille de la chaîne en octets. Si sz est égal à 0, la longueur de la
chaîne se terminant par 0 est calculée automatiquement.
Valeurs renvoyées
Valeur booléenne indiquant le succès (JS_TRUE) ou l'échec (JS_FALSE) de
l'exécution de la fonction.
JSBool JS_ReportError()
Description
Décrit la cause d'une erreur de script. Appelle cette fonction avant de renvoyer la
valeur JS_FALSE pour expliquer à l'utilisateur les raisons pour lesquelles le script a
échoué (« nombre d’arguments incorrect », par exemple).
Arguments
JSContext *cx, char *error, size_t sz
330
Chapitre 25
•
•
cx
•
sz
est le pointeur JSContext opaque transmis à la fonction JavaScript.
est une chaîne contenant le message d'erreur. La chaîne est copiée de
façon à ce que l'appelant puisse la libérer lorsqu'elle ne sera plus nécessaire. Si la
taille de la chaîne n'est pas spécifiée (voir l'argument sz ci-dessous), alors la
chaîne doit se terminer par un 0.
error
indique la taille de la chaîne en octets. Si sz est égal à 0, la longueur de la
chaîne se terminant par 0 est calculée automatiquement.
Valeurs renvoyées
Valeur booléenne indiquant le succès (JS_TRUE) ou l'échec (JS_FALSE) de
l'exécution de la fonction.
Appel d'une fonction C à partir de JavaScript
Maintenant que vous savez comment les extensions C fonctionnent dans
Dreamweaver et que vous connaissez les types de données et les fonctions sur
lesquels reposent ces extensions, prenons un exemple pour montrer comment
construire une bibliothèque et appeler une fonction.
Cet exercice fait appel à trois fichiers qui se trouvent dans le dossier Extending/
c_files du dossier de l'application Dreamweaver :
• mm_jsapi.h est un fichier d'en-tête contenant les définitions des types de
données et des fonctions décrits dans « API d'extension C », page 322.
• Sample.c est un exemple de fichier de définition de la fonction computeSum().
• Sample.mak est un fichier Make que vous pouvez utiliser pour créer un fichier
de définition Sample.c dans une DLL à l'aide de Microsoft Visual C++ ;
Sample.proj est le fichier équivalent permettant de créer une bibliothèque CFM
à l'aide de Metrowerks CodeWarrior. Si vous utilisez d'autres outils, vous
pouvez créer votre propre fichier Make.
Pour créer la DLL sous Windows :
1
Dans Microsoft Visual C++, choisissez Fichier > Ouvrir un espace de travail,
puis sélectionnez Sample.mak.
2
Choisissez Générer > Tout reconstruire.
Une fois l'opération de génération terminée, le fichier Sample.dll apparaît dans
le dossier contenant Sample.mak (ou dans l'un de ses sous-dossiers).
Pour générer la bibliothèque partagée sur Macintosh :
1
Ouvrez le fichier Sample.proj dans Metrowerks CodeWarrior.
2
Générez le projet pour créer une bibliothèque CFM.
Une fois l'opération de génération terminée, un fichier nommé Sample apparaît
dans le dossier contenant Sample.proj (ou dans l'un de ses sous-dossiers).
Pour appeler la fonction computeSum() à partir de l'objet Insérer barre
horizontale :
1
Dans le dossier Configuration du dossier de l'application Dreamweaver, créez
un dossier appelé JSExtensions.
2
Copiez le fichier Sample.dll (Windows) ou Sample (Macintosh) dans le dossier
JSExtensions.
Extensions C
331
3
Dans un éditeur de texte, ouvrez le fichier horizontal_rule.htm qui se trouve
dans le dossier Configuration/Objects/Common.
4
Ajoutez la ligne alert(Sample.computeSum(2,2)); à la fonction
objectTag() pour qu'elle apparaisse comme suit :
function objectTag() {
// Return the html tag that should be inserted
alert(Sample.computeSum(2,2));
return "<HR>";
}
5
Enregistrez le fichier et redémarrez Dreamweaver.
Pour exécuter la fonction computeSum() :
Choisissez la commande Insertion > Barre horizontale. Une boîte de dialogue
contenant le chiffre 4 (résultat de la somme de 2 plus 2) s'affiche.
332
Chapitre 25
26
CHAPITRE 26
API JavaScript de Dreamweaver
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les objets, les propriétés et les méthodes décrites à la section « Modèle objet de
document (DOM) et JavaScript », page 19, constituent une base solide pour
étendre ou personnaliser Dreamweaver. Toutefois, un certain nombre d'opérations
propres aux environnements de création de pages web ne peuvent pas être
effectuées à l'aide des méthodes disponibles dans les DOM de Netscape, de
Microsoft ou du W3C. La sélection, qui fait partie intégrante de l'expérience de
l'utilisateur dans ce type d'environnement, en est l'exemple le plus flagrant : le
DOM niveau 1 et les DOM du navigateur ne traitent pas la sélection car les
utilisateurs ne peuvent pas sélectionner ni modifier le contenu (excepté dans les
champs de formulaire) dans une fenêtre de navigateur.
Pour permettre la création d'extensions Dreamweaver utiles et la personnalisation
des menus Dreamweaver, Dreamweaver propose aux développeurs plus de
400 fonctions JavaScript en complément des méthodes de DOM standard, ce qui
représente une amélioration considérable par rapport à Dreamweaver 3. En effet,
il est à présent possible de réaliser en JavaScript presque toutes les opérations que
l'utilisateur peut effectuer dans Dreamweaver à l'aide des menus, de panneaux
flottants, des inspecteurs et des fenêtres de site ou de document.
333
Description des objets de l'API
Toutes les fonctions personnalisées qui suivent sont des méthodes de l'objet
dreamweaver, de l'objet site ou de l'objet représentant le DOM d'un document.
Les méthodes appartenant à la dernière catégorie sont répertoriées ici sous la
forme dom.functionName(). Pour obtenir les résultats souhaités, vous devez
commencer par obtenir le DOM d'un document, puis appeler les fonctions en
tant que méthodes de ce DOM. En effet, il ne suffit pas de taper
dom.functionName(). Exemple :
var currentDOM = dreamweaver.getDocumentDOM('document');
currentDOM.setSelection(100,200);
currentDOM.clipCopy();
var otherDOM = dreamweaver.openDocument(dreamweaver.¬
getSiteRoot() + "html/foo.htm");
otherDOM.endOfDocument();
otherDOM.clipPaste();
Sauf indication contraire, les méthodes de l'objet dom ne peuvent être appliquées
qu'à un document ouvert dans Dreamweaver ; si vous exécutez une fonction sur
un document qui n'est pas ouvert, Dreamweaver affiche un message d’erreur.
Lorsqu'une méthode de l'objet dom ne peut être appliquée qu'au document actif
ou à des documents fermés, cette caractéristique est indiquée dans sa description.
Dans Dreamweaver 4, dw est synonyme de dreamweaver. Par conséquent, toutes
les méthodes de l'objet dreamweaver peuvent être désignées par la notation
suivante : dw.functionName(). Cette notation est utilisée dans tous les exemples
de code apparaissant dans ce chapitre et dans les autres chapitres.
A propos des activateurs
Dans Dreamweaver, chaque élément de menu est implémenté sous forme de
fonction JavaScript ; il est donc nécessaire de disposer d'un mécanisme JavaScript
permettant de déterminer quels éléments de menu doivent être activés. Ce
mécanisme consiste en une série de fonctions appelées activateurs.
Le rôle d'un activateur est de déterminer si la principale fonction qui lui est
associée peut être exécutée dans le contexte en cours. Par exemple,
site.canGet() détermine si Dreamweaver peut exécuter une opération Acquérir
(site.get()).
Chaque spécification de fonction de l'API indique l'activateur associé à la
fonction, le cas échéant (certaines fonctions ne possèdent pas d'activateur, soit
parce que l'élément de menu qui leur est associé est toujours activé, soit parce
qu'elles ne sont pas en rapport avec les menus). Pour plus d'informations sur les
activateurs, voir la section « Activateurs », page 569.
334
Chapitre 26
Organisation de ce chapitre
Les méthodes de l'API JavaScript de Dreamweaver sont regroupées par
fonctionnalité, puis classées par ordre alphabétique, d'abord par nom d'objet, puis
par nom de méthode. Les méthodes relatives à la création, l'application et la
suppression de styles CSS, par exemple, sont regroupées dans la catégorie
Fonctions relatives aux styles CSS ; à l'intérieur de cette catégorie, les méthodes de
l'objet dom sont répertoriées en premier, suivies des méthodes de l'objet
dreamweaver. Une liste des anciennes fonctions et des activateurs est donnée à la
fin de ce chapitre. Les arguments facultatifs sont indiqués entre accolades ({ }).
Obtention de données de documents par
l'intermédiaire du DOM
Presque toutes les fonctions relatives à la modification d'un DOM exigent que
vous indiquiez tout d'abord quel DOM vous souhaitez modifier. Vous utilisez
pour cela la fonction dreamweaver.getDocumentDOM(), qui est la plus
importante de toutes les fonctions de l'API.
dreamweaver.getDocumentDOM()
Disponibilité
Dreamweaver 2.0
Description
Permet d'accéder à l'arborescence des objets du document spécifié. Une fois
celle-ci renvoyée à l'appelant, ce dernier peut la modifier pour changer le contenu
du document.
Arguments
sourceDoc
sourceDoc doit être "document", "parent", "parent.frames[number]",
"parent.frames['frameName']" ou une URL. document désigne le document
actif contenant la sélection en cours. parent désigne le jeu de cadres parent (si le
document sélectionné se trouve dans un cadre) et parent.frames[number] et
parent.frames['frameName'] désignent un document figurant dans un cadre
spécifique du jeu de cadres contenant le document en cours. Si l'argument est une
URL relative, celle-ci est relative au fichier d'extension. Dans Dreamweaver 4,
l'argument sourceDoc, s'il n'est pas défini, prend par défaut la valeur document.
Remarque : si l'argument a pour valeur "document", l'appelant doit être la fonction
applyBehavior(), deleteBehavior(), objectTag() ou toute fonction d'un fichier
de commande ou d'inspecteur de propriétés pour pouvoir modifier le document.
Valeurs renvoyées
Objet document JavaScript à la racine de l'arborescence.
API JavaScript de Dreamweaver
335
Activateur
Aucun.
Exemple
Le segment de code suivant utilise la fonction dreamweaver.getDocumentDOM()
pour accéder à la couleur d'arrière-plan du document en cours :
var theDOM = dreamweaver.getDocumentDOM("document");
theDOM.body.bgcolor = "#000000";
Fonctions du panneau Actifs
Les fonctions du panneau Actifs (programmé dans l'API comme « palette des
actifs ») vous permettent de gérer et d'utiliser les éléments contenus dans le
panneau Actifs (ces éléments peuvent être des modèles, des bibliothèques, des
images, des animations Shockwave et Flash, des URL, des couleurs, des
animations et des scripts).
dreamweaver.assetPalette.addToFavoritesFromDocument()
Disponibilité
Dreamweaver 4.0
Description
Ajoute l'élément sélectionné dans la fenêtre de document à la liste des favoris.
Cette fonction prend uniquement en charge les images, les animations, les fichiers
Shockwave, les fichiers Flash, les couleurs de police et les URL.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
dreamweaver.assetPalette.addToFavoritesFromSiteAssets()
Disponibilité
Dreamweaver 4.0
Description
Ajoute les éléments sélectionnés dans la liste des sites à la liste des favoris et donne
à chaque élément un surnom. Cette fonction ne supprime pas les éléments de la
liste des sites.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
336
Chapitre 26
dreamweaver.assetPalette.addToFavoritesFromSiteWindow
()
Disponibilité
Dreamweaver 4.0
Description
Ajoute les éléments sélectionnés dans la fenêtre Site ou dans la carte du site à la
liste des favoris. Cette fonction prend uniquement en charge les images, les
animations, les scripts, les fichiers Shockwave, les fichiers Flash et les URL (dans le
cas de la carte du site). Si d'autres dossiers ou fichiers sont sélectionnés, ils sont
ignorés.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
dreamweaver.assetPalette.copyToSite()
Disponibilité
Dreamweaver 4.0
Description
Copie les éléments sélectionnés dans un autre site et les place dans la liste des
favoris de ce site. Si ces éléments sont des fichiers (autres que des couleurs ou des
URL), le fichier réel est copié dans ce site.
Arguments
targetSite
targetSite est le nom
site.getSites().
du site de destination, tel qu'il est renvoyé par l'appel
Valeurs renvoyées
Aucune.
dreamweaver.assetPalette.edit()
Disponibilité
Dreamweaver 4.0
Description
Modifie les éléments sélectionnés à l'aide de l'éditeur externe principal ou de la
commande d'édition personnalisée. Pour les couleurs, le sélecteur de couleur
s'affiche. S'il s'agit d'URL, une boîte de dialogue invite l'utilisateur à entrer une
URL et un surnom. Cette fonction n'est pas disponible pour la liste de couleurs et
les URL du site.
API JavaScript de Dreamweaver
337
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dreamweaver.assetPalette.canEdit()
dreamweaver.assetPalette.getSelectedCategory()
Disponibilité
Dreamweaver 4.0
Description
Renvoie la catégorie sélectionnée, qui peut être l'une des suivantes : "templates",
"library", "images", "movies", "shockwave", "flash", "scripts",
"colors" ou "urls".
Arguments
Aucun.
Valeurs renvoyées
La catégorie sélectionnée.
dreamweaver.assetPalette.getSelectedItems()
Disponibilité
Dreamweaver 4.0
Description
Renvoie un tableau des éléments sélectionnés dans le panneau Actifs, soit dans la
liste des sites, soit dans la liste des favoris.
Arguments
Aucun.
Valeurs renvoyées
Un tableau de trois chaînes pour chaque élément sélectionné :
•
name est le nom, le nom de fichier ou le surnom tel qu'il apparaît dans le
panneau.
•
value
•
type peut être soit "folder", soit l'une des catégories suivantes :
"templates", "library", "images", "movies", "shockwave", "flash",
"scripts", "colors" ou "urls".
est le chemin entier, l'URL complète ou la valeur chromatique, selon
l'élément sélectionné.
Remarque : si aucun élément n'est sélectionné dans le panneau Actifs, cette fonction
renvoie un tableau contenant une seule chaîne vide.
338
Chapitre 26
Exemple
Si « URL » est la catégorie et que le dossier « Mondossier » et l'URL
« MonURLfavorite » sont sélectionnés dans la liste des favoris, la fonction
renvoie :
items[0]
items[1]
items[2]
items[3]
items[4]
items[5]
=
=
=
=
=
=
"Mondossier"
" "
"folder"
"MonURLfavorite"
"http://www.MonURLfavorite.com"
"urls"
dreamweaver.assetPalette.getSelectedView()
Disponibilité
Dreamweaver 4.0
Description
Indique quelle liste est affichée dans le panneau Actifs.
Arguments
Aucun.
Valeurs renvoyées
Renvoie soit "site", soit "favorites".
dreamweaver.assetPalette.insertOrApply()
Disponibilité
Dreamweaver 4.0
Description
Insère les éléments sélectionnés ou applique l'élément à la sélection en cours.
Applique des modèles, des couleurs et des URL à la sélection et insère des URL et
d'autres éléments au point d'insertion. Si aucun document n'est ouvert, cette
fonction n'est pas disponible.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dreamweaver.assetPalette.canEdit()
dreamweaver.assetPalette.locateInSite()
Disponibilité
Dreamweaver 4.0
API JavaScript de Dreamweaver
339
Description
Sélectionne les fichiers associés aux éléments sélectionnés du côté local de la
fenêtre Site. Cette fonction n'est pas applicable aux couleurs ni aux URL. Elle est
disponible dans la liste des sites et la liste des favoris. Si un dossier est sélectionné
dans la liste des favoris, il est ignoré.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
dreamweaver.assetPalette.newAsset()
Disponibilité
Dreamweaver 4.0
Description
Crée un nouvel élément correspondant à la catégorie en cours dans la liste des
favoris. Dans le cas des bibliothèques et des modèles, l'élément créé est un
nouveau fichier de bibliothèque ou de modèle vide auquel l'utilisateur peut
immédiatement attribuer un nom. Pour les couleurs, le sélecteur de couleur
s'affiche. S'il s'agit d'URL, une boîte de dialogue invite l'utilisateur à entrer une
URL et un surnom. Cette fonction n'est pas disponible pour les images, les
animations, les fichiers Shockwave, les fichiers Flash ni les scripts.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
dreamweaver.assetPalette.newFolder()
Disponibilité
Dreamweaver 4.0
Description
Crée un nouveau dossier ayant un nom par défaut (sans titre) dans la catégorie en
cours et place une zone d'édition autour du nom. Cette fonction est uniquement
disponible dans la liste des favoris.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
340
Chapitre 26
dreamweaver.assetPalette.recreateLibraryFromDocument()
Disponibilité
Dreamweaver 4.0
Description
Remplace l'ancienne fonction libraryPalette,
recreateLibraryFromDocument(). Crée dans le document en cours un fichier
LBI correspondant à l'occurrence sélectionnée d'un élément de bibliothèque.
Revient à cliquer sur Créer à nouveau dans l'inspecteur de propriétés.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
dreamweaver.assetPalette.refreshSiteAssets()
Disponibilité
Dreamweaver 4.0
Description
Recherche les sites, affiche la liste des sites et y ajoute des données.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
dreamweaver.assetPalette.removeFromFavorites()
Disponibilité
Dreamweaver 4.0
Description
Supprime les éléments sélectionnés de la liste des favoris. Cette fonction ne
supprime pas les fichiers du disque, sauf dans le cas d'une bibliothèque ou d'un
modèle où l'utilisateur est invité à confirmer l'opération avant que le fichier ne soit
supprimé. Cette fonction est uniquement disponible dans la liste des favoris ou si
la catégorie est Library ou Templates.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
API JavaScript de Dreamweaver
341
dreamweaver.assetPalette.renameNickname()
Disponibilité
Dreamweaver 4.0
Description
Affiche une zone d'édition autour du nom du dossier ou du surnom du fichier
pour permettre de le modifier. Cette fonction est uniquement disponible dans la
liste des favoris ou pour la catégorie Library ou Template.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
dreamweaver.assetPalette.setSelectedCategory()
Disponibilité
Dreamweaver 4.0
Description
Affiche une catégorie différente.
Arguments
categoryType
categoryType peut être l'une des catégories suivantes : "templates",
"library", "images", "movies", "shockwave", "flash", "scripts",
"colors" ou "urls".
Valeurs renvoyées
Aucune.
dreamweaver.assetPalette.setSelectedView()
Disponibilité
Dreamweaver 4.0
Description
Passe de la liste des sites à la liste des favoris et vice versa.
Arguments
viewType
viewType
peut être site ou favorites.
Valeurs renvoyées
Aucune.
342
Chapitre 26
dreamweaver.referencePalette.getFontSize()
Disponibilité
Dreamweaver 4.0
Description
Renvoie la taille de police actuelle de la zone d'affichage du panneau Référence.
Arguments
Aucun.
Valeurs renvoyées
Les tailles de police relatives exprimées par les valeurs small, medium ou large.
dreamweaver.referencePalette.setFontSize()
Disponibilité
Dreamweaver 4.0
Description
Modifie la taille de police affichée dans le panneau Référence.
Arguments
fontSize
fontSize
peut être l'une des tailles relatives suivantes : small, medium ou large.
Valeurs renvoyées
Aucune.
Fonctions de comportements
Ces fonctions vous permettent d'associer des comportements à un objet ou de les
en dissocier, d'identifier les comportements associés à un objet, d'obtenir des
informations sur un objet auquel est associé un comportement, etc. Les méthodes
de l'objet dreamweaver.behaviorInspector contrôlent ou agissent sur la
sélection dans le panneau Comportements et non dans le document en cours.
dom.addBehavior()
Disponibilité
Dreamweaver 3.0
Description
Associe un nouveau couple événement/action (comportement) à l'élément
sélectionné. Cette fonction n'est valide que pour le document actif.
Arguments
event, action, {eventBasedIndex}
API JavaScript de Dreamweaver
343
•
event
•
action
•
eventBasedIndex
eventBasedIndex
est le gestionnaire d'événements JavaScript à utiliser pour associer le
comportement à l'élément (par exemple, onClick, onMouseOver ou onLoad).
est l'appel de fonction qui serait renvoyé par applyBehavior() si
l'action était ajoutée à l'aide du panneau Comportements ; par exemple,
"MM_popupMsg('Hello World')".
est la position à laquelle cette action doit être ajoutée.
est un index de référence zéro ; par conséquent, s'il existe
déjà deux actions associées à l'événement en question et que vous spécifiez
eventBasedIndex comme étant l'action 1, elle sera insérée et exécutée entre les
deux autres. Si vous ne définissez pas cet argument, l'action est insérée à la suite
des actions déjà associées à l'événement spécifié.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.getBehavior()
Disponibilité
Dreamweaver 3.0
Description
Obtient l'action qui se trouve à la position indiquée dans l'événement spécifié.
Cette fonction agit sur la sélection en cours et n'est valide que pour le document
actif.
Arguments
event, {eventBasedIndex}
•
event
•
eventBasedIndex
est le gestionnaire d'événements JavaScript à utiliser pour associer le
comportement à l'élément (par exemple, onClick, onMouseOver ou onLoad).
est la position de l'action à obtenir. Par exemple, si deux
actions sont associées à l'événement spécifié, 0 est la première et 1 la seconde. Si
cet argument n'est pas défini, toutes les actions associées à l'événement spécifié
sont renvoyées.
Valeurs renvoyées
Chaîne représentant l'appel de fonction (par exemple
"MM_swapImage('document.Image1','document.Image1','foo.gif','#933
292969950')") ou tableau de chaînes, si vous n'avez pas défini l'argument
eventBasedIndex.
Activateur
Aucun.
344
Chapitre 26
dom.reapplyBehaviors()
Disponibilité
Dreamweaver 3.0
Description
Vérifie si les fonctions associées aux appels de comportement sur le nœud spécifié
sont présentes dans la section HEAD du document, et dans le cas contraire, les y
insère.
Arguments
{elementNode}
est un nœud d'élément du document en cours. Si cet argument
n'est pas défini, Dreamweaver recherche les appels de comportement orphelins sur
tous les nœuds d'élément du document
elementNode
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.removeBehavior()
Disponibilité
Dreamweaver 3.0
Description
Supprime l'action qui se trouve à la position indiquée dans l'événement spécifié.
Cette fonction agit sur la sélection en cours et n'est valide que pour le document
actif.
Arguments
event, {eventBasedIndex}
•
event
•
eventBasedIndex
est le gestionnaire d'événements JavaScript à utiliser pour associer le
comportement à l'élément (par exemple, onClick, onMouseOver ou onLoad).
Si cet argument n'est pas défini, toutes les actions sont supprimées de l'élément.
est la position de l'action à supprimer. Par exemple, si deux
actions sont associées à l'événement spécifié, 0 est la première et 1 la seconde. Si
cet argument n'est pas défini, toutes les actions associées à l'événement
sélectionné sont supprimées.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
API JavaScript de Dreamweaver
345
dreamweaver.getBehaviorElement()
Disponibilité
Dreamweaver 2.0
Description
Obtient l'objet DOM correspondant à la balise à laquelle le comportement est
appliqué. Cette fonction ne s'applique qu'aux fichiers d'action de comportement.
Arguments
Aucun.
Valeurs renvoyées
Objet DOM ou null. La valeur null est renvoyée dans les cas suivants :
• lorsque le script en cours d'exécution n'est pas actif dans le contexte du
panneau Comportements ;
• lorsque le panneau Comportements est utilisé pour modifier un comportement
dans un scénario ;
• lorsque le script en cours d'exécution est appelé par la fonction
dreamweaver.popupAction()
;
• lorsque le panneau Comportements associe un événement à un empaqueteur
de lien et que ce dernier n'existe pas ;
• lorsque cette fonction se trouve en dehors d'un fichier d'action.
Activateur
Aucun.
346
Chapitre 26
Exemple
La fonction dreamweaver.getBehaviorElement() peut être utilisée de la même
manière que la fonction dreamweaver.getBehaviorTag() pour déterminer si
l'action sélectionnée est adaptée à la balise HTML sélectionnée, mais elle vous
permet en outre d'accéder à des informations complémentaires sur la balise et ses
attributs. Par exemple, si vous créez une action qui ne peut être appliquée qu'à un
lien hypertexte (A HREF) ne renvoyant pas à un autre cadre ou une autre fenêtre,
utilisez la fonction getBehaviorElement() dans la fonction qui initialise
l'interface utilisateur de la boîte de dialogue des paramètres.
function initializeUI(){
var theTag = dreamweaver.getBehaviorElement();
var CANBEAPPLIED = (theTag.tagName == "A" && ¬
theTag.getAttribute("HREF") != null && ¬
theTag.getAttribute("TARGET") == null);
if (CANBEAPPLIED) {
// display the action UI
} else{
// display a helpful message that tells the user
// that this action can only be applied to a
// hyperlink without an explicit target]
}
}
dreamweaver.getBehaviorTag()
Disponibilité
Dreamweaver1.2
Description
Obtient la source de la balise à laquelle le comportement est appliqué. Cette
fonction ne s'applique qu'aux fichiers d'action.
Arguments
Aucun.
Valeurs renvoyées
Chaîne représentant la source de la balise. Il s'agit de la chaîne transmise à la
fonction canAcceptBehavior() sous forme d'argument (HTMLelement). Si cette
fonction apparaît en dehors d'un fichier d'action, la valeur renvoyée est une chaîne
vide.
Activateur
Aucun.
API JavaScript de Dreamweaver
347
Exemple
Si vous créez une action qui ne peut être appliquée qu'à un lien hypertexte
(A HREF), vous pouvez utiliser la fonction getBehaviorTag() dans la fonction
qui initialise l'interface utilisateur de la boîte de dialogue des paramètres.
function initializeUI(){
var theTag = dreamweaver.getBehaviorTag().toUpperCase();
var CANBEAPPLIED = (theTag.indexOf('HREF') != -1));
if (CANBEAPPLIED) {
// display the action UI
} else{
// display a helpful message that tells the user
// that this action can only be applied to a
// hyperlink
}
}
dreamweaver.popupAction()
Disponibilité
Dreamweaver 2.0
Description
Propose à l'utilisateur une boîte de dialogue de paramètres correspondant à
l'action de comportement spécifiée. Pour l'utilisateur, cela revient à sélectionner
l'action dans le menu déroulant des actions du panneau Comportements. Cette
fonction permet aux fichiers d'extension autres que des actions d'associer des
comportements aux objets dans le document de l'utilisateur. L'utilisateur ne peut
effectuer aucune autre modification tant qu'il n'a pas fermé la boîte de dialogue.
Remarque : cette fonction ne peut être appelée qu'à partir de la fonction objectTag()
ou d'un script de fichier de commande ou d'inspecteur de propriétés.
Arguments
actionName, {funcCall}
•
actionName
•
funcCall est une chaîne contenant un appel de fonction pour l'action définie
dans actionName ("MM_playTimeline(...)", par exemple). Cet argument,
s'il est défini, est fourni par la fonction applyBehavior() du fichier d'action.
correspond au nom d'un fichier du dossier Configuration/
Behaviors/Actions contenant une action de comportement JavaScript
("Timeline/Play Timeline.htm", par exemple).
Valeurs renvoyées
Appel de fonction de l'action de comportement. Lorsque l'utilisateur clique sur OK
dans la boîte de dialogue des paramètres, le comportement est ajouté au document
en cours (les fonctions appropriées sont ajoutées entre les balises HEAD du
document, du code HTML peut être ajouté au début de la balise BODY et
d'autres modifications peuvent être effectuées dans le document). L'appel de
fonction ("MM_playTimeline(...)", par exemple) n'est pas ajouté au
document ; il devient la valeur renvoyée par cette fonction.
348
Chapitre 26
Activateur
Aucun.
dreamweaver.behaviorInspector.getBehaviorAt()
Disponibilité
Dreamweaver 3.0
Description
Obtient le couple événement/action (comportement) qui se trouve à la position
indiquée dans le panneau Comportements.
Arguments
positionIndex
Valeurs renvoyées
Tableau constitué de deux éléments :
• un gestionnaire d'événements ;
• un appel de fonction ou une instruction JavaScript.
Activateur
Aucun.
Exemple
Du fait que positionIndex est un index de base zéro, si le panneau
Comportements affiche la liste illustrée ci-après, un appel à la fonction
dw.behaviorInspector.getBehaviorAt(2) renvoie un tableau constitué de
deux chaînes : "onMouseOver" et
"MM_changeProp('document.moon','document.moon','src','sun.gif',
'MG')".
dreamweaver.behaviorInspector.getBehaviorCount()
Disponibilité
Dreamweaver 3.0
Description
Compte le nombre d'actions associées à l'élément actuellement sélectionné à l'aide
de gestionnaires d'événements.
Arguments
Aucun.
Valeurs renvoyées
Nombre entier représentant le nombre d'actions associées à l'élément. Ce nombre
est équivalent au nombre d'actions visibles dans le panneau Comportements et
comprend les actions de comportement Dreamweaver et le code JavaScript
personnalisé.
API JavaScript de Dreamweaver
349
Activateur
Aucun.
Exemple
Un appel à la fonction dw.behaviorInspector.getBehaviorCount() pour le
lien sélectionné <A HREF="javascript:setCookie()"
onClick="MM_popupMsg('A cookie has been
set.');parent.rightframe.location.href='aftercookie.html'">
renverrait le nombre 2.
dreamweaver.behaviorInspector.getSelectedBehavior()
Disponibilité
Dreamweaver 3.0
Description
Obtient la position de l'action sélectionnée dans le panneau Comportements.
Arguments
Aucun.
Valeurs renvoyées
Un nombre entier représentant la position de l'action sélectionnée dans le
panneau Comportements, ou -1 si aucune action n'est sélectionnée.
Activateur
Aucun.
Exemple
Si la première action du panneau Comportements est sélectionnée, comme le
montre l'illustration ci-après, un appel à la fonction
dw.behaviorInspector.getSelectedBehavior() renvoie le nombre 0.
dreamweaver.behaviorInspector.moveBehaviorDown()
Disponibilité
Dreamweaver 3.0
350
Chapitre 26
Description
Déplace une action de comportement vers le bas, à l'intérieur d'une séquence, en
modifiant son ordre d'exécution au sein d'un événement.
Arguments
positionIndex
est la position de l'action dans le panneau Comportements. La
première action de la liste est à la position 0.
positionIndex
Valeurs renvoyées
Aucune.
Activateur
Aucun.
Exemple
En supposant que le panneau Comportements soit configuré comme dans
l'illustration ci-après, l'appel de la fonction
dw.behaviorInspector.moveBehaviorDown(2) aura pour effet d'intervertir les
positions des actions Script personnalisé et Changer la propriété au sein de
l'événement onMouseOver. Pour toute autre position, la fonction
dw.behaviorInspector.moveBehaviorDown() n'aurait aucun effet car un seul
comportement est associé aux événements onClick et onMouseOut et le
comportement figurant à la position 3 se trouve déjà à la fin du groupe
onMouseOver.
dreamweaver.behaviorInspector.moveBehaviorUp()
Disponibilité
Dreamweaver 3.0
Description
Déplace un comportement vers le haut, à l'intérieur d'une séquence, en modifiant
son ordre d'exécution au sein d'un événement.
Arguments
positionIndex
est la position de l'action dans le panneau Comportements. La
première action de la liste est à la position 0.
positionIndex
API JavaScript de Dreamweaver
351
Valeurs renvoyées
Aucune.
Activateur
Aucun.
Exemple
En supposant que le panneau Comportements soit configuré comme dans
l'illustration ci-après, l'appel à la fonction
dw.behaviorInspector.moveBehaviorUp(3) aura pour effet d'intervertir les
positions des actions Script personnalisé et Changer la propriété au sein de
l'événement onMouseOver. Pour toute autre position, la fonction
dw.behaviorInspector.moveBehaviorUp() n'aurait aucun effet car un seul
comportement est associé aux événements onClick et onMouseOut et le
comportement figurant à la position 2 se trouve déjà au début du groupe
onMouseOver.
dreamweaver.behaviorInspector.setSelectedBehavior()
Disponibilité
Dreamweaver 3.0
Description
Sélectionne l'action qui se trouve à la position indiquée dans le panneau
Comportements.
Arguments
positionIndex
est la position de l'action dans le panneau Comportements. La
première action de la liste est à la position 0. Pour désélectionner toutes les
actions, spécifiez l'index de position (positionIndex) sur –1. Spécifier une
position à laquelle ne correspond aucune action revient à spécifier –1.
positionIndex
Valeurs renvoyées
Aucune.
Activateur
Aucun.
352
Chapitre 26
Exemple
En supposant que le panneau Comportements soit configuré comme dans
l'exemple ci-après, l'appel de la fonction dw.behaviorInspector.setSelection
(3) sélectionnera l'action Changer la propriété associée à l'événement
onMouseOut.
Fonctions relatives au Presse-papiers
Ces fonctions permettent de copier, de couper et de coller des informations à
l'aide du Presse-papiers. Sur Macintosh, certaines fonctions du Presse-papiers
peuvent également être appliquées sur les champs modifiables des boîtes de
dialogue et des panneaux flottants. Dans ce cas, elles peuvent être implémentées
en tant que méthodes de l'objet dreamweaver ou en tant que méthodes de l'objet
dom. La version dreamweaver de la fonction agit sur la sélection dans la fenêtre
active, qu'il s'agisse de la fenêtre de document en cours, de la fenêtre de
l'inspecteur de code ou de la fenêtre Site. Sur Macintosh, la fonction peut
également être appliquée à la sélection dans le champ modifiable actif. La version
dom de la fonction agit toujours sur la sélection dans le document spécifié.
dom.clipCopy()
Disponibilité
Dreamweaver 3.0
Description
Copie la sélection dans le Presse-papiers avec toutes les balises HTML
correspondantes.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
API JavaScript de Dreamweaver
353
dom.clipCopyText()
Disponibilité
Dreamweaver 3.0
Description
Copie le texte sélectionné dans le Presse-papiers sans les balises HTML
correspondantes.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dom.canClipCopyText()
dom.clipCut()
Disponibilité
Dreamweaver 3.0
Description
Coupe la sélection et la place dans le Presse-papiers, avec toutes les balises HTML
correspondantes.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.clipPaste()
Disponibilité
Dreamweaver 3.0
Description
Colle le contenu du Presse-papiers dans le document en cours, au point
d'insertion en cours ou par dessus la sélection en cours. Si le Presse-papiers
contient des balises HTML, celles-ci sont interprétées comme telles.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
354
Chapitre 26
Activateur
dom.canClipPaste()
Exemple
Si le Presse-papiers contient ce qui suit : <code>return true;</code>, un appel
à la fonction dw.getDocumentDOM().clipPaste() produira le résultat suivant :
dom.clipPasteText()
Disponibilité
Dreamweaver 3.0
Description
Colle le contenu du Presse-papiers dans le document en cours, au point
d'insertion en cours ou par dessus la sélection en cours et remplace les sauts de
ligne éventuels par des balises BR. Si le Presse-papiers contient des balises HTML,
celles-ci ne sont pas interprétées et les séparateurs de balises (< >) sont remplacés
par &lt; et &gt; respectivement.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dom.canClipPasteText()
API JavaScript de Dreamweaver
355
Exemple
Si le Presse-papiers contient ce qui suit : <code>return true;</code>, un appel
à la fonction dw.getDocumentDOM().clipPasteText() produira le résultat
suivant :
dreamweaver.clipCopy()
Disponibilité
Dreamweaver 3.0
Description
Copie la sélection en cours de la fenêtre active (qu'il s'agisse de la fenêtre de
document, d'une boîte de dialogue, d'un panneau flottant ou d'un volet de la
fenêtre Site) dans le Presse-papiers.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dreamweaver.canClipCopy()
dreamweaver.clipCut()
Disponibilité
Dreamweaver 3.0
Description
Supprime la sélection en cours de la fenêtre active (qu'il s'agisse de la fenêtre de
document, d'une boîte de dialogue, d'un panneau flottant ou d'un volet de la
fenêtre Site) et la place dans le Presse-papiers.
Arguments
Aucun.
356
Chapitre 26
Valeurs renvoyées
Aucune.
Activateur
dreamweaver.canClipCut()
dreamweaver.clipPaste()
Disponibilité
Dreamweaver 3.0
Description
Colle le contenu du Presse-papiers dans la fenêtre de document, la boîte de
dialogue, le panneau flottant ou le volet de la fenêtre Site en cours.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dreamweaver.canClipPaste()
dreamweaver.getClipboardText()
Disponibilité
Dreamweaver 3.0
Description
Obtient tout le texte mémorisé dans le Presse-papiers.
Arguments
[bAsText]
est une valeur booléenne qui spécifie si le contenu du Presse-Papiers
est extrait sous forme de texte. Si bAsText a la valeur true, le contenu du Pressepapiers est extrait sous forme de texte. Si bAsText a la valeur false, le
comportement est le même que dans Dreamweaver 3. Par défaut, cet argument
renvoie la valeur false.
[bAsText]
Valeurs renvoyées
Chaîne représentant le contenu du Presse-papiers (il peut s'agir de balises HTML)
ou rien, si le Presse-papiers est vide.
Activateur
Aucun.
Exemple
Si la fonction dw.getClipboardText() renvoie "text <b>bold</b>
alors dw.getClipboardText(true) renvoie "text bold text".
text",
API JavaScript de Dreamweaver
357
Fonctions relatives aux commandes
Ces fonctions permettent d'exploiter au mieux les fichiers figurant dans le dossier
Configuration/Commands. Elles permettent de gérer le menu Commandes et
d'appeler des commandes à partir d'autres types de fichiers d'extension.
dreamweaver.editCommandList()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue Modifier la liste de commandes.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.runCommand()
Disponibilité
Dreamweaver 3.0
Description
Exécute la commande spécifiée. Pour l'utilisateur, cela revient à choisir la
commande dans un menu ; si une boîte de dialogue est associée à la commande,
elle s'affiche (et le script de commandes empêche toute autre modification jusqu'à
ce que l'utilisateur ait fermé la boîte de dialogue). Cette fonction permet d'appeler
une commande à partir d'un autre fichier d'extension.
Remarque : cette fonction ne peut être appelée qu'à partir de la fonction objectTag()
ou d'un script de fichier de commande, d'inspecteur de propriétés ou de menu.
Arguments
commandFile, {commandArg1}, {commandArg2},...{commandArgN}
•
commandFile
est le nom d'un fichier contenu dans le dossier Configuration/
Commands.
• Les arguments suivants sont transmis à commandFile sous forme d'arguments.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
358
Chapitre 26
Exemple
Vous pouvez créer un inspecteur de propriétés personnalisé pour les tableaux qui
permettra à l'utilisateur d'accéder à la commande Formater le tableau à l'aide d'un
bouton de l'inspecteur. Pour ce faire, appelez la fonction suivante à partir du
gestionnaire d'événements onClick de ce bouton :
function callFormatTable(){
dw.runCommand('Format Table.htm');
}
Fonctions relatives aux conversions
Ces fonctions permettent de convertir des tableaux en calques, des calques en
tableaux et des feuilles de style en cascade (CSS) en balises HTML. Chacune de
ces fonctions se comporte exactement comme une commande de conversion du
menu Fichier ou Modifier.
dom.convertLayersToTable()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue Convertir les calques en tableau.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dom.canConvertLayersToTable()
dom.convertTablesToLayers()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue Convertir les tableaux en calques.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dom.canConvertTablesToLayers()
API JavaScript de Dreamweaver
359
dom.convertTo30()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue Convertir au format compatible avec les
navigateurs 3.0.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
Fonctions relatives aux styles CSS
Ces fonctions permettent d'appliquer, de retirer, de créer et de supprimer des
styles CCS. Les méthodes de l'objet dreamweaver.cssStylePalette contrôlent
ou agissent sur la sélection dans le panneau Style et non dans le document en
cours.
dom.applyCSSStyle()
Disponibilité
Dreamweaver 4.0
Description
Applique le style spécifié à l'élément spécifié. Cette fonction n'est valide que pour
le document actif.
Arguments
elementNode, styleName, [classOrID], [bForceNesting]
•
•
•
360
Chapitre 26
elementNode désigne un nœud d'élément dans le DOM. Si l'argument
elementNode a pour valeur NULL ou est exprimé sous forme d'une chaîne
(''), la fonction agit sur la sélection en cours.
styleName
vide
est le nom d'un style CSS.
est l'attribut avec lequel le style doit être appliqué (« class » ou
« id »). Si l'argument elementNode a pour valeur NULL ou s'il est exprimé sous
forme d'une chaîne vide et qu'aucune balise n'entoure complètement la
sélection, le style est appliqué avec des balises SPAN. Si la sélection est un point
d'insertion, Dreamweaver utilise la méthode heuristique pour déterminer à
quelle balise le style doit être appliqué.
[classOrID]
•
est une valeur booléenne qui indique si l'imbrication est
autorisée ou non. Si le drapeau bForceNesting est défini, Dreamweaver insère
une nouvelle balise SPAN au lieu de tenter de modifier les balises existantes dans
le document. S'il n'est pas défini, cet argument a la valeur false par défaut.
[bForceNesting]
Valeurs renvoyées
Aucune.
Activateur
Aucun.
Exemple
Le code suivant applique le style red à la sélection, soit en entourant cette
dernière de balises SPAN, soit en appliquant un attribut CLASS aux balises qui
entourent la sélection :
var theDOM = dreamweaver.getDocumentDOM('document');
theDOM.applyCSSStyle('','red');
dom.removeCSSStyle()
Disponibilité
Dreamweaver 3.0
Description
Supprime l'attribut CLASS ou ID de l'élément spécifié, ou supprime les balises
SPAN qui entourent complètement l'élément spécifié. Cette fonction n'est valide
que pour le document actif.
Arguments
elementNode, {classOrID}
•
elementNode désigne un nœud d'élément dans le DOM. Si l'argument
elementNode est une chaîne vide (‘'), la fonction est appliquée à la sélection en
cours.
•
classOrID est l'attribut qui doit être supprimé (« class » ou « id »). Si
l'attribut classOrID n'est pas spécifié, il prend par défaut la valeur "class" .
Si aucun attribut CLASS n'est défini pour l'argument elementNode, les balises
SPAN entourant elementNode sont supprimées.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.stylePalette.attachExternalStylesheet()
Disponibilité
Dreamweaver 4.0
API JavaScript de Dreamweaver
361
Description
Affiche une boîte de dialogue permettant à l'utilisateur de joindre une feuille de
style externe.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
dreamweaver.cssStylePalette.deleteSelectedStyle()
Disponibilité
Dreamweaver 3.0
Description
Supprime du document le style sélectionné dans le panneau Style.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.cssStylePalette.duplicateSelectedStyle()
Disponibilité
Dreamweaver 3.0
Description
Duplique le style actuellement sélectionné dans le panneau Style et affiche la boîte
de dialogue Dupliquer le style afin de permettre à l'utilisateur d'attribuer un nom
ou un sélecteur au nouveau style.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.cssStylePalette.editSelectedStyle()
Disponibilité
Dreamweaver 3.0
362
Chapitre 26
Description
Ouvre la boîte de dialogue Définition du style correspondant au style sélectionné
dans le panneau Style.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.cssStylePalette.editStyleSheet()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue Modifier feuille de style.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.cssStylePalette.getSelectedStyle()
Disponibilité
Dreamweaver 3.0
Description
Obtient le nom du style actuellement sélectionné dans le panneau Styles.
Arguments
Aucun.
Valeurs renvoyées
Chaîne représentant le nom du style, ou chaîne vide si aucun style n'est
sélectionné.
Activateur
Aucun.
API JavaScript de Dreamweaver
363
Exemple
Si le style red est sélectionné, comme le montre l'illustration ci-après, un appel à
la fonction dw.cssStylePalette.getSelectedStyle() renvoie "red".
dreamweaver.cssStylePalette.getSelectedTarget()
Disponibilité
Dreamweaver 3.0
Description
Obtient l'élément sélectionné dans le menu déroulant Appliquer à, en haut du
panneau Styles.
Arguments
Aucun.
Valeurs renvoyées
Objet auquel le style doit être appliqué ou NULL si la cible est la sélection en cours.
Activateur
Aucun.
Exemple
Avant d'appliquer un style, utilisez
dw.cssStylePalette.getSelectedTarget(), pour le cas où l'utilisateur
changerait la cible, comme le montre l'illustration ci-après.
364
Chapitre 26
Exemple :
var currDOM = dw.getDocumentDOM();
currDOM.applyCSSStyle(dw.cssStylePalette.getSelectedTarget(), ¬
"codeRed");
dreamweaver.cssStylePalette.getStyles()
Disponibilité
Dreamweaver 3.0
Description
Obtient la liste de tous les styles de classe que contient le document actif.
Arguments
Aucun.
Valeurs renvoyées
Tableau de chaînes représentant les noms de tous les styles de classe que contient le
document.
Activateur
Aucun.
Exemple
En supposant que le panneau Styles CSS soit configuré comme dans l'exemple
illustré ci-après, un appel à la fonction dw.cssStylePalete.getStyles()
renverra le tableau de chaînes suivant :
•
•
•
"bigCode"
"red"
"sectionHead"
dreamweaver.cssStylePalette.newStyle()
Disponibilité
Dreamweaver 3.0
API JavaScript de Dreamweaver
365
Description
Ouvre la boîte de dialogue Nouveau style.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
Fonctions relatives aux applications
externes
Ces fonctions permettent d'effectuer des opérations relatives aux navigateurs et
aux éditeurs externes, définis respectivement dans Préférences, catégorie Aperçu
dans le navigateur, et dans Préférences, catégorie Editeurs externes. Elles
permettent d'obtenir des informations sur les applications externes et d'ouvrir des
fichiers dans ces applications.
dreamweaver.browseDocument()
Disponibilité
Dreamweaver 2.0, améliorée dans les versions 3.0 et 4.0.
Description
Ouvre l'URL spécifiée dans le navigateur spécifié.
Arguments
fileName, {browser}
•
fileName
•
browser,
est le nom du fichier à ouvrir, exprimé sous forme d'une
URL absolue.
rajouté à Dreamweaver 3, définit le navigateur à utiliser. Cet
argument peut être le nom d'un navigateur tel qu'il est défini dans les
préférences Aperçu dans le navigateur ou ’primary’ ou ’secondary’. S'il
n'est pas défini, l'URL est ouverte dans le navigateur principal de l'utilisateur.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
366
Chapitre 26
Exemple
La fonction suivante utilise dreamweaver.browseDocument() pour ouvrir la
page d'accueil Hotwired dans un navigateur :
function goToHotwired(){
dreamweaver.browseDocument('http://www.hotwired.com/');
}
Dans Dreamweaver 4, vous pouvez faire en sorte que cette opération ouvre le
document dans Internet Explorer à l'aide du code suivant :
function goToHotwired(){
var prevBrowsers = dw.getBrowserList();
var theBrowser = "";
for (var i=1; i < prevBrowsers.length; i+2){
if (prevBrowsers[i].indexOf('Iexplore.exe') != -1){
theBrowser = prevBrowsers[i];
break;
}
}
dw.browseDocument('http://www.hotwired.com/',theBrowser);
}
Pour en savoir plus sur la fonction dw.getBrowserList(), voir la section
« dreamweaver.getBrowserList() », page 367.
dreamweaver.getBrowserList()
Disponibilité
Dreamweaver 3.0
Description
Obtient la liste des navigateurs définis dans le sous-menu Aperçu dans le
navigateur.
Arguments
Aucun.
Valeurs renvoyées
Tableau contenant autant de couples de chaînes que de navigateurs définis. La
première chaîne de chaque couple représente le nom du navigateur, et la seconde
son emplacement sur la machine de l'utilisateur, exprimé sous la forme d'une
URL de type file://. Si aucun navigateur n'est défini, la fonction ne renvoie rien.
Activateur
Aucun.
dreamweaver.getExtensionEditorList()
Disponibilité
Dreamweaver 3.0
API JavaScript de Dreamweaver
367
Description
Obtient la liste des éditeurs définis dans les préférences des éditeurs externes pour
le fichier spécifié.
Arguments
fileURL
peut être une URL de type file:// complète, un nom de fichier ou une
extension de fichier (point compris).
fileURL
Valeurs renvoyées
Tableau contenant autant de couples de chaînes que d'éditeurs définis. La
première chaîne de chaque couple représente le nom de l'éditeur, et la seconde son
emplacement sur la machine de l'utilisateur, exprimé sous la forme d'une URL de
type file://. Si aucun éditeur n'est défini dans les préférences, la fonction renvoie
un tableau contenant une chaîne vide.
Activateur
Aucun.
Exemple
Un appel à la fonction dw.getExtensionEditorList(".gif") pourrait renvoyer
un tableau contenant les deux chaînes suivantes :
•
•
"Fireworks 3"
"file:///C|/Program Files/Macromedia/Fireworks 3/Fireworks
3.exe"
dreamweaver.getExternalTextEditor()
Disponibilité
Dreamweaver 4.0
Description
Affiche le nom de l'éditeur de texte externe actuellement configuré.
Arguments
Aucun.
Valeurs renvoyées
Une chaîne contenant le nom de l'éditeur de texte approprié pour l'interface
utilisateur et non le chemin entier.
Activateur
Aucun.
dreamweaver.getPrimaryBrowser()
Disponibilité
Dreamweaver 3.0
368
Chapitre 26
Description
Obtient le chemin du navigateur principal.
Arguments
Aucun.
Valeurs renvoyées
Chaîne contenant le chemin du navigateur principal sur le disque dur de
l'utilisateur, exprimé sous la forme d'une URL de type file://, ou rien, si aucun
navigateur principal n'est défini.
Activateur
Aucun.
dreamweaver.getPrimaryExtensionEditor()
Disponibilité
Dreamweaver 3.0
Description
Obtient l'éditeur principal associé au fichier spécifié.
Arguments
fileURL
Valeurs renvoyées
Tableau contenant un couple de chaînes. La première chaîne de chaque couple
représente le nom de l'éditeur, et la seconde son emplacement sur la machine de
l'utilisateur, exprimé sous la forme d'une URL de type file://. Si aucun éditeur
principal n'est défini, la fonction renvoie un tableau contenant une chaîne vide.
Activateur
Aucun.
dreamweaver.getSecondaryBrowser()
Disponibilité
Dreamweaver 3.0
Description
Obtient le chemin du navigateur secondaire.
Arguments
Aucun.
Valeurs renvoyées
Chaîne contenant le chemin du navigateur secondaire sur le disque dur de
l'utilisateur, exprimé sous la forme d'une URL de type file://, ou rien, si aucun
navigateur secondaire n'est défini.
Activateur
Aucun.
API JavaScript de Dreamweaver
369
dreamweaver.openWithApp()
Disponibilité
Dreamweaver 3.0
Description
Ouvre le fichier spécifié dans l'application spécifiée.
Arguments
fileURL, appURL
•
fileURL
•
appURL
est le chemin du fichier à ouvrir, exprimé sous forme d'une URL de
type file://.
est le chemin de l'application dans lequel le fichier doit être ouvert,
exprimé sous forme d'une URL de type file://.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.openWithBrowseDialog()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue Sélectionner un éditeur externe afin de permettre à
l'utilisateur de choisir l'application dans laquelle le fichier spécifié doit s'ouvrir.
Arguments
fileURL
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.openWithExternalTextEditor()
Disponibilité
Dreamweaver 3.0
Description
Ouvre le document en cours dans l'éditeur de texte externe défini dans les
préférences des éditeurs externes.
Arguments
Aucun.
370
Chapitre 26
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.openWithImageEditor()
Disponibilité
Dreamweaver 3.0
Description
Ouvre le fichier spécifié dans l'éditeur d'image spécifié.
Remarque : cette fonction fait appel à un mécanisme spécial d'intégration Fireworks qui
renvoie les informations au document actif dans le cas où Fireworks est spécifié comme
éditeur d'image. Pour éviter les erreurs lorsqu'aucun document n'est actif, n'appelez jamais
cette fonction à partir de la fenêtre Site.
Arguments
fileURL, appURL
•
fileURL
•
appURL
est le chemin du fichier à ouvrir, exprimé sous forme d'une URL de
type file://.
est le chemin de l'application dans laquelle le fichier doit être ouvert,
exprimé sous la forme d'une URL de type file://.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
Fonctions relatives aux manipulations de
fichiers
Ces fonctions permettent de créer, d'ouvrir et d'enregistrer des documents et
d'exporter des feuilles de style en cascade vers des fichiers externes. Elles
permettent également de rechercher des fichiers ou des dossiers, de créer des
fichiers à partir de modèles, de fermer des documents et d'obtenir la liste des
fichiers récemment ouverts.
dreamweaver.browseForFileURL()
Disponibilité
Dreamweaver 1.0, améliorée dans les versions 2.0, 3.0 et 4.0
API JavaScript de Dreamweaver
371
Description
Ouvre le type de boîte de dialogue spécifié ayant le libellé spécifié dans la barre de
titre.
Arguments
openSelectOrSave, {titleBarLabel}, {bShowPreviewPane},
{bSupressSiteRootWarnings}, {arrayOfExtensions}
•
openSelectOrSave
save.
•
titleBarLabel, rajouté à Dreamweaver 2, est le libellé qui doit figurer dans la
barre de titre de la boîte de dialogue. Si cet argument n'est pas défini,
Dreamweaver utilise par défaut le libellé fourni par le système d'exploitation.
•
bShowPreviewPane,
rajouté à Dreamweaver 2, est une valeur booléenne
indiquant si le volet d'aperçu de l'image doit être affiché dans la boîte de
dialogue. Si l'argument a pour valeur true, la boîte de dialogue filtre les fichiers
image ; s'il n'est pas défini, il prend par défaut la valeur false.
•
bSupressSiteRootWarnings,
•
arrayOfExtensions, rajouté à Dreamweaver 4, est un tableau de chaînes qui
spécifie l'aspect par défaut du menu déroulant « Type » au bas de la boîte de
dialogue. La syntaxe correcte est menuEntryText|.xxx[;.yyy;.zzz]|CCCC|
où menuEntryText est le nom du type de fichier qui s'affiche. Les extensions
peuvent être spécifiées sous la forme .xxx[;.yyy;.zzz] ou CCCC où .xxx
définit l'extension du type de fichier (.yyy et .zzz peuvent également spécifier
des extensions de fichier multiples) et CCCC est la constante du type de fichier à
quatre caractères utilisée sur Macintosh.
indique le type de boîte de dialogue : open, select ou
rajouté à Dreamweaver 3, est une valeur
booléenne indiquant s'il faut supprimer les avertissements indiquant que le
fichier sélectionné se trouve hors du dossier racine du site. Si cet argument n'est
pas défini, il prend par défaut la valeur false.
Valeurs renvoyées
Chaîne contenant le nom du fichier, exprimé sous la forme d'une URL de type
file://.
Activateur
Aucun.
dreamweaver.browseForFolderURL()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue Choisir un dossier ayant le libellé spécifié dans la barre
de titre.
372
Chapitre 26
Arguments
{titleBarLabel}, {directoryToStartIn}
•
titleBarLabel est le libellé qui doit s'afficher dans la barre de titre de la boîte
de dialogue. S'il n'est pas défini, l'argument titleBarLabel prend par défaut
la valeur « Choose Folder ».
•
directoryToStartIn
est le chemin du répertoire de démarrage, exprimé sous
forme d'une URL de type file://.
Valeurs renvoyées
Une chaîne contenant le nom du dossier, exprimée sous forme d'une URL de type
file://.
Activateur
Aucun.
Exemple
Le code suivant renvoie l'URL d'un dossier :
return dw.browseForFolderURL('Select a Folder', ¬
dw.getSiteRoot());
dreamweaver.closeDocument()
Disponibilité
Dreamweaver 3.0
Description
Ferme le document spécifié.
Arguments
documentObject
est l'objet situé à la racine de l'arborescence DOM d'un
document (c'est-à-dire la valeur renvoyée par dreamweaver.getDocumentDOM()).
Si documentObject fait référence au document actif, il se peut que la fenêtre du
document ne se ferme pas tant que l'exécution du script qui appelle cette fonction
n'est pas terminée.
documentObject
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.createDocument()
Disponibilité
Dreamweaver 2.0
API JavaScript de Dreamweaver
373
Description
Ouvre un nouveau document dans la même fenêtre ou dans une nouvelle. Le
nouveau document devient le document actif.
Remarque : cette fonction peut être appelée uniquement à partir du fichier menus.xml ou
d'un fichier de commande ou d'inspecteur de propriétés. Si une action ou un objet tente
d'appeler cette fonction, Dreamweaver affiche un message d'erreur.
Arguments
{bOpenInSameWindow}
est une valeur booléenne indiquant si le nouveau document
doit s'ouvrir dans la fenêtre en cours. Si l'argument bOpenInSameWindow a pour
valeur false, qu'il n'est pas précisé ou que la fonction est appelée sur Macintosh,
le nouveau document s'ouvre dans une nouvelle fenêtre.
bOpenInSameWindow
Valeurs renvoyées
Objet document correspondant au nouveau document créé. Il s'agit de la valeur
renvoyée par la fonction dreamweaver.getDocumentDOM().
Activateur
Aucun.
dreamweaver.exportCSS()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue Exporter les styles dans un fichier CSS.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dreamweaver.canExportCSS()
dreamweaver.exportEditableRegionsAsXML()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue Exporter les régions modifiables sous XML.
Arguments
Aucun.
374
Chapitre 26
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.getRecentFileList()
Disponibilité
Dreamweaver 3.0
Description
Obtient la liste de tous les fichiers récemment ouverts et répertoriés au bas du
menu Fichier.
Arguments
Aucun.
Valeurs renvoyées
Tableau de chaînes représentant les chemins des derniers fichiers ouverts, exprimés
sous la forme d'URL de type file://. Si aucun fichier n'a été ouvert récemment, la
fonction ne renvoie aucune valeur.
Activateur
Aucun.
dreamweaver.importXMLIntoTemplate()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue Importer XML.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.newFromTemplate()
Disponibilité
Dreamweaver 3.0
API JavaScript de Dreamweaver
375
Description
Crée un nouveau document à partir du modèle spécifié. Si vous ne spécifiez aucun
argument, la boîte de dialogue Sélectionner le modèle s'affiche.
Arguments
{templateURL}, bmaintain
•
templateURL
•
bmaintain est une valeur booléenne, pouvant être true ou false, indiquant si
le lien vers le modèle d'origine doit être conservé ou pas.
est le chemin d'un modèle disponible sur le site en cours,
exprimé sous la forme d'une URL de type file://.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.openDocument()
Disponibilité
Dreamweaver 2.0
Description
Ouvre un document à modifier dans une nouvelle fenêtre Dreamweaver et en fait
le document actif. Pour l'utilisateur, cela revient à choisir Fichier > Ouvrir et à
sélectionner un fichier. Si le fichier spécifié est déjà ouvert, la fenêtre
correspondante s'affiche au premier plan. La fenêtre contenant le fichier spécifié
devient la fenêtre active et le fichier sélectionné devient le document en cours.
Dans Dreamweaver 2, si la fonction d'archivage/extraction est activée, le fichier
est extrait avant d'être ouvert. Dans Dreamweaver 4, vous devez utiliser la
fonction dreamweaver.openDocumentFromSite() pour obtenir ce
comportement.
Remarque : cette fonction ne peut pas être appelée à partir d'un fichier d'objet ou d'action
de comportement. Elle provoquerait une erreur.
Arguments
fileName
fileName est le nom du fichier à ouvrir, exprimé sous forme d'une URL. S'il s'agit
d'une URL relative, elle est relative au fichier contenant le script ayant appelé cette
fonction.
Valeurs renvoyées
Objet document correspondant au fichier spécifié. Il s'agit de la valeur renvoyée
par la fonction dreamweaver.getDocumentDOM().
Activateur
Aucun.
376
Chapitre 26
dreamweaver.openDocumentFromSite()
Disponibilité
Dreamweaver 3.0
Description
Ouvre un document à modifier dans une nouvelle fenêtre Dreamweaver et en fait
le document actif. Pour l'utilisateur, cela revient à double-cliquer sur un fichier
dans la fenêtre Site. Si le fichier spécifié est déjà ouvert, la fenêtre correspondante
s'affiche au premier plan. La fenêtre contenant le fichier spécifié devient la fenêtre
active et le fichier sélectionné devient le document en cours.
Remarque : cette fonction ne peut pas être appelée à partir d'un fichier d'objet ou d'action
de comportement. Elle provoquerait une erreur.
Arguments
fileName
fileName est le nom du fichier à ouvrir, exprimé sous forme d'une URL. S'il s'agit
d'une URL relative, elle est relative au fichier contenant le script ayant appelé cette
fonction.
Valeurs renvoyées
Objet document correspondant au fichier spécifié. Il s'agit de la valeur renvoyée
par la fonction dreamweaver.getDocumentDOM().
Activateur
Aucun.
dreamweaver.openInFrame()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue Ouvrir dans un cadre. Lorsque l'utilisateur sélectionne
un document, celui-ci s'ouvre dans le cadre actif.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dreamweaver.canOpenInFrame()
dreamweaver.releaseDocument()
Disponibilité
Dreamweaver 2.0
API JavaScript de Dreamweaver
377
Description
Libère explicitement de la mémoire un document précédemment référencé.
Les documents référencés par les fonctions dreamweaver.getObjectTags(),
dreamweaver.getObjectRefs(), dreamweaver.getDocumentPath() et
dreamweaver.getDocumentDOM() sont automatiquement libérés au terme de
l'exécution du script contenant l'appel. Si le script ouvre un nombre important de
documents, vous devez utiliser cette fonction pour en libérer certains
explicitement avant la fin de l'exécution du script, ceci afin d'éviter de saturer la
mémoire.
Remarque : cette fonction ne s'applique qu'aux documents référencés par une URL, qui
ne sont pas ouverts dans un cadre ou dans une fenêtre de document et qui ne
correspondent pas à des fichiers d'extension (les fichiers d'extension sont chargés en
mémoire au démarrage et n'en sont libérés que lorsque vous quittez Dreamweaver).
Arguments
documentObject
est l'objet situé à la racine de l'arborescence DOM d'un
document (c'est-à-dire la valeur renvoyée par dreamweaver.getDocumentDOM()).
documentObject
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.revertDocument()
Disponibilité
Dreamweaver 3.0
Description
Rétablit la version précédemment enregistrée du fichier spécifié.
Arguments
documentObject
est l'objet situé à la racine de l'arborescence DOM d'un
document (c'est-à-dire la valeur renvoyée par dreamweaver.getDocumentDOM()).
documentObject
Valeurs renvoyées
Aucune.
Activateur
dreamweaver.canRevertDocument()
378
Chapitre 26
dreamweaver.saveAll()
Disponibilité
Dreamweaver 3.0
Description
Enregistre tous les documents ouverts et ouvre la boîte de dialogue Enregistrer
sous pour tous ceux qui n'ont pas encore été enregistrés.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dreamweaver.canSaveAll()
dreamweaver.saveDocument()
Disponibilité
Dreamweaver 2.0
Description
Enregistre le fichier spécifié sur un lecteur local.
Remarque : dans Dreamweaver 2, si le fichier est accessible en lecture seule,
Dreamweaver tente de l'extraire. Si le document reste en lecture seule après cette tentative
ou qu'il ne peut pas être créé, un message d'erreur s'affiche.
Arguments
documentObject, {fileURL}
•
documentObject
•
fileURL
est l'objet situé à la racine de l'arborescence DOM d'un
document (c'est-à-dire la valeur renvoyée par
dreamweaver.getDocumentDOM()).
est une URL représentant un emplacement sur un lecteur local. S'il
s'agit d'une URL relative, elle est relative au fichier d'extension. Dans
Dreamweaver 2, cet argument est obligatoire. Dans Dreamweaver 4, si
l'argument fileURL n'est pas défini et que le fichier a été enregistré
précédemment, ce dernier est enregistré au même endroit ; sinon, une boîte de
dialogue d'enregistrement s'affiche.
Valeurs renvoyées
Valeur booléenne indiquant le succès (true) ou l'échec (false) de l'opération.
Activateur
dreamweaver.canSaveDocument()
API JavaScript de Dreamweaver
379
dreamweaver.saveDocumentAs()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue Enregistrer sous.
Arguments
documentObject
est l'objet situé à la racine de l'arborescence DOM d'un
document (c'est-à-dire la valeur renvoyée par dreamweaver.getDocumentDOM()).
documentObject
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.saveDocumentAsTemplate()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue Enregistrer comme modèle.
Arguments
documentObject
est l'objet situé à la racine de l'arborescence DOM d'un
document (c'est-à-dire la valeur renvoyée par dreamweaver.getDocumentDOM()).
documentObject
Valeurs renvoyées
Aucune.
Activateur
dreamweaver.canSaveDocumentAsTemplate()
dreamweaver.saveFrameset()
Disponibilité
Dreamweaver 3.0
Description
Enregistre le jeu de cadres spécifié ou, si ce dernier n'a pas encore été enregistré,
ouvre la boîte de dialogue Enregistrer sous.
380
Chapitre 26
Arguments
documentObject
est l'objet situé à la racine de l'arborescence DOM d'un
document (c'est-à-dire la valeur renvoyée par dreamweaver.getDocumentDOM()).
documentObject
Valeurs renvoyées
Aucune.
Activateur
dreamweaver.canSaveFrameset()
dreamweaver.saveFramesetAs()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue Enregistrer sous correspondant au fichier de jeu de
cadres comprenant le DOM spécifié.
Arguments
documentObject
est l'objet situé à la racine de l'arborescence DOM d'un
document (c'est-à-dire la valeur renvoyée par dreamweaver.getDocumentDOM()).
documentObject
Valeurs renvoyées
Aucune.
Activateur
dreamweaver.canSaveFramesetAs()
Fonctions relatives à la recherche et au
remplacement
Comme leur nom l'indique, ces fonctions permettent d'effectuer des recherches et
des remplacements. Elles vont de la simple recherche de l'occurrence suivante
d'une chaîne donnée à des opérations plus complexes de remplacement
automatique.
dreamweaver.findNext()
Disponibilité
Dreamweaver 3.0
API JavaScript de Dreamweaver
381
Description
Recherche l'occurrence suivante de la chaîne de recherche précédemment définie
par la fonction dreamweaver.setUpFind() ou
dreamweaver.setUpComplexFind() ou par l'utilisateur (à l'aide de la boîte de
dialogue Rechercher), puis la sélectionne dans le document.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dreamweaver.canFindNext()
dreamweaver.replace()
Disponibilité
Dreamweaver 3.0
Description
S'assure que la sélection en cours correspond aux critères de recherche définis
précédemment par la fonction dreamweaver.setUpFindReplace() ou
dreamweaver.setUpComplexFindReplace() ou par l'utilisateur dans la boîte de
dialogue Remplacer, puis la remplace par le contenu spécifié dans cette requête.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.replaceAll()
Disponibilité
Dreamweaver 3.0
Description
Remplace chaque section du document en cours correspondant aux critères de
recherche précédemment définis par la fonction
dreamweaver.setUpFindReplace() ou
dreamweaver.setUpComplexFindReplace() ou par l'utilisateur (dans la boîte
de dialogue Remplacer) par le contenu spécifié dans cette requête.
Arguments
Aucun.
382
Chapitre 26
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.setUpComplexFind()
Disponibilité
Dreamweaver 3.0
Description
Prépare le terrain pour une recherche avancée de texte ou de balises en chargeant la
requête XML spécifiée.
Arguments
xmlQueryString
xmlQueryString est une chaîne de code XML commençant par <dwquery> et se
terminant par </dwquery> (pour obtenir une chaîne ayant le format correct, vous
devez définir la requête à l'aide de la boîte de dialogue Rechercher, cliquer sur le
bouton Enregistrer la requête, ouvrir le fichier de requête dans un éditeur de texte
et copier tout ce qui est compris entre le début de la balise <dwquery> et la fin de
la balise </dwquery>).
Valeurs renvoyées
Aucune.
Activateur
Aucun.
Exemple
Dans l'exemple ci-après, la première ligne de code définit une recherche de balise
et précise que la recherche doit porter sur le document en cours ; la deuxième
ligne exécute la recherche :
dw.setUpComplexFind('<dwquery><queryparams matchcase="false" ¬
ignorewhitespace="true" useregexp="false"/><find>¬
<qtag qname="a"><qattribute qname="href" qcompare="="
qvalue="#">¬
</qattribute><qattribute qname="onMouseOut" qcompare="="
qvalue="" ¬
qnegate="true"></qattribute></qtag></find></dwquery>');
dw.findNext();
dreamweaver.setUpComplexFindReplace()
Disponibilité
Dreamweaver 3.0
API JavaScript de Dreamweaver
383
Description
Prépare le terrain pour une recherche avancée de texte ou de balises en chargeant la
requête XML spécifiée.
Arguments
xmlQueryString
xmlQueryString est une chaîne de code XML commençant par <dwquery> et se
terminant par </dwquery> (pour obtenir une chaîne ayant le format correct, vous
devez définir la requête à l'aide de la boîte de dialogue Rechercher, cliquer sur le
bouton Enregistrer la requête, ouvrir le fichier de requête dans un éditeur de texte
et copier tout ce qui est compris entre le début de la balise <dwquery> et la fin de
la balise </dwquery>).
Valeurs renvoyées
Aucune.
Activateur
Aucun.
Exemple
Dans l'exemple ci-après, la première ligne de code définit une recherche de balise
et précise que la recherche doit porter sur quatre fichiers ; la deuxième ligne
exécute la recherche et le remplacement :
dw.setUpComplexFindReplace('<dwquery><queryparams ¬
matchcase="false" ignorewhitespace="true" useregexp="false"/>¬
<find><qtag qname="a"><qattribute qname="href" qcompare="=" ¬
qvalue="#"></qattribute><qattribute qname="onMouseOut" ¬
qcompare="=" qvalue="" qnegate="true"></qattribute></qtag>¬
</find><replace action="setAttribute" param1="onMouseOut" ¬
param2="this.style.color='#000000';this.style.¬
fontWeight='normal'"/></dwquery>');
dw.replaceAll();
dreamweaver.setUpFind()
Disponibilité
Dreamweaver 3.0
Description
Prépare le terrain pour l'exécution d'une recherche de texte ou de code source
HTML en définissant les critères de recherche de l'opération dw.findNext() qui
va suivre.
Arguments
searchObject
searchObject
est un objet pour lequel les propriétés suivantes peuvent être
définies :
•
384
Chapitre 26
searchString
est le texte à rechercher.
•
searchSource
•
{matchCase}
•
{ignoreWhitespace}
•
{useRegularExpressions} est une valeur booléenne indiquant si la chaîne de
recherche (searchString) utilise des expressions régulières. Si cette propriété
n'est pas définie, elle prend par défaut la valeur false.
est une valeur booléenne indiquant si la recherche doit
également porter sur le code source HTML.
est une valeur booléenne indiquant si la recherche doit respecter
les majuscules et les minuscules. Si cette propriété n'est pas définie, elle prend
par défaut la valeur false.
est une valeur booléenne indiquant si les différences
entre les espaces blancs doivent être ignorées. ignoreWhitespace prend par
défaut la valeur false si useRegularExpressions a pour valeur true et la
valeur true si useRegularExpressions a pour valeur false.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
Exemple
L'exemple de code suivant montre comment créer un objet à rechercher
(searchObject) de trois façons différentes :
var searchParams;
searchParams.searchString = 'bgcolor="#FFCCFF"';
searchParams.searchSource = true;
dw.setUpFind(searchParams);
var searchParams = {searchString: 'bgcolor="#FFCCFF"',
searchSource: true};
dw.setUpFind(searchParams);
dw.setUpFind({searchString: 'bgcolor="#FFCCFF"', searchSource: ¬
true});
dreamweaver.setUpFindReplace()
Disponibilité
Dreamweaver 3.0
Description
Prépare le terrain pour l'exécution d'une recherche de texte ou de code source
HTML en définissant les critères de recherche et le cadre d'application de
l'opération dw.replace() dw.replaceAll() qui va suivre.
Arguments
searchObject
API JavaScript de Dreamweaver
385
searchObject
est un objet pour lequel les propriétés suivantes peuvent être
définies :
•
•
•
searchString
•
{matchCase}
•
{ignoreWhitespace}
•
{useRegularExpressions} est une valeur booléenne indiquant si la chaîne de
recherche (searchString) utilise des expressions régulières. Si cette propriété
n'est pas définie, elle prend par défaut la valeur false.
est le texte à rechercher.
replaceString
est le texte à substituer au texte recherché.
est une valeur booléenne indiquant si la recherche doit
également porter sur le code source HTML.
searchSource
est une valeur booléenne indiquant si la recherche doit respecter
les majuscules et les minuscules. Si cette propriété n'est pas définie, elle prend
par défaut la valeur false.
est une valeur booléenne indiquant si les différences
entre les espaces blancs doivent être ignorées. ignoreWhitespace prend par
défaut la valeur false si useRegularExpressions a pour valeur true et la
valeur true si useRegularExpressions a pour valeur false.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
Exemple
L'exemple de code suivant montre comment créer un objet à rechercher
(searchObject) de trois façons différentes :
var searchParams;
searchParams.searchString = 'bgcolor="#FFCCFF"';
searchParams.searchString = 'bgcolor="#FFCCFF"';
searchParams.searchSource = true;
dw.setUpFindReplace(searchParams);
var searchParams = {searchString: 'bgcolor="#FFCCFF"',
searchSource: 'bgcolor="#FFCCFF"', searchSource: true};
dw.setUpFindReplace(searchParams);
dw.setUpFindReplace({searchString: 'bgcolor="#FFCCFF"', ¬
replaceString: 'bgcolor="#CCFFCC"', searchSource: true});
dreamweaver.showFindDialog()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue Rechercher.
386
Chapitre 26
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dreamweaver.canShowFindDialog()
dreamweaver.showFindReplaceDialog()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue Remplacer.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dreamweaver.canShowFindDialog()
Fonctions relatives aux cadres et aux jeux
de cadres
Ces fonctions permettent uniquement d'effectuer les deux opérations suivantes :
obtenir le nom des cadres constituant un jeu de cadres et diviser un cadre en deux.
dom.getFrameNames()
Disponibilité
Dreamweaver 3.0
Description
Obtient la liste de tous les cadres nommés du jeu de cadres.
Arguments
Aucun.
Valeurs renvoyées
Tableau de chaînes, chacune correspondant à un cadre du jeu de cadres en cours.
La fonction ignore tous les cadres non nommés. Si aucun des cadres du jeu de
cadres n'est nommé, un tableau vide est renvoyé.
API JavaScript de Dreamweaver
387
Activateur
Aucun.
Exemple
Pour un document contenant quatre cadres, dont deux sont nommés, un appel à
la fonction dw.getDocumentDOM().getFrameNames() pourrait renvoyer un
tableau contenant les chaînes suivantes :
•
•
"navframe"
"main_content"
dom.isDocumentInFrame()
Disponibilité
Dreamweaver 4.0
Description
Détermine si le document en cours est affiché à l'intérieur d'un jeu de cadres.
Arguments
Aucun.
Valeurs renvoyées
Renvoie la valeur true si le document est contenu dans un jeu de cadres. Renvoie
la valeur false dans le cas contraire.
Activateur
Aucun.
dom.saveAllFrames()
Disponibilité
Dreamweaver 4.0
Description
Si le document donné est un jeu de cadres ou se situe à l'intérieur d'un jeu de
cadres, cette fonction enregistre tous les cadres ou les jeux de cadres contenus dans
la même fenêtre de document. Si un document donné n'est pas situé dans un jeu
de cadres, elle enregistre uniquement le document. Ouvre la boîte de dialogue
Enregistrer sous pour tous les documents qui n'ont pas été enregistrés
précédemment.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
388
Chapitre 26
dom.splitFrame()
Disponibilité
Dreamweaver 3.0
Description
Fractionne le cadre sélectionné verticalement ou horizontalement.
Arguments
splitDirection
splitDirection doit avoir l'une des valeurs suivantes : "up", "down", "left" ou
"right".
Valeurs renvoyées
Aucune.
Activateur
dom.canSplitFrame()
Fonctions de modifications générales
Ces fonctions permettent d'effectuer des opérations de modification courantes
dans la fenêtre de document. Elles permettent d'insérer du texte, du code HTML
et des objets, d'appliquer, de modifier et de supprimer des marqueurs de police et
de caractère, de modifier des balises et des attributs, etc.
dom.applyCharacterMarkup()
Disponibilité
Dreamweaver 3.0
Description
Applique à la sélection le type de marqueur de caractère spécifié. Si la sélection est
un point d'insertion, applique les marqueurs de caractère spécifiés au texte saisi
après le point d'insertion.
Arguments
tagName
est le nom de la balise associé au marqueur de caractère. Il doit s'agir de
l'une des chaînes suivantes : "b", "cite", "code", "dfn", "em", "i", "kbd",
"samp", "s", "strong", "tt", "u", ou "var".
tagName
Valeurs renvoyées
Aucune.
Activateur
Aucun.
API JavaScript de Dreamweaver
389
dom.applyFontMarkup()
Disponibilité
Dreamweaver 3.0
Description
Applique à la sélection en cours la balise FONT, ainsi que l'attribut spécifié et sa
valeur.
Arguments
attribute, value
•
•
attribute
doit être "face", "size" ou "color".
value est la valeur qui devrait être affectée à l'attribut,
Helvetica, sans-serif", "5" ou "#FF0000".
par exemple "Arial,
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.deleteSelection()
Disponibilité
Dreamweaver 3.0
Description
Supprime la sélection du document.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.editAttribute()
Disponibilité
Dreamweaver 3.0
Description
Affiche l'interface permettant de modifier l'attribut spécifié. Dans la plupart des
cas, il s'agit d'une boîte de dialogue. Cette fonction n'est valide que pour le
document actif.
Arguments
attribute
390
Chapitre 26
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.exitBlock()
Disponibilité
Dreamweaver 3.0
Description
Quitte le bloc de paragraphe ou d'en-tête en cours et place le curseur à l'extérieur
de tous les éléments de bloc.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.getCharSet()
Disponibilité
Dreamweaver 4.0
Description
Renvoie l'attribut du jeu de caractères dans la balise Meta du document.
Arguments
Aucun.
Valeurs renvoyées
L'identité de codage du document. Par exemple, dans un document Latin1, cette
fonction renvoie iso-8859-1.
dom.getFontMarkup()
Disponibilité
Dreamweaver 3.0
Description
Obtient la valeur de l'attribut spécifié de la balise FONT pour la sélection en cours.
Arguments
attribute
attribute
doit être "face", "size" ou "color".
API JavaScript de Dreamweaver
391
Valeurs renvoyées
Chaîne contenant la valeur de l'attribut spécifié, ou chaîne vide si l'attribut n'est
pas défini.
Activateur
Aucun.
dom.getLinkHref()
Disponibilité
Dreamweaver 3.0
Description
Obtient le lien qui entoure la sélection en cours. Revient à effectuer une boucle
sur les parents et les grands-parents du nœud en cours jusqu'à ce qu'un lien soit
rencontré, puis à appeler la fonction getAttribute('HREF') sur ce lien.
Arguments
Aucun.
Valeurs renvoyées
Chaîne contenant le nom du fichier lié, exprimé sous la forme d'une URL de type
file://.
Activateur
Aucun.
dom.getLinkTarget()
Disponibilité
Dreamweaver 3.0
Description
Obtient la cible du lien qui entoure la sélection en cours. Revient à effectuer une
boucle sur les parents et les grands-parents du nœud en cours jusqu'à ce qu'un lien
soit rencontré, puis à appeler la fonction getAttribute('TARGET') sur ce lien.
Arguments
Aucun.
Valeurs renvoyées
Chaîne contenant la valeur de l'attribut TARGET spécifié pour le lien, ou chaîne
vide si aucune cible n'est spécifiée.
Activateur
Aucun.
392
Chapitre 26
dom.getListTag()
Disponibilité
Dreamweaver 3.0
Description
Obtient le style de la liste sélectionnée.
Arguments
Aucun.
Valeurs renvoyées
Chaîne contenant la balise associée à la liste ("ul", "ol" ou "dl"), ou chaîne vide
si aucune balise n'est associée à la liste. Cette valeur est toujours renvoyée en
minuscules.
Activateur
Aucun.
dom.getTextAlignment()
Disponibilité
Dreamweaver 3.0
Description
Obtient l'alignement du bloc contenant la sélection.
Arguments
Aucun.
Valeurs renvoyées
Une chaîne contenant la valeur de l'attribut ALIGN de la balise associée au bloc, ou
une chaîne vide si l'attribut ALIGN n'est pas défini. Cette valeur est toujours
renvoyée en minuscules.
Activateur
Aucun.
dom.getTextFormat()
Disponibilité
Dreamweaver 3.0
Description
Obtient le format du bloc contenant la sélection.
Arguments
Aucun.
API JavaScript de Dreamweaver
393
Valeurs renvoyées
Chaîne contenant la balise de bloc associée au texte (par exemple "p", "h1",
"pre", etc.) ou chaîne vide si aucune balise de bloc n'est associée à la sélection.
Cette valeur est toujours renvoyée en minuscules.
Activateur
Aucun.
dom.hasCharacterMarkup()
Disponibilité
Dreamweaver 3.0
Description
Vérifie si le marqueur de caractère spécifié est déjà associé à la sélection.
Arguments
markupTagName
est le nom de la balise à rechercher. Il doit s'agir de l'une des
chaînes suivantes : "b", "cite", "code", "dfn", "em", "i", "kbd", "samp", "s",
"strong", "tt", "u", ou "var".
markupTagName
Valeurs renvoyées
Valeur booléenne indiquant si le marqueur de caractère spécifié est associé à la
sélection entière. Cette fonction renvoie la valeur false si le marqueur spécifié
n'est associé qu'à une partie de la sélection.
Activateur
Aucun.
dom.indent()
Disponibilité
Dreamweaver 3.0
Description
Applique un retrait à la sélection à l'aide des balises BLOCKQUOTE. Si la sélection
figure dans une liste, cette fonction lui applique un retrait en imbriquant une
autre liste du même type dans la liste en cours.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
394
Chapitre 26
dom.insertHTML()
Disponibilité
Dreamweaver 3.0
Description
Insère un contenu HTML dans le document, au point d'insertion en cours.
Arguments
contentToInsert, {bReplaceCurrentSelection}
•
•
contentToInsert
est le contenu à insérer.
bReplaceCurrentSelection est une valeur booléenne indiquant si le contenu
spécifié doit remplacer la sélection en cours. Si l'argument
bReplaceCurrentSelection a pour valeur false, le contenu est inséré après
la sélection en cours.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
Exemple
Le code suivant insère <b>130</b> dans le document en cours :
var theDOM = dw.getDocumentDOM();
theDOM.insertHTML('<b>130</b>');
Ceci se présente sous la forme suivante dans la fenêtre de document :
dom.insertObject()
Disponibilité
Dreamweaver 3.0
Description
Insère l'objet spécifié et invite l'utilisateur à définir des paramètres, le cas échéant.
Arguments
objectName
objectName
est le nom d'un objet dans le dossier Configuration/Objects.
API JavaScript de Dreamweaver
395
Valeurs renvoyées
Aucune.
Activateur
Aucun.
Exemple
Un appel à la fonction
insère un
bouton de formulaire dans le document, au point d'insertion ou après la sélection
en cours.
dreamweaver.getDocumentDOM().insertObject('Button');
Remarque : bien que les fichiers d'objet puissent être stockés dans des dossiers distincts,
il est important que le nom de chaque fichier soit unique. En effet, si le dossier Forms et le
dossier MyObjects contiennent chacun un fichier nommé Button.htm, par exemple,
Dreamweaver n'est pas capable de faire la différence entre les deux.
dom.insertText()
Disponibilité
Dreamweaver 3.0
Description
Insère un contenu dans le document, au point d'insertion en cours.
Arguments
contentToInsert, {bReplaceCurrentSelection}
•
•
contentToInsert
est le contenu à insérer.
bReplaceCurrentSelection est une valeur booléenne indiquant si le contenu
spécifié doit remplacer la sélection en cours. Si l'argument
bReplaceCurrentSelection a pour valeur false, le contenu est inséré après
la sélection en cours.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
Exemple
Le code suivant insère <b>130</b> dans le document en cours :
var theDOM = dw.getDocumentDOM();
theDOM.insertText('<b>130</b>');
396
Chapitre 26
Ceci se présente sous la forme suivante dans la fenêtre de document :
dom.newBlock()
Disponibilité
Dreamweaver 3.0
Description
Crée un nouveau bloc doté de la même balise et des mêmes attributs que le bloc
contenant la sélection en cours, ou, si le curseur se trouve à l'extérieur de tous les
blocs, crée un nouveau paragraphe.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
Exemple
Si la sélection en cours se trouve à l'intérieur d'un paragraphe centré, un appel à la
fonction dreamweaver.getDocumentDOM().newBlock() insère <p
align="center"> après le paragraphe en cours.
dom.notifyFlashObjectChanged()
Disponibilité
Dreamweaver 4.0
Description
Indique à Dreamweaver que le fichier Flash en cours a été modifié. Dreamweaver
met à jour la fenêtre d'aperçu, en la redimensionnant si nécessaire tout en
conservant le rapport hauteur/largeur d'origine. Par exemple, le texte Flash utilise
cette fonction pour mettre à jour le texte en mode Mise en forme à mesure que
l'utilisateur change ses propriétés dans la boîte de dialogue Commande.
Arguments
Aucun.
API JavaScript de Dreamweaver
397
Valeurs renvoyées
Aucune.
dom.outdent()
Disponibilité
Dreamweaver 3.0
Description
Applique un retrait négatif à la sélection.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.removeCharacterMarkup()
Disponibilité
Dreamweaver 3.0
Description
Supprime de la sélection le type de marqueur de caractère spécifié.
Arguments
tagName
est le nom de la balise associé au marqueur de caractère. Il doit s'agir de
l'une des chaînes suivantes : "b", "cite", "code", "dfn", "em", "i", "kbd",
"samp", "s", "strong", "tt", "u", ou "var".
tagName
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.removeFontMarkup()
Disponibilité
Dreamweaver 3.0
Description
Supprime d'une balise FONT l'attribut spécifié, ainsi que sa valeur. Si, après la
suppression de l'attribut, il ne reste que <FONT>, la balise FONT est également
supprimée.
398
Chapitre 26
Arguments
attribute
attribute
doit être "face", "size" ou "color".
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.removeLink()
Disponibilité
Dreamweaver 3.0
Description
Supprime le lien hypertexte de la sélection.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.resizeSelection()
Disponibilité
Dreamweaver 3.0
Description
Redimensionne l'objet sélectionné et lui applique les nouvelles dimensions
spécifiées. Pour redimensionner un calque ou une zone réactive, utilisez la
fonction dom.resizeSelectionBy().
Arguments
newWidth, newHeight
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.setAttributeWithErrorChecking()
Disponibilité
Dreamweaver 3.0
API JavaScript de Dreamweaver
399
Description
Affecte à l'attribut spécifié la valeur indiquée pour la sélection en cours et affiche
une invite utilisateur si le type de valeur est incorrect ou si la valeur n'est pas
comprise dans la plage spécifiée. Cette fonction n'est valide que pour le document
actif.
Arguments
attribute, value
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.setLinkHref()
Disponibilité
Dreamweaver 3.0
Description
Transforme la sélection en lien hypertexte ou modifie la valeur du lien qui entoure
la sélection en cours.
Arguments
linkHREF
est une URL (chemin relatif au document ou à la racine, ou URL
absolue) représentant la cible du lien. Si aucun argument n'est défini, la boîte de
dialogue Sélectionner fichier HTML s'affiche.
linkHREF
Valeurs renvoyées
Aucune.
Activateur
dom.canSetLinkHref()
dom.setLinkTarget()
Disponibilité
Dreamweaver 3.0
Description
Définit la cible du lien qui entoure la sélection en cours. Revient à effectuer une
boucle sur les parents et les grands-parents du nœud en cours jusqu'à ce qu'un lien
soit rencontré, puis à appeler la fonction setAttribute('TARGET') sur ce lien.
400
Chapitre 26
Arguments
{linkTarget}
est une chaîne représentant le nom d'un cadre ou d'une fenêtre, ou
l'une des cibles réservées ("_self", "_parent", "_top" ou "_blank"). Si aucun
argument n'est défini, la boîte de dialogue Définir la cible s'affiche.
linkTarget
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.setListBoxKind()
Disponibilité
Dreamweaver 3.0
Description
Modifie le type du menu SELECT sélectionné.
Arguments
kind
kind
doit être "menu" ou "list
box".
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.showListPropertiesDialog()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue Propriétés de la liste.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dom.canShowListPropertiesDialog()
API JavaScript de Dreamweaver
401
dom.setListTag()
Disponibilité
Dreamweaver 3.0
Description
Définit le style de la liste sélectionnée.
Arguments
listTag
listTag est la balise associée à la liste. Il doit s'agir de "ol", "ul", "dl" ou d'une
chaîne vide.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.setTextAlignment()
Disponibilité
Dreamweaver 3.0
Description
Affecte la valeur spécifiée à l'attribut ALIGN du bloc contenant la sélection.
Arguments
alignValue
alignValue
doit être "left", "center" ou "right".
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.setTextFieldKind()
Disponibilité
Dreamweaver 3.0
Description
Définit le format du champ texte sélectionné.
Arguments
fieldType
fieldType
402
Chapitre 26
doit être
"input", "textarea"
ou
"password".
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.showFontColorDialog()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue du sélecteur de couleur.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.deleteSelection()
Disponibilité
Dreamweaver 3.0
Description
Supprime la sélection dans le document actif, dans la fenêtre Site ou, sur
Macintosh, dans le champ modifiable actif d'une boîte de dialogue ou d'un
panneau flottant.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dreamweaver.canDeleteSelection()
dreamweaver.editFontList()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue Modifier la liste des polices.
API JavaScript de Dreamweaver
403
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.getFontList()
Disponibilité
Dreamweaver 3.0
Description
Obtient la liste de tous les groupes de polices apparaissant dans l'inspecteur de
propriétés de texte et la boîte de dialogue Définition du style.
Arguments
Aucun.
Valeurs renvoyées
Tableau de chaînes, chacune représentant un élément de la liste des polices.
Activateur
Aucun.
Exemple
Si vous avez effectué une installation par défaut de Dreamweaver, un appel à la
fonction dw.getFontList() renverra un tableau contenant les éléments suivants :
•
•
•
•
•
"Arial, Helvetica, sans-serif"
"Times New Roman, Times, serif"
"Courier New, Courier, mono"
"Georgia, Times New Roman, Times, serif"
"Verdana, Arial, Helvetica, sans-serif"
dreamweaver.getFontStyles()
Disponibilité
Dreamweaver 4.0
Description
Renvoie les styles pris en charge par la police TrueType spécifiée.
Arguments
fontName
fontName
404
Chapitre 26
est une chaîne contenant le nom de la police.
Valeurs renvoyées
Un tableau de trois valeurs booléennes indiquant les styles pris en charge par la
police. La première valeur indique si la police prend en charge le style Gras, la
deuxième Italique et la troisième à la fois les styles Gras et Italique.
dreamweaver.getKeyState()
Disponibilité
Dreamweaver 3.0
Description
Détermine si la touche de modification spécifiée est enfoncée.
Arguments
key
doit avoir l'une des valeurs suivantes : "Cmd", "Ctrl", "Alt" ou "Shift".
Sous Windows, "Cmd" et "Ctrl" désignent la touche Contrôle ; sur Macintosh,
"Alt" désigne la touche Option.
key
Valeurs renvoyées
Valeur booléenne indiquant si la touche est enfoncée.
Activateur
Aucun.
Exemple
Le code suivant vérifie si les touches Maj et Ctrl (Windows) ou Maj et Commande
(Macintosh) sont enfoncées avant d'effectuer une opération.
if (dw.getKeyState("Shift") && dw.getKeyState("Cmd")){
// execute code
}
dreamweaver.getSystemFontList()
Disponibilité
Dreamweaver 4.0
Description
Renvoie une liste de polices à utiliser pour le système. Cette fonction peut appeler
toutes les polices ou uniquement les polices TrueType. Ces polices sont requises
pour l'objet Texte Flash.
Arguments
fontTypes
fontTypes
est une chaîne contenant soit "all" soit "TrueType".
Valeurs renvoyées
Un tableau de chaînes contenant le nom de toutes les polices ; renvoie null si
aucune police n'est trouvée.
API JavaScript de Dreamweaver
405
Fonctions globales relatives aux
applications
Ces fonctions agissent sur l'ensemble d'une application. Elles permettent, entre
autres, de quitter une application et d'accéder aux préférences.
dreamweaver.getShowDialogsOnInsert()
Disponibilité
Dreamweaver 3.0
Description
Vérifie si l'option Afficher la boîte de dialogue lors de l'insertion d'objets est
activée dans les préférences générales.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si cette option est activée.
Activateur
Aucun.
dreamweaver.quitApplication()
Disponibilité
Dreamweaver 3.0
Description
Quitte Dreamweaver lorsque l'exécution du script appelant cette fonction prend
fin.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.showAboutBox()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue A propos de.
406
Chapitre 26
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.showDynamicDataDialog()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Affiche la boîte de dialogue Données dynamiques ou Texte dynamique, puis
attend que l'utilisateur ferme la boîte de dialogue. Si l'utilisateur clique sur OK, la
fonction showDynamicDataDialog() renvoie une chaîne à insérer dans le
document de l'utilisateur (cette chaîne a été renvoyée par la fonction API de la
source des données, c'est-à-dire generateDynamicDataRef(), et transmise à la
fonction API du format de données, formatDynamicDataRef() ; la valeur
renvoyée par formatDynamicDataRef() est la même que celle renvoyée par
showDynamicDataDialog().)
Arguments
source, title
•
est une chaîne contenant le code HTML source, représentant l'objet
de données dynamique. Il s'agit de la même chaîne que celle qui a été renvoyée
après un appel précédent de la même fonction. Cette fonction utilise le
contenu de la chaîne source pour initialiser toutes les commandes de la boîte
de dialogue de façon à ce qu'elles apparaissent exactement telles qu'elles étaient
au moment où l'utilisateur a cliqué sur OK pour créer cette chaîne.
source
UltraDev transmet cette chaîne à inspectDynamicDataRef(), afin de
déterminer si la chaîne correspond à l'un des nœuds de l'arborescence. Si la
chaîne correspond à un nœud, celui-ci est sélectionné lorsque la boîte de
dialogue réapparaît. Vous pouvez également transmettre une chaîne vide qui
n'initialise pas la boîte de dialogue. Par exemple, aucune boîte de dialogue n'est
initialisée lorsqu'elle est utilisée pour créer un nouvel élément.
•
est une chaîne contenant le texte à afficher dans la barre de titre de la
boîte de dialogue. Cet argument est facultatif. S'il n'est pas défini, UltraDev
affiche Données dynamiques dans la barre de titre.
title
Valeurs renvoyées
Une chaîne représentant l'objet de données dynamique, si l'utilisateur clique
sur OK.
API JavaScript de Dreamweaver
407
dreamweaver.showPreferencesDialog()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue Préférences.
Arguments
{whichTab}
L'argument doit être l'une des chaînes suivantes : "general", "external
editors", "floaters", "fonts", "highlighting", "html colors", "html
format", "html rewriting", "invisible elements", "layers", "browsers",
"quick tag editor", "site ftp", "status bar", "css styles" ou
"translation". Si Dreamweaver ne reconnaît pas dans l'argument un nom de
volet valide ou qu'aucun argument n'est défini, la boîte de dialogue ouvre le
dernier volet actif.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
Fonctions globales relatives aux documents
Ces fonctions agissent sur l'ensemble d'un document. Elles permettent d'effectuer
des vérifications orthographiques, de vérifier les navigateurs cibles, de définir les
propriétés des pages et de déterminer les références d'objet correctes des éléments
du document.
dom.checkSpelling()
Disponibilité
Dreamweaver 3.0
Description
Vérifie l'orthographe sur l'ensemble du document (en ouvrant la boîte de dialogue
Vérifier l'orthographe, si nécessaire) et prévient l'utilisateur lorsque la vérification
est terminée.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
408
Chapitre 26
dom.checkTargetBrowsers()
Disponibilité
Dreamweaver 3.0
Description
Vérifie le navigateur cible du document. Pour vérifier le navigateur cible d'un
dossier ou d'un groupe de fichiers, utilisez la fonction
site.checkTargetBrowsers()
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.showPagePropertiesDialog()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue Propriétés de la page.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.getElementRef()
Disponibilité
Dreamweaver 2.0
Description
Obtient la référence d'objet Netscape ou IE pour un objet balise spécifique de
l'arborescence DOM.
Arguments
NSorIE, tagObject
API JavaScript de Dreamweaver
409
•
NSorIE
•
tagObject
doit être "NS 4.0" ou "IE 4.0". En effet, le DOM et les règles
relatives aux références imbriquées diffèrent dans Navigator 4.0 et Internet
Explorer 4.0. Cet argument permet d'indiquer à quel navigateur doit
correspondre la référence renvoyée.
est un objet de balise dans l'arborescence DOM.
Valeurs renvoyées
Chaîne représentant une référence JavaScript valide à l'objet, telle que
document.layers['myLayer'].
• Dreamweaver renvoie des références Internet Explorer correctes pour les balises
suivantes : A, AREA, APPLET, EMBED, DIV, SPAN, INPUT, SELECT, OPTION,
TEXTAREA, OBJECT et IMG.
• Dreamweaver renvoie des références Navigator correctes pour les balises
suivantes : A, AREA, APPLET, EMBED, LAYER, ILAYER, SELECT, OPTION,
TEXTAREA, OBJECT et IMG et pour les balises DIV et SPAN à positionnement
absolu. Pour les balises DIV et SPAN dont le positionnement n'est pas absolu,
Dreamweaver renvoie "cannot reference <tag>".
• Dreamweaver ne renvoie pas de références pour les objets non nommés. Si un
objet ne contient pas d'attribut NAME ou ID, Dreamweaver renvoie "unnamed
Si le navigateur ne prend pas en charge une référence par nom,
Dreamweaver fait référence à l'objet à l'aide de son index (par exemple
document.myform.applets[3]).
<tag>".
• Dreamweaver renvoie les références des objets nommés figurant dans des
formulaires ou des calques non nommés (par exemple
document.forms[2].myCheckbox).
Activateur
Aucun.
Fonctions relatives à l'historique
Les fonctions d'historique permettent d'annuler, de refaire, d'enregistrer et de lire
toutes les étapes qui s'affichent dans le panneau Historique (programmé dans
l'API en tant que « palette »). Par étape, on entend une modification apportée à un
document (ou à une sélection dans le document) pouvant être reproduite. Les
méthodes de l'objet dreamweaver.historyPalette permettent de contrôler ou
d'agir sur la sélection dans le panneau Historique et non dans le document en
cours.
dom.redo()
Disponibilité
Dreamweaver 3.0
410
Chapitre 26
Description
Rétablit l'étape qui vient d'être annulée dans le document.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dom.canRedo()
dom.undo()
Disponibilité
Dreamweaver 3.0
Description
Annule l'étape qui vient d'être exécutée dans le document.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dom.canUndo()
dreamweaver.getRedoText()
Disponibilité
Dreamweaver 3.0
Description
Obtient le texte associé à l'opération de modification qui sera rétablie si
l'utilisateur choisit Edition > Rétablir ou s'il appuie sur Ctrl+Y (Windows) ou sur
Commande+Y (Macintosh).
Arguments
Aucun.
Valeurs renvoyées
Une chaîne contenant le texte associé à l'opération de modification qui sera
rétablie.
Activateur
Aucun.
API JavaScript de Dreamweaver
411
Exemple
Si la dernière action de l'utilisateur a consisté à mettre la sélection en gras, un
appel à la fonction dw.getRedoText() renverra « Repeat Apply Bold ».
dreamweaver.getUndoText()
Disponibilité
Dreamweaver 3.0
Description
Obtient le texte associé à l'opération de modification qui sera annulée si
l'utilisateur choisit Edition > Annuler ou s'il appuie sur Ctrl+Z (Windows) ou sur
Commande+Z (Macintosh).
Arguments
Aucun.
Valeurs renvoyées
Chaîne contenant le texte associé à l'opération de modification qui sera annulée.
Activateur
Aucun.
Exemple
Si la dernière action de l'utilisateur a consisté à appliquer un style CSS à un texte
sélectionné, un appel à la fonction dw.getUndoText() renverra "Undo Apply
<span>".
dreamweaver.playRecordedCommand()
Disponibilité
Dreamweaver 3.0
Description
Exécute la commande mémorisée dans le document actif.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dreamweaver.canPlayRecordedCommand()
dreamweaver.redo()
Disponibilité
Dreamweaver 3.0
412
Chapitre 26
Description
Rétablit l'étape qui vient d'être annulée dans la fenêtre de document, la boîte de
dialogue, le panneau flottant ou le volet de la fenêtre Site en cours.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dreamweaver.canRedo()
dreamweaver.startRecording()
Disponibilité
Dreamweaver 3.0
Description
Démarre la mémorisation des étapes dans le document actif. La commande
précédemment mémorisée est immédiatement effacée.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dreamweaver.isRecording()
(doit renvoyer false).
dreamweaver.stopRecording()
Disponibilité
Dreamweaver 3.0
Description
Arrête la mémorisation sans intervention de l'utilisateur.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dreamweaver.isRecording()
(doit renvoyer true)
API JavaScript de Dreamweaver
413
dreamweaver.undo()
Disponibilité
Dreamweaver 3.0
Description
Annule l'étape précédente dans la fenêtre de document, la boîte de dialogue, le
panneau flottant ou le volet de la fenêtre Site en cours.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dreamweaver.canUndo()
dreamweaver.historyPalette.clearSteps()
Disponibilité
Dreamweaver 3.0
Description
Efface toutes les étapes du panneau Historique et désactive les options de menu
Annuler et Rétablir.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.historyPalette.copySteps()
Disponibilité
Dreamweaver 3.0
Description
Copie les étapes spécifiées de l'historique dans le Presse-papiers. Dreamweaver
prévient l'utilisateur de la possibilité de conséquences inattendues dans le cas où
les étapes spécifiées contiendraient une action qui ne peut pas être reproduite.
Arguments
arrayOfIndices
arrayOfIndices
414
Chapitre 26
est un tableau d'index de position dans le panneau Historique.
Valeurs renvoyées
Chaîne contenant le code JavaScript correspondant aux étapes sélectionnées.
Activateur
Aucun.
Exemple
Le code suivant copie les quatre premières étapes dans le panneau Historique :
dw.historyPalette.copySteps([0,1,2,3]);
dreamweaver.historyPalette.getSelectedSteps()
Disponibilité
Dreamweaver 3.0
Description
Détermine quelle section du panneau Historique est sélectionnée.
Arguments
Aucun.
Valeurs renvoyées
Un tableau contenant les index de position de toutes les étapes sélectionnées.
Activateur
Aucun.
Exemple
Si la deuxième, la troisième et la quatrième étapes sont sélectionnées dans le
panneau Historique, comme le montre l'illustration ci-après, un appel à la
fonction dw.historyPalette.getSelectedSteps() renverra [1,2,3].
dreamweaver.historyPalette.getStepCount()
Disponibilité
Dreamweaver 3.0
API JavaScript de Dreamweaver
415
Description
Obtient le nombre d'étapes figurant dans le panneau Historique.
Arguments
Aucun.
Valeurs renvoyées
Un nombre entier représentant le nombre d'étapes actuellement répertoriées dans
le panneau Historique.
Activateur
Aucun.
dreamweaver.historyPalette.getStepsAsJavaScript()
Disponibilité
Dreamweaver 3.0
Description
Obtient l'équivalent JavaScript des étapes sélectionnées.
Arguments
arrayOfIndices
arrayOfIndices
est un tableau d'index de position dans le panneau Historique.
Valeurs renvoyées
Chaîne contenant le code JavaScript correspondant aux étapes sélectionnées.
Activateur
Aucun.
416
Chapitre 26
Exemple
Si les trois étapes indiquées dans l'illustration ci-après sont sélectionnées dans le
panneau Historique, un appel à la fonction
dw.historyPalette.getStepsAsJavaScript(dw.historyPalette.getSelec
tedSteps()) renvoie "dw.getDocumentDOM().insertText('Hey diddle
diddle, a cat and a fiddle, the cow jumped over the
moon.');\ndw.getDocumentDOM().newBlock();\n
dw.getDocumentDOM().insertHTML('<img src=\"../wdw99/50browsers/
images/sun.gif\">', true);\n" :
dreamweaver.historyPalette.getUndoState()
Disponibilité
Dreamweaver 3.0
Description
Obtient l'état d'annulation en cours.
Arguments
Aucun.
Valeurs renvoyées
La position du marqueur d'annulation dans le panneau Historique.
Activateur
Aucun.
dreamweaver.historyPalette.replaySteps()
Disponibilité
Dreamweaver 3.0
Description
Réexécute les étapes spécifiées de l'historique dans le document actif.
Dreamweaver prévient l'utilisateur de la possibilité de conséquences inattendues
dans le cas où les étapes spécifiées contiendraient une action qui ne peut pas être
reproduite.
API JavaScript de Dreamweaver
417
Arguments
arrayOfIndices
arrayOfIndices
est un tableau d'index de position dans le panneau Historique.
Valeurs renvoyées
Chaîne contenant le code JavaScript correspondant aux étapes sélectionnées.
Activateur
Aucun.
Exemple
Un appel à la fonction dw.historyPalette.replaySteps([0,2,3]) réexécute
la première, la troisième et la quatrième étapes du panneau Historique.
dreamweaver.historyPalette.saveAsCommand()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue Enregistrer comme commande et permet à l'utilisateur
d'enregistrer les étapes spécifiées sous forme de commande. Dreamweaver prévient
l'utilisateur de la possibilité de conséquences inattendues dans le cas où les étapes
spécifiées contiendraient une action qui ne peut pas être reproduite.
Arguments
arrayOfIndices
arrayOfIndices
est un tableau d'index de position dans le panneau Historique.
Valeurs renvoyées
Chaîne contenant le code JavaScript correspondant aux étapes sélectionnées.
Activateur
Aucun.
Exemple
Le code suivant enregistre la quatrième, la sixième et la huitième commandes du
panneau Historique comme une commande :
dw.historyPalette.saveAsCommand([3,5,7]);
dreamweaver.historyPalette.setSelectedSteps()
Disponibilité
Dreamweaver 3.0
Description
Sélectionne les étapes spécifiées dans le panneau Historique.
418
Chapitre 26
Arguments
arrayOfIndices
est un tableau d'index de position dans le panneau Historique.
Si aucun argument n'est défini, toutes les étapes sont désélectionnées.
arrayOfIndices
Valeurs renvoyées
Aucun.
Activateur
Aucun.
Exemple
L'exemple de code suivant sélectionne la première, la deuxième et la troisième
étapes du panneau Historique:
dw.historyPalette.setSelectedStepts([0,1,2]);
dreamweaver.historyPalette.getUndoState()
Disponibilité
Dreamweaver 3.0
Description
Effectue le nombre d'annulations et de rétablissements nécessaire pour arriver à
l'état d'annulation spécifié.
Arguments
undoState
undoState
est l'objet renvoyé par dw.historyPalette.getUndoState().
Valeurs renvoyées
Aucune.
Activateur
Aucun.
Fonctions relatives aux styles HTML
Ces fonctions permettent d'appliquer, de créer et de supprimer des styles HTML.
Les méthodes de l'objet dreamweaver.htmlStylePalette permettent de
contrôler ou d'agir sur la sélection du panneau Styles HTML (programmé dans
l'API en tant que « palette ») et non dans le document courant.
dom.applyHTMLStyle()
Disponibilité
Dreamweaver 3.0
API JavaScript de Dreamweaver
419
Description
Applique le style HTML spécifié à la sélection en cours. Cette fonction n'est
valide que pour le document actif.
Arguments
htmlStyleName
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.htmlStylePalette.deleteSelectedStyle()
Disponibilité
Dreamweaver 3.0
Description
Supprime le style sélectionné du panneau Styles HTML.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dreamweaver.htmlStylePalette.canEditSelection()
dreamweaver.htmlStylePalette.duplicateSelectedStyle()
Disponibilité
Dreamweaver 3.0
Description
Duplique le style sélectionné et ouvre la boîte de dialogue Définir style HTML.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dreamweaver.htmlStylePalette.canEditSelection()
dreamweaver.htmlStylePalette.editSelectedStyle()
Disponibilité
Dreamweaver 3.0
420
Chapitre 26
Description
Ouvre la boîte de dialogue Définir style HTML pour le style sélectionné.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dreamweaver.htmlStylePalette.canEditSelection()
dreamweaver.htmlStylePalette.getSelectedStyle()
Disponibilité
Dreamweaver 3.0
Description
Obtient le nom du style sélectionné dans le panneau Styles HTML.
Arguments
Aucun.
Valeurs renvoyées
Chaîne contenant le nom du style sélectionné.
Activateur
Aucun.
dreamweaver.htmlStylePalette.getStyles()
Disponibilité
Dreamweaver 3.0
Description
Obtient la liste de tous les noms de styles HTML définis.
Arguments
Aucun.
Valeurs renvoyées
Tableau de chaînes, chacune représentant le nom d'un style HTML. Si aucun style
HTML n'est défini, la fonction renvoie un tableau vide.
Activateur
Aucun.
dreamweaver.htmlStylePalette.newStyle()
Disponibilité
Dreamweaver 3.0
API JavaScript de Dreamweaver
421
Description
Ouvre la boîte de dialogue Définir style HTML pour définir un nouveau style.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.htmlStylePalette.setSelectedStyle()
Disponibilité
Dreamweaver 3.0
Description
Sélectionne le style spécifié du panneau Styles HTML.
Arguments
htmlStyleName
Valeurs renvoyées
Aucune.
Activateur
Aucun.
Fonctions relatives au débogueur
JavaScript
Ces commandes permettent de personnaliser le comportement du débogueur
JavaScript de Dreamweaver. Pour plus d'informations sur le débogueur JavaScript
de Dreamweaver, voir la section « Modules de débogage JavaScript », page 67.
dom.instrumentDocument ()
Disponibilité
Dreamweaver 4.0
422
Chapitre 26
Description
Crée la version de débogage du document et de tous les fichiers .js externes
auxquels il fait référence. Cette fonction analyse le code JavaScript dans le
document et appelle la fonction debuggerModule sur des segments de code à
insérer à différents points du fichier JavaScript. La fonction debuggerModule est
également informée des erreurs de syntaxe et des avertissements. Cette fonction
échoue dans les conditions suivantes : erreurs de syntaxe, erreur de fichier ou si le
document ne peut pas être débogué pour une raison quelconque. Les fichiers
temporaires ne sont jamais supprimés immédiatement, même si la fonction
échoue.
Arguments
debuggerModule, outputFileName
•
debuggerModule
•
est facultatif ; il s'agit du nom utilisé pour la version de
débogage du fichier .htm. Si cet argument n'est pas défini, un fichier
temporaire est créé. Ce fichier temporaire est supprimé quand vous quittez
Dreamweaver. Si le fichier outputFileName existe déjà, le fichier existant est
remplacé. Ce fichier est toujours placé dans le même répertoire que le
document source ; par conséquent, il ne peut pas avoir le même nom. Si un
chemin est indiqué, celui-ci est ignoré. Le nom de la version de débogage des
fichiers .js externes référencés correspond au nom d'origine du fichier .js
précédé de outputFileName.
est le nom d'un module Dreamweaver spécial qui
implémente l'API d'instrumentation. Ce module se situe dans le dossier
Configuration/Debugger du dossier de l'application Dreamweaver.
outputFileName
Valeurs renvoyées
Tableau de paires d'URL de fichier. Chaque paire consiste en l'URL du fichier
source d'origine suivie de l'URL de la version de débogage créée. La première paire
correspond toujours aux fichiers .htm et toutes les entrées suivantes sont les
fichiers .js auxquels le fichier .htm fait référence. Si la fonction échoue, la valeur
null est renvoyée. Notez qu'une paire d'URL consiste en deux entrées dans le
tableau. Par exemple, si returnValue = dom.instrumentDocument(test.htm),
alors returnValue[0] est l'URL de test.htm et returnValue[1] est l'URL de la
version de débogage de test.htm.
dreamweaver.debugDocument()
Disponibilité
Dreamweaver 4.0
API JavaScript de Dreamweaver
423
Description
Crée la version de débogage du document en cours et lance le débogueur. Cette
fonction peut uniquement être utilisée avec l'un des navigateurs pour lesquels
Dreamweaver prend en charge le débogage JavaScript (voir section
« dreamweaver.getDebugBrowserList() », page 424 ). Cette fonction n'avertit pas
l'utilisateur si elle n'arrive pas à déterminer le type de navigateur. Si des erreurs de
syntaxe ou des avertissements se produisent, une fenêtre de résultats s'ouvre pour
afficher les messages. Si aucune erreur ne se produit, la version de débogage du
document HTML s'affiche dans le navigateur spécifié. Si des avertissements se
produisent, mais pas d'erreurs, la fenêtre de résultats s'affiche et le débogage
commence.
La création de la version de débogage est effectuée par l'intermédiaire d'un appel
de la fonction dom.instrumentDocument() à l'aide de l'un des modules
d'instrumentation par défaut. La version de débogage du document est
temporaire et est supprimée lors du redémarrage du débogueur ou de la fermeture
de Dreamweaver.
Arguments
fileName, {browserName}
•
fileName
•
browserName
est le nom du fichier à ouvrir, exprimé sous forme d'une
URL absolue.
est facultatif ; il spécifie le nom du navigateur de destination tel
qu'il est défini dans les paramètres d'aperçu des préférences du navigateur. Il
peut également être principal (primary) ou secondaire (secondary). Si cet
argument n'est pas défini, le navigateur principal est utilisé par défaut.
Valeurs renvoyées
Aucune.
dreamweaver.getDebugBrowserList()
Disponibilité
Dreamweaver 4.0
Description
Renvoie les navigateurs définis pour lesquels Dreamweaver prend en charge le
débogage JavaScript. Sous Windows, Dreamweaver prend en charge le débogage
uniquement dans Internet Explorer 5.0 ou ultérieur et dans Netscape 4.5 ou
ultérieur. Sur Macintosh, Dreamweaver prend en charge le débogage uniquement
dans Netscape 4.5 ou ultérieur.
Arguments
Aucun.
Valeurs renvoyées
Un tableau de noms de navigateurs dans le même format que celui renvoyé par
getBrowserList().
424
Chapitre 26
dreamweaver.getIsAnyBreakpoints()
Disponibilité
Dreamweaver 4.0
Description
Recherche d'éventuels points d'arrêt définis dans les fichiers.
Arguments
Aucun.
Valeurs renvoyées
bBreakpointsSet
La valeur booléenne true est renvoyée si des points d'arrêt sont définis dans des
fichiers.
dreamweaver.removeAllBreakpoints()
Disponibilité
Dreamweaver 4.0
Description
Supprime tous les points d'arrêt de tous les fichiers.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
dreamweaver.startDebugger()
Disponibilité
Dreamweaver 4.0
Description
Ouvre la fenêtre de débogueur ainsi que le fichier .htm source et les fichiers .js
indiqués dans sourceFileList(), puis lance le navigateur avec la version de
débogage spécifiée par debugFileName(). Cette fonction n'avertit pas l'utilisateur
si elle n'arrive pas à déterminer le type de navigateur.
La création de la version de débogage est effectuée par un appel de la fonction
dom.instrumentDocument().
Arguments
debugFileName, sourceFileList, isTempFiles, {browserName}
•
debugFileName est le nom de la version de débogage du fichier à lancer dans le
navigateur.
API JavaScript de Dreamweaver
425
•
sourceFileList
•
isTempFiles est une valeur booléenne indiquant si un suivi des fichiers utilisés
est un tableau de paires d'URL contenant le fichier source et
le fichier utilisé ; la première paire est le fichier .htm et les paires suivantes sont
les fichiers .js externes. Chaque URL est exprimée sous la forme d'une URL
absolue.
doit être effectué et si ces fichiers doivent être supprimés lors du lancement
suivant du débogueur ou de la fermeture de Dreamweaver.
•
est facultatif ; il spécifie le nom du navigateur de destination tel
qu'il est défini dans les paramètres d'aperçu des préférences du navigateur. Il
peut également être principal (primary) ou secondaire (secondary). Si cet
argument n'est pas défini, le navigateur principal est utilisé par défaut.
browserName
Valeurs renvoyées
Aucune.
Fonctions relatives au clavier
Ces fonctions émulent les opérations de déplacement au sein d'un document à
l'aide des touches de direction, RET. ARR, SUPPR., PG. PREC et PG. SUIV.
Outre les fonctions générales telles que arrowLeft() (équivalent de la touche de
direction Gauche) et backspaceKey() (équivalent de la touche RET. ARR),
Dreamweaver offre également des méthodes permettant d'accéder au mot ou au
paragraphe suivant ou précédent, et au début et à la fin d'une ligne ou d'un
document.
dom.arrowDown()
Disponibilité
Dreamweaver 3.0
Description
Déplace le point d'insertion vers le bas du nombre de lignes spécifié.
Arguments
{nTimes}, {bShiftIsDown}
•
nTimes
•
bShiftIsDown
est le nombre de fois où le point d'insertion doit être déplacé vers le
bas. Si cet argument n'est pas défini, il prend par défaut la valeur 1.
est une valeur booléenne indiquant si la sélection doit être
étendue. Si cet argument n'est pas défini, il prend par défaut la valeur false.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
426
Chapitre 26
dom.arrowLeft()
Disponibilité
Dreamweaver 3.0
Description
Déplace le point d'insertion vers la gauche du nombre de colonnes spécifié.
Arguments
{nTimes}, {bShiftIsDown}
•
nTimes
•
bShiftIsDown
est le nombre de fois où le point d'insertion doit être déplacé vers la
gauche. Si cet argument n'est pas défini, il prend par défaut la valeur 1.
est une valeur booléenne indiquant si la sélection doit être
étendue. Si cet argument n'est pas défini, il prend par défaut la valeur false.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.arrowRight()
Disponibilité
Dreamweaver 3.0
Description
Déplace le point d'insertion vers la droite du nombre de colonnes spécifié.
Arguments
{nTimes}, {bShiftIsDown}
•
nTimes
•
bShiftIsDown
est le nombre de fois où le point d'insertion doit être déplacé vers la
droite. Si cet argument n'est pas défini, il prend par défaut la valeur 1.
est une valeur booléenne indiquant si la sélection doit être
étendue. Si cet argument n'est pas défini, il prend par défaut la valeur false.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.arrowUp()
Disponibilité
Dreamweaver 3.0
API JavaScript de Dreamweaver
427
Description
Déplace le point d'insertion vers le haut du nombre de lignes spécifié.
Arguments
{nTimes}, {bShiftIsDown}
•
nTimes
•
bShiftIsDown
est le nombre de fois où le point d'insertion doit être déplacé vers le
haut. Si cet argument n'est pas défini, il prend par défaut la valeur 1.
est une valeur booléenne indiquant si la sélection doit être
étendue. Si cet argument n'est pas défini, il prend par défaut la valeur false.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.backspaceKey()
Disponibilité
Dreamweaver 3.0
Description
Revient à appuyer sur la touche RET. ARR le nombre de fois spécifié. Le résultat
obtenu sera différent selon qu'il y a une sélection en cours ou simplement un
point d'insertion.
Arguments
{nTimes}
nTimes est le nombre de fois où une opération de retour arrière doit avoir lieu. S'il
n'est pas défini, il prend par défaut la valeur 1.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.deleteKey()
Disponibilité
Dreamweaver 3.0
Description
Revient à appuyer sur la touche SUPPR. le nombre de fois spécifié. Le résultat
obtenu sera différent selon qu'il y a une sélection en cours ou simplement un
point d'insertion.
428
Chapitre 26
Arguments
{nTimes}
est le nombre de fois où une opération de suppression doit avoir lieu. S'il
n'est pas défini, il prend par défaut la valeur 1.
nTimes
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.endOfDocument()
Disponibilité
Dreamweaver 3.0
Description
Déplace le point d'insertion à la fin du document, dans la fenêtre active (c'est-àdire après le dernier contenu visible de la fenêtre de document ou après la balise
HTML de fermeture de l'inspecteur de code selon le cas).
Arguments
{bShiftIsDown}
est une valeur booléenne indiquant si la sélection doit être
étendue. S'il n'est pas défini, il prend par défaut la valeur false.
bShiftIsDown
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.endOfLine()
Disponibilité
Dreamweaver 3.0
Description
Déplace le point d'insertion à la fin de la ligne.
Arguments
{bShiftIsDown}
est une valeur booléenne indiquant si la sélection doit être
étendue. S'il n'est pas défini, il prend par défaut la valeur false.
bShiftIsDown
Valeurs renvoyées
Aucune.
API JavaScript de Dreamweaver
429
Activateur
Aucun.
dom.nextParagraph()
Disponibilité
Dreamweaver 3.0
Description
Déplace le point d'insertion au début du paragraphe suivant (ou saute plusieurs
paragraphes si l'argument nTimes est supérieur à 1).
Arguments
{nTimes}, {bShiftIsDown}
•
nTimes
•
bShiftIsDown
est le nombre de paragraphes dont le point d'insertion doit avancer. Si
cet argument n'est pas défini, il prend par défaut la valeur 1.
est une valeur booléenne indiquant si la sélection doit être
étendue. Si cet argument n'est pas défini, il prend par défaut la valeur false.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.nextWord()
Disponibilité
Dreamweaver 3.0
Description
Déplace le point d'insertion au début du mot suivant (ou saute plusieurs mots si
l'argument nTimes est supérieur à 1).
Arguments
{nTimes}, {bShiftIsDown}
•
nTimes
•
bShiftIsDown
est le nombre de mots dont le point d'insertion doit avancer. Si cet
argument n'est pas défini, il prend par défaut la valeur 1.
est une valeur booléenne indiquant si la sélection doit être
étendue. Si cet argument n'est pas défini, il prend par défaut la valeur false.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
430
Chapitre 26
dom.pageDown()
Disponibilité
Dreamweaver 3.0
Description
Déplace le point d'insertion d'une page vers le bas (équivalent de la touche
PG. SUIV).
Arguments
{nTimes}, {bShiftIsDown}
•
nTimes
•
bShiftIsDown
est le nombre de pages dont le point d'insertion doit reculer. Si cet
argument n'est pas défini, il prend par défaut la valeur 1.
est une valeur booléenne indiquant si la sélection doit être
étendue. Si cet argument n'est pas défini, il prend par défaut la valeur false.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.pageUp()
Disponibilité
Dreamweaver 3.0
Description
Déplace le point d'insertion d'une page vers le haut (équivalent de la touche
PG. PREC).
Arguments
{nTimes}, {bShiftIsDown}
•
nTimes
•
bShiftIsDown
est le nombre de pages dont le point d'insertion doit avancer. Si cet
argument n'est pas défini, il prend par défaut la valeur 1.
est une valeur booléenne indiquant si la sélection doit être
étendue. Si cet argument n'est pas défini, il prend par défaut la valeur false.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.previousParagraph()
Disponibilité
Dreamweaver 3.0
API JavaScript de Dreamweaver
431
Description
Déplace le point d'insertion au début du paragraphe précédent (ou saute plusieurs
paragraphes si l'argument nTimes est supérieur à 1).
Arguments
{nTimes}, {bShiftIsDown}
•
nTimes
•
bShiftIsDown
est le nombre de paragraphes dont le point d'insertion doit reculer. Si
cet argument n'est pas défini, il prend par défaut la valeur 1.
est une valeur booléenne indiquant si la sélection doit être
étendue. Si cet argument n'est pas défini, il prend par défaut la valeur false.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.previousWord()
Disponibilité
Dreamweaver 3.0
Description
Déplace le point d'insertion au début du mot précédent (ou saute plusieurs mots
si l'argument nTimes est supérieur à 1).
Arguments
{nTimes}, {bShiftIsDown}
•
nTimes
•
bShiftIsDown
est le nombre de mots dont le point d'insertion doit reculer. Si cet
argument n'est pas défini, il prend par défaut la valeur 1.
est une valeur booléenne indiquant si la sélection doit être
étendue. Si cet argument n'est pas défini, il prend par défaut la valeur false.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.startOfDocument()
Disponibilité
Dreamweaver 3.0
Description
Déplace le point d'insertion au début du document, dans la fenêtre active (c'est-àdire avant le premier contenu visible de la fenêtre de document ou avant la balise
HTML d'ouverture de l'inspecteur de code, selon le cas).
432
Chapitre 26
Arguments
{bShiftIsDown}
est une valeur booléenne indiquant si la sélection doit être
étendue. S'il n'est pas défini, il prend par défaut la valeur false.
bShiftIsDown
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.startOfLine()
Disponibilité
Dreamweaver 3.0
Description
Déplace le point d'insertion au début de la ligne.
Arguments
{bShiftIsDown}
est une valeur booléenne indiquant si la sélection doit être
étendue. S'il n'est pas défini, il prend par défaut la valeur false.
bShiftIsDown
Valeurs renvoyées
Aucune.
Activateur
Aucun.
mapKeyCodeToChar()
Description
Convertit un code de touche tel qu'il est indiqué dans le champ keyCode de
l'objet événement en caractère. Vous devez d'abord vérifier si le code de touche est
une touche spéciale telle que la touche ORIGINE, PAGE SUIVANTE, etc. S'il ne
s'agit pas d'une touche spéciale, cette méthode doit être utilisée pour traduire le
code en code de caractère pouvant être affiché.
Arguments
keyCode
keyCode
est le code de touche à traduire en caractère.
Valeurs renvoyées
Aucune.
API JavaScript de Dreamweaver
433
Fonctions relatives aux calques et aux
cartes graphiques
Ces fonctions permettent d'aligner, de redimensionner et de déplacer des calques
et des zones réactives de carte graphique. Il est indiqué, dans la description de
chaque fonction, si cette dernière s'applique aux calques ou aux zones réactives.
dom.align()
Disponibilité
Dreamweaver 3.0
Description
Aligne à gauche, à droite, en haut ou en bas les calques ou zones réactives
sélectionnés.
Arguments
alignDirection
représente le bord sur lequel les calques ou les zones réactives
doivent être alignés, à savoir "left", "right", "top" ou "bottom".
alignDirection
Valeurs renvoyées
Aucune.
Activateur
dom.canAlign()
dom.arrange()
Disponibilité
Dreamweaver 3.0
Description
Déplace les zones réactives sélectionnées dans le sens indiqué.
Arguments
toBackOrFront
toBackOrFront correspond
"front" ou "back".
Valeurs renvoyées
Aucune.
Activateur
dom.canArrange()
434
Chapitre 26
au sens du déplacement des zones réactives, à savoir
dom.makeSizesEqual()
Disponibilité
Dreamweaver 3.0
Description
Affecte aux calques ou aux zones réactives sélectionnés la même hauteur ou la
même largeur, ou les deux. Le dernier calque ou la dernière zone réactive
sélectionnée sert de guide.
Arguments
bHoriz, bVert
•
bHoriz
•
bVert
est une valeur booléenne indiquant si les calques ou les zones réactives
doivent être redimensionnés horizontalement.
est une valeur booléenne indiquant si les calques ou les zones réactives
doivent être redimensionnés verticalement.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.moveSelectionBy()
Disponibilité
Dreamweaver 3.0
Description
Déplace les calques ou les zones réactives sélectionnés horizontalement et
verticalement du nombre de pixels spécifiés.
Arguments
x, y
•
•
x
est le nombre de pixels dont la sélection doit être déplacée horizontalement.
y
est le nombre de pixels dont la sélection doit être déplacée verticalement.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.resizeSelectionBy()
Disponibilité
Dreamweaver 3.0
API JavaScript de Dreamweaver
435
Description
Redimensionne le calque ou la zone réactive sélectionnée.
Arguments
left, top, bottom, right
•
left est la nouvelle position de la limite gauche du calque ou de la zone
réactive.
•
top est la nouvelle position de la limite supérieure du calque ou de la zone
réactive.
•
bottom
•
right
est la nouvelle position de la limite inférieure du calque ou de la zone
réactive.
est la nouvelle position de la limite droite du calque ou de la zone
réactive.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
Exemple
Si le calque sélectionné possède les propriétés Left, Top, Width et Height
indiquées, un appel à la fonction dw.getDocumentDOM().resizeSelectionBy(–
10,–30,30,10) revient à restaurer Left à 40, Hight à 20, Width à 240 et Height à
240.
dom.setLayerTag()
Disponibilité
Dreamweaver 3.0
Description
Spécifie la balise HTML définissant le ou les calques sélectionnés.
Arguments
tagName
tagName
doit être
Valeurs renvoyées
Aucune.
436
Chapitre 26
"layer", "ilayer", "div"
ou
"span".
Activateur
Aucun.
Fonctions relatives aux éléments de
bibliothèque et aux modèles
Ces fonctions permettent de gérer les opérations relatives aux modèles et aux
éléments de bibliothèque, telles que la création, la mise à jour et la rupture de liens
entre un document et un modèle ou un élément de la bibliothèque. Les méthodes
de l'objet dreamweaver.libraryPalette permettent d'avoir un contrôle ou
d'agir sur la sélection contenue dans le panneau Bibliothèque (programmé dans
l'API en tant que « palette ») et non sur le document courant. De même, les
méthodes de l'objet dreamweaver.templatePalette contrôlent ou agissent sur
la sélection dans le panneau Modèle.
dom.applyTemplate()
Disponibilité
Dreamweaver 3.0
Description
Applique un modèle au document en cours. Si vous ne spécifiez aucun argument,
la boîte de dialogue Sélectionner le modèle s'affiche. Cette fonction n'est valide
que pour le document actif.
Arguments
{templateURL}, bMaintainLink
•
templateURL
•
bMaintainLink est une valeur booléenne indiquant si le lien au modèle
d'origine doit être conservé (true) ou pas (false).
est le chemin d'un modèle disponible sur le site en cours,
exprimé sous la forme d'une URL de type file://.
Valeurs renvoyées
Aucune.
Activateur
dom.canApplyTemplate()
dom.detachFromLibrary()
Disponibilité
Dreamweaver 3.0
API JavaScript de Dreamweaver
437
Description
Rompt le lien entre l'occurrence actuellement sélectionnée d'un élément de
bibliothèque et le fichier LBI qui lui est associé en supprimant les balises de
verrouillage autour de la sélection. Revient à cliquer sur Détacher de l'original
dans l'inspecteur de propriétés.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.detachFromTemplate()
Disponibilité
Dreamweaver 3.0
Description
Détache le document en cours du modèle qui lui est associé.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.getAttachedTemplate()
Disponibilité
Dreamweaver 3.0
Description
Obtient le chemin du modèle associé au document.
Arguments
Aucun.
Valeurs renvoyées
Chaîne contenant le chemin du modèle, exprimé sous la forme d'une URL de
type file://.
Activateur
Aucun.
438
Chapitre 26
dom.getEditableRegionList()
Disponibilité
Dreamweaver 3.0
Description
Obtient la liste des régions modifiables dans le corps du document.
Arguments
Aucun.
Valeurs renvoyées
Tableau de nœuds d'élément.
Activateur
Aucun.
Exemple
Voir « dom.getSelectedEditableRegion() », page 440.
dom.getIsLibraryDocument()
Disponibilité
Dreamweaver 3.0
Description
Détermine si le document est un élément de bibliothèque.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si le document est un fichier LBI.
Activateur
Aucun.
dom.getIsTemplateDocument()
Disponibilité
Dreamweaver 3.0
Description
Détermine si le document est un modèle.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si le document est un fichier DWT.
API JavaScript de Dreamweaver
439
Activateur
Aucun.
dom.getSelectedEditableRegion()
Disponibilité
Dreamweaver 3.0
Description
Si la sélection ou le point d'insertion se trouve à l'intérieur d'une région
modifiable, obtient la position de cette dernière parmi toutes celles qui existent
dans le corps du document.
Arguments
Aucun.
Valeurs renvoyées
Index de position dans le tableau renvoyé par la fonction
dom.getEditableRegionList().
Activateur
Aucun.
Exemple
Le code suivant affiche une boîte de dialogue affichant le contenu de la région
modifiable sélectionnée :
var theDOM = dw.getDocumentDOM();
var edRegs = theDOM.getEditableRegionList();
var selReg = theDOM.getSelectedEditableRegion();
alert(edRegs[selReg].innerHTML);
dom.insertLibraryItem()
Disponibilité
Dreamweaver 3.0
Description
Insère une occurrence d'un élément de bibliothèque dans le document.
Arguments
libraryItemURL
est le chemin d'un fichier LBI, exprimé sous la forme d'une
URL de type file://.
libraryItemURL
Valeurs renvoyées
Aucune.
Activateur
Aucun.
440
Chapitre 26
dom.markSelectionAsEditable()
Disponibilité
Dreamweaver 3.0
Description
Affiche la boîte de dialogue Nouvelle région modifiable. Lorsque l'utilisateur
clique sur Nouvelle région, Dreamweaver marque la sélection comme étant
modifiable et laisse le texte tel quel.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dom.canMarkSelectionAsEditable()
dom.newEditableRegion()
Disponibilité
Dreamweaver 3.0
Description
Affiche la boîte de dialogue Nouvelle région modifiable. Lorsque l'utilisateur
clique sur Nouvelle région, Dreamweaver insère le nom de la région dans le
document, entre accolades, à l'emplacement du point d'insertion.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dom.canMakeNewEditableRegion()
dom.removeEditableRegion()
Disponibilité
Dreamweaver 3.0
Description
Supprime une région modifiable du document. Si cette région possède un
contenu, celui-ci est conservé ; seuls les marqueurs de région modifiable sont
supprimés.
Arguments
Aucun.
API JavaScript de Dreamweaver
441
Valeurs renvoyées
Aucune.
Activateur
dom.canRemoveEditableRegion()
dom.updateCurrentPage()
Disponibilité
Dreamweaver 3.0
Description
Met à jour les modèles ou les éléments de bibliothèque du document, ou les deux.
Cette fonction n'est valide que pour le document actif.
Arguments
{typeOfUpdate}
typeOfUpdate doit être "library",
il prend par défaut la valeur "both".
"template" ou "both". S'il n'est pas défini,
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.updatePages()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue Mettre à jour les pages et sélectionne les options
spécifiées.
Arguments
{typeOfUpdate}
typeOfUpdate doit être "library", "template" ou "both". S'il n'est pas défini,
il prend par défaut la valeur "both".
Valeurs renvoyées
Aucune.
Activateur
Aucun.
442
Chapitre 26
dreamweaver.templatePalette.newBlankTemplate()
Disponibilité
Dreamweaver 3.0
Description
Crée un nouveau modèle.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
Fonctions Live data
Vous pouvez appeler les fonctions Live data suivantes pour reproduire les
fonctionnalités de menu :
•
showLiveDataDialog()
peut être utilisée pour l'option de menu Affichage >
Paramètres Live Data
•
setLiveDataMode() peut être utilisée pour l'option de menu Affichage > Live
Data et Affichage > Actualiser Live Data
•
getLiveDataMode()
peut également être utilisée pour l'option Affichage >
Live Data
Les autres fonctions Live Data sont utilisées lors de la mise en œuvre de la
fonction liveDataTranslateMarkup() de l'API du traducteur.
dreamweaver.getLiveDataInitTags()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Renvoie les balises d'initialisation pour le document actif. Les balises
d'initialisation sont les balises HTML que l'utilisateur a indiquées dans la boîte de
dialogue Paramètres Live Data. Cette fonction est généralement appelée à partir
de la fonction liveDataTranslateMarkup() d'un traducteur, de façon à ce que
le traducteur puisse transmettre les balises à la fonction liveDataTranslate().
Arguments
Aucun.
Valeurs renvoyées
Une chaîne contenant les balises d'initialisation.
API JavaScript de Dreamweaver
443
dreamweaver.getLiveDataMode()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Détermine si la fenêtre Live Data est actuellement visible.
Arguments
Aucun.
Valeurs renvoyées
Une valeur booléenne indiquant si la fenêtre Live Data est visible.
dreamweaver.liveDataTranslate()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Envoie un document HTML entier à un serveur d'application, demande au
serveur d'exécuter les scripts dans le document, puis renvoie le document HTML
final. Cette fonction peut également être appelée à partir de la fonction
liveDataTranslateMarkup() d'un traducteur ; si vous tentez de l'appeler à un
autre moment, une erreur se produit. Cette fonction effectue les opérations
suivantes :
• Elle lit l'image animée (qui s'affiche à côté du bord droit de la fenêtre Live
Data).
• Elle analyse les données saisies par l'utilisateur. Si vous cliquez sur l'icône
Arrêter, la fonction est immédiatement terminée.
• Elle accepte un argument contenant une seule chaîne de l'appelant (cette
chaîne représente généralement le code source HTML entier du document de
l'utilisateur. Il s'agit de la même chaîne que celle utilisée dans l'opération
suivante).
• Elle enregistre la chaîne HTML du document de l'utilisateur dans un fichier
temporaire stocké sur le serveur Live Data.
• Elle envoie une requête HTTP au serveur Live Data, en utilisant les paramètres
définis dans la boîte de dialogue Paramètres Live Data.
•
•
•
•
444
Chapitre 26
Elle reçoit la réponse HTML du serveur Live Data.
Elle supprime le fichier temporaire du serveur Live Data.
Elle arrête la lecture du fichier d'animation.
Elle renvoie la réponse HTML à l'appelant.
Arguments
Une seule chaîne, représentant généralement le code source HTML entier du
document en cours de l'utilisateur.
Valeurs renvoyées
Objet httpReply. Cet objet est le même que la valeur renvoyée par la fonction
MMHttp.getText(). Si l'utilisateur clique sur l'icône Arrêter, le code
httpReply.statusCode de la valeur de retour est égal à 200 (état OK) et son
httpReply.data est égal à une chaîne vide. Voir la section « API HTTP », page
241 pour plus d'informations sur l'objet httpReply.
dreamweaver.setLiveDataError()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Détermine le message d'erreur à afficher si une erreur se produit lors de
l'exécution de la fonction liveDataTranslateMarkup() dans un traducteur. Si le
document transmis par UltraDev à liveDataTranslate() contient des erreurs,
le serveur retransmet un message d'erreur, en format HTML. Si le traducteur
(code ayant appelé liveDataTranslate()) détermine que le serveur a renvoyé un
message d'erreur, il appelle setLiveDataError() pour afficher le message
d'erreur dans UltraDev. Ce message s'affiche une fois que la fonction
liveDataTranslateMarkup() a été exécutée ; UltraDev affiche la description
dans une boîte de dialogue d'erreurs. La fonction setLiveDataError() doit
uniquement être appelée à partir de la fonction liveDataTranslateMarkup().
Arguments
source
est une chaîne contenant le code source HTML, qui est ensuite analysé et
rendu dans la boîte de dialogue du message d'erreur.
source
Valeurs renvoyées
Aucune.
dreamweaver.setLiveDataMode()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Active ou désactive l'affichage de la fenêtre Live Data.
API JavaScript de Dreamweaver
445
Arguments
bIsVisible
est une valeur booléenne indiquant si la fenêtre Live Data doit être
visible. Si vous transmettez la valeur true à cette fonction et qu'UltraDev est
configuré pour afficher la fenêtre Live Data, l'effet est le même que si l'utilisateur
clique sur Actualiser.
bIsVisible
Valeurs renvoyées
Aucune.
dreamweaver.showLiveDataDialog()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Affiche la boîte de dialogue Paramètres Live Data.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Fonctions relatives aux menus
Ces fonctions permettent d'optimiser et de recharger les menus dans
Dreamweaver. Les fonctions dreamweaver.getMenuNeedsUpdating() et
dreamweaver.notifyMenuUpdated() sont spécialement conçues pour empêcher
l'exécution de routines de mise à jour superflues sur les menus dynamiques
intégrés à Dreamweaver.
dreamweaver.getMenuNeedsUpdating()
Disponibilité
Dreamweaver 3.0
Description
Vérifie si le menu spécifié doit être mis à jour.
Arguments
menuId
est une chaîne contenant la valeur de l'attribut id de l'élément de menu
(tel qu'il est spécifié dans le fichier menus.xml).
menuId
446
Chapitre 26
Valeurs renvoyées
Valeur booléenne indiquant si le menu doit être mis à jour. Cette fonction renvoie
la valeur false uniquement si la fonction dreamweaver.notifyMenuUpdated()
a été appelée avec l'argument menuId et que la valeur renvoyée par
menuListFunction n'a pas changé depuis. Reportez-vous à la section
dreamweaver.notifyMenuUpdated() pour de plus amples informations.
Activateur
Aucun.
dreamweaver.notifyMenuUpdated()
Disponibilité
Dreamweaver 3.0
Description
Prévient Dreamweaver lorsque le menu spécifié doit être mis à jour.
Arguments
menuId, menuListFunction
•
menuId
•
menuListFunction doit être l'une des chaînes suivantes :
"dw.cssStylePalette.getStyles()",
"dw.getDocumentDOM().getFrameNames()",
"dw.getDocumentDOM().getEditableRegionList",
"dw.getBrowserList()", "dw.getRecentFileList()",
"dw.getTranslatorList()", "dw.getFontList()",
"dw.getDocumentList()", "dw.htmlStylePalette.getStyles()"
"site.getSites()".
est une chaîne contenant la valeur de l'attribut id de l'élément de
menu (tel qu'il est spécifié dans le fichier menus.xml).
ou
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.reloadMenus()
Disponibilité
Dreamweaver 3.0
Description
Recharge la structure de menus à partir du fichier menus.xml du dossier
Configuration.
Arguments
Aucun.
API JavaScript de Dreamweaver
447
Valeurs renvoyées
Aucune.
Activateur
Aucun.
Fonctions relatives aux chemins
Ces fonctions permettent d'obtenir et de manipuler les chemins d'accès aux
fichiers et aux dossiers enregistrés sur le disque dur de l'utilisateur. Elles
permettent, entre autres, de déterminer le chemin d'accès à la racine du site dans
lequel réside le document en cours et de convertir des chemins relatifs en URL
absolues.
dreamweaver.getConfigurationPath()
Disponibilité
Dreamweaver 2.0
Description
Obtient le chemin d'accès du dossier Configuration, exprimé sous la forme d'une
URL de type file://.
Arguments
Aucun.
Valeurs renvoyées
Chaîne contenant le chemin d'accès du dossier Configuration.
Activateur
Aucun.
Exemple
Cette fonction est utile lorsque l'on souhaite faire référence à d'autres fichiers
d'extension stockés dans le dossier Configuration à l'intérieur du dossier de
l'application Dreamweaver. Exemple :
var sortCmd = dreamweaver.getConfigurationPath() + ¬
"/Commands/Sort Table.htm"
var sortDOM = dreamweaver.getDocumentDOM(sortCmd);
dreamweaver.getDocumentPath()
Disponibilité
Dreamweaver1.2
448
Chapitre 26
Description
Obtient le chemin d'accès du document spécifié, exprimé sous la forme d'une
URL de type file://. Cette fonction revient à appeler la fonction
dreamweaver.getDocumentDOM() et à lire la propriété URL de la valeur renvoyée.
Arguments
sourceDoc
sourceDoc doit être "document", "parent", "parent.frames[number]" ou
"parent.frames['frameName']". document désigne le document actif
contenant la sélection en cours. parent désigne le jeu de cadres parent (si le
document sélectionné se trouve dans un cadre) et "parent.frames[number]"
"parent.frames['frameName']" désignent un document figurant dans un
et
cadre spécifique du jeu de cadres contenant le document en cours.
Valeurs renvoyées
L'une des valeurs suivantes :
• Une chaîne contenant l'URL du document spécifié, si le fichier a été enregistré.
• Une chaîne vide si le fichier n'a pas été enregistré.
Activateur
Aucun.
dreamweaver.getSiteRoot()
Disponibilité
Dreamweaver 1.2
Description
Obtient le dossier racine local (défini dans la boîte de dialogue Définition du site)
du site associé au document sélectionné, exprimé sous la forme d'une URL de
type file://.
Arguments
Aucun.
Valeurs renvoyées
L'une des valeurs suivantes :
• Une chaîne contenant l'URL du dossier racine local du site dans lequel le
fichier a été enregistré.
• Une chaîne vide si le fichier n'est pas associé à un site.
Activateur
Aucun.
API JavaScript de Dreamweaver
449
dreamweaver.relativeToAbsoluteURL()
Disponibilité
Dreamweaver 2.0
Description
Si on lui fournit une URL relative et un point de référence donnés (chemin du
document en cours ou racine du site), convertit l'URL relative en URL absolue
(file://).
Arguments
relURL, docPath, siteRoot
•
•
relURL
•
siteRoot est le chemin de la racine du site, exprimé sous forme d'une URL de
type file:// ou d'une chaîne vide si relURL est une URL relative à un
est l'URL à convertir.
correspond au chemin du document sur le disque de l'utilisateur
(le document en cours, par exemple), exprimé sous la forme d'une URL de type
file://, ou à une chaîne vide si relURL est une URL relative à la racine.
docPath
document.
Valeurs renvoyées
URL absolue. La valeur renvoyée est générée comme suit :
• Si relURL est une URL absolue, aucune conversion n'a lieu et la valeur
renvoyée est identique à relURL.
• Si relURL est une URL relative à un document, la valeur renvoyée est une
combinaison de docPath + relURL.
• Si relURL est une URL relative à la racine, la valeur renvoyée est une
combinaison de siteRoot + relURL.
Activateur
Aucun.
Fonctions relatives à Quick Tag Editor
Ces fonctions permettent de se déplacer d'une balise à l'autre à l'intérieur et
autour de la sélection en cours. Elles permettent de supprimer n'importe laquelle
de ces balises, d'envelopper la sélection à l'intérieur d'une nouvelle balise et
d'afficher Quick Tag Editor pour permettre à l'utilisateur de modifier certains
attributs d'une balise.
dom.selectChild()
Disponibilité
Dreamweaver 3.0
450
Chapitre 26
Description
Sélectionne un enfant de la sélection en cours. Revient à sélectionner la balise
située immédiatement à droite dans le sélecteur de balises, en bas de la fenêtre de
document.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.selectParent()
Disponibilité
Dreamweaver 3.0
Description
Sélectionne le parent de la sélection en cours. Revient à sélectionner la balise située
immédiatement à gauche dans le sélecteur de balises, en bas de la fenêtre de
document.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.stripTag()
Disponibilité
Dreamweaver 3.0
Description
Supprime la balise entourant la sélection en cours, mais ne touche pas à son
contenu, le cas échéant. Si la sélection contient plusieurs balises ou aucune,
Dreamweaver affiche un message d'erreur.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
API JavaScript de Dreamweaver
451
dom.wrapTag()
Disponibilité
Dreamweaver 3.0
Description
Place la balise spécifiée autour de la sélection en cours. Si la balise n'est pas
complète, Dreamweaver affiche un message d'erreur.
Arguments
startTag
startTag
est la source associée à la balise d'ouverture.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
Exemple
Le code suivant enveloppe un lien autour de la sélection en cours.
var theDOM = dw.getDocumentDOM();
var theSel = theDOM.getSelectedNode();
if (theSel.nodeType = = Node.TEXT_NODE){
theDOM.wrapTag('<a href="foo.html">');
}
dreamweaver.showQuickTagEditor()
Disponibilité
Dreamweaver 3.0
Description
Affiche Quick Tag Editor pour la sélection en cours.
Arguments
{nearWhat}, {mode}
•
nearWhat, s'il est défini, doit être "selection" ou "tag selector". S'il n'est
pas défini, il prend par défaut la valeur "selection".
•
mode, s'il est défini, doit être "default", "wrap", "insert" ou "edit". Si
l'argument mode a pour valeur "default" ou qu'il n'est pas défini,
Dreamweaver utilise la méthode heuristique porur déterminer le mode à
utiliser pour la sélection en cours. Si l'argument nearWhat a pour valeur "tag
selector", l'argument mode est ignoré.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
452
Chapitre 26
Fonctions relatives aux rapports
Les fonctions de rapports permettent d'accéder aux fonctionnalités de création de
rapports de Dreamweaver, c'est-à-dire de lancer, de contrôler et de personnaliser le
processus de création de rapports. Pour plus d'informations, voir « Rapports »,
page 63.
dreamweaver.isReporting()
Disponibilité
Dreamweaver 4.0
Description
Vérifie si un processus de création de rapport est en cours.
Arguments
Aucun.
Valeurs renvoyées
Une valeur booléenne indiquant si un processus est en cours (true) ou pas
(false).
dreamweaver.showReportsDialog()
Disponibilité
Dreamweaver 4.0
Description
Ouvre la boîte de dialogue Rapports.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
dreamweaver.results.setResultData()
Disponibilité
Dreamweaver 4.0
Description
Ajoute de nouvelles entrées à la fenêtre de résultats qui est active durant le
processus de création de rapports. Si aucun rapport n'est en cours de création,
cette fonction n'a aucun effet.
Arguments
strFilePath, strIcon, strDisplay, strDesc, {iLineNo}, {iStartSel},
{iEndSel}
API JavaScript de Dreamweaver
453
•
•
strFilePath est
•
strDisplay est
•
•
•
•
strDesc est
une description qui accompagne l'entrée.
iLineNo est
le nombre de lignes contenues dans le fichier, s'il est indiqué.
l'URL complète du fichier.
strIcon est
le chemin complet de l'icône à utiliser pour l'entrée de résultats.
Vous pouvez créer des références à des icônes intégrées en indiquant un chiffre
compris entre 1 et 10.
une chaîne à afficher dans la première colonne ; il s'agit
généralement d'un nom de fichier.
iStartSel est
le début du décalage dans le fichier, s'il est indiqué.
iEndSel est la fin du décalage dans
requise si iStartSel est spécifié.
le fichier ; cette valeur est uniquement
Valeurs renvoyées
Aucune.
Fonctions de la fenêtre de résultats
Les fonctions de la fenêtre de résultats vous permettent de créer une fenêtre
contenant des données formatées. Vous pouvez utiliser ces fonctions pour créer
des fenêtres personnalisées similaires à celle du débogueur JavaScript ou de la
fenêtre de résultats de la création de rapports.
dreamweaver.createResultsWindow()
Disponibilité
Dreamweaver 4.0
Description
Crée une nouvelle fenêtre de résultats et renvoie une référence d'objet JavaScript à
la fenêtre.
Arguments
strName, arrColumns
•
•
strName
est la chaîne à utiliser pour le titre de la fenêtre.
arrColumns
est un tableau de noms de colonnes à utiliser dans la commande.
Valeurs renvoyées
Une référence d'objet à la fenêtre créée.
resWin.addItem()
Disponibilité
Dreamweaver 4.0
454
Chapitre 26
Description
Ajoute un nouvel élément à la fenêtre de résultats.
Arguments
strIcon, strDesc, iStartSel, iEndSel, colNdata
•
•
strIcon
est l'icône à afficher. Définissez 0 pour n'afficher aucune icône.
strDesc est une description détaillée de l'élément de police de code. Définissez
police de code si vous ne voulez aucune description.
•
iStartSel
•
iEndSel
•
colNdata
est le début du décalage de la sélection dans le fichier. Définissez
null si vous ne voulez pas utiliser cette fonction.
est la fin du décalage de la sélection dans le fichier. Définissez police
de code si vous ne voulez pas utiliser cette fonction.
est une chaîne à utiliser pour chaque colonne.
Valeurs renvoyées
Une valeur booléenne, définie sur true si l'élément a été correctement ajouté et
sur false dans le cas contraire.
resWin.setCallbackCommands()
Disponibilité
Dreamweaver 4.0
Description
Indique à la fenêtre de résultats sur quelles commandes la méthode
processFile() doit être appelée. Si cette fonction n'est pas appelée, la
commande qui a créé la fenêtre de résultats est appelée.
Arguments
arrCmdNames
arrCmdNames est un tableau de noms
processFile() doit être appelée.
de commandes sur lesquelles la méthode
Valeurs renvoyées
Aucune.
resWin.setColumnWidths()
Disponibilité
Dreamweaver 4.0
Description
Définit la largeur de chaque colonne.
API JavaScript de Dreamweaver
455
Arguments
arrWidth
est un tableau de nombres entiers représentant les largeurs à utiliser
pour chaque colonne de la commande.
arrWidth
Valeurs renvoyées
Aucune.
resWin.setFileList()
Disponibilité
Dreamweaver 4.0
Description
Indique à la fenêtre de résultats une liste de fichiers, de répertoires ou des deux sur
lesquels un ensemble de commandes doit être appelé.
Arguments
arrFilePaths, bRecursive
•
•
arrFilePaths
est un tableau de chemins de fichier ou de dossier à répéter.
bRecursive est une valeur booléenne
récurrente (true) ou pas (false).
indiquant si la répétition doit être
Valeurs renvoyées
Aucune.
resWin.setTitle()
Disponibilité
Dreamweaver 4.0
Description
Définit le titre de la fenêtre.
Arguments
strTitle
strTitle
est le nouveau titre du panneau flottant.
Valeurs renvoyées
Aucune.
resWin.startProcessing()
Disponibilité
Dreamweaver 4.0
Description
Lance le traitement du fichier.
456
Chapitre 26
Arguments
Aucun.
Valeurs renvoyées
Aucune.
resWin.stopProcessing()
Disponibilité
Dreamweaver 4.0
Description
Arrête le traitement du fichier.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Fonctions relatives à la sélection
Ces fonctions permettent d'obtenir et de définir la sélection dans les documents
ouverts. Pour savoir comment obtenir et définir la sélection dans la fenêtre Site,
voir « Fonctions relatives aux sites », page 466.
dom.getSelectedNode()
Disponibilité
Dreamweaver 3.0
Description
Obtient le nœud sélectionné. Revient à appeler la fonction dom.getSelection()
puis à transmettre la valeur renvoyée à la fonction dom.offsetsToNode().
Arguments
Aucun.
Valeurs renvoyées
Objet balise, texte ou commentaire contenant la série de caractères spécifiée.
Activateur
Aucun.
dom.getSelection()
Disponibilité
Dreamweaver 3.0
API JavaScript de Dreamweaver
457
Description
Obtient la sélection en cours, exprimée en décalages de caractères dans le code
source HTML du document.
Arguments
bAllowMultiple
est une valeur booléenne indiquant si la fonction doit renvoyer
plusieurs décalages lorsque plusieurs calques, cellules de tableaux ou zones
réactives de carte graphique sont sélectionnés. Si cet argument n'est pas défini, il
prend par défaut la valeur false.
bAllowMultiple
Valeurs renvoyées
Pour les sélections simples, tableau contenant deux nombres entiers. Le premier
entier correspond au décalage de caractères au début de la sélection. Le second
correspond au décalage de caractères à la fin de la sélection. Si les deux valeurs sont
identiques, la sélection en cours correspond à un point d'insertion.
Pour les sélections complexes (lorsque la sélection consiste en plusieurs cellules de
tableau, plusieurs calques ou plusieurs zones réactives), tableau contenant
2n nombres entiers, n représentant le nombre d'éléments sélectionnés. Le premier
entier de chaque paire correspond au décalage de caractères du début de la
sélection (balise d'ouverture TD, DIV, SPAN, LAYER, ILAYER ou MAP comprise) ; le
second entier correspond au décalage de caractères à la fin de la sélection (balise de
fermeture TD, DIV, SPAN, LAYER, ILAYER ou MAP comprise). Si plusieurs rangées
d'un tableau sont sélectionnées, le décalage de chaque cellule de chaque rangée est
renvoyé. La sélection n'inclut jamais les balises TR.
Activateur
Aucun.
dom.nodeToOffsets()
Disponibilité
Dreamweaver 3.0
Description
Obtient la position d'un nœud de l'arborescence DOM, exprimée en décalages de
caractères dans le code source HTML du document. Valide pour n'importe quel
document sur un lecteur local.
Arguments
node
node doit être une balise, un commentaire ou un texte correspondant à un nœud
de l'arborescence renvoyée par la fonction dreamweaver.getDocumentDOM().
458
Chapitre 26
Valeurs renvoyées
Tableau contenant deux entiers. Le premier nombre entier est le décalage de
caractères du début de la balise, du texte ou du commentaire ; le deuxième
nombre entier est le décalage de caractères de la fin du nœud, à partir du début du
document HTML.
Activateur
Aucun.
Exemple
L'exemple de code suivant sélectionne le premier objet image du document en
cours :
var theDOM = dw.getDocumentDOM();
var theImg = theDOM.images[0];
var offsets = theDom.nodeToOffsets(theImg);
theDom.setSelection(offsets[0], offsets[1]);
dom.offsetsToNode()
Disponibilité
Dreamweaver 3.0
Description
Obtient l'objet de l'arborescence DOM contenant la série de caractères située
entre le début et la fin définis. Valide pour n'importe quel document sur un
lecteur local.
Arguments
offsetBegin, offsetEnd
Les arguments correspondent respectivement au début et à la fin d'une série de
caractères, exprimés en décalages de caractères à partir du début du code source
HTML du document.
Valeurs renvoyées
Objet balise, texte ou commentaire contenant la série de caractères spécifiée.
Activateur
Aucun.
Exemple
Le code suivant affiche une alerte si la sélection est une image.
var offsets = dom.getSelection();
var theSelection = dreamweaver.offsetsToNode(offsets[0], ¬
offsets[1]);
if (theSelection.nodeType == Node.ELEMENT_NODE && ¬
theSelection.tagName == 'IMG'){
alert('The current selection is an image.');
}
API JavaScript de Dreamweaver
459
dom.selectAll()
Disponibilité
Dreamweaver 3.0
Description
Effectue une opération Sélectionner tout.
Remarque : dans la plupart des cas, cette fonction sélectionne le contenu entier du
document actif. Dans certains cas toutefois (lorsque le point d'insertion se trouve dans un
tableau, par exemple), elle ne sélectionne qu'une partie du document. Pour définir le
document entier comme sélection, utilisez la fonction dom.setSelection().
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.selectTable()
Disponibilité
Dreamweaver 3.0
Description
Sélectionne un tableau entier.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dom.canSelectTable()
dom.setSelectedNode()
Disponibilité
Dreamweaver 3.0
Description
Définit le nœud sélectionné. Revient à appeler la fonction
dom.nodeToOffsets(), puis à transmettre la valeur renvoyée à la fonction
dom.setSelection().
460
Chapitre 26
Arguments
node, {bSelectInside}, {bJumpToNode}
•
•
•
node
est un nœud de texte, de commentaire ou d'élément du document.
bSelectInside est une valeur booléenne indiquant s'il faut sélectionner la
propriété innerHTML du nœud. Cet argument n'est pertinent que si node est
un nœud d'élément et qu'il prend par défaut la valeur false lorsqu'il n'est pas
défini.
est une valeur booléenne indiquant s'il faut, le cas échéant, faire
défiler la fenêtre de document pour rendre la sélection visible. Si cet argument
n'est pas défini, il prend par défaut la valeur false.
bJumpToNode
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.setSelection()
Disponibilité
Dreamweaver 3.0
Description
Définit le début et la fin de la sélection dans le document.
Arguments
offsetBegin, offsetEnd
Les arguments correspondent respectivement au début et à la fin de la nouvelle
sélection, exprimés en décalages de caractères dans le code source HTML du
document. Si les deux valeurs sont identiques, la nouvelle sélection correspond à
un point d'insertion. Si la nouvelle sélection n'est pas une sélection HTML valide,
elle inclut les caractères de la première sélection HTML valide. Par exemple, si
offsetBegin et offsetEnd définissent SRC="myImage.gif" comme sélection
dans <IMG SRC="myImage.gif">, la sélection est étendue pour inclure également
la balise IMG.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.selectAll()
Disponibilité
Dreamweaver 3.0
API JavaScript de Dreamweaver
461
Description
Effectue une opération Sélectionner tout dans la fenêtre de document active, dans
la fenêtre Site ou, sur Macintosh, dans le champ modifiable actif d'une boîte de
dialogue ou d'un panneau flottant.
Remarque : si l'opération est effectuée dans le document actif, elle sélectionne dans la
plupart des cas le contenu entier du document actif. Dans certains cas toutefois (lorsque le
point d'insertion se trouve dans un tableau, par exemple), elle ne sélectionne qu'une partie
du document. Pour définir le document entier comme sélection, utilisez la fonction
dom.setSelection().
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dreamweaver.canSelectAll()
Fonctions de comportement du serveur
Les fonctions de comportement du serveur vous donnent la possibilité de
manipuler le panneau Comportements du serveur que vous affichez en choisissant
Fenêtre > Comportements de serveur. Vous pouvez utiliser ces fonctions pour
rechercher tous les comportements du serveur sur une page ou appliquer un
nouveau comportement au document ou modifier un document existant par le
biais d'un programme.
Remarque : vous pouvez abréger dw.serverBehaviorInspector en dw.sbi.
dreamweaver.serverBehaviorInspector.
findAllServerBehaviors()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Définit un drapeau rappelant à l'utilisateur d'appeler la fonction API de
comportement du serveur findServerBehaviors() pour chaque comportement
déjà installé.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
462
Chapitre 26
dreamweaver.serverBehaviorInspector.
getServerBehaviors()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Affiche une liste de tous les comportements sur une page. Si UltraDev détermine
que la liste interne des comportements du serveur n'est peut-être pas à jour, il
appelle findServerBehaviors() pour chaque comportement installé. Chacune
de ces fonctions renvoie un tableau. UltraDev fusionne tous les tableaux en un
seul tableau et le trie dans l'ordre selon lequel l'objet selectedNode de chaque
comportement apparaît dans le document. UltraDev stocke le tableau fusionné
localement. La fonction getServerBehaviors() renvoie un pointeur au tableau
fusionné.
Arguments
Aucun.
Valeurs renvoyées
Un tableau d'objets JavaScript. Les objets du tableau sont les mêmes que ceux
renvoyés par la fonction findServerBehaviors(). Ils sont triés dans leur ordre
d'apparition dans le panneau Comportements.
dreamweaver.popupServerBehavior()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Applique un nouveau comportement de serveur au document ou modifie un
comportement existant. Si l'utilisateur doit définir les paramètres du
comportement, une boîte de dialogue s'affiche.
Arguments
{behaviorName
ou behaviorObject}
•
behaviorName est une chaîne représentant le nom du comportement, la balise
de titre d'un fichier ou un nom de fichier.
•
behaviorObject
est un objet comportement.
Si vous ne définissez pas cet argument, UltraDev exécute le comportement de
serveur sélectionné. Si l'argument est le nom du comportement de serveur,
UltraDev ajoute ce comportement à la page. Si l'argument est l'un des objets du
tableau renvoyé par getServerBehaviors(), une boîte de dialogue s'affiche pour
permettre à l'utilisateur de modifier les paramètres du comportement.
Valeurs renvoyées
Aucune.
API JavaScript de Dreamweaver
463
Fonctions relatives à la source de données
dreamweaver.dbi.getDataSources
Disponibilité
Dreamweaver UltraDev 4.0
Description
Appelle la fonction findDynamicSources() pour chaque fichier contenu dans le
dossier Configuration/DataSources. Vous pouvez utiliser cette fonction pour
générer une liste de toutes les sources de données du document de l'utilisateur.
Cette fonction est répétée sur tous les fichiers du dossier Configuration/
DataSources, appelle la fonction findDynamicSources() dans chaque fichier,
fusionne tous les tableaux renvoyés et renvoie le tableau de sources de données
fusionné.
Arguments
Aucun.
Valeurs renvoyées
Le tableau renvoyé par cette fonction contient une liste concaténée de toutes les
sources de données contenues dans le document de l'utilisateur. Chaque élément
du tableau est un objet et chaque objet a les propriétés suivantes :
• La propriété title correspond au libellé qui apparaît à droite de l'icône de
chaque nœud parent. La propriété title est obligatoire.
• La propriété imageFile est le chemin d'accès à un fichier contenant l'icône
(image GIF) qui représente le nœud parent dans le panneau Liaisons de
données et les boîtes de dialogue Données dynamiques ou Texte dynamique. La
propriété imageFile est obligatoire.
• La propriété isallowDelete est facultative. Si cette propriété est définie sur
false,
lorsque l'utilisateur clique sur ce nœud dans le panneau Liaisons de
données, le bouton moins (-) est désactivé. Si elle est définie sur true, le
bouton moins (-) est activé. Si la propriété n'est pas définie, elle prend par
défaut la valeur true.
• La propriété dataSource est le nom du fichier dans lequel la fonction
est définie. L'extension « .htm » n'est pas
spécifiée. Par exemple, la fonction findDynamicSources() de
Configuration/DataSources/ASP/session.htm définit la propriété
dataSource sur session. Cette propriété est obligatoire.
findDynamicSources()
464
Chapitre 26
• La propriété name est le nom du comportement de serveur associé à la source de
données dataSource, s'il existe. Cette propriété est obligatoire. Certaines
sources de données, telles que des jeux d'enregistrements, sont associées à
des comportements de serveur. Lorsque vous créez un jeu d'enregistrements et
que vous le nommez Auteurs, la propriété « name » doit être égale à Auteurs.
D'autres sources de données, telles que les variables de session, ne sont pas
associées à un comportement de serveur. Leur propriété « name » doit être une
chaîne vide (" ").
Fonctions de modèle de serveur
Dans UltraDev, chaque site possède un modèle de serveur (par exemple ASP, JSP
ou ColdFusion). Les modèles de serveur sont des techniques permettant
d'exécuter des scripts sur un serveur. Lorsque l'utilisateur définit un modèle de
serveur, UltraDev sait quel type de balises doivent être insérées dans les pages
d'une application. Par exemple, si vous spécifiez un serveur ColdFusion, UltraDev
insère les balises et les scripts ColdFusion appropriés dans la page.
Les fonctions de modèle de serveur vous permettent de déterminer le modèle de
serveur utilisé pour un site, les langages ainsi que la version pris en charge.
dom.serverModel.getServerLanguage()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Détermine le site qui contient le document, puis renvoie le langage serveur pour
ce site. Le langage serveur d'un site est la valeur choisie dans le paramètre Langage
de script par défaut de l'onglet Infos du serveur d'application de la boîte de
dialogue Définition du site.
La valeur de retour de cette fonction est l'une des valeurs renvoyées par la fonction
API du modèle de serveur getServerLanguages(). Pour ASP, la valeur de retour
de cette fonction est soit JavaScript, soit VBScript, selon la valeur choisie par
l'utilisateur.
Arguments
Aucun.
Valeurs renvoyées
Une chaîne contenant les langages de script pris en charge.
Exemple
Si le modèle de serveur en cours est ASP 2.0, la fonction
dom.serverModel.getServerLanguage() renvoie ["VBScript",
"JavaScript"].
API JavaScript de Dreamweaver
465
dom.serverModel.getServerName()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Détermine le site qui contient le document, puis renvoie le modèle de serveur de
ce site. Les valeurs possibles sont ASP, JSP, Cold Fusion ou tous les fichiers
supplémentaires contenus dans le dossier Configuration\ServerModels.
Arguments
Aucun.
Valeurs renvoyées
Une chaîne contenant le nom du serveur.
dom.serverModel.getServerVersion()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Détermine le site qui contient le document, puis le modèle de serveur choisi pour
ce site. Chaque modèle de serveur a une fonction getVersionArray() (dans
l'API de modèle de serveur), qui renvoie un tableau de couples nom-version.
Arguments
name
name
est une chaîne représentant le nom d'une version.
Valeurs renvoyées
Une chaîne contenant le numéro de version. Par exemple, si vous avez transmis
« ADODB » à dom.serverModel.getServerVersion(), UltraDev renvoie
« 2.1 ».
Fonctions relatives aux sites
Ces fonctions permettent d'effectuer des opérations sur les fichiers de site ou sur la
carte du site. Elles permettent de créer des liens entre les fichiers, d'obtenir, de
placer, d'extraire et d'archiver des fichiers, de les sélectionner et de les
désélectionner, de les créer et de les supprimer, d'obtenir des informations sur les
sites définis par l'utilisateur, etc.
dreamweaver.loadSitesFromPrefs()
Disponibilité
Dreamweaver 4.0
466
Chapitre 26
Description
Charge les informations du site pour tous les sites de la base de registres du
système (Windows) ou du fichier de préférences Dreamweaver (Macintosh) dans
Dreamweaver. Si un site est connecté à un serveur distant lorsque cette fonction
est appelée, il est automatiquement déconnecté.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
dreamweaver.saveSitesToPrefs()
Disponibilité
Dreamweaver 4.0
Description
Enregistre toutes les informations pour chaque site que l'utilisateur a défini dans la
base de registres du système (Windows) ou le fichier de préférences Dreamweaver
(Macintosh).
Arguments
Aucun.
Valeurs renvoyées
Aucune.
site.addLinkToExistingFile()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue Sélectionner fichier HTML pour permettre à
l'utilisateur de sélectionner un fichier, puis crée un lien entre ce dernier et le
document sélectionné.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
site.canAddLink()
API JavaScript de Dreamweaver
467
site.addLinkToNewFile()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue Lier au nouveau fichier pour permettre à l'utilisateur de
créer un fichier, puis crée un lien entre ce dernier et le document sélectionné.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
site.canAddLink()
site.canEditColumns()
Description
Détermine si un site existe ou pas.
Arguments
Aucun.
Valeurs renvoyées
true
si un site existe.
site.changeLinkSitewide()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue Modifier le lien au niveau du site.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
site.changeLink()
Disponibilité
Dreamweaver 3.0
468
Chapitre 26
Description
Ouvre la boîte de dialogue Sélectionner fichier HTML pour permettre à
l'utilisateur de sélectionner le nouveau fichier à associer au lien.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
site.canChangeLink()
site.checkIn()
Disponibilité
Dreamweaver 3.0
Description
Archive les fichiers sélectionnés et traite les fichiers dépendants de l'une des
façons suivantes :
• Si l'utilisateur a activé l'option Invite lors de Placer/Archiver dans les
préférences, catégorie FTP du site, la boîte de dialogue Fichiers dépendants
s'affiche.
• Si l'utilisateur a activé l'option Ne plus afficher ce message dans la boîte de
dialogue Fichiers dépendants, puis qu'il a cliqué sur Oui, les fichiers
dépendants sont téléchargés et aucune boîte de dialogue ne s'affiche.
• Si l'utilisateur a activé l'option Ne plus afficher ce message dans la boîte de
dialogue Fichiers dépendants, puis qu'il a cliqué sur Non, les fichiers
dépendants ne sont pas téléchargés et aucune boîte de dialogue ne s'affiche.
Arguments
siteOrURL
siteOrURL doit être soit le mot-clé "site", indiquant que la fonction doit agir
sur l'élément sélectionné dans la fenêtre Site, soit l'URL d'un fichier.
Valeurs renvoyées
Aucune.
Activateur
site.canCheckIn()
site.checkLinks()
Disponibilité
Dreamweaver 3.0
API JavaScript de Dreamweaver
469
Description
Ouvre la boîte de dialogue Vérificateur de lien et vérifie les liens dans les fichiers
spécifiés.
Arguments
scopeOfCheck
scopeOfCheck définit à quel endroit les liens sont
valeur "document", "selection" ou "site".
vérifiés. Il doit avoir pour
Valeurs renvoyées
Aucune.
Activateur
Aucun.
site.checkOut()
Disponibilité
Dreamweaver 3.0
Description
Extrait les fichiers sélectionnés et traite les fichiers dépendants de l'une des
façons suivantes :
• Si l'utilisateur a activé l'option Invite lors de Acquérir/Extraire dans les
préférences, catégorie FTP du site, la boîte de dialogue Fichiers dépendants
s'affiche.
• Si l'utilisateur a activé l'option Ne plus afficher ce message dans la boîte de
dialogue Fichiers dépendants, puis qu'il a cliqué sur Oui, les fichiers
dépendants sont téléchargés et aucune boîte de dialogue ne s'affiche.
• Si l'utilisateur a activé l'option Ne plus afficher ce message dans la boîte de
dialogue Fichiers dépendants, puis qu'il a cliqué sur Non, les fichiers
dépendants ne sont pas téléchargés et aucune boîte de dialogue ne s'affiche.
Arguments
siteOrURL
siteOrURL doit être soit le mot-clé "site", indiquant que la fonction doit agir
sur l'élément sélectionné dans la fenêtre Site, soit l'URL d'un fichier.
Valeurs renvoyées
Aucune.
Activateur
site.canCheckOut()
site.checkTargetBrowsers()
Disponibilité
Dreamweaver 3.0
470
Chapitre 26
Description
Vérifie le navigateur cible des documents sélectionnés.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
site.defineSites()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue Définir les sites.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
site.deleteSelection()
Disponibilité
Dreamweaver 3.0
Description
Supprime les fichiers sélectionnés.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
site.editColumns()
Description
Affiche la boîte de dialogue Définir les sites avec la section colonnes mode Fichier.
API JavaScript de Dreamweaver
471
Arguments
Aucun.
Valeurs renvoyées
Aucune.
site.locateInSite()
Disponibilité
Dreamweaver 3.0
Description
Recherche le ou les fichiers spécifiés dans le volet spécifié de la fenêtre Site et
sélectionne les fichiers identifiés par la recherche.
Arguments
localOrRemote, siteOrURL
•
•
localOrRemote
doit être "local" ou "remote".
siteOrURL doit être soit le mot-clé "site", indiquant que la fonction doit agir
sur l'élément sélectionné dans la fenêtre Site, soit l'URL d'un fichier.
Valeurs renvoyées
Aucune.
Activateur
site.canLocateInSite()
site.findLinkSource()
Disponibilité
Dreamweaver 3.0
Description
Ouvre le fichier contenant le lien ou le fichier dépendant sélectionné et met en
surbrillance, dans ce fichier, le texte du lien ou la référence au fichier dépendant.
Cette fonction agit seulement sur les fichiers de l'affichage Carte du site.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
site.canFindLinkSource()
site.get()
Disponibilité
Dreamweaver 3.0
472
Chapitre 26
Description
Obtient les fichiers spécifiés et traite les fichiers dépendants comme suit :
• Si l'utilisateur a activé l'option Invite lors de Acquérir/Extraire dans les
préférences, catégorie FTP du site, la boîte de dialogue Fichiers dépendants
s'affiche.
• Si l'utilisateur a activé l'option Ne plus afficher ce message dans la boîte de
dialogue Fichiers dépendants, puis qu'il a cliqué sur Oui, les fichiers
dépendants sont téléchargés et aucune boîte de dialogue ne s'affiche.
• Si l'utilisateur a activé l'option Ne plus afficher ce message dans la boîte de
dialogue Fichiers dépendants, puis qu'il a cliqué sur Non, les fichiers
dépendants ne sont pas téléchargés et aucune boîte de dialogue ne s'affiche.
Arguments
siteOrURL
siteOrURL doit être soit le mot-clé "site", indiquant que la fonction doit agir
sur l'élément sélectionné dans la fenêtre Site, soit l'URL d'un fichier.
Valeurs renvoyées
Aucune.
Activateur
site.canGet()
site.getCheckOutUser()
Disponibilité
Dreamweaver 3.0
Description
Obtient le nom d'utilisateur et le nom d'extraction associés au site en cours.
Arguments
Aucun.
Valeurs renvoyées
Chaîne contenant un nom d'utilisateur et un nom d'extraction, le cas échéant, ou
chaîne vide si la fonction d'archivage/extraction est désactivée.
Activateur
Aucun.
Exemple
Un appel à la fonction site.getCheckOutUser() pourrait renvoyer ceci : "lori
Si aucun nom d'extraction n'est spécifié, seul le nom
d'utilisateur est renvoyé ("lori", par exemple).
(loriLaptop)".
API JavaScript de Dreamweaver
473
site.getCheckOutUserForFile()
Disponibilité
Dreamweaver 3.0
Description
Obtient le nom d'utilisateur et le nom d'extraction de l'utilisateur qui a extrait le
fichier spécifié.
Arguments
fileName
est le chemin du fichier sur lequel porte la requête, exprimé sous forme
d'une URL de type file://.
fileName
Valeurs renvoyées
Chaîne contenant le nom d'utilisateur et le nom d'extraction de l'utilisateur qui a
extrait le fichier spécifié, ou chaîne vide si le fichier n'a pas été extrait.
Activateur
Aucun.
Exemple
Un appel à la fonction site.getCheckOutUserForFile("file://C:/sites/
avocado8/index.html") pourrait renvoyer ceci : "lori (loriLaptop)". Si
aucun nom d'extraction n'est spécifié, seul le nom d'utilisateur est renvoyé
("lori", par exemple).
site.getConnectionState()
Disponibilité
Dreamweaver 3.0
Description
Obtient l'état de connexion en cours.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si le site distant est connecté.
Activateur
site.canConnect()
site.getCurrentSite()
Disponibilité
Dreamweaver 3.0
Description
Obtient le site en cours.
474
Chapitre 26
Arguments
Aucun.
Valeurs renvoyées
Chaîne contenant le nom du site en cours.
Activateur
Aucun.
Exemple
Si plusieurs sites sont définis, un appel à la fonction site.getCurrentSite()
renvoie celui qui est actuellement affiché dans la liste des sites en cours de la
fenêtre Site.
site.getFocus()
Disponibilité
Dreamweaver 3.0
Description
Détermine quel est le volet actif de la fenêtre Site.
Arguments
Aucun.
Valeurs renvoyées
L'une des chaînes suivantes : "local", "remote" ou "site
map".
Activateur
Aucun.
site.getLinkVisibility()
Disponibilité
Dreamweaver 3.0
Description
Vérifie si tous les liens sélectionnés dans la carte du site sont visibles (c'est-à-dire
s'ils ne sont pas marqués comme cachés).
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si tous les liens sélectionnés sont visibles.
Activateur
Aucun.
API JavaScript de Dreamweaver
475
site.getSelection()
Disponibilité
Dreamweaver 3.0
Description
Détermine quels sont les fichiers actuellement sélectionnés dans la fenêtre Site.
Arguments
Aucun.
Valeurs renvoyées
Tableau de chaînes représentant les chemins des fichiers et des dossiers
sélectionnés, exprimés sous la forme d'URL de type file://, ou tableau vide si
aucun fichier ni dossier n'est sélectionné.
Activateur
Aucun.
site.getSites()
Disponibilité
Dreamweaver 3.0
Description
Obtient la liste des sites définis.
Arguments
Aucun.
Valeurs renvoyées
Tableau de chaînes représentant les noms des sites définis, ou tableau vide si aucun
site n'est défini.
Activateur
Aucun.
site.invertSelection()
Disponibilité
Dreamweaver 3.0
Description
Inverse la sélection dans la carte du site.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
476
Chapitre 26
site.makeEditable()
Disponibilité
Dreamweaver 3.0
Description
Désactive le drapeau de lecture seule sur les fichiers sélectionnés.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
site.canMakeEditable()
site.makeNewDreamweaverFile()
Disponibilité
Dreamweaver 3.0
Description
Crée un nouveau fichier Dreamweaver dans la fenêtre Site (dans le même
répertoire que le premier fichier ou dossier sélectionné).
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
site.canMakeNewFileOrFolder()
site.makeNewFolder()
Disponibilité
Dreamweaver 3.0
Description
Crée un nouveau dossier Dreamweaver dans la fenêtre Site (dans le même
répertoire que le premier fichier ou dossier sélectionné).
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
site.canMakeNewFileOrFolder()
API JavaScript de Dreamweaver
477
site.newHomePage()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue Nouvelle page d'accueil pour permettre à l'utilisateur
de créer une nouvelle page d'accueil.
Remarque : cette fonction agit seulement sur les fichiers de l'affichage Carte du site.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
site.newSite()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue Définition du site pour définir un nouveau site.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
site.open()
Disponibilité
Dreamweaver 3.0
Description
Ouvre les fichiers actuellement sélectionnés dans la fenêtre Site. Si des dossiers
sont sélectionnés, ils sont développés dans l'affichage Fichiers du site.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
478
Chapitre 26
Activateur
site.canOpen()
site.put()
Disponibilité
Dreamweaver 3.0
Description
Place les fichiers spécifiés et traite les fichiers dépendants comme suit :
• Si l'utilisateur a activé l'option Invite lors de Placer/Archiver dans les
préférences, catégorie FTP du site, la boîte de dialogue Fichiers dépendants
s'affiche.
• Si l'utilisateur a activé l'option Ne plus afficher ce message dans la boîte de
dialogue Fichiers dépendants, puis qu'il a cliqué sur Oui, les fichiers
dépendants sont téléchargés et aucune boîte de dialogue ne s'affiche.
• Si l'utilisateur a activé l'option Ne plus afficher ce message dans la boîte de
dialogue Fichiers dépendants, puis qu'il a cliqué sur Non, les fichiers
dépendants ne sont pas téléchargés et aucune boîte de dialogue ne s'affiche.
Arguments
siteOrURL
siteOrURL doit être soit le mot-clé "site", indiquant que la fonction doit agir
sur l'élément sélectionné dans la fenêtre Site, soit l'URL d'un fichier.
Valeurs renvoyées
Aucune.
Activateur
site.canPut()
site.recreateCache()
Disponibilité
Dreamweaver 3.0
Description
Recrée le cache du site en cours.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
site.canRecreateCache()
API JavaScript de Dreamweaver
479
site.refresh()
Disponibilité
Dreamweaver 3.0
Description
Actualise la liste des fichiers sur le côté spécifié de la fenêtre Site.
Arguments
whichSide
whichSide
whichSide
doit être "local" ou "remote". Si la carte du site est active et que
a pour valeur "local", la carte du site est actualisée.
Valeurs renvoyées
Aucune.
Activateur
site.canRefresh()
site.remoteIsValid()
Disponibilité
Dreamweaver 3.0
Description
Détermine si le site distant est valide.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si un site distant a été défini et, dans le cas où le type
de serveur est Local/Réseau, si le lecteur est monté.
Activateur
Aucun.
site.removeLink()
Disponibilité
Dreamweaver 3.0
Description
Supprime le lien sélectionné du document situé au-dessus de lui dans la carte du
site.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
480
Chapitre 26
Activateur
site.canRemoveLink()
site.renameSelection()
Disponibilité
Dreamweaver 3.0
Description
Transforme le nom du fichier sélectionné en champ modifiable et permet à
l'utilisateur de renommer le fichier. Si plusieurs fichiers sont sélectionnés, cette
fonction agit sur le dernier.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
site.saveAsImage()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue Enregistrer sous pour permettre à l'utilisateur
d'enregistrer la carte du site sous forme d'image.
Arguments
fileType
est le type d'image qui doit être enregistré. Pour Windows, les valeurs
autorisées sont "bmp" et "png", et pour Macintosh "pict" et "jpeg". Si cet
argument n'est pas défini ou que sa valeur n'est pas valide sur la plate-forme en
cours, il prend par défaut la valeur "bmp" pour Windows et "pict" pour
Macintosh.
fileType
Valeurs renvoyées
Aucune.
Activateur
Aucun.
site.selectAll()
Disponibilité
Dreamweaver 3.0
API JavaScript de Dreamweaver
481
Description
Sélectionne tous les fichiers de l'affichage actif (à savoir soit la carte du site, soit les
fichiers de site)
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
site.selectHomePage()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue d'ouverture de fichier pour permettre à l'utilisateur de
choisir une nouvelle page d'accueil.
Remarque : cette fonction agit seulement sur les fichiers de l'affichage Carte du site.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
site.selectNewer()
Disponibilité
Dreamweaver 3.0
Description
Sélectionne tous les fichiers les plus récents sur le côté spécifié de la fenêtre Site.
Arguments
whichSide
whichSide
doit être "local" ou "remote".
Valeurs renvoyées
Aucune.
Activateur
site.canSelectNewer()
482
Chapitre 26
site.setAsHomePage()
Disponibilité
Dreamweaver 3.0
Description
Désigne le fichier sélectionné dans l'affichage Fichiers du site comme étant la page
d'accueil du site.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
site.setConnectionState()
Disponibilité
Dreamweaver 3.0
Description
Définit l'état de connexion du site en cours.
Arguments
bConnected
bConnected est une valeur booléenne
cours (true) ou pas (false).
indiquant si une connexion au site est en
Valeurs renvoyées
Aucune.
Activateur
Aucun.
site.setCurrentSite()
Disponibilité
Dreamweaver 3.0
Description
Ouvre le site spécifié dans le volet local de la fenêtre Site.
Arguments
whichSite
est le nom d'un site défini (tel qu'il apparaît dans la liste des sites en
cours, dans la fenêtre Site ou dans la boîte de dialogue Définir les sites.
whichSite
API JavaScript de Dreamweaver
483
Valeurs renvoyées
Aucune.
Activateur
Aucun.
Exemple
Si trois sites sont définis (avocado8, dreamcentral et testsite, par exemple), un
appel à la fonction site.setCurrentSite("dreamcentral") fait de
dreamcentral le site en cours.
site.setFocus()
Disponibilité
Dreamweaver 3.0
Description
Active le volet spécifié de la fenêtre Site. Si le volet spécifié n'est pas affiché, la
fonction l'affiche et l'active.
Arguments
whichPane
whichPane
map".
doit être l'une des chaînes suivantes : "local", "remote" ou "site
Valeurs renvoyées
Aucune.
Activateur
Aucun.
site.setLayout()
Disponibilité
Dreamweaver 3.0
Description
Ouvre le volet Mise en forme de la carte du site de la boîte de dialogue Définition
du site.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
site.canSetLayout()
484
Chapitre 26
site.setLinkVisibility()
Disponibilité
Dreamweaver 3.0
Description
Affiche ou masque le lien en cours.
Arguments
bShow
est une valeur booléenne indiquant si le lien en cours ne doit plus être
marqué comme étant masqué.
bShow
Valeurs renvoyées
Aucune.
Activateur
Aucun.
site.setSelection()
Disponibilité
Dreamweaver 3.0
Description
Sélectionne les fichiers ou les dossiers visibles dans le volet actif de la fenêtre Site.
Arguments
arrayOfURLs
est un tableau de chaînes, chacune représentant le chemin d'accès à
un fichier ou à un dossier du site en cours, exprimé sous la forme d'une URL de
type file://.
arrayOfURLs
Remarque : pour les chemins de dossier, ne tapez pas la barre oblique (/) à la fin du
chemin.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
site.synchronize()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue Synchroniser les fichiers.
API JavaScript de Dreamweaver
485
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
site.canSynchronize()
site.undoCheckOut()
Disponibilité
Dreamweaver 3.0
Description
Retire des sites locaux et distants les fichiers verrouillés associés aux fichiers
sélectionnés et remplace leur copie locale par la copie distante.
Arguments
siteorURL
siteorURL doit être soit le mot-clé "site", indiquant que la fonction doit agir
sur l'élément sélectionné dans la fenêtre Site, soit l'URL d'un fichier.
Valeurs renvoyées
Aucune.
Activateur
site.canUndoCheckOut()
site.viewAsRoot()
Disponibilité
Dreamweaver 3.0
Description
Place provisoirement le fichier sélectionné en première position sur la carte du site.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
site.canViewAsRoot()
486
Chapitre 26
Fonctions du mode Source
Les fonctions du mode Source incluent les opérations relatives à l'édition du code
source du document (et tous les changements résultants sur le mode Création).
Les fonctions de cette section permettent d'ajouter des commandes de navigation
aux fenêtres d'affichage de code source à l'intérieur d'une fenêtre de document
divisée en deux, de l'inspecteur de code et de la fenêtre du débogueur JavaScript.
dom.isDesignViewUpdated()
Disponibilité
Dreamweaver 4.0
Description
Détermine si le contenu des modes Création et Texte est synchronisé pour les
opérations Dreamweaver qui requièrent un état de document correct.
Arguments
Aucun.
Valeurs renvoyées
true si le mode Création (WYSIWIG) est synchronisée avec le texte du mode
Texte et false dans le cas contraire.
dom.isSelectionValid()
Disponibilité
Dreamweaver 4.0
Description
Détermine si une sélection est valide ou pas ou si elle doit être déplacée avant que
l'opération ne soit effectuée.
Arguments
Aucun.
Valeurs renvoyées
true si la sélection en cours contient un segment de code correct. Si le document
n'a pas encore été synchronisé, cette fonction renvoie la valeur false (étant donné
que la sélection n'a pas été mise à jour).
dom.source.arrowDown()
Disponibilité
Dreamweaver 4.0
Description
Déplace le point d'insertion vers le bas du document affiché en mode Source,
ligne par ligne. Si le contenu est déjà sélectionné, cette fonction étend la sélection
ligne par ligne.
API JavaScript de Dreamweaver
487
Arguments
{nTimes}, {bShiftIsDown}
•
nTimes
•
bShiftIsDown est une valeur booléenne indiquant si le contenu est sélectionné
ou pas. Si bShiftIsDown a la valeur true, le contenu est sélectionné.
est le nombre de lignes dont le point d'insertion se déplace. Si nTimes
n'est pas défini, il prend par défaut la valeur 1.
Valeurs renvoyées
Aucune.
dom.source.arrowLeft()
Disponibilité
Dreamweaver 4.0
Description
Déplace le point d'insertion vers la gauche de la ligne courante dans le mode
Source. Si le contenu est déjà sélectionné, cette fonction étend la sélection vers la
gauche.
Arguments
{nTimes}, {bShiftIsDown}
•
nTimes
nTimes
•
bShiftIsDown est une valeur booléenne indiquant si le contenu est sélectionné
ou pas. Si bShiftIsDown a la valeur true, le contenu est sélectionné.
est le nombre de caractères dont le point d'insertion se déplace. Si
n'est pas défini, il prend par défaut la valeur 1.
Valeurs renvoyées
Aucune.
dom.source.arrowRight()
Disponibilité
Dreamweaver 4.0
Description
Déplace le point d'insertion vers la droite de la ligne en cours du mode Source. Si
le contenu est déjà sélectionné, cette fonction étend la sélection vers la droite.
Arguments
{nTimes}, {bShiftIsDown}
488
Chapitre 26
•
nTimes
nTimes
•
bShiftIsDown est une valeur booléenne indiquant si le contenu est sélectionné
ou pas. Si bShiftIsDown a la valeur true, le contenu est sélectionné.
est le nombre de caractères dont le point d'insertion se déplace. Si
n'est pas défini, il prend par défaut la valeur 1.
Valeurs renvoyées
Aucune.
dom.source.arrowUp()
Disponibilité
Dreamweaver 4.0
Description
Déplace le point d'insertion vers le haut du document affiché en mode Source,
ligne par ligne. Si le contenu est déjà sélectionné, cette fonction étend la sélection
ligne par ligne.
Arguments
{nTimes}, {bShiftIsDown}
•
nTimes
•
bShiftIsDown est une valeur booléenne indiquant si le contenu est sélectionné
ou pas. Si bShiftIsDown a la valeur true, le contenu est sélectionné.
est le nombre de lignes dont le point d'insertion se déplace. Si nTimes
n'est pas défini, il prend par défaut la valeur 1.
Valeurs renvoyées
Aucune.
dom.source.balanceBracesTextView()
Disponibilité
Dreamweaver 4.0
Description
Extension de la sélection en mode Source qui permet d'équilibrer les parenthèses.
Vous pouvez appeler dom.source.balanceBracesTextView() pour étendre la
sélection mise en surbrillance ou le point d'insertion du début de l'instruction
entre parenthèses jusqu'à la fin de l'instruction afin d'équilibrer les caractères
suivants : [], {} et (). Les appels suivants étendent la sélection vers des niveaux
supplémentaires de ponctuation imbriquée.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
dom.source.endOfDocument()
Disponibilité
Dreamweaver 4.0
API JavaScript de Dreamweaver
489
Description
Place le point d'insertion à la fin du document en cours affiché en mode Source. Si
le contenu est déjà sélectionné, cette fonction étend la sélection à la fin du
document.
Arguments
bShiftIsDown
Valeur booléenne indiquant si le contenu est sélectionné ou pas. Si bShiftIsDown
a la valeur true, le contenu est sélectionné.
Valeurs renvoyées
Aucune.
dom.source.endOfLine()
Disponibilité
Dreamweaver 4.0
Description
Place le point d'insertion à la fin de la ligne courante. Si le contenu est déjà
sélectionné, cette fonction étend la sélection jusqu'à la fin de la ligne courante.
Arguments
bShiftIsDown
Valeur booléenne indiquant si le contenu est sélectionné ou pas. Si bShiftIsDown
a la valeur true, le contenu est sélectionné.
Valeurs renvoyées
Aucune.
dom.source.endPage()
Disponibilité
Dreamweaver 4.0
Description
Place le point d'insertion à la fin de la page en cours ou à la fin de la page suivante
(si le point d'insertion est déjà à la fin d'une page). Si le contenu est déjà
sélectionné, cette fonction étend la sélection page par page.
Arguments
{nTimes}, {bShiftIsDown}
•
nTimes
•
bShiftIsDown est une valeur booléenne indiquant si le contenu est sélectionné
ou pas. Si bShiftIsDown a la valeur true, le contenu est sélectionné.
est le nombre de pages dont le point d'insertion se déplace. Si nTimes
n'est pas défini, il prend par défaut la valeur 1.
Valeurs renvoyées
Aucune.
490
Chapitre 26
dom.source.getCurrentLines()
Disponibilité
Dreamweaver 4.0
Description
Renvoie les numéros de ligne des décalages spécifiés à partir du début du
document.
Arguments
startOffset, endOffset
•
•
startOffset
endOffset
est un nombre entier représentant la ligne de début du texte.
est un nombre entier représentant la ligne de fin du texte.
Valeurs renvoyées
Un tableau de deux chiffres représentant les lignes de début et de fin du texte
compris entre (et incluant) startOffset et endOffset. Si startOffset et
endOffset ne sont pas corrects, cette fonction renvoie -1.
dom.source.getSelection()
Description
Obtient la sélection en cours, exprimée en décalages de caractères dans le mode
Affichage de code du document.
Arguments
Aucun.
Valeurs renvoyées
Une paire de nombres entiers représentant les décalages à partir du début du
document source. Le premier nombre entier est le début de la sélection et le
second est la fin. Si les deux nombres sont égaux, la sélection est un IP. Si aucun
élément n'est sélectionné dans la source, les deux nombres sont -1.
dom.source.getText()
Disponibilité
Dreamweaver 4.0
Description
Renvoie la chaîne de texte de la source comprise entre les décalages définis.
Arguments
start, end
•
start
•
end
est un nombre entier représentant le décalage à partir du début du
document.
est un nombre entier représentant la fin du document.
API JavaScript de Dreamweaver
491
Valeurs renvoyées
Une chaîne représentant le texte du code source HTML compris entre les
décalages start et end.
dom.source.indentTextView()
Disponibilité
Dreamweaver 4.0
Description
Déplace le texte source sélectionné d'une marque de tabulation vers la droite.
Arguments
Aucun
Valeurs renvoyées
Aucune.
dom.source.insert()
Description
Insère la chaîne spécifiée dans le code source HTML au point de décalage défini à
partir du début du fichier source. Si le décalage n'est pas supérieur ou égal à zéro,
l'insertion échoue et la fonction renvoie la valeur false.
Arguments
offset, string
•
•
offset est le décalage à partir du début du fichier où la chaîne doit être insérée.
string
est la chaîne à insérer.
Valeurs renvoyées
true
si l'insertion réussit, false si elle échoue.
dom.source.nextWord()
Disponibilité
Dreamweaver 4.0
Description
Déplace le point d'insertion vers le début du mot suivant (ou des mots suivants si
spécifié) en mode Source. Si le contenu est déjà sélectionné, cette fonction étend la
sélection vers la droite.
Arguments
{nTimes}, {bShiftIsDown}
•
492
Chapitre 26
est le nombre de mots dont le point d'insertion se déplace. Si nTimes
n'est pas défini, il prend par défaut la valeur 1.
nTimes
•
bShiftIsDown est une valeur booléenne indiquant si le contenu est sélectionné
ou pas. Si bShiftIsDown a la valeur true, le contenu est sélectionné.
Valeurs renvoyées
Aucune.
dom.source.outdentTextView()
Disponibilité
Dreamweaver 4.0
Description
Déplace le texte source sélectionné d'une marque de tabulation vers la gauche.
Arguments
Aucun
Valeurs renvoyées
Aucune.
dom.source.pageDown()
Disponibilité
Dreamweaver 4.0
Description
Déplace le point d'insertion vers le bas du document affiché en mode Source, page
par page. Si le contenu est déjà sélectionné, cette fonction étend la sélection page
par page.
Arguments
{nTimes}, {bShiftIsDown}
•
nTimes
•
bShiftIsDown est une valeur booléenne indiquant si le contenu est sélectionné
ou pas. Si bShiftIsDown a la valeur true, le contenu est sélectionné.
est le nombre de pages dont le point d'insertion se déplace. Si nTimes
n'est pas défini, il prend par défaut la valeur 1.
Valeurs renvoyées
Aucune.
dom.source.pageUp()
Disponibilité
Dreamweaver 4.0
Description
Déplace le point d'insertion vers le haut du document affiché en mode Source,
page par page. Si le contenu est déjà sélectionné, cette fonction étend la sélection
page par page.
API JavaScript de Dreamweaver
493
Arguments
{nTimes}, {bShiftIsDown}
•
nTimes
•
bShiftIsDown est une valeur booléenne indiquant si le contenu est sélectionné
ou pas. Si bShiftIsDown a la valeur true, le contenu est sélectionné.
est le nombre de pages dont le point d'insertion se déplace. Si nTimes
n'est pas défini, il prend par défaut la valeur 1.
Valeurs renvoyées
Aucune.
dom.source.previousWord()
Disponibilité
Dreamweaver 4.0
Description
Déplace le point d'insertion vers le début du mot précédent (ou des mots suivants
si spécifié) en mode Source. Si le contenu est déjà sélectionné, cette fonction étend
la sélection vers la gauche.
Arguments
{nTimes}, {bShiftIsDown}
•
nTimes
•
bShiftIsDown est une valeur booléenne indiquant si le contenu est sélectionné
ou pas. Si bShiftIsDown a la valeur true, le contenu est sélectionné.
est le nombre de mots dont le point d'insertion se déplace. Si nTimes
n'est pas défini, il prend par défaut la valeur 1.
Valeurs renvoyées
Aucune.
dom.source.replaceRange()
Disponibilité
Dreamweaver 4.0
Description
Remplace la plage de texte source comprise entre startOffset et endOffset par
string. Si startOffset est supérieur à endOffset ou si l'un des décalages n'est
pas un nombre entier positif, cette fonction n'a aucun effet et renvoie la valeur
false. Si endOffset est supérieur au nombre de caractères du fichier, cette
fonction remplace la plage de texte comprise entre startOffset et la fin du
fichier. Si startOffset et endOffset sont supérieurs au nombre de caractères du
fichier, cette fonction insère le texte à la fin du fichier.
494
Chapitre 26
Arguments
startOffset, endOffset, string
•
•
•
startOffset
endOffset
string
est le décalage indiquant le début du bloc à remplacer.
est le décalage indiquant la fin du bloc à remplacer.
est la chaîne à insérer.
Valeurs renvoyées
true
si l'insertion réussit, false si elle échoue.
dom.source.scrollEndFile()
Disponibilité
Dreamweaver 4.0
Description
Fait défiler la fenêtre Source vers le bas du document sans déplacer le point
d'insertion.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
dom.source.scrollLineDown()
Disponibilité
Dreamweaver 4.0
Description
Fait défiler la fenêtre Source vers le bas ligne par ligne sans déplacer le point
d'insertion.
Arguments
nTimes
est le nombre de lignes à faire défiler. Si nTimes n'est pas défini, il prend
par défaut la valeur 1.
nTimes
Valeurs renvoyées
Aucune.
dom.source.scrollLineUp()
Disponibilité
Dreamweaver 4.0
API JavaScript de Dreamweaver
495
Description
Fait défiler la fenêtre Source vers le haut ligne par ligne sans déplacer le point
d'insertion.
Arguments
nTimes
est le nombre de lignes à faire défiler. Si nTimes n'est pas défini, il prend
par défaut la valeur 1.
nTimes
Valeurs renvoyées
Aucune.
dom.source.scrollPageDown()
Disponibilité
Dreamweaver 4.0
Description
Fait défiler la fenêtre Source vers le bas page par page sans déplacer le point
d'insertion.
Arguments
nTimes
est le nombre de pages à faire défiler. Si nTimes n'est pas défini, il prend
par défaut la valeur 1.
nTimes
Valeurs renvoyées
Aucune.
dom.source.scrollPageUp()
Disponibilité
Dreamweaver 4.0
Description
Fait défiler la fenêtre Source vers le haut page par page sans déplacer le point
d'insertion.
Arguments
nTimes
est le nombre de pages à faire défiler. Si nTimes n'est pas défini, il prend
par défaut la valeur 1.
nTimes
Valeurs renvoyées
Aucune.
496
Chapitre 26
dom.source.scrollTopFile()
Disponibilité
Dreamweaver 4.0
Description
Fait défiler la fenêtre Source vers le haut du document sans déplacer le point
d'insertion.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
dom.source.selectParentTag()
Disponibilité
Dreamweaver 4.0
Description
Extension de la sélection en mode Source qui permet d'équilibrer les balises. Vous
pouvez appeler dom.source.selectParentTag() pour étendre la sélection ou le
point d'insertion courant de la balise d'ouverture à la balise de fermeture. Les
appels suivants étendent la sélection à des balises supplémentaires jusqu'à ce qu'il
n'y ait plus de balises de fermeture.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.source.setCurrentLine()
Disponibilité
Dreamweaver 4.0
Description
Place le point d'insertion au début de la ligne indiquée. Si lineNumber n'est pas
un nombre entier positif, cette fonction n'a aucun effet et renvoie la valeur false.
Place le point d'insertion au début de la dernière ligne si lineNumber est supérieur
au nombre de lignes de la source.
Arguments
lineNumber
lineNumber
est la ligne au début de laquelle le point d'insertion est placé.
API JavaScript de Dreamweaver
497
Valeurs renvoyées
true
si l'insertion réussit, false si elle échoue.
dom.source.startOfDocument()
Disponibilité
Dreamweaver 4.0
Description
Place le point d'insertion au début du document affiché en mode Source. Si le
contenu est déjà sélectionné, cette fonction étend la sélection au début du
document.
Arguments
bShiftIsDown
Valeur booléenne indiquant si le contenu est sélectionné ou pas. Si bShiftIsDown
a la valeur true, le contenu est sélectionné.
Valeurs renvoyées
Aucune.
dom.source.startOfLine()
Disponibilité
Dreamweaver 4.0
Description
Place le point d'insertion au début de la ligne courante. Si le contenu est déjà
sélectionné, cette fonction étend la sélection au début de la ligne courante.
Arguments
bShiftIsDown
Valeur booléenne indiquant si le contenu est sélectionné ou pas. Si bShiftIsDown
a la valeur true, le contenu est sélectionné.
Valeurs renvoyées
Aucune.
dom.source.topPage()
Disponibilité
Dreamweaver 4.0
Description
Place le point d'insertion en haut de la page courante ou de la page précédente (si
le point d'insertion est déjà en haut de la page). Si le contenu est déjà sélectionné,
cette fonction étend la sélection page par page.
498
Chapitre 26
Arguments
{nTimes}, {bShiftIsDown}
•
nTimes
•
bShiftIsDown est une valeur booléenne indiquant si le contenu est sélectionné
ou pas. Si bShiftIsDown a la valeur true, le contenu est sélectionné.
est le nombre de pages dont le point d'insertion se déplace. Si nTimes
n'est pas défini, il prend par défaut la valeur 1.
Valeurs renvoyées
Aucune.
dom.source.wrapSelection()
Disponibilité
Dreamweaver 4.0
Description
Insère le texte de startTag avant la sélection en cours et le texte de endTag après
la sélection en cours. La fonction sélectionne ensuite le bloc entier inséré. Si la
sélection en cours est un point d'insertion, la fonction place le point d'insertion
entre startTag et endTag. startTag et endTag ne doivent pas nécessairement
être des balises ; il peut s'agir de tout segment de texte de votre choix.
Arguments
startTag, endTag
•
•
startTag
endTag
est le texte à insérer au début de la sélection.
est le texte à insérer à la fin de la sélection.
Valeurs renvoyées
Aucune.
dom.synchronizeDocument()
Disponibilité
Dreamweaver 4.0
Description
Synchronise les modes Source et Création.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
API JavaScript de Dreamweaver
499
Fonctions de manipulation de chaînes
Ces fonctions vous permettent d'obtenir des informations sur une chaîne et de
convertir une chaîne Latin1 en code national sur la plate-forme de l'utilisateur et
vice versa.
dreamweaver.doURLEncoding()
Disponibilité
Dreamweaver 1.0
Description
Cette fonction prend une chaîne et renvoie une chaîne convertie en URL en
remplaçant tous les espaces et caractères spéciaux par les entités spécifiées.
Arguments
stringToConvert
Valeurs renvoyées
Une chaîne convertie en format d'URL.
Activateur
Aucun.
Exemple
Si la valeur de l'URL est "My
URL-encoded string" :
var URL = dw.doURLEncoding(theURL.value);
renvoie "My%20URL-encoded%20string"
dreamweaver.getTokens()
Disponibilité
Dreamweaver 1.0
Description
Accepte une chaîne et la divise en expressions.
Arguments
searchString, separatorCharacters
•
•
searchString
est la chaîne à diviser en expressions.
est le ou les caractères indiquant la fin d'une
expression. Les séparateurs figurant dans des chaînes entre guillemets sont
ignorés. Si separatorCharacters contient un espace, tous les espaces (les
tabulations, par exemple) sont traités comme des séparateurs, comme si vous les
aviez définis explicitement. Deux espaces consécutifs ou plus sont traités
comme un seul séparateur.
separatorCharacters
Valeurs renvoyées
Tableau d'expressions.
500
Chapitre 26
Activateur
Aucun.
Exemple
dreamweaver.getTokens('foo("my arg1", 34)', '(),')
renvoie les
expressions suivantes :
•
•
•
foo
"my arg 1"
34
dreamweaver.latin1ToNative()
Disponibilité
Dreamweaver 2.0
Description
Convertit une chaîne Latin 1 en code national sur la machine de l'utilisateur.
Cette fonction permet d'afficher l'interface utilisateur d'un fichier d'extension
dans une autre langue.
Remarque : sous Windows, cette fonction n'a aucun effet car le code Windows repose
sur Latin 1.
Arguments
stringToConvert
correspond à la chaîne (déjà traduite) à convertir du code
Latin 1 en code national.
stringToConvert
Valeurs renvoyées
Chaîne convertie.
Activateur
Aucun.
dreamweaver.nativeToLatin1()
Disponibilité
Dreamweaver 2.0
Description
Convertit une chaîne de code national en code Latin 1.
Remarque : sous Windows, cette fonction n'a aucun effet car le code Windows repose
sur Latin 1.
Arguments
stringToConvert
stringToConvert
est la chaîne à convertir du code national en code Latin 1.
API JavaScript de Dreamweaver
501
Valeurs renvoyées
Chaîne convertie.
Activateur
Aucun.
La fonction dreamweaver.scanSourceString() est un utilitaire qui analyse une
chaîne et déchiffre l'endroit où les balises, les attributs et les directives HTML sont
situés. Voici un exemple d'utilisation de la fonction
dreamweaver.scanSourceString() :
1
Créez une implémentation pour une ou plusieurs des sept fonctions de rappel.
2
Ecrivez un script qui appelle la fonction dreamweaver.scanSourceString().
3
Une chaîne contenant le code HTML et les pointeurs des fonctions de rappel
que vous avez écrits sont transmis à la fonction
dreamweaver.scanSourceString() . Par exemple, supposons que la chaîne
HTML soit "<font size=2>bonjour</font>".
4
Dreamweaver analyse la chaîne et détermine si elle contient une balise de
police. Dreamweaver appelle ensuite les fonctions de rappel dans l'ordre
suivant :
•
•
•
•
•
fonction openTagBegin()
fonction attribute() (pour l'attribut de taille)
fonction openTagEnd()
fonction text() (pour la chaîne «
bonjour »)
fonctions closeTagBegin() et closeTagEnd()
fonctions de rappel dreamweaver.scanSourceString
Comme mentionné plus haut, il existe sept fonctions de rappel appelées par
Dreamweaver :
502
Chapitre 26
1
Dreamweaver appelle openTagBegin() pour chaque balise d'ouverture (par
exemple <font>, et non </font>) et chaque balise vide (par exemple, <img>
ou <hr>). La fonction openTagBegin() accepte deux arguments : le nom de la
balise (par exemple, font ou img) et le décalage du document, qui est le
nombre d'octets contenus dans le document avant le début de la balise. La
fonction renvoie la valeur true si l'analyse doit continuer et false si elle doit
s'arrêter.
2
Une fois openTagBegin() exécutée, Dreamweaver appelle attribute() pour
chaque attribut HTML. La fonction attribute() accepte deux arguments :
une chaîne contenant le nom de l'attribut (par exemple, color ou src) et une
chaîne contenant la valeur de l'attribut (par exemple #000000 ou foo.gif). La
fonction attribute() renvoie une valeur booléenne indiquant si l'analyse doit
continuer ou pas.
3
Une fois que tous les attributs de la balise ont été recherchés, Dreamweaver
appelle openTagEnd(). La fonction openTagEnd() accepte un argument : le
décalage du document, qui est le nombre d'octets contenus dans le document
avant la fin de la balise d'ouverture. Elle renvoie une valeur booléenne
indiquant si l'analyse doit continuer ou pas.
4
Dreamweaver appelle closeTagBegin() pour chaque balise de fermeture (par
exemple, </font>). Cette fonction accepte deux arguments : le nom de la
balise à fermer (par exemple, font) et le décalage du document, qui est le
nombre d'octets contenus dans le document avant le début de la balise de
fermeture. La fonction attribute() renvoie une valeur booléenne indiquant si
l'analyse doit continuer ou pas.
5
Une fois closeTagBegin() terminée, Dreamweaver appelle la fonction
closeTagEnd(). La fonction closeTagEnd() accepte un argument : le
décalage du document, qui est le nombre d'octets contenus dans le document
avant la fin de la balise de fermeture. Elle renvoie une valeur booléenne
indiquant si l'analyse doit continuer ou pas.
6
Dreamweaver appelle la fonction directive() pour chaque commentaire
HTML, script ASP, script JSP ou script PHP. La fonction directive()
accepte deux arguments : une chaîne contenant la directive et le décalage du
document, qui est le nombre d'octets contenus dans le document avant la fin
de la balise de fermeture. La fonction attribute() renvoie une valeur booléenne
indiquant si l'analyse doit continuer ou pas.
7
Dreamweaver appelle la fonction text() pour chaque portion de texte du
document, c'est-à-dire tout ce qui n'est pas une balise ni une directive. Les
portions de texte incluent le texte qui n'est pas visible pour l'utilisateur, par
exemple le texte contenu à l'intérieur d'une balise <title> ou <option>. La
fonction text() accepte deux arguments : une chaîne contenant le texte et le
décalage du document, qui est le nombre d'octets contenus dans le document
avant la fin de la balise de fermeture. La fonction text() renvoie une valeur
booléenne indiquant si l'analyse doit continuer ou pas.
dreamweaver.scanSourceString()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Analyse une chaîne de code HTML et recherche les balises, les attributs, les
directives et le texte. Pour chaque balise, attribut, directive et texte trouvé,
scanSourceString() appelle une fonction de rappel fournie par l'appelant.
Dreamweaver prend en charge les fonctions de rappel suivantes :
openTagBegin(), openTagEnd(), closeTagBegin(), closeTagEnd(),
directive(), attribute() et text().
API JavaScript de Dreamweaver
503
Arguments
HTMLstr, parserCallbackObj
•
•
HTMLstr
est une chaîne contenant le code HTML.
parserCallbackObj est un objet JavaScript qui a une ou plusieurs des
méthodes suivantes : openTagBegin(), openTagEnd(), closeTagBegin(),
closeTagEnd(), directive(), attribute() et text(). Pour de meilleurs
résultats, parserCallbackObj doit être une bibliothèque partagée définie à
l'aide de l'interface Extension C. Vous obtiendrez également de meilleures
performances si la fonction parserCallbackObj définit uniquement les
fonctions de rappel dont elle a besoin.
Valeurs renvoyées
Une valeur booléenne indiquant si l'opération a réussi ou pas.
Fonctions de modification des tableaux
Ces fonctions permettent d'insérer et de supprimer des lignes et des colonnes dans
des tableaux, de modifier la largeur des colonnes et la hauteur des lignes, de
convertir en pourcentage des mesures exprimées en pixels (et vice versa) et
d'effectuer d'autres opérations standard de modification des tableaux.
dom.convertWidthsToPercent()
Disponibilité
Dreamweaver 3.0
Description
Convertit en pourcentage tous les attributs WIDTH exprimés en pixels du tableau
en cours.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.convertWidthsToPixels()
Disponibilité
Dreamweaver 4.0
Description
Convertit en pixels tous les attributs WIDTH exprimés en pourcentage du tableau
en cours.
504
Chapitre 26
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.decreaseColspan()
Disponibilité
Dreamweaver 3.0
Description
Diminue l'étendue de colonnes de 1.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dom.canDecreaseColspan()
dom.decreaseRowspan()
Disponibilité
Dreamweaver 3.0
Description
Diminue l'étendue de lignes de 1.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dom.canDecreaseRowspan()
dom.deleteTableColumn()
Disponibilité
Dreamweaver 3.0
Description
Supprime du tableau la ou les colonnes sélectionnées.
API JavaScript de Dreamweaver
505
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dom.canDeleteTableColumn()
dom.deleteTableRow()
Disponibilité
Dreamweaver 3.0
Description
Supprime du tableau la ou les lignes sélectionnées.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dom.canDeleteTableRow()
dom.doDeferredTableUpdate()
Disponibilité
Dreamweaver 3.0
Description
Si l'option Modification de tableau plus rapide est activée dans les préférences,
catégorie Général, force l'application des modifications apportées à la mise en
forme du tableau sans déplacer le point d'insertion à l'extérieur de celui-ci. Cette
fonction n'a aucun effet si l'option Modification de tableau plus rapide n'est pas
activée.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.getTableExtent()
Disponibilité
Dreamweaver 3.0
506
Chapitre 26
Description
Obtient le nombre de colonnes et de lignes du tableau sélectionné.
Arguments
Aucun.
Valeurs renvoyées
Tableau contenant deux nombres entiers. Le premier entier correspond au nombre
de colonnes, et le second au nombre de lignes. Si aucun tableau n'était
sélectionné, aucune valeur n'est renvoyée.
Activateur
Aucun.
dom.increaseColspan()
Disponibilité
Dreamweaver 3.0
Description
Augmente l'étendue de colonnes de 1.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dom.canIncreaseColspan()
dom.increaseRowspan()
Disponibilité
Dreamweaver 3.0
Description
Augmente l'étendue de lignes de 1.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dom.canIncreaseRowspan()
dom.insertTableColumns()
Disponibilité
Dreamweaver 3.0
API JavaScript de Dreamweaver
507
Description
Insère le nombre de colonnes spécifié dans le tableau en cours.
Arguments
numberOfCols, bBeforeSelection
•
•
numberOfCols
est le nombre de colonnes à insérer.
est une valeur booléenne indiquant si les colonnes doivent
être insérées avant la colonne contenant la sélection.
bBeforeSelection
Valeurs renvoyées
Aucune.
Activateur
dom.canInsertTableColumns()
dom.insertTableRows()
Disponibilité
Dreamweaver 3.0
Description
Insère le nombre de lignes spécifié dans le tableau en cours.
Arguments
numberOfRows, bBeforeSelection
•
•
numberOfRows
est le nombre de lignes à insérer.
est une valeur booléenne indiquant si les lignes doivent
être insérées avant la ligne contenant la sélection.
bBeforeSelection
Valeurs renvoyées
Aucune.
Activateur
dom.canInsertTableRows()
dom.mergeTableCells()
Disponibilité
Dreamweaver 3.0
Description
Fusionne les cellules de tableau sélectionnées.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
508
Chapitre 26
Activateur
dom.canMergeTableCells()
dom.removeAllTableHeights()
Disponibilité
Dreamweaver 3.0
Description
Supprime tous les attributs HEIGHT du tableau sélectionné.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.removeAllTableWidths()
Disponibilité
Dreamweaver 3.0
Description
Supprime tous les attributs WIDTH du tableau sélectionné.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.setTableCellTag()
Disponibilité
Dreamweaver 3.0
Description
Définit la balise de la cellule sélectionnée.
Arguments
tdOrTh
tdOrTh
doit être "td" ou "th".
Valeurs renvoyées
Aucune.
API JavaScript de Dreamweaver
509
Activateur
Aucun.
dom.setTableColumns()
Disponibilité
Dreamweaver 3.0
Description
Définit le nombre de colonnes du tableau sélectionné.
Arguments
numberOfCols
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.setTableRows()
Disponibilité
Dreamweaver 3.0
Description
Définit le nombre de lignes du tableau sélectionné.
Arguments
numberOfRows
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.showInsertTableRowsOrColumnsDialog()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue Insérer des lignes ou des colonnes.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
510
Chapitre 26
Activateur
dom.canInsertTableColumns()
ou dom.canInsertTableRows()
dom.splitTableCell()
Disponibilité
Dreamweaver 3.0
Description
Fractionne la cellule de tableau en cours en un nombre de lignes ou de colonnes
donné. Si vous ne définissez pas l'un des deux arguments, ou les deux, la boîte de
dialogue Fractionner la cellule s'affiche.
Arguments
{colsOrRows}, {numberToSplitInto}
•
•
colsOrRows,
s'il est défini, doit être "columns" ou "rows".
numberToSplitInto, s'il est défini, indique en combien de lignes ou de
colonnes la cellule doit être fractionnée.
Valeurs renvoyées
Aucune.
Activateur
dom.canSplitTableCell()
Fonctions relatives aux scénarios
Comme leur nom l'indique, ces fonctions agissent sur les scénarios. Elles
permettent d'ajouter des objets, des comportements, des cadres et des images-clés
à un scénario, de supprimer ou de modifier les objets d'un scénario, de stipuler si
un scénario doit être lu automatiquement ou exécuté en boucle automatiquement,
etc. Toutes les fonctions décrites dans cette section sont des méthodes de
dreamweaver.timelineInspector car elles agissent sur le contenu du panneau
Scénarios.
dreamweaver.timelineInspector.addBehavior()
Disponibilité
Dreamweaver 3.0
Description
Ouvre le panneau Comportements et applique automatiquement l'événement
onFrameN approprié (N étant le cadre contenant la tête de lecture) lorsque
l'utilisateur choisit une action et clique sur OK.
Arguments
Aucun.
API JavaScript de Dreamweaver
511
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.timelineInspector.addFrame()
Disponibilité
Dreamweaver 3.0
Description
Ajoute un cadre au scénario en cours, au niveau du cadre contenant la tête de
lecture.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dreamweaver.timelineInspector.canAddFrame()
dreamweaver.timelineInspector.addKeyframe()
Disponibilité
Dreamweaver 3.0
Description
Ajoute une image-clé à la barre d'animation sélectionnée au niveau du cadre
contenant la tête de lecture.
Argum ents
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dreamweaver.timelineInspector.canAddKeyFrame()
dreamweaver.timelineInspector.addObject()
Disponibilité
Dreamweaver 3.0
Description
Ajoute l'objet actuellement sélectionné au scénario.
Arguments
Aucun.
512
Chapitre 26
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.timelineInspector.addTimeline()
Disponibilité
Dreamweaver 3.0
Description
Ajoute un nouveau scénario au document en cours.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.timelineInspector.changeObject()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue Modifier l'objet.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dreamweaver.timelineInspector.canChangeObject()
dreamweaver.timelineInspector.getAutoplay()
Disponibilité
Dreamweaver 3.0
Description
Obtient l'état de l'option Lecture auto pour le scénario en cours.
Arguments
Aucun.
API JavaScript de Dreamweaver
513
Valeurs renvoyées
Valeur booléenne indiquant si l'option Lecture auto est activée.
Activateur
Aucun.
dreamweaver.timelineInspector.getCurrentFrame()
Disponibilité
Dreamweaver 3.0
Description
Obtient l’image en cours du scénario en cours.
Arguments
Aucun.
Valeurs renvoyées
Numéro d’image.
Activateur
Aucun.
dreamweaver.timelineInspector.getLoop()
Disponibilité
Dreamweaver 3.0
Description
Obtient l'état de l'option Boucle pour le scénario en cours.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si l'option Boucle est activée.
Activateur
Aucun.
dreamweaver.timelineInspector.recordPathOfLayer()
Disponibilité
Dreamweaver 3.0
Description
Enregistre le chemin d'un calque tandis que l'utilisateur fait glisser celui-ci.
Arguments
Aucun.
514
Chapitre 26
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.timelineInspector.removeBehavior()
Disponibilité
Dreamweaver 3.0
Description
Supprime du scénario le comportement sélectionné.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dreamweaver.timelineInspector.canRemoveBehavior()
dreamweaver.timelineInspector.removeFrame()
Disponibilité
Dreamweaver 3.0
Description
Supprime du scénario l’image sélectionnée.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dreamweaver.timelineInspector.canRemoveFrame()
dreamweaver.timelineInspector.removeKeyframe()
Disponibilité
Dreamweaver 3.0
Description
Supprime d'une barre d'animation l'image-clé sélectionnée.
Arguments
Aucun.
API JavaScript de Dreamweaver
515
Valeurs renvoyées
Aucune.
Activateur
dreamweaver.timelineInspector.canRemoveKeyFrame()
dreamweaver.timelineInspector.removeObject()
Disponibilité
Dreamweaver 3.0
Description
Supprime du scénario l'objet actuellement sélectionné.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dreamweaver.timelineInspector.canRemoveObject()
dreamweaver.timelineInspector.removeTimeline()
Disponibilité
Dreamweaver 3.0
Description
Supprime du document le scénario en cours.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.timelineInspector.renameTimeline()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue Renommer le scénario pour le scénario en cours.
Arguments
Aucun.
516
Chapitre 26
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.timelineInspector.setAutoplay()
Disponibilité
Dreamweaver 3.0
Description
Définit l'option Lecture auto pour le scénario en cours.
Arguments
bAutoplay
bAutoplay
est une valeur booléenne indiquant si l'option Lecture auto doit être
activée.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.timelineInspector.setCurrentFrame()
Disponibilité
Dreamweaver 3.0
Description
Déplace la tête de lecture vers l’image spécifiée.
Arguments
frameNumber
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.timelineInspector.setLoop()
Disponibilité
Dreamweaver 3.0
Description
Définit l'option Boucle pour le scénario en cours.
API JavaScript de Dreamweaver
517
Arguments
bLoop
bLoop
est une valeur booléenne indiquant si l'option Boucle doit être activée.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
Fonctions de bascule
Ces fonctions permettent d'obtenir et de définir un certain nombre d'options qui
peuvent, selon le cas, être activées ou désactivées.
dom.getEditNoFramesContent()
Disponibilité
Dreamweaver 3.0
Description
Obtient l'état en cours de l'option Modifier > Jeu de cadres > Modifier le contenu
sans cadres.
Arguments
Aucun.
Valeurs renvoyées
Une valeur booléenne indiquant si le contenu de NOFRAMES est l'affichage actif
(true) ou pas (false).
Activateur
Aucun.
dom.getHideAllVisualAids()
Disponibilité
Dreamweaver 4.0
Description
Détermine si des assistances visuelles doivent être masquées ou pas.
Arguments
Aucun.
Valeurs renvoyées
Une valeur booléenne, définie sur true si l'option « Masquer toutes les assistances
visuelles » est activée et sur false dans le cas contraire.
518
Chapitre 26
Activateur
Aucun.
dom.getPreventLayerOverlaps()
Disponibilité
Dreamweaver 3.0
Description
Obtient l'état en cours de l'option Empêcher le chevauchement des calques.
Arguments
Aucun.
Valeurs renvoyées
Une valeur booléenne indiquant si l'option est activée (true) ou désactivée
(false).
Activateur
Aucun.
dom.getShowAutoIndent()
Description
Détermine si le retrait automatique est activé dans le mode Affichage de code de la
fenêtre de document.
Arguments
Aucun.
Valeurs renvoyées
Renvoie la valeur true si Retrait auto est activé.
dom.getShowFrameBorders()
Disponibilité
Dreamweaver 3.0
Description
Obtient l'état en cours de l'option Affichage > Bordures de cadre.
Arguments
Aucun.
Valeurs renvoyées
Une valeur booléenne indiquant si les bordures de cadre sont visibles (true) ou
invisibles (false).
Activateur
Aucun.
API JavaScript de Dreamweaver
519
dom.getShowGrid()
Disponibilité
Dreamweaver 3.0
Description
Obtient l'état en cours de l'option Affichage > Grille > Afficher.
Arguments
Aucun.
Valeurs renvoyées
Une valeur booléenne indiquant si la grille est visible (true) ou invisible (false).
Activateur
Aucun.
dom.getShowHeadView()
Disponibilité
Dreamweaver 3.0
Description
Obtient l'état en cours de l'option Affichage > Contenu de l'en-tête.
Arguments
Aucun.
Valeurs renvoyées
Une valeur booléenne indiquant si le contenu de l'en-tête est visible (true) ou
invisible (false).
Activateur
Aucun.
dom.getShowHighlightInvalidHTML()
Disponibilité
Dreamweaver 4.0
Description
Détermine si le code HTML valide est mis en surbrillance ou pas dans le mode
Affichage de code de la fenêtre de document.
Arguments
Aucun.
Valeurs renvoyées
Renvoie la valeur true si du code HTML incorrect est mis en surbrillance.
520
Chapitre 26
dom.getShowImageMaps()
Disponibilité
Dreamweaver 3.0
Description
Obtient l'état en cours de l'option Affichage > Cartes graphiques.
Arguments
Aucun.
Valeurs renvoyées
Une valeur booléenne indiquant si les cartes graphiques sont visibles (true) ou
invisibles (false).
Activateur
Aucun.
dom.getShowInvisibleElements()
Disponibilité
Dreamweaver 3.0
Description
Obtient l'état en cours de l'option Affichage > Eléments invisibles.
Arguments
Aucun.
Valeurs renvoyées
Une valeur booléenne indiquant si les marqueurs d'éléments invisibles sont
visibles (true) ou invisibles (false).
Activateur
Aucun.
dom.getShowLayerBorders()
Disponibilité
Dreamweaver 3.0
Description
Obtient l'état en cours de l'option Affichage > Bordures de calque.
Arguments
Aucun.
Valeurs renvoyées
Une valeur booléenne indiquant si les bordures du calque sont visibles (true) ou
invisibles (false).
Activateur
Aucun.
API JavaScript de Dreamweaver
521
dom.getShowLineNumbers()
Disponibilité
Dreamweaver 4.0
Description
Détermine si les numéros de ligne sont affichés dans le mode Affichage de code.
Arguments
Aucun.
Valeurs renvoyées
Renvoie une valeur booléenne indiquant si les numéros de ligne sont affichés
(true) ou pas (false).
dom.getShowRulers()
Disponibilité
Dreamweaver 3.0
Description
Obtient l'état en cours de l'option Affichage > Règles > Afficher.
Arguments
Aucun.
Valeurs renvoyées
Une valeur booléenne indiquant si les règles sont visibles (true) ou invisibles
(false).
Activateur
Aucun.
dom.getShowSyntaxColoring()
Disponibilité
Dreamweaver 4.0
Description
Détermine si la coloration de la syntaxe est activée dans le mode Affichage de code
de la fenêtre de document.
Arguments
Aucun.
Valeurs renvoyées
Renvoie la valeur true si la coloration de la syntaxe est activée.
dom.getShowTableBorders()
Disponibilité
Dreamweaver 3.0
522
Chapitre 26
Description
Obtient l'état en cours de l'option Affichage > Bordures de tableau.
Arguments
Aucun.
Valeurs renvoyées
Une valeur booléenne indiquant si les bordures de tableau sont visibles (true) ou
invisibles (false).
Activateur
Aucun.
dom.getShowToolbar()
Disponibilité
Dreamweaver 4.0
Description
Détermine si la barre d'outils est affichée ou pas.
Arguments
Aucun.
Valeurs renvoyées
Renvoie la valeur true si la barre d'outils est affichée et false si elle est masquée.
dom.getShowTracingImage()
Disponibilité
Dreamweaver 3.0
Description
Obtient l'état en cours de l'option Affichage > Tracé de l'image > Afficher.
Arguments
Aucun.
Valeurs renvoyées
Une valeur booléenne indiquant si l'option est activée (true) ou désactivée
(false).
Activateur
Aucun.
dom.getShowWordWrap()
Disponibilité
Dreamweaver 4.0
API JavaScript de Dreamweaver
523
Description
Détermine si la fonction de retour automatique à la ligne est activée dans le mode
Affichage de code de la fenêtre de document.
Arguments
Aucun.
Valeurs renvoyées
Renvoie la valeur true si le retour automatique à la ligne est activé.
dom.getSnapToGrid()
Disponibilité
Dreamweaver 3.0
Description
Obtient l'état en cours de l'option Affichage > Grille > Aligner sur.
Arguments
Aucun.
Valeurs renvoyées
Une valeur booléenne indiquant si l'alignement sur la grille est activé (true) ou
désactivé (false).
Activateur
Aucun.
dom.setEditNoFramesContent()
Disponibilité
Dreamweaver 3.0
Description
Active (true) ou désactive (false) l'option Modifier > Jeu de cadres > Modifier
le contenu sans cadres.
Arguments
bEditNoFrames
Valeurs renvoyées
Aucune.
Activateur
dom.canEditNoFramesContent()
dom.setHideAllVisualAids()
Disponibilité
Dreamweaver 4.0
524
Chapitre 26
Description
Désactive l'affichage de toutes les bordures, cartes graphiques et éléments
invisibles, quel que soit leur paramètre individuel dans le menu Affichage.
Arguments
bSet
est une valeur booléenne ; lorsqu'elle est définie sur false, les paramètres
précédents sont restaurés.
bSet
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.setPreventLayerOverlaps()
Disponibilité
Dreamweaver 3.0
Description
Active (true) ou désactive (false) l'option Empêcher le chevauchement des
calques.
Arguments
bPreventLayerOverlaps
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.setShowFrameBorders()
Disponibilité
Dreamweaver 3.0
Description
Active (true) ou désactive (false) l'option Affichage > Bordures de cadre.
Arguments
bShowFrameBorders
Valeurs renvoyées
Aucune.
Activateur
Aucun.
API JavaScript de Dreamweaver
525
dom.setShowGrid()
Disponibilité
Dreamweaver 3.0
Description
Active (true) ou désactive (false) l'option Affichage > Grille > Afficher.
Arguments
bShowGrid
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.setShowHeadView()
Disponibilité
Dreamweaver 3.0
Description
Active (true) ou désactive (false) l'option Affichage > Contenu de l'en-tête.
Arguments
bShowHead
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.setShowHighlightInvalidHTML()
Disponibilité
Dreamweaver 4.0
Description
Active ou désactive la mise en surbrillance du code HTML incorrect dans le mode
Affichage de code de la fenêtre de document.
Arguments
bShow
est une valeur booléenne indiquant si la mise en surbrillance du code
HTML incorrect doit être visible (true) ou pas (false).
bShow
Valeurs renvoyées
Aucune.
526
Chapitre 26
dom.setShowImageMaps()
Disponibilité
Dreamweaver 3.0
Description
Active (true) ou désactive (false) l'option Affichage > Cartes graphiques.
Arguments
bShowImageMaps
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.setShowInvisibleElements()
Disponibilité
Dreamweaver 3.0
Description
Active (true) ou désactive (false) l'option Affichage > Eléments invisibles.
Arguments
bViewInvisibleElements
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.setShowLayerBorders()
Disponibilité
Dreamweaver 3.0
Description
Active (true) ou désactive (false) l'option Affichage > Bordures de calque.
Arguments
bShowLayerBorders
Valeurs renvoyées
Aucune.
Activateur
Aucun.
API JavaScript de Dreamweaver
527
dom.setShowLineNumbers()
Disponibilité
Dreamweaver 4.0
Description
Affiche ou masque les numéros de ligne dans le mode Affichage de code de la
fenêtre de document.
Arguments
bShow
est une valeur booléenne indiquant si les numéros de ligne doivent être
visibles (true) ou pas (false).
bShow
Valeurs renvoyées
Aucune.
dom.setShowRulers()
Disponibilité
Dreamweaver 3.0
Description
Active (true) ou désactive (false) l'option Affichage > Règles > Afficher.
Arguments
bShowRulers
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.setShowSyntaxColoring()
Disponibilité
Dreamweaver 4.0
Description
Active ou désactive la coloration de la syntaxe dans le mode Affichage de code de
la fenêtre de document.
Arguments
bShow
est une valeur booléenne indiquant si la coloration de la syntaxe doit être
visible (true) ou pas (false).
bShow
Valeurs renvoyées
Aucune.
528
Chapitre 26
dom.setShowTableBorders()
Disponibilité
Dreamweaver 3.0
Description
Active (true) ou désactive (false) l'option Affichage > Bordures de tableau.
Arguments
bShowTableBorders
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.setShowToolbar()
Disponibilité
Dreamweaver 4.0
Description
Affiche ou masque la barre d'outils.
Arguments
bShow
bShow est une valeur booléenne
(true) ou pas (false).
indiquant si la barre d'outils doit être visible
Valeurs renvoyées
Aucune.
dom.setShowTracingImage()
Disponibilité
Dreamweaver 3.0
Description
Active (true) ou désactive (false) l'option Affichage > Tracé de l'image >
Afficher.
Arguments
bShowTracingImage
Valeurs renvoyées
Aucune.
Activateur
Aucun.
API JavaScript de Dreamweaver
529
dom.setShowWordWrap()
Disponibilité
Dreamweaver 4.0
Description
Active ou désactive le retour automatique à la ligne dans le mode Affichage de
code de la fenêtre de document.
Arguments
bShow
est une valeur booléenne indiquant si les numéros de ligne doivent être
visibles (true) ou pas (false).
bShow
Valeurs renvoyées
Aucune.
dom.setSnapToGrid()
Disponibilité
Dreamweaver 3.0
Description
Active (true) ou désactive (false) l'option Affichage > Grille > Aligner sur.
Arguments
bSnapToGrid
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.getHideAllFloaters()
Disponibilité
Dreamweaver 3.0
Description
Obtient l'état en cours de l'option Masquer les panneaux flottants.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si l'option de menu Masquer les panneaux flottants
(true) ou Afficher les panneaux flottants (false) est disponible.
Activateur
Aucun.
530
Chapitre 26
dreamweaver.getShowStatusBar()
Disponibilité
Dreamweaver 3.0
Description
Obtient l'état en cours de l'option Affichage > Barre d'état.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si la barre d'état est visible (true) ou invisible
(false).
Activateur
Aucun.
dreamweaver.htmlInspector.getShowAutoIndent()
Disponibilité
Dreamweaver 4.0
Description
Détermine si le retrait automatique est activé dans le mode Affichage de code de
l'inspecteur de code.
Arguments
Aucun.
Valeurs renvoyées
Renvoie la valeur true si Retrait auto est activé.
dreamweaver.htmlInspector.getShowHighlightInvalidHTML()
Description
Détermine si le code HTML incorrect est actuellement mis en surbrillance dans le
mode Affichage de code de l'inspecteur de code.
Arguments
Aucun.
Valeurs renvoyées
Renvoie la valeur true si du code HTML incorrect est mis en surbrillance.
dreamweaver.htmlInspector.getShowLineNumbers()
Disponibilité
Dreamweaver 4.0
API JavaScript de Dreamweaver
531
Description
Détermine si les numéros de ligne sont affichés dans le mode Affichage de code de
l'inspecteur de code.
Arguments
Aucun.
Valeurs renvoyées
Renvoie la valeur true si les numéros de ligne sont affichés.
dreamweaver.htmlInspector.getShowSyntaxColoring()
Disponibilité
Dreamweaver 4.0
Description
Détermine si la coloration de la syntaxe est activée dans le mode Affichage de code
de l'inspecteur de code.
Arguments
Aucun.
Valeurs renvoyées
Renvoie la valeur true si la coloration de la syntaxe est activée.
dreamweaver.htmlInspector.getShowWordWrap()
Disponibilité
Dreamweaver 4.0
Description
Détermine si la fonction de retour automatique à la ligne est activée dans le mode
Affichage de code de l'inspecteur de code.
Arguments
Aucun.
Valeurs renvoyées
Renvoie la valeur true si le retour automatique à la ligne est activé.
dreamweaver.htmlInspector.setShowAutoIndent()
Disponibilité
Dreamweaver 4.0
Description
Active ou désactive le retrait automatique dans le mode Affichage de code de
l'inspecteur de code.
532
Chapitre 26
Arguments
bShow
est une valeur booléenne indiquant si la mise en retrait automatique doit
être activée (true) ou pas (false).
bShow
Valeurs renvoyées
Aucune.
dreamweaver.htmlInspector.setShowHighlightInvalidHTML()
Disponibilité
Dreamweaver 4.0
Description
Active ou désactive la mise en surbrillance du code HTML incorrect dans le mode
Affichage de code de l'inspecteur de code.
Arguments
bShow
est une valeur booléenne indiquant si la mise en surbrillance du code
HTML incorrect doit être visible (true) ou pas (false).
bShow
Valeurs renvoyées
Aucune.
dreamweaver.htmlInspector.setShowLineNumbers()
Disponibilité
Dreamweaver 4.0
Description
Affiche ou masque les numéros de ligne dans le mode Affichage de code de
l'inspecteur de code.
Arguments
bShow
est une valeur booléenne indiquant si les numéros de ligne doivent être
visibles (true) ou pas (false).
bShow
Valeurs renvoyées
Aucune.
dreamweaver.htmlInspector.setShowSyntaxColoring()
Disponibilité
Dreamweaver 4.0
API JavaScript de Dreamweaver
533
Description
Active ou désactive la coloration de la syntaxe dans le mode Affichage de code de
l'inspecteur de code.
Arguments
bShow
est une valeur booléenne indiquant si la coloration de la syntaxe doit être
visible (true) ou pas (false).
bShow
Valeurs renvoyées
Aucune.
dreamweaver.htmlInspector.setShowWordWrap()
Disponibilité
Dreamweaver 4.0
Description
Active ou désactive le retour automatique à la ligne dans le mode Affichage de
code de l'inspecteur de code.
Arguments
bShow
est une valeur booléenne indiquant si le retour automatique à la ligne doit
être activé (true) ou désactivé (false).
bShow
Valeurs renvoyées
Aucune.
dreamweaver.setHideAllFloaters()
Disponibilité
Dreamweaver 3.0
Description
Active l'option Masquer les panneaux flottants (true) ou l'option Afficher les
panneaux flottants (false).
Arguments
bShowFloatingPalettes
Valeurs renvoyées
Aucune.
Activateur
Aucun.
534
Chapitre 26
dreamweaver.setShowStatusBar()
Disponibilité
Dreamweaver 3.0
Description
Active (true) ou désactive (false) l'option Affichage > Barre d'état.
Arguments
bShowStatusBar
Valeurs renvoyées
Aucune.
Activateur
Aucun.
site.getShowDependents()
Disponibilité
Dreamweaver 3.0
Description
Obtient l'état en cours de l'option Afficher les fichiers dépendants.
Arguments
Aucun.
Valeurs renvoyées
Une valeur booléenne indiquant si les fichiers dépendants sont visibles dans la
carte du site (true) ou invisibles (false).
Activateur
Aucun.
site.getShowHiddenFiles()
Disponibilité
Dreamweaver 3.0
Description
Obtient l'état en cours de l'option Afficher les fichiers marqués comme cachés.
Arguments
Aucun.
Valeurs renvoyées
Une valeur booléenne indiquant si les fichiers cachés sont visibles dans la carte du
site (true) ou invisibles (false).
Activateur
Aucun.
API JavaScript de Dreamweaver
535
site.getShowPageTitles()
Disponibilité
Dreamweaver 3.0
Description
Obtient l'état en cours de l'option Afficher les titres de page.
Arguments
Aucun.
Valeurs renvoyées
Une valeur booléenne indiquant si les titres de page sont visibles dans la carte du
site (true) ou invisibles (false).
Activateur
Aucun.
site.getShowToolTips()
Disponibilité
Dreamweaver 3.0
Description
Obtient l'état en cours de l'option Info-bulles.
Arguments
Aucun.
Valeurs renvoyées
Une valeur booléenne indiquant si les info-bulles sont visibles dans la carte du site
(true) ou invisibles (false).
Activateur
Aucun.
site.setShowDependents()
Disponibilité
Dreamweaver 3.0
Description
Active (true) ou désactive (false) l'option Afficher les fichiers dépendants dans
la carte du site.
Arguments
bShowDependentFiles
Valeurs renvoyées
Aucune.
Activateur
Aucun.
536
Chapitre 26
site.setShowHiddenFiles()
Disponibilité
Dreamweaver 3.0
Description
Active (true) ou désactive (false) l'option Afficher les fichiers marqués comme
cachés dans la carte du site.
Arguments
bShowHiddenFiles
Valeurs renvoyées
Aucune.
Activateur
Aucun.
site.setShowPageTitles()
Disponibilité
Dreamweaver 3.0
Description
Active (true) ou désactive (false) l'option Afficher les titres de page dans la carte
du site.
Arguments
bShowPageTitles
Valeurs renvoyées
Aucune.
Activateur
site.canShowPageTitles()
site.setShowToolTips()
Disponibilité
Dreamweaver 3.0
Description
Active (true) ou désactive (false) l'option Info-bulles.
Arguments
bShowToolTips
Valeurs renvoyées
Aucune.
Activateur
Aucun.
API JavaScript de Dreamweaver
537
Fonctions relatives à la traduction
(conversion) de données
Ces fonctions permettent d'agir directement sur les traducteurs de données ou sur
les résultats de la traduction. Elles permettent d'exécuter ou d'obtenir des
informations sur un traducteur, de modifier le contenu d'une région verrouillée et
de stipuler que le code traduit doit être utilisé lors de l'obtention et de la
définition de décalages de sélection.
dom.runTranslator()
Disponibilité
Dreamweaver 3.0
Description
Exécute le traducteur spécifié sur le document. Cette fonction n'est valide que
pour le document actif.
Arguments
translatorName
translatorName est le nom d'un traducteur tel qu'il apparaît dans les préférences
de traduction.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.editLockedRegions()
Disponibilité
Dreamweaver 2.0
Description
Selon la valeur de l'argument, autorise ou n'autorise pas la modification des
régions verrouillées. Par défaut, les régions verrouillées ne peuvent pas être
modifiées. Si vous tentez de modifier une région verrouillée avant de la rendre
modifiable, Dreamweaver émet un bip et interdit la modification.
Remarque : la modification de régions verrouillées peut avoir des conséquences
inattendues sur les éléments de bibliothèque et les modèles. Il est déconseillé d'utiliser
cette fonction en dehors du contexte des traducteurs de données.
538
Chapitre 26
Arguments
bAllowEdits
bAllowEdits est une valeur booléenne indiquant que
autorisées (true) ou interdites (false). Dreamweaver
les modifications sont
restaure automatiquement
l'état par défaut (non modifiable) des régions verrouillées lorsque l'exécution du
script qui appelle la fonction prend fin.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.getTranslatorList()
Disponibilité
Dreamweaver 3.0
Description
Obtient la liste des traducteurs de données installés.
Arguments
Aucun.
Valeurs renvoyées
Tableau de chaînes, chacune représentant le nom d'un traducteur tel qu'il apparaît
dans les préférences de traduction.
Activateur
Aucun.
dreamweaver.useTranslatedSource()
Disponibilité
Dreamweaver 2.0
Description
Indique que les valeurs renvoyées par les fonctions dom.nodeToOffsets() et
dom.getSelection() et utilisées par les fonctions dom.offsetsToNode() et
dom.setSelection() doivent être décalées dans le code source converti (code
HTML contenu dans l'arborescence DOM après exécution d'un traducteur) et
non dans le code source non converti.
Remarque : cette fonction ne s'applique qu'aux fichiers d'inspecteur de propriétés.
API JavaScript de Dreamweaver
539
Arguments
bUseTranslatedSource
La valeur par défaut de l'argument est false. Lorsque le script appelant la
fonction dw.useTranslatedSource() prend fin, Dreamweaver utilise
automatiquement le code source non converti pour les appels suivants de
dw.getSelection(), dw.setSelection(), dw.nodeToOffsets() et
dw.offsetsToNode(), sauf si la fonction dw.useTranslatedSource() est
appelée explicitement avec l'argument false avant la fin de l'exécution du script.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
Fonctions d'environnement de mise en
forme
Les fonctions d'environnement de mise en forme permettent d'effectuer des
opérations relatives aux paramètres d'utilisation d'un document. Elles permettent
de modifier la source, la position et l'opacité du tracé de l'image, d'obtenir et de
définir l'origine et les unités de mesure de la règle, d'activer et de désactiver la
grille et de modifier ses paramètres, de démarrer et d'arrêter l'exécution des
plug-ins.
dom.getRulerOrigin()
Disponibilité
Dreamweaver 3.0
Description
Obtient l'origine de la règle.
Arguments
Aucun.
Valeurs renvoyées
Tableau contenant deux nombres entiers. Le premier entier correspond à la
coordonnée x de l'origine, et le second à la coordonnée y. Les deux valeurs sont
exprimées en pixels.
Activateur
Aucun.
540
Chapitre 26
dom.getRulerUnits()
Disponibilité
Dreamweaver 3.0
Description
Obtient les unités de mesure actuelles de la règle.
Arguments
Aucun.
Valeurs renvoyées
Chaîne contenant l'une des valeurs suivantes :
•
•
•
"in"
"cm"
"px"
Activateur
Aucun.
dom.getTracingImageOpacity()
Disponibilité
Dreamweaver 3.0
Description
Obtient le paramètre d'opacité du tracé de l'image dans le document en cours.
Arguments
Aucun.
Valeurs renvoyées
Valeur comprise entre 0 et 100, ou rien si l'opacité n'est pas définie.
Activateur
dom.hasTracingImage()
dom.loadTracingImage()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue Sélectionner source de l'image. Si l'utilisateur
sélectionne une image et clique sur OK, la boîte de dialogue Propriétés de la page
s'ouvre et le champ Tracé de l'image contient une valeur.
Arguments
Aucun.
API JavaScript de Dreamweaver
541
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.playAllPlugins()
Disponibilité
Dreamweaver 3.0
Description
Exécute tous les plug-ins dans le document.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.playPlugin()
Disponibilité
Dreamweaver 3.0
Description
Exécute le plug-in sélectionné.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dom.canPlayPlugin()
dom.setRulerOrigin()
Disponibilité
Dreamweaver 3.0
Description
Définit l'origine de la règle.
542
Chapitre 26
Arguments
xCoordinate, yCoordinate
•
•
xCoordinate
est une valeur, exprimée en pixels, sur l'axe horizontal.
yCoordinate
est une valeur, exprimée en pixels, sur l'axe vertical.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.setRulerUnits()
Disponibilité
Dreamweaver 3.0
Description
Définit les unités de mesure de la règle.
Arguments
units
units
doit être "px", "in" ou "cm".
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.setTracingImagePosition()
Disponibilité
Dreamweaver 3.0
Description
Déplace le coin supérieur gauche du tracé de l'image vers les coordonnées
spécifiées. Si les arguments ne sont pas définis, la boîte de dialogue Ajuster la
position du tracé de l'image s'affiche.
Arguments
x, y
Valeurs renvoyées
Aucune.
Activateur
dom.hasTracingImage()
API JavaScript de Dreamweaver
543
dom.setTracingImageOpacity()
Disponibilité
Dreamweaver 3.0
Description
Définit le pourcentage d'opacité du tracé de l'image.
Arguments
opacityPercentage
opacityPercentage
doit être un nombre compris entre 0 et 100.
Valeurs renvoyées
Aucune.
Activateur
dom.hasTracingImage()
Exemple
L'exemple de code suivant règle l'opacité du tracé de l'image sur 30 %.
dw.getDocumentDOM().setTracingOpacity('30');
dom.snapTracingImageToSelection()
Disponibilité
Dreamweaver 3.0
Description
Aligne le coin supérieur gauche du tracé de l'image avec le coin supérieur gauche
de la sélection en cours.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
dom.hasTracingImage()
dom.stopAllPlugins()
Disponibilité
Dreamweaver 3.0
Description
Arrête l'exécution de tous les plug-ins en cours dans le document.
Arguments
Aucun.
544
Chapitre 26
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dom.stopPlugin()
Disponibilité
Dreamweaver 3.0
Description
Arrête l'exécution du plug-in sélectionné.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si la sélection est actuellement exécutée avec un
plug-in.
Activateur
dom.canStopPlugin()
dreamweaver.arrangeFloatingPalettes()
Disponibilité
Dreamweaver 3.0
Description
Déplace les panneaux flottants visibles vers leur position par défaut.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.showGridSettingsDialog()
Disponibilité
Dreamweaver 3.0
Description
Ouvre la boîte de dialogue Paramètres de la grille.
Arguments
Aucun.
API JavaScript de Dreamweaver
545
Valeurs renvoyées
Aucune.
Activateur
Aucun.
Fonctions relatives au mode Mise en forme
Les fonctions du mode Mise en forme permettent de modifier les éléments de
mise en forme d'un document. Elles s'appliquent aux paramètres de tableau,
colonnes et cellules, y compris leur position, propriétés et aspect.
dom.addSpacerToColumn()
Disponibilité
Dreamweaver 4.0
Description
Crée une image d'espacement transparente d'un pixel de hauteur au bas d'une
colonne donnée du tableau sélectionné. Cette fonction échoue si la sélection en
cours n'est pas un tableau ou si l'opération n'a pas réussi.
Arguments
colNum
colNum
est la colonne au bas de laquelle l'image d'espacement est créée.
Valeurs renvoyées
Aucune.
dom.createLayoutCell()
Disponibilité
Dreamweaver 4.0
Description
Crée une cellule de Mise en forme dans le document courant à la position et aux
dimensions spécifiées, soit à l'intérieur d'un tableau de Mise en forme existant,
soit dans une zone située sous le contenu existant sur la page. Si la cellule est créée
dans un tableau de Mise en forme existant, elle ne doit pas chevaucher ni contenir
d'autres cellules de Mise en forme ni des tableaux de Mise en forme imbriqués. Si
le rectangle n'est pas à l'intérieur d'un tableau de Mise en forme existant,
Dreamweaver tente de créer un tableau de Mise en forme devant contenir la
nouvelle cellule. Cette fonction ne place pas le document en mode Mise en forme.
Elle échoue si la cellule ne peut pas être créée.
546
Chapitre 26
Arguments
left, top, width, height
•
•
•
•
left
top
est la position x de la bordure gauche de la cellule.
est la position y de la bordure supérieure de la cellule.
width
est la largeur de la cellule en pixels.
height
est la hauteur de la cellule en pixels.
Valeurs renvoyées
Aucune.
dom.createLayoutTable()
Disponibilité
Dreamweaver 4.0
Description
Crée un tableau de Mise en forme dans le document en cours à la position et aux
dimensions spécifiées, soit à l'intérieur d'un tableau de mise en forme existant, soit
dans une zone située sous le contenu existant sur la page. Si le tableau est créé dans
un tableau de Mise en forme existant, il ne peut pas chevaucher d'autres cellules
ou tableaux de Mise en forme mais il peut contenir d'autres cellules ou tableaux de
Mise en forme imbriqués. Cette fonction ne place pas le document en mode Mise
en forme. Cette fonction échoue si le tableau ne peut pas être créé.
Arguments
left, top, width, height
•
•
•
•
left
top
est la position x de la bordure gauche du tableau.
est la position y de la bordure supérieure du tableau.
width
est la largeur du tableau en pixels.
height
est la hauteur du tableau en pixels.
Valeurs renvoyées
Aucune.
dom.doesColumnHaveSpacer()
Disponibilité
Dreamweaver 4.0
Description
Détermine si une colonne contient ou pas une image d'espacement générée par
Dreamweaver. Cette fonction échoue si la sélection en cours n'est pas un tableau.
API JavaScript de Dreamweaver
547
Arguments
colNum
colNum
est la colonne à vérifier pour une image d'espacement.
Valeurs renvoyées
Renvoie la valeur true si la colonne définie dans le tableau sélectionné contient
une image d'espacement générée par Dreamweaver et false dans le cas contraire.
dom.doesGroupHaveSpacers()
Disponibilité
Dreamweaver 4.0
Description
Détermine si le tableau sélectionné contient ou pas une ligne d'images
d'espacement générées par Dreamweaver. Cette fonction échoue si la sélection en
cours n'est pas un tableau.
Arguments
Aucun.
Valeurs renvoyées
Renvoie la valeur true si le tableau contient une ligne d'images d'espacement et
false dans le cas contraire.
dom.getClickedHeaderColumn()
Disponibilité
Dreamweaver 4.0
Description
Si l'utilisateur vient de cliquer sur un bouton de menu dans l'en-tête d'un tableau
du mode Mise en forme, faisant ainsi apparaître le menu d'en-tête du tableau,
cette fonction renvoie l'index de la colonne sur laquelle l'utilisateur a cliqué. Le
résultat n'est pas défini si le menu d'en-tête du tableau n'est pas visible.
Arguments
Aucun.
Valeurs renvoyées
Nombre entier représentant l'index de la colonne.
dom.getShowLayoutTableTabs()
Description
Détermine si le document en cours affiche ou pas les tabulations des tableaux de
Mise en forme en mode Mise en forme.
548
Chapitre 26
Arguments
Aucun.
Valeurs renvoyées
Renvoie la valeur true si le document en cours affiche les tabulations des tableaux
de Mise en forme en mode Mise en forme et false dans le cas contraire.
dom.getShowLayoutView()
Description
Détermine le mode d'affichage du document en cours, Mise en forme ou
Standard.
Arguments
Aucun.
Valeurs renvoyées
Renvoie la valeur true si le document en cours est en mode Mise en forme et
false s'il est en mode Standard.
dom.isColumnAutostretch()
Disponibilité
Dreamweaver 4.0
Description
Détermine si une colonne doit être agrandie ou réduite automatiquement selon la
taille du document. Cette fonction échoue si la sélection en cours n'est pas un
tableau.
Arguments
colNum
colNum
est la colonne à redimensionner automatiquement ou dont la largeur est
fixée.
Valeurs renvoyées
Renvoie la valeur true si la colonne située à l'index donné du tableau sélectionné
doit s'étendre automatiquement et false dans le cas contraire.
dom.makeCellWidthsConsistent()
Disponibilité
Dreamweaver 4.0
Description
Dans le tableau sélectionné, définit la largeur de chaque colonne de code HTML
pour qu'elle corresponde à la largeur de rendu de la colonne. Cette fonction
échoue si la sélection courante n'est pas un tableau ou si l'opération n'a pas réussi.
API JavaScript de Dreamweaver
549
Arguments
Aucun.
Valeurs renvoyées
Aucune.
dom.removeAllSpacers()
Disponibilité
Dreamweaver 4.0
Description
Supprime toutes les images d'espacement générées par Dreamweaver à partir du
tableau sélectionné. Cette fonction échoue si la sélection courante n'est pas un
tableau ou si l'opération n'a pas réussi.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
dom.removeSpacerFromColumn()
Disponibilité
Dreamweaver 4.0
Description
Supprime l'image d'espacement d'une colonne donnée et supprime la ligne
d'espacement s'il n'y a plus d'images d'espacement générées par Dreamweaver.
Cette fonction échoue si la sélection courante n'est pas un tableau ou si
l'opération n'a pas réussi.
Arguments
colNum
colNum
est la colonne dans laquelle l'image d'espacement doit être supprimée.
Valeurs renvoyées
Aucune.
dom.setColumnAutostretch()
Disponibilité
Dreamweaver 4.0
550
Chapitre 26
Description
Passe d'une colonne automatiquement dimensionnée à une colonne d'une largeur
fixe et vice versa. Si bAutostretch est défini sur true, la colonne située à l'index
donné du tableau sélectionné est définie pour s'agrandir automatiquement ; dans
le cas contraire, elle est définie sur une largeur fixe qui est celle du rendu en cours.
Cette fonction échoue si la sélection en cours n'est pas un tableau ou si l'opération
n'a pas réussi.
Arguments
colNum, bAutostretch
•
colNum
•
bAutostretch indique si la colonne est
(true) ou sur une largeur fixe (false).
est la colonne à redimensionner automatiquement ou définie sur une
largeur fixe.
définie pour être autodimensionnée
Valeurs renvoyées
Aucune.
dom.setShowLayoutTableTabs()
Disponibilité
Dreamweaver 4.0
Description
Définit le document en cours pour qu'il affiche les tabulations des tableaux de
Mise en forme chaque fois qu'il est en mode Mise en forme. Cette fonction ne
place pas le document en mode Mise en forme.
Arguments
bShow
indique si les tabulations des tableaux de Mise en forme doivent s'afficher
lorsque le document est en mode Mise en forme. Si bShow a la valeur true, les
tabulations sont affichées et s'il a la valeur false, les tabulations sont masquées.
bShow
Valeurs renvoyées
Aucune.
dom.setShowLayoutView()
Disponibilité
Dreamweaver 4.0
Description
Met le document en cours en mode Mise en forme si bShow a la valeur true.
API JavaScript de Dreamweaver
551
Arguments
bShow
est une valeur booléenne qui fait passer le document du mode Mise en
forme au mode Standard et vice versa. Si bShow correspond à « true », le
document passe au mode Mise en forme.
bShow
Valeurs renvoyées
Aucune.
Fonctions relatives aux fenêtres
Ces fonctions permettent d'agir sur la fenêtre de document et sur les panneaux
flottants. Elles permettent d'afficher et de masquer les panneaux flottants, de
déterminer quelle est la partie active de la fenêtre de document et de définir le
document actif. Pour les opérations relatives à la fenêtre Site, voir « Fonctions
relatives aux sites », page 466.
dom.getFocus()
Disponibilité
Dreamweaver 3.0
Description
Détermine quelle partie du document est actuellement active.
Arguments
Aucun.
Valeurs renvoyées
L'une des chaînes suivantes :
•
•
•
"head"
si la zone HEAD est active ;
"body"
si la zone BODY ou NOFRAMES est active ;
•
"none"
si un jeu de cadres ou l'un quelconque des cadres qui le
composent est sélectionné ;
"frameset"
si la zone active n'est pas dans le document (si elle se trouve dans
l'inspecteur de propriétés, par exemple, ou dans un autre panneau flottant).
Activateur
Aucun.
dom.getView()
Disponibilité
Dreamweaver 4.0
552
Chapitre 26
Description
Détermine quel mode est visible.
Arguments
Aucun.
Valeurs renvoyées
"design", "code",
ou "split", selon le mode d'affichage visible.
dom.getWindowTitle()
Disponibilité
Dreamweaver 3.0
Description
Obtient le titre de la fenêtre contenant le document.
Arguments
Aucun.
Valeurs renvoyées
Chaîne contenant le texte qui apparaît entre les balises TITLE du document, ou
rien si le document ne figure pas dans une fenêtre ouverte.
Activateur
Aucun.
dom.setView()
Disponibilité
Dreamweaver 4.0
Description
Affiche ou masque le mode Création ou le mode Affichage de code pour produire
un affichage contenant uniquement le mode Création ou Affichage de code ou les
deux.
Arguments
viewString
viewString est le mode à afficher
design", "code" ou "split".
; il doit être l'une des valeurs suivantes :
Valeurs renvoyées
Aucune.
dreamweaver.getActiveWindow()
Disponibilité
Dreamweaver 3.0
API JavaScript de Dreamweaver
553
Description
Obtient le document figurant dans la fenêtre active.
Arguments
Aucun.
Valeurs renvoyées
Objet document correspondant au document qui figure dans la fenêtre active, ou,
si le document figure dans un cadre, objet document correspondant au jeu de
cadres.
Activateur
Aucun.
dreamweaver.getDocumentList()
Disponibilité
Dreamweaver 3.0
Description
Obtient la liste de tous les documents ouverts.
Arguments
Aucun.
Valeurs renvoyées
Tableau d'objets document, chacun correspondant à une fenêtre de document
ouverte. Si une fenêtre de document contient un jeu de cadres, l'objet document
désigne le jeu de cadres et non le contenu des cadres.
Activateur
Aucun.
dreamweaver.getFloaterVisibility()
Disponibilité
Dreamweaver 3.0
Description
Vérifie si le panneau ou l'inspecteur spécifié est visible.
554
Chapitre 26
Arguments
floaterName
est le nom du panneau flottant. Les panneaux intégrés doivent être
référencés à l'aide de l'une des chaînes suivantes : "objects", "properties",
"launcher", "site files", "site map", "library", "css styles", "html
styles", "behaviors", "timelines", "html", "layers", "frames",
"templates", "history", "data bindings" ou "server behaviors". Si
floaterName ne correspond pas au nom d'un panneau intégré, Dreamweaver
recherche dans le dossier Configuration/Floaters un fichier nommé
floaterName.htm.
floaterName
Valeurs renvoyées
si le panneau flottant est visible et se trouve au premier plan, false si ce
n'est pas le cas ou que Dreamweaver ne trouve pas de panneau flottant nommé
floaterName.
true
Activateur
Aucun.
dreamweaver.getFocus()
Disponibilité
Dreamweaver 4.0
Description
Détermine quelle partie de l'application est actuellement active.
Arguments
bAllowFloaters
Valeurs renvoyées
L'une des chaînes suivantes :
•
•
•
•
•
"document"
"site"
si la fenêtre Site est active.
"textView"
"html"
si la fenêtre de document est active.
si le mode Texte est actif.
si l'inspecteur de code est actif.
floaterName si bAllowFloaters est true et qu'un panneau flottant est actif,
floaterName correspondant à "objects", "properties", "launcher",
"library", "css styles", "html styles", "behaviors", "timelines",
"layers", "frames", "templates" ou "history".
• (Macintosh) "none" si ni la fenêtre Site, ni une fenêtre de document n'est
ouverte.
Activateur
Aucun.
API JavaScript de Dreamweaver
555
dreamweaver.getPrimaryView()
Disponibilité
Dreamweaver 4.0
Description
Détermine le mode d'affichage défini comme fenêtre principale (placé au-dessus).
Arguments
Aucun.
Valeurs renvoyées
"design" ou "code", selon le mode qui est visible ou le volet situé sur le dessus
dans un affichage à deux volets.
dreamweaver.getSnapDistance()
Disponibilité
Dreamweaver 4.0
Description
Renvoie la distance d'alignement en pixels.
Arguments
Aucun.
Valeurs renvoyées
Un nombre entier représentant la distance d'alignement en pixels. La distance par
défaut est 10 pixels ; 0 indique que la fonction d'alignement est désactivée.
dreamweaver.minimizeRestoreAll()
Disponibilité
Dreamweaver 4.0
Description
Réduit en icône ou restaure toutes les fenêtres dans Dreamweaver.
Arguments
bMinimize
est une valeur booléenne. true indique que les fenêtres doivent être
réduites en icônes et false qu'elles doivent être restaurées.
bMinimize
Valeurs renvoyées
Aucune.
dreamweaver.setActiveWindow()
Disponibilité
Dreamweaver 3.0
556
Chapitre 26
Description
Active la fenêtre contenant le document spécifié.
Arguments
documentObject, {bActivateFrame}
•
documentObject
•
bActivateFrame, applicable uniquement si documentObject se trouve à
l'intérieur d'un jeu de cadres, est une valeur booléenne indiquant s'il faut
activer non seulement la fenêtre contenant le jeu de cadres, mais également le
cadre contenant le document.
est l'objet situé à la racine de l'arborescence DOM d'un
document (c'est-à-dire la valeur renvoyée par
dreamweaver.getDocumentDOM()).
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.setFloaterVisibility()
Disponibilité
Dreamweaver 3.0
Description
Indique s'il faut rendre visible un panneau flottant ou un inspecteur spécifique.
Arguments
floaterName, bIsVisible
•
est le nom du panneau flottant. Les panneaux intégrés doivent
être référencés à l'aide de l'une des chaînes suivantes : "objects",
"properties", "launcher", "site files", "site map", "library", "css
styles", "html styles", "behaviors", "timelines", "html", "layers",
"frames", "templates", "history", "data bindings" ou "server
behaviors". Si floaterName ne correspond pas au nom d'un panneau
intégré, Dreamweaver recherche dans le dossier Configuration/Floaters un
fichier nommé floaterName.htm. Si Dreamweaver ne trouve aucun fichier
ayant le nom floaterName, cette fonction n'a aucun effet.
•
bIsVisible est une valeur booléenne indiquant si le panneau flottant doit être
floaterName
visible.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
API JavaScript de Dreamweaver
557
dreamweaver.setPrimaryView()
Disponibilité
Dreamweaver 4.0
Description
Affiche la fenêtre spécifiée au-dessus de la fenêtre de document.
Arguments
viewString
est la fenêtre devant se placer au-dessus de la fenêtre de document ;
cet argument peut être l'une des valeurs suivantes : "design" ou "code".
viewString
Valeurs renvoyées
Aucune.
dreamweaver.setSnapDistance()
Disponibilité
Dreamweaver 4.0
Description
Définit la distance d'alignement en pixels (0 pour la désactiver ; 10 pixels par
défaut)
Arguments
snapDistance
est un nombre entier représentant la distance d'alignement en
pixels. La valeur par défaut est 10 pixels. Définissez 0 pour désactiver la fonction
d'alignement.
snapDistance
Valeurs renvoyées
Aucune.
dreamweaver.showProperties()
Disponibilité
Dreamweaver 3.0
Description
Rend l'inspecteur de propriétés visible et l'active.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
558
Chapitre 26
dreamweaver.toggleFloater()
Disponibilité
Dreamweaver 3.0
Description
Affiche, masque ou place au premier plan le panneau ou l'inspecteur spécifié.
Remarque : cette fonction n'a de sens que dans le fichier menus.xml. Pour afficher, placer
au premier plan ou masquer un panneau flottant, utilisez la fonction
dw.setFloaterVisibility().
Arguments
floaterName
floaterName est le nom de la fenêtre. Si le nom de la fenêtre flottante est
reference, l'état de visibilité du panneau Référence peut être mis à jour par
l'utilisateur dans le mode Affichage de code. Tous les autres panneaux effectuent
toujours un suivi de la sélection, mais le panneau Référence n'analyse la sélection
dans le mode Affichage de code que lorsque l'utilisateur appelle un suivi.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.updateReference()
Disponibilité
Dreamweaver 4.0
Description
Met à jour le panneau flottant Référence. Si le panneau Référence n'est pas visible,
il est affiché puis mis à jour.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Fonctions déconseillées
Ces fonctions existent toujours, mais des fonctions plus récentes les ont
remplacées dans la présente version de Dreamweaver. Nous vous recommandons
d'utiliser ces dernières, car il est possible que les anciennes fonctions soient
supprimées des futures versions de Dreamweaver.
API JavaScript de Dreamweaver
559
dreamweaver.getBehaviorEvent()
Disponibilité
Dreamweaver 1.2, déconseillée dans la version 2.0 car les actions sont désormais
choisies avant les événements.
Description
Dans un fichier d'action de comportement, obtient l'événement qui déclenche
l'action.
Arguments
Aucun.
Valeurs renvoyées
Chaîne représentant l'événement. Il s'agit de la chaîne transmise à la fonction
canAcceptBehavior() sous la forme d'un argument (event).
Exemple
Dans l'exemple suivant, la fonction getBehaviorEvent() provient de la fonction
initializeUI() du fichier d'action Drag Layer (Faire glisser le calque). Le rôle
du segment de code suivant est similaire à celui de canAcceptBehavior(), c'està-dire qu'il vérifie si l'événement sélectionné est adapté à l'action sélectionnée. Ce
type de construction est plus utile que canAcceptBehavior(), car il vous permet
d'indiquer à l'utilisateur quels sont les événements permettant d'appeler l'action
sélectionnée. canAcceptBehavior() rend l'action indisponible dans le menu
déroulant des actions uniquement si l'utilisateur choisit un événement inadapté.
theEvent = dreamweaver.getBehaviorEvent().toLowerCase();
CANBEAPPLIED = (theEvent != "onmousedown" && theEvent != ¬
"onmousemove");
if (CANBEAPPLIED) {
[display the Drag Layer UI]
} else{
[display a helpful message that tells the user which events ¬
are appropriate for the Drag Layer action.]
}
dreamweaver.getObjectRefs()
Disponibilité
Dreamweaver 1.0
Description
Recherche, dans les documents indiqués, les occurrences des balises spécifiées
(ou, si aucune balise n'est spécifiée, toutes les balises du document) et fournit des
références aux balises en fonction du navigateur. Cette fonction revient à appeler
la fonction getElementsByTagName(), puis la fonction
dreamweaver.getElementRef() pour chaque balise de la nodelist.
560
Chapitre 26
Arguments
NSorIE, sourceDoc, {tag1}, {tag2},...{tagN}
•
NSorIE
•
sourceDoc doit être "document", "parent", "parent.frames[number]",
"parent.frames['frameName']" ou une URL. document désigne le
document actif contenant la sélection en cours. parent désigne le jeu de cadres
doit être "NS 4.0" ou "IE 4.0". En effet, le DOM et les règles
relatives aux références imbriquées diffèrent dans Navigator 4.0 et Internet
Explorer 4.0. Cet argument permet d'indiquer à quel navigateur doit
correspondre la référence renvoyée.
parent (si le document sélectionné se trouve dans un cadre) et
parent.frames[number] et parent.frames['frameName'] désignent un
document figurant dans un cadre spécifique du jeu de cadres contenant le
document en cours. Si l'argument est une URL relative, celle-ci est relative au
fichier d'extension.
• Le troisième argument et les arguments suivants, s'ils sont définis,
correspondent aux noms de balises (par exemple "IMG", "FORM", "HR").
Valeurs renvoyées
Tableau de chaînes, chacune représentant une référence JavaScript valide à une
occurrence nommée du type de balise demandé dans le document spécifié (par
exemple "document.myLayer.document.myImage") pour le navigateur spécifié.
• Dreamweaver renvoie des références Internet Explorer correctes pour les balises
suivantes : A, AREA, APPLET, EMBED, DIV, SPAN, INPUT, SELECT, OPTION,
TEXTAREA, OBJECT et IMG.
• Dreamweaver renvoie des références Navigator correctes pour les balises
suivantes : A, AREA, APPLET, EMBED, LAYER, ILAYER, SELECT, OPTION,
TEXTAREA, OBJECT et IMG et pour les balises DIV et SPAN à positionnement
absolu. Pour les balises DIV et SPAN dont le positionnement n'est pas absolu,
Dreamweaver renvoie "cannot reference <tag>".
• Dreamweaver ne renvoie pas de références pour les objets non nommés. Si un
objet ne contient pas d'attribut NAME ou ID, Dreamweaver renvoie "unnamed
Si le navigateur ne prend pas en charge une référence par nom,
Dreamweaver fait référence à l'objet à l'aide de son index (par exemple
document.myform.applets[3]).
<tag>".
• Dreamweaver ne renvoie pas de références pour les objets nommés figurant
dans des formulaires ou des calques non nommés (par exemple
document.forms[2].myCheckbox).
Lorsque la même liste d'arguments est transmise à la fonction getObjectTags(),
les deux fonctions renvoient des tableaux de même longueur et de contenus
identiques.
API JavaScript de Dreamweaver
561
Exemple
Selon le contenu du document actif, dreamweaver.getObjectRefs("NS 4.0",
pourrait renvoyer un tableau contenant les éléments
suivants :
"document", "IMG")
•
•
•
"document.bullet"
"document.layers['headerLayer'].document.header"
"document.photoLayer.document.headshot"
dreamweaver.getObjectTags()
Disponibilité
Dreamweaver 1.0
Description
Recherche, dans le document indiqué, les occurrences des balises spécifiées ou, si
aucune balise n'est spécifiée, toutes les balises du document. Cette fonction
revient à appeler la fonction getElementsByTagName(), puis la fonction
outerHTML() pour chaque balise de la nodelist.
Arguments
sourceDoc, {tag1}, {tag2},...{tagN}
•
sourceDoc doit être "document", "parent", "parent.frames[number]",
"parent.frames['frameName']" ou une URL. document désigne le
document actif contenant la sélection en cours. parent désigne le jeu de cadres
parent (si le document sélectionné se trouve dans un cadre) et
parent.frames[number] et parent.frames['frameName'] désignent un
document figurant dans un cadre spécifique du jeu de cadres contenant le
document en cours. Si l'argument est une URL relative, celle-ci est relative au
fichier d'extension.
• Le second argument et les arguments suivants, s'il en existe, correspondent aux
noms de balises (par exemple "IMG", "FORM", "HR").
Valeurs renvoyées
Tableau de chaînes, chacune correspondant au code source HTML d'une
occurrence du type de balise demandé dans le document spécifié.
• Si l'un des arguments de tag est LAYER, la fonction renvoie toutes les balises
LAYER
et ILAYER et toutes les balises DIV et SPAN à positionnement absolu.
• Si l'un des arguments de tag est INPUT, la fonction renvoie tous les éléments du
formulaire. Pour obtenir un type d'élément particulier du formulaire, définissez
INPUT/TYPE, TYPE correspondant à button, text, radio, checkbox,
password, textarea, select, hidden, reset ou submit.
Lorsque la même liste d'arguments est transmise à la fonction getObjectRefs(),
les deux fonctions renvoient des tableaux de même longueur.
562
Chapitre 26
Exemple
Selon le contenu du document actif,
dreamweaver.getObjectTags("document", "IMG")
pourrait renvoyer un
tableau contenant les éléments suivants :
•
'<IMG SRC="/images/dot.gif" WIDTH="10" HEIGHT="10"
NAME="bullet">'
•
•
'<IMG SRC="header.gif" WIDTH="400" HEIGHT="32" NAME="header">'
'<IMG SRC="971208_nj.jpg" WIDTH="119" HEIGHT="119"
NAME="headshot">'
dreamweaver.getSelection()
Disponibilité
Dreamweaver 2.0, déconseillée dans la version 3.0 ; utiliser à la place
dom.getSelection().
Description
Obtient la sélection en cours, exprimée en décalages d'octets dans le code source
HTML du document.
Arguments
Aucun.
Valeurs renvoyées
Tableau contenant deux nombres entiers. Le premier entier correspond au
décalage d'octets au début de la sélection, le second au décalage d'octets à la fin de
la sélection. Si les deux valeurs sont identiques, la sélection en cours correspond à
un point d'insertion.
dreamweaver.libraryPalette.deleteSelectedItem()
Disponibilité
Dreamweaver 3.0, déconseillée dans Dreamweaver 4.0 ; utiliser à la place
dw.assetPalette.setSelectedCategory(“library”), puis appeler
dw.assetPalette.removeFromFavorites.
Description
Supprime l'élément de bibliothèque sélectionné du panneau Bibliothèque et
supprime le fichier LBI qui lui est associé du dossier Library à la racine du site en
cours. Il peut rester des occurrences de l'élément supprimé sur certaines pages du
site.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
API JavaScript de Dreamweaver
563
Activateur
Aucun.
dreamweaver.libraryPalette.getSelectedItem()
Disponibilité
Dreamweaver 3.0, déconseillée dans la version 4.0 ; utiliser à la place
dw.assetPalette.getSelectedItems().
Description
Obtient le chemin de l'élément de bibliothèque sélectionné.
Arguments
Aucun.
Valeurs renvoyées
Chaîne contenant le nom de l'élément de bibliothèque, exprimé sous la forme
d'une URL de type file://.
Activateur
Aucun.
dreamweaver.libraryPalette.newFromDocument()
Disponibilité
Dreamweaver 3.0, déconseillée dans Dreamweaver 4.0 ; utiliser à la place
dw.assetPalette.setSelectedCategory("library"), puis appeler
dw.assetPalette.newAsset().
Description
Crée un nouvel élément de bibliothèque basé sur l'élément sélectionné dans le
document en cours.
Arguments
bReplaceCurrent
est une valeur booléenne indiquant si la sélection doit être
remplacée par une occurrence du nouvel élément de bibliothèque créé.
bReplaceCurrent
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.libraryPalette.recreateFromDocument()
Disponibilité
Dreamweaver 3.0, déconseillée dans Dreamweaver 4.0 ; utiliser à la place
dw.assetPalette.recreateLibraryFromDocument().
564
Chapitre 26
Description
Crée dans le document en cours un fichier LBI correspondant à l'occurrence
sélectionnée d'un élément de bibliothèque. Revient à cliquer sur Créer à nouveau
dans l'inspecteur de propriétés.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.libraryPalette.renameSelectedItem()
Disponibilité
Dreamweaver 3.0, déconseillée dans Dreamweaver 4.0 ; utiliser à la place
dw.assetPalette.setSelectedCategory("library"), puis appeler
dw.assetPalette.renameNickname().
Description
Transforme le nom de l'élément de bibliothèque sélectionné en champ modifiable
et permet à l'utilisateur de renommer la sélection.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.nodeToOffsets()
Disponibilité
Dreamweaver 2.0, déconseillée dans la version 3.0 ; utiliser à la place
dom.nodeToOffsets().
Description
Obtient la position d'un nœud de l'arborescence DOM, exprimée en décalages
d'octets dans le code source HTML du document.
Arguments
node
node doit être une balise, un commentaire ou un texte correspondant à un nœud
de l'arborescence renvoyée par la fonction dreamweaver.getDocumentDOM().
API JavaScript de Dreamweaver
565
Valeurs renvoyées
Tableau contenant deux nombres entiers. Le premier correspond au décalage
d'octets au début de la balise, du texte ou du commentaire, le second au décalage
d'octets à la fin du nœud.
Exemple
L'exemple de code suivant sélectionne le premier objet image du document en
cours :
var theDOM = dreamweaver.getDocumentDOM("document");
var theImg = theDOM.images[0];
var offsets = dom.nodeToOffsets(theImg);
dom.setSelection(offsets[0], offsets[1]);
dreamweaver.templatePalette.getSelectedTemplate()
Disponibilité
Dreamweaver 3.0, déconseillée dans la version 4.0 ; utiliser à la place
dw.assetPalette.getSelectedItems().
Description
Obtient le chemin du modèle sélectionné.
Arguments
Aucun.
Valeurs renvoyées
Chaîne contenant le chemin du modèle, exprimé sous la forme d'une URL de
type file://.
Activateur
Aucun.
dreamweaver.offsetsToNode()
Disponibilité
Dreamweaver 2.0, déconseillée dans la version 3.0 ; utiliser à la place
dom.offsetsToNode().
Description
Obtient l'objet de l'arborescence DOM contenant la série de caractères située
entre le début et la fin définis.
Arguments
offsetBegin, offsetEnd
Les arguments correspondent respectivement au début et à la fin d'une série de
caractères, exprimés en décalages d'octets dans le code source HTML du
document.
566
Chapitre 26
Valeurs renvoyées
Objet balise, texte ou commentaire contenant la série de caractères spécifiée.
Exemple
Le code suivant affiche une alerte si la sélection est une image.
var offsets = dreamweaver.getSelection();
var theSelection = dreamweaver.offsetsToNode(offsets[0], ¬
offsets[1]);
if (theSelection.nodeType == Node.ELEMENT_NODE && ¬
theSelection.tagName == 'IMG'){
alert('The current selection is an image.');
}
dreamweaver.popupCommand()
Disponibilité
Dreamweaver 2.0, déconseillée dans la version 3.0 ; utiliser à la place
dreamweaver.runCommand().
Description
Exécute la commande spécifiée. Pour l'utilisateur, cela revient à choisir la
commande dans un menu ; si une boîte de dialogue est associée à la commande,
elle s'affiche. Cette fonction permet d'appeler une commande à partir d'un autre
fichier d'extension. L'utilisateur ne peut effectuer aucune autre modification tant
qu'il n'a pas fermé la boîte de dialogue.
Remarque : cette fonction ne peut être appelée qu'à partir de la fonction objectTag()
ou d'un script de fichier de commande ou d'inspecteur de propriétés.
Arguments
commandFile
correspond au nom d'un fichier de commande du dossier
Configuration/Commands ("Format Table.htm", par exemple).
commandFile
Valeurs renvoyées
Aucune.
dreamweaver.setSelection()
Disponibilité
Dreamweaver 2.0, déconseillée dans la version 3.0 ; utiliser à la place
dom.setSelection().
Description
Définit la sélection dans le document en cours. Cette fonction ne peut déplacer la
sélection qu'à l'intérieur du document en cours. Elle ne peut pas rendre un autre
document actif.
API JavaScript de Dreamweaver
567
Arguments
offsetBegin, offsetEnd
Les arguments correspondent respectivement au début et à la fin de la nouvelle
sélection, exprimés en décalages d'octets dans le code source HTML du
document. Si les deux valeurs sont identiques, la nouvelle sélection correspond à
un point d'insertion. Si la nouvelle sélection n'est pas une sélection HTML valide,
elle inclut les caractères de la première sélection HTML valide. Par exemple, si
offsetBegin et offsetEnd définissent SRC="myImage.gif" comme sélection
dans <IMG SRC="myImage.gif">, la sélection est étendue pour inclure également
la balise IMG.
Valeurs renvoyées
Aucune.
dreamweaver.templatePalette.deleteSelectedTemplate()
Disponibilité
Dreamweaver 3.0, déconseillée dans Dreamweaver 4.0 ; utiliser à la place
dw.assetPalette.setSelectedCategory("templates"), puis appeler
dw.assetPalette.removeFromFavorites().
Description
Supprime le modèle sélectionné du dossier des modèles.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
Activateur
Aucun.
dreamweaver.templatePalette.renameSelectedTemplate()
Disponibilité
Dreamweaver 3.0, déconseillée dans Dreamweaver 4.0 ; utiliser à la place
dw.assetPalette.setSelectedCategory("templates"), puis appeler
dw.assetPalette.renameNickname().
Description
Transforme le nom du modèle sélectionné en champ modifiable et permet à
l'utilisateur de renommer la sélection.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
568
Chapitre 26
Activateur
Aucun.
Activateurs
Les activateurs sont des fonctions qui déterminent si les éléments de menu doivent
être activés ou pas, selon que Dreamweaver peut effectuer ou non l'opération
correspondante dans le contexte en cours. Les circonstances générales dans
lesquelles chaque fonction renvoie la valeur true sont décrites dans la
spécification de fonction correspondante. Toutefois, ces descriptions ne
prétendent pas être exhaustives et ne couvrent pas nécessairement tous les cas où la
fonction renverrait la valeur false.
dom.canAlign()
Disponibilité
Dreamweaver 3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Aligner à gauche, Aligner à
droite, Aligner en haut ou Aligner en bas.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si deux calques ou zones réactives, ou plus, sont
sélectionnés.
dom.canApplyTemplate()
Disponibilité
Dreamweaver 3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Appliquer à la page. Cette
fonction n'est valide que pour le document actif.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si le document n'est pas un élément de bibliothèque
ni un modèle, et si la sélection n'est pas comprise entre les balises NOFRAMES.
dom.canArrange()
Disponibilité
Dreamweaver 3.0
API JavaScript de Dreamweaver
569
Description
Vérifie si Dreamweaver peut effectuer une opération Mettre au premier plan ou
Mettre en arrière-plan.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si une zone réactive est sélectionnée.
dom.canClipCopyText()
Disponibilité
Dreamweaver 3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Copier comme texte.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si la sélection est une plage (par opposition à un point
d'insertion).
dom.canClipPaste()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Coller.
Arguments
Aucun.
Valeurs renvoyées
Une valeur booléenne indiquant si le Presse-papiers contient un élément pouvant
être collé dans Dreamweaver.
dom.canClipPasteText()
Disponibilité
Dreamweaver 3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Coller comme texte.
Arguments
Aucun.
570
Chapitre 26
Valeurs renvoyées
Une valeur booléenne indiquant si le Presse-papiers contient un élément pouvant
être collé dans Dreamweaver comme texte.
dom.canConvertLayersToTable()
Disponibilité
Dreamweaver 3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Convertir les calques en
tableau.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si tout le contenu de la section BODY du document
figure dans des calques.
dom.canConvertTablesToLayers()
Disponibilité
Dreamweaver 3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Convertir les tableaux en
calques.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si tout le contenu de la section BODY du document
figure dans des tableaux, et si le document n'est pas basé sur un modèle.
dom.canDecreaseColspan()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Réduire l'étendue de
colonnes.
Arguments
Aucun.
API JavaScript de Dreamweaver
571
Valeurs renvoyées
Valeur booléenne indiquant si la cellule en cours possède un attribut COLSPAN et si
la valeur de cet attribut est supérieure ou égale à 2.
dom.canDecreaseRowspan()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Réduire l'étendue de
lignes.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si la cellule en cours possède un attribut ROWSPAN et si
la valeur de cet attribut est supérieure ou égale à 2.
dom.canDeleteTableColumn()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Supprimer la colonne.
Arguments
Aucun.
Valeurs renvoyées
Une valeur booléenne indiquant si le point d'insertion se trouve dans une cellule
ou si une cellule ou une colonne est sélectionnée.
dom.canDeleteTableRow()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Supprimer la ligne.
Arguments
Aucun.
Valeurs renvoyées
Une valeur booléenne indiquant si le point d'insertion se trouve dans une cellule
ou si une cellule ou une ligne est sélectionnée.
572
Chapitre 26
dom.canEditNoFramesContent()
Disponibilité
Dreamweaver 3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Modifier le contenu sans
cadres.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si le document en cours est un jeu de cadres ou s'il
figure dans un jeu de cadres.
dom.canIncreaseColspan()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Augmenter l'étendue de
colonnes.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant s'il existe des cellules à droite de la cellule en cours.
dom.canIncreaseRowspan()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Augmenter l'étendue de
lignes.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant s'il existe des cellules au dessous de la cellule en cours.
dom.canInsertTableColumns()
Disponibilité
Dreamweaver 3.0
API JavaScript de Dreamweaver
573
Description
Détermine si Dreamweaver peut effectuer une opération Insérer une colonne.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si la sélection se trouve dans un tableau. Si la sélection
consiste en un tableau entier, cette fonction renvoie la valeur false.
dom.canInsertTableRows()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Insérer une ligne.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si la sélection se trouve dans un tableau. Si la sélection
consiste en un tableau entier, cette fonction renvoie la valeur false.
dom.canMakeNewEditableRegion()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Nouvelle région
modifiable.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si le document en cours est un fichier de
modèle (.dwt).
dom.canMarkSelectionAsEditable()
Disponibilité
Dreamweaver 3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Marquer la sélection comme
modifiable.
574
Chapitre 26
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant s'il existe une sélection et si le document en cours est
un fichier de modèle (.dwt).
dom.canMergeTableCells()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Fusionner les cellules.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si la sélection est un groupement rectangulaire de
cellules de tableaux.
dom.canPlayPlugin()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Exécuter. Cette fonction
n'est valide que pour le document actif.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si la sélection peut être exécutée avec un plug-in.
dom.canRedo()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Rétablir.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant s'il reste des opérations à rétablir.
API JavaScript de Dreamweaver
575
dom.canRemoveEditableRegion()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Rendre la région non
modifiable.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si le document en cours est un modèle.
dom.canSelectTable()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Sélectionner le tableau.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si la sélection ou le point d'insertion se trouve dans
un tableau.
dom.canSetLinkHref()
Disponibilité
Dreamweaver 3.0
Description
Vérifie si Dreamweaver peut modifier le lien qui entoure la sélection en cours ou
en créer un si nécessaire.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si la sélection est une image, un texte ou un point
d'insertion à l'intérieur d'un lien. Une sélection de texte se définit comme une
sélection pour laquelle l'inspecteur de propriétés de texte s'ouvrirait.
dom.canShowListPropertiesDialog()
Disponibilité
Dreamweaver 3.0
576
Chapitre 26
Description
Détermine si Dreamweaver peut afficher la boîte de dialogue Propriétés de la liste.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si la sélection est comprise entre des balises LI.
Activateur
Aucun.
dom.canSplitFrame()
Disponibilité
Dreamweaver 3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Fractionner le cadre [à
gauche | à droite | vers le haut | vers le bas]
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si la sélection se trouve dans un cadre.
dom.canSplitTableCell()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Fractionner la cellule.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si le point d'insertion se trouve dans un tableau ou si
la sélection est une cellule de tableau.
dom.canStopPlugin()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Arrêter.
Arguments
Aucun.
API JavaScript de Dreamweaver
577
Valeurs renvoyées
Valeur booléenne indiquant si la sélection est actuellement exécutée avec un
plug-in.
dom.canUndo()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Annuler.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant s'il reste des opérations à annuler.
dom.hasTracingImage()
Disponibilité
Dreamweaver 3.0
Description
Détermine si le document possède un tracé d'image.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si le document possède un tracé d'image.
dreamweaver.assetPalette.canEdit()
Disponibilité
Dreamweaver 4.0
Description
Active les options de menu du panneau Actifs pour permettre leur modification.
Arguments
Aucun.
Valeurs renvoyées
Renvoie la valeur true si l'actif peut être modifié et false dans le cas contraire.
Renvoie la valeur false pour les couleurs et les URL de la liste des sites et renvoie
false pour une sélection de plusieurs couleurs et URL dans la liste des favoris.
578
Chapitre 26
dreamweaver.assetPalette.canInsertOrApply()
Disponibilité
Dreamweaver 4.0
Description
Détermine si les options sélectionnées peuvent être insérées ou appliquées.
Renvoie true ou false pour que l'insertion ou l'application des options de menu
puissent être activées ou désactivées.
Arguments
Aucun.
Valeurs renvoyées
Renvoie la valeur false si la page en cours est un modèle et que la catégorie en
cours est « Templates », si aucun document n'est ouvert ou si un élément de
bibliothèque est sélectionné dans le document et que la catégorie en cours est
« Library ». Renvoie la valeur true dans tous les autres cas.
dreamweaver.canClipCopy()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Copier.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant s'il existe un élément sélectionné pouvant être copié
dans le Presse-papiers.
dreamweaver.canClipCut()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Couper.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant s'il existe un élément sélectionné pouvant être coupé
et placé dans le Presse-papiers.
API JavaScript de Dreamweaver
579
dreamweaver.canClipPaste()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Coller.
Arguments
Aucun.
Valeurs renvoyées
Une valeur booléenne indiquant si le contenu du Presse-papiers, le cas échéant,
peut être collé dans le document en cours, dans le volet actif de la fenêtre Site ou,
sur Macintosh, dans un champ modifiable d'un panneau flottant ou d'une boîte
de dialogue.
dreamweaver.canDeleteSelection()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut supprimer la sélection en cours. Celle-ci peut se
trouver, selon le cas, dans la fenêtre de document, dans la fenêtre Site ou dans un
champ modifiable d'un panneau flottant ou d'une boîte de dialogue (Macintosh).
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si la sélection est une plage (par opposition à un point
d'insertion).
dreamweaver.canExportCSS()
Disponibilité
Dreamweaver 3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Exporter les styles CSS.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si des styles de classe sont définis dans la section HEAD
du document.
580
Chapitre 26
dreamweaver.canFindNext()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Rechercher suivant.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si un modèle de recherche a été défini.
dreamweaver.canOpenInFrame()
Disponibilité
Dreamweaver 3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Ouvrir dans un cadre.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si la sélection ou le point d'insertion se trouve dans
un cadre.
dreamweaver.canPlayRecordedCommand()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Reproduire la
commande enregistrée.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant s'il existe un document actif et une commande
mémorisée pouvant être exécutée.
dreamweaver.canRedo()
Disponibilité
Dreamweaver 3.0
API JavaScript de Dreamweaver
581
Description
Vérifie si Dreamweaver peut effectuer une opération Rétablir dans le contexte en
cours.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant s'il existe des opérations pouvant être annulées.
dreamweaver.canRevertDocument()
Disponibilité
Dreamweaver 3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Rétablir (revenir au dernier
état enregistré).
Arguments
documentObject
est l'objet situé à la racine de l'arborescence DOM d'un
document (c'est-à-dire la valeur renvoyée par dreamweaver.getDocumentDOM()).
documentObject
Valeurs renvoyées
Valeur booléenne indiquant si le document est à l'état non enregistré et s'il en
existe une version enregistrée sur un lecteur local.
dreamweaver.canSaveAll()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Enregistrer tout.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si deux documents non enregistrés, ou plus, sont
ouverts.
dreamweaver.canSaveDocument()
Disponibilité
Dreamweaver 3.0
582
Chapitre 26
Description
Vérifie si Dreamweaver peut effectuer une opération Enregistrer sur le document
spécifié.
Arguments
documentObject
est l'objet situé à la racine de l'arborescence DOM d'un
document (c'est-à-dire la valeur renvoyée par dreamweaver.getDocumentDOM()).
documentObject
Valeurs renvoyées
Valeur booléenne indiquant si le document contient des modifications non
enregistrées.
dreamweaver.canSaveDocumentAsTemplate()
Disponibilité
Dreamweaver 3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Enregistrer comme modèle
sur le document spécifié.
Arguments
documentObject
est l'objet situé à la racine de l'arborescence DOM d'un
document (c'est-à-dire la valeur renvoyée par dreamweaver.getDocumentDOM()).
documentObject
Valeurs renvoyées
Valeur booléenne indiquant si le document peut être enregistré comme modèle.
dreamweaver.canSaveFrameset()
Disponibilité
Dreamweaver 3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Enregistrer le jeu de cadres
sur le document spécifié.
Arguments
documentObject
est l'objet situé à la racine de l'arborescence DOM d'un
document (c'est-à-dire la valeur renvoyée par dreamweaver.getDocumentDOM()).
documentObject
Valeurs renvoyées
Valeur booléenne indiquant si le document est un jeu de cadres comportant des
modifications non enregistrées.
API JavaScript de Dreamweaver
583
dreamweaver.canSaveFramesetAs()
Disponibilité
Dreamweaver 3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Enregistrer le jeu de cadres
sous sur le document spécifié.
Arguments
documentObject
est l'objet situé à la racine de l'arborescence DOM d'un
document (c'est-à-dire la valeur renvoyée par dreamweaver.getDocumentDOM()).
documentObject
Valeurs renvoyées
Valeur booléenne indiquant si le document est un jeu de cadres.
dreamweaver.canSelectAll()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Sélectionner tout.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant s'il est possible d'effectuer une opération Sélectionner
tout.
dreamweaver.canShowFindDialog()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Rechercher.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si une fenêtre Site ou une fenêtre de document est
ouverte. Cette fonction renvoie la valeur false lorsque la sélection se trouve dans
la section HEAD.
584
Chapitre 26
dreamweaver.canUndo()
Disponibilité
Dreamweaver 3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Annuler dans le contexte en
cours.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant s'il existe des opérations pouvant être annulées.
dreamweaver.isRecording()
Disponibilité
Dreamweaver 3.0
Description
Indique si Dreamweaver est en train de mémoriser une commande.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si Dreamweaver est en train de mémoriser une
commande.
dreamweaver.htmlStylePalette.canEditSelection()
Disponibilité
Dreamweaver 3.0
Description
Vérifie si Dreamweaver peut modifier, supprimer ou dupliquer la sélection dans le
panneau Styles HTML.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne. Cette fonction renvoie la valeur false si aucun style n'est
sélectionné ou que l'un des styles « indéterminés » est sélectionné.
dreamweaver.timelineInspector.canAddFrame()
Disponibilité
Dreamweaver 3.0
API JavaScript de Dreamweaver
585
Description
Détermine si Dreamweaver peut effectuer une opération Ajouter une image.
Arguments
Aucun.
Valeurs renvoyées
Une valeur booléenne indiquant si le panneau Scénarios comprend des barres
d'animation ou des comportements.
dreamweaver.timelineInspector.canAddKeyFrame()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Ajouter une image-clé.
Arguments
Aucun.
Valeurs renvoyées
Une valeur booléenne indiquant si l'élément sélectionné dans le panneau
Scénarios fait partie d'une barre d'animation.
dreamweaver.timelineInspector.canChangeObject()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Modifier l'objet.
Arguments
Aucun.
Valeurs renvoyées
Une valeur booléenne indiquant si l'élément sélectionné dans le panneau
Scénarios fait partie d'une barre d'animation.
dreamweaver.timelineInspector.canRemoveBehavior()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Supprimer le
comportement.
Arguments
Aucun.
586
Chapitre 26
Valeurs renvoyées
Une valeur booléenne indiquant si la sélection dans le panneau Comportements
est un comportement.
dreamweaver.timelineInspector.canRemoveFrame()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Supprimer l'image.
Arguments
Aucun.
Valeurs renvoyées
Une valeur booléenne indiquant si le panneau Scénarios comprend des barres
d'animation ou des comportements.
dreamweaver.timelineInspector.canRemoveKeyFrame()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Supprimer l'image-clé.
Arguments
Aucun.
Valeurs renvoyées
Une valeur booléenne indiquant si le cadre en cours dans le panneau
Comportements est une image-clé.
dreamweaver.timelineInspector.canRemoveObject()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Supprimer l'objet.
Arguments
Aucun.
Valeurs renvoyées
Une valeur booléenne indiquant si le panneau Scénarios comporte des barres
d'animation.
API JavaScript de Dreamweaver
587
site.browseDocument()
Disponibilité
Dreamweaver 4.0
Description
Ouvre tous les documents sélectionnés dans une fenêtre de navigateur, de la même
façon que la commande Aperçu dans le navigateur.
Arguments
browserName
est le nom du navigateur tel qu'il est défini dans les préférences
Aperçu dans le navigateur. Si cet argument n'est pas défini, le navigateur principal
de l'utilisateur est utilisé par défaut.
browserName
Valeurs renvoyées
Aucune.
site.canAddLink()
Disponibilité
Dreamweaver 3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Lier au [ fichier existant |
nouveau fichier ].
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant que le document sélectionné dans la carte du site est
un fichier HTML.
site.canChangeLink()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Modifier le lien.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant qu'un fichier HTML ou Flash est lié au fichier
sélectionné dans la carte du site.
588
Chapitre 26
site.canCheckIn()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Archiver.
Arguments
siteOrURL
siteOrURL doit être soit le mot-clé "site", indiquant que la fonction doit agir
sur l'élément sélectionné dans la fenêtre Site, soit l'URL d'un fichier.
Valeurs renvoyées
Valeur booléenne indiquant si toutes les conditions suivantes sont vraies :
• un site distant a été défini ;
• dans le cas où une fenêtre de document est active, le fichier a été enregistré sur
un site local ou, dans le cas où la fenêtre Site est active, un ou plusieurs fichiers
ou dossiers sont sélectionnés ;
• l'option archivage/extraction est activée.
site.canCheckOut()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Extraire sur le ou les
fichiers spécifiés.
Arguments
siteOrURL
siteOrURL doit être soit le mot-clé "site", indiquant que la fonction doit agir
sur l'élément sélectionné dans la fenêtre Site, soit l'URL d'un fichier.
Valeurs renvoyées
Valeur booléenne indiquant si toutes les conditions suivantes sont vraies :
• un site distant a été défini ;
• dans le cas où une fenêtre de document est active, le fichier appartient à un site
local et il n'est pas déjà extrait, ou, dans le cas où la fenêtre Site est active,
plusieurs fichiers ou dossiers sont sélectionnés et au moins un des fichiers
sélectionnés n'a pas déjà été extrait ;
• l'option archivage/extraction est activée.
API JavaScript de Dreamweaver
589
site.canConnect()
Disponibilité
Dreamweaver 3.0
Description
Vérifie si Dreamweaver peut se connecter au site distant.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si le site distant en cours est un site FTP.
site.canFindLinkSource()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Rechercher la source du
lien.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant que le lien sélectionné dans la carte du site n'est pas la
page d'accueil.
site.canGet()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Acquérir.
Arguments
siteOrURL
siteOrURL doit être soit le mot-clé "site", indiquant que la fonction doit agir
sur l'élément sélectionné dans la fenêtre Site, soit l'URL d'un fichier.
Valeurs renvoyées
Si l'argument est "site", valeur booléenne indiquant si un ou plusieurs fichiers
ou dossiers sont sélectionnés dans la fenêtre Site et si un site distant a été défini. Si
l'argument est une URL, valeur booléenne indiquant si le document appartient à
un site pour lequel un site distant a été défini.
590
Chapitre 26
site.canLocateInSite()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Retrouver sur le site local
ou Retrouver sur le site distant (en fonction de l'argument)
Arguments
localOrRemote, siteOrURL
•
•
localOrRemote
doit être "local" ou "remote".
siteOrURL doit être soit le mot-clé "site", indiquant que la fonction doit agir
sur l'élément sélectionné dans la fenêtre Site, soit l'URL d'un fichier.
Valeurs renvoyées
L'une des valeurs suivantes :
• Si le premier argument est "local" et le second une URL, une valeur
booléenne indiquant si le document appartient à un site.
• Si le premier argument est "remote" et le second une URL, une valeur
booléenne indiquant si le document appartient à un site pour lequel un site
local a été défini et, si le type de serveur est Local/Réseau, si le lecteur est
monté.
• Si le second argument est "site", valeur booléenne indiquant si les deux volets
contiennent des fichiers de site (pas la carte du site) et si la sélection se trouve
dans le volet opposé à l'argument.
site.canMakeEditable()
Disponibilité
Dreamweaver 3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Désactiver le mode Lecture
seule.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si un ou plusieurs des fichiers sélectionnés sont
verrouillés.
site.canMakeNewFileOrFolder()
Disponibilité
Dreamweaver 3.0
API JavaScript de Dreamweaver
591
Description
Vérifie si Dreamweaver peut effectuer une opération Nouveau fichier ou Nouveau
dossier dans la fenêtre Site.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si des fichiers sont visibles dans le volet sélectionné de
la fenêtre Site.
site.canOpen()
Disponibilité
Dreamweaver 3.0
Description
Vérifie si Dreamweaver peut ouvrir les fichiers ou les dossiers actuellement
sélectionnés dans la fenêtre Site.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si des fichiers ou des dossiers sont sélectionnés dans la
fenêtre Site.
site.canPut()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Placer.
Arguments
siteOrURL
siteOrURL doit être soit le mot-clé "site", indiquant que la fonction doit agir
sur l'élément sélectionné dans la fenêtre Site, soit l'URL d'un fichier.
Valeurs renvoyées
Si l'argument est "site", valeur booléenne indiquant si des fichiers ou des
dossiers sont sélectionnés dans la fenêtre Site et si un site distant a été défini. Si
l'argument est une URL, valeur booléenne indiquant si le document appartient à
un site pour lequel un site distant a été défini.
site.canRecreateCache()
Disponibilité
Dreamweaver 3.0
592
Chapitre 26
Description
Détermine si Dreamweaver peut effectuer une opération Recréer le cache du site.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si l'option Utiliser le cache pour accélérer les mises à
jour des liens est activée pour le site en cours.
site.canRefresh()
Disponibilité
Dreamweaver 3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Actualiser [local | distant].
Arguments
localOrRemote
localOrRemote
doit être "local" ou "remote".
Valeurs renvoyées
si localOrRemote est "local" ; sinon, une valeur booléenne indiquant si
un site distant a été défini.
true
site.canRemoveLink()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Supprimer le lien.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant qu'un fichier HTML ou Flash est lié au fichier
sélectionné dans la carte du site.
site.canSetLayout()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Mise en forme.
Arguments
Aucun.
API JavaScript de Dreamweaver
593
Valeurs renvoyées
Valeur booléenne indiquant si la carte du site est visible.
site.canSelectAllCheckedOutFiles()
Disponibilité
Dreamweaver 4.0
Description
Détermine si la fonction Archiver/Extraire est activée sur le site en cours.
Arguments
Aucun.
Valeurs renvoyées
Une valeur booléenne définie sur true si le site autorise l'archivage et l'extraction
et false dans le cas contraire.
site.canSelectNewer()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Sélectionner [distants |
locaux] plus récents.
Arguments
localOrRemote
localOrRemote
doit être "local" ou "remote".
Valeurs renvoyées
Valeur booléenne indiquant si le document appartient à un site pour lequel un site
distant a été défini.
site.canShowPageTitles()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Afficher les titres de
page.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si la carte du site est visible.
594
Chapitre 26
site.canSynchronize()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Synchroniser.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si un site distant a été défini.
site.canUndoCheckOut()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Annuler extraction.
Arguments
siteOrURL
siteOrURL doit être soit le mot-clé "site", indiquant que la fonction doit agir
sur l'élément sélectionné dans la fenêtre Site, soit l'URL d'un fichier.
Valeurs renvoyées
Valeur booléenne indiquant si le fichier spécifié ou l'un des fichiers sélectionnés,
au moins, a été extrait (par n'importe quel utilisateur).
site.canViewAsRoot()
Disponibilité
Dreamweaver 3.0
Description
Détermine si Dreamweaver peut effectuer une opération Afficher comme racine.
Arguments
Aucun.
Valeurs renvoyées
Valeur booléenne indiquant si le fichier spécifié est un fichier HTML ou Flash.
site.SelectAllCheckedOutFiles()
Disponibilité
Dreamweaver 4.0
API JavaScript de Dreamweaver
595
Description
Sélectionne tous les fichiers extraits sur le site local.
Arguments
Aucun.
Valeurs renvoyées
Aucune.
596
Chapitre 26
INDEX
A
activateurs
utilisation 334
valeur de renvoi 569
addBehavior()
dom.addBehavior() 343
dreamweaver.timelineInspector.addBehavior()
511
addDynamicSource() 190
addFrame() 512
addKeyframe() 512
addLinkToExistingFile() 467
addLinkToNewFile() 468
addObject() 512
addSpacerToColumn() 546
addTimeline() 513
affichage des tableaux 259
alert() 19
align() 434
analyzeServerBehavior() 138
API du module de débogage JavaScript 70
applyBehavior() 96
applyCharacterMarkup() 389
applyCSSStyle() 360
applyFontMarkup() 390
applyFormat() 199
applyFormatDefinition() 200
applyHTMLStyle() 419
applySB() 133
applyServerBehavior() 140
applyTemplate() 437
appName, propriété 23
appVersion, propriété 23
arguments
facultatifs 335
fournis à partir d'un élément de menu 53
receiveArguments() 57
arrange() 434
arrangeFloatingPalettes() 545
arrêt, commandes 29
arrowDown() 426, 487
arrowLeft() 427, 488
arrowRight() 427, 488
arrowUp() 427, 489
assetPalette.addToFavoritesFromDocument()
dreamweaver.assetPalette.addToFavoritesFrom
Document() 336
assetPalette.addToFavoritesFromSiteAssets()
dreamweaver.assetPalette.addToFavoritesFromSi
teAssets() 336
assetPalette.addToFavoritesFromSiteWindow()
dreamweaver.assetPalette.addToFavoritesFromSi
teWindow() 337
assetPalette.canEdit()
dreamweaver.assetPalette.canEdit() 578
assetPalette.canInsertOrApply()
dreamweaver.assetPalette.canInsertOrApply()
579
assetPalette.copyToSite()
dreamweaver.assetPalette.copyToSite() 337
assetPalette.edit()
dreamweaver.assetPalette.edit() 337
assetPalette.getSelectedCategory()
dreamweaver.assetPalette.getSelectedCategory()
338
assetPalette.getSelectedItems()
dreamweaver.assetPalette.getSelectedItems()
338
assetPalette.getSelectedView()
dreamweaver.assetPalette.getSelectedView() 339
assetPalette.insertOrApply()
dreamweaver.assetPalette.insertOrApply() 339
assetPalette.locateInSite()
dreamweaver.assetPalette.locateInSite() 339
assetPalette.newAsset()
dreamweaver.assetPalette.newAsset() 340
assetPalette.newFolder()
dreamweaver.assetPalette.newFolder() 340
assetPalette.recreateLibraryFromDocument()
597
dreamweaver.assetPalette.recreateLibraryFromDo
cument() 341
assetPalette.refreshSiteAssets()
dreamweaver.assetPalette.refreshSiteAssets() 341
assetPalette.removeFromFavorites()
dreamweaver.assetPalette.removeFromFavorites()
341
assetPalette.renameNickname()
dreamweaver.assetPalette.renameNickname() 342
assetPalette.setSelectedCategory()
dreamweaver.assetPalette.setSelectedCategory()
342
assetPalette.setSelectedView()
dreamweaver.assetPalette.setSelectedView() 342
assistance, fonctions dans les comportements 95
attachExternalStylesheet() 361
Attribut
dataSource 154
location 161
name 157
partType 157
selectParticipant 156
serverBehavior 153
serverModel 159
subType 155
attributs traduits
individuels 300
inspection 305
plusieurs 300
recherche dans les balises 26
attributs, propriété 26
B
backspaceKey() 428
balanceBracesTextView() 489
balise XML
group 153
groupParticipant 157
groupParticipants 156
implementation 159
insertText 160
participant 158
quickSearch 159
searchPatterns 164
title 155
balise, objet 26
balises traduites, inspection 313
598
Index
base de données, commande d'arborescence 35
beginReporting() 65
behaviorFunction() 98
blocs de code dépendants 153
blur() 19
body, propriété 25
booléen, objet 19
bouton de couleur, commande 37
bouton, objet 19
bringDWToFront() 207
bringFWToFront() 208
browseDocument() 366, 588
browseForFileURL() 371
browseForFolderURL() 372
C
C, fonctions
appel à partir de JavaScript 331
calque, objet 19
canAcceptBehavior() 99
canAcceptCommand()
dans les commandes de menu 55
dans les commandes régulières 47
canAddFrame() 585
canAddKeyFrame() 586
canAddLinkToFile() 588
canAlign() 569
canApplyServerBehavior() 140
canArrange() 569
canChangeLink() 588
canChangeObject() 586
canCheckIn() 589
canCheckOut() 589
canClipCopy() 579
canClipCopyText() 570
canClipCut() 579
canClipPaste()
dom.canClipPaste() 570
dreamweaver.canClipPaste() 580
canClipPasteText() 570
canConnect() 590
canConvertLayersToTable() 571
canConvertTablesToLayers() 571
canDecreaseColspan() 571
canDecreaseRowspan() 572
canDeleteTableColumn() 572
canDeleteTableRow() 572
canEditNoFramesContent() 573
canEditSelection() 585
canExportCSS() 580
canFindLinkSource() 590
canFindNext() 581
canGet() 590
canIncreaseColspan() 573
canIncreaseRowspan() 573
canInsertTableColumns() 573
canInsertTableRows() 574
canInspectSelection() 77
canLocateInSite() 591
canMakeEditable() 591
canMakeNewEditableRegion() 574
canMakeNewFileOrFolder() 591
canMarkSelectionAsEditable() 574
canMergeTableCells() 575
canOpen() 592
canOpenInFrame() 581
canPlayPlugin() 575
canPlayRecordedCommand() 581
canPut() 592
canRecreateCache() 592
canRedo()
dom.canRedo() 575
dreamweaver.canRedo() 581
canRefresh() 593
canRemoveEditableRegion() 576
canRemoveFrame() 587
canRemoveKeyFrame() 587
canRemoveLink() 593
canRemoveObject() 587
canRevertDocument() 582
canSaveAll() 582
canSaveDocument() 582
canSaveDocumentAsTemplate() 583
canSaveFrameset() 583
canSaveFramesetAs() 584
canSelectAll() 584
canSelectAllCheckedOutFiles() 594
canSelectNewer() 594
canSelectTable() 576
canSetLayout() 593
canSetLinkHref() 576
canShowFindDialog() 584
canShowListPropertiesDialog() 576
canSplitFrame() 577
canSplitTableCell() 577
canStopPlugin() 577
canSynchronize() 595
canUndo()
dom.canUndo() 578
dreamweaver.canUndo() 585
canUndoCheckOut() 595
canViewAsRoot() 595
carte graphique, fonctions 434
case à cocher, objet 19
case d'options, objet 19
chaîne, objet 19
changeLink() 468
changeLinkSitewide() 468
changeObject() 513
checkIn() 469
checkLinks() 469
checkOut() 470
checkSpelling() 408
checkTargetBrowsers()
dom.checkTargetBrowsers() 409
site.checkTargetBrowsers() 470
childNodes, propriété
des objets balise 26
des objets commentaire 28
des objets de document 25
des objets texte 27
clearInterval() 19
clearSteps() 414
clearTemp() 242
clearTimeout() 19
clipCopy()
dom.clipCopy() 353
dreamweaver.clipCopy() 356
clipCopyText() 354
clipCut()
dom.clipCut() 354
dreamweaver.clipCut() 356
clipPaste()
dom.clipPasteText() 354
dreamweaver.clipPaste() 357
clipPasteText() 355
close()
MMNotes.close() 220
window.close() 19
closeDocument() 373
CloseNotesFile() 225
Index 599
codes d'état 241
colonnes 251
acquisition à partir des procédures stockées 256,
257
commandButtons() 65
dans les commandes de menu 55
dans les commandes régulières 48
commande d'arborescence, base de données 35
commande de grille, variables 35
commandes
ajout aux menus 52
API 47
exemple de code 51
expérience de l'utilisateur 46
commandes d'arborescence 30
commandes de menu
API 55
exemple de code 59
expérience de l'utilisateur 53
commentaire, objet 28
comportements
API 96
exemple de code 104
expérience de l'utilisateur 94
fonctions d'assistance 95
fonctions requises 96
insertion de plusieurs fonctions 95
configureSettings() 66
confirm() 19
connexions 253, 254, 255
acquisition de la liste 253
noms 250
constantes de nœud 24
contenu de commande d'arborescence, manipulation
34
contenu verrouillé, inspection 313
convertLayersToTable() 359
convertTablesToLayers() 359
convertTo30() 360
convertWidthsToPercent() 504
convertWidthsToPixels() 504
copy() 234
copyServerBehavior() 141
copySteps() 414
createDocument() 373
createFile()
pour des objets Flash 215
600
Index
createFolder() 234
createLayoutCell() 546
createLayoutTable() 547
createResultsWindow() 454
D
date, objet 19
débogueur JavaScript
fonctionnement du module de débogage
JavaScript 67
debugDocument() 423
decreaseColspan() 505
decreaseRowspan() 505
defineSites() 471
deleteBehavior() 100
deleteDynamicSource() 190
deleteFormat() 200
deleteKey() 428
deleteParticipant() 182
deleteSB() 134
deleteSelectedItem() 563
deleteSelectedStyle()
dreamweaver.cssStylePalette.deleteSelectedStyle()
362
dreamweaver.htmlStylePalette.deleteSelectedStyle(
) 420
dw.htmlStylePalette.deleteSelectedStyle() 420
deleteSelectedTemplate() 568
deleteSelection()
dom.deleteSelection() 390
dreamweaver.deleteSelection() 403
site.deleteSelection() 471
deleteServerBehavior() 141
deleteTableColumn() 505
deleteTableRow() 506
démarrage, commandes 29
Design Notes
API C 225
API JavaScript 220
expérience de l'utilisateur 219
structure des fichiers 219
detachFromLibrary() 437
detachFromTemplate() 438
displayHelp()
dans les actions de comportement 100
dans les comportements de serveur 135
dans les fichiers d'objet 41
dans les fichiers de l'inspecteur de propriétés 78
dans les modèles de serveur 203
dans les panneaux flottants 86
dans les sources de données 191
document, objet
DOM Netscape, propriétés et méthodes 19
DOM niveau 1, propriétés et méthodes 25
documentEdited() 86
documentElement, propriété 25
doDeferredTableUpdate() 506
doesColumnHaveSpacer() 547
doesGroupHaveSpacers() 548
DOM
dans Dreamweaver 19
DOM niveau 1, spécification 19
objet dom 334
dom.addBehavior() 343
dom.addSpacerToColumn() 546
dom.align() 434
dom.applyCharacterMarkup() 389
dom.applyCSSStyle() 360
dom.applyFontMarkup() 390
dom.applyHTMLStyle() 419
dom.applyTemplate() 437
dom.arrange() 434
dom.arrowDown() 426
dom.arrowLeft() 427
dom.arrowRight() 427
dom.arrowUp() 427
dom.backspaceKey() 428
dom.canAlign() 569
dom.canArrange() 569
dom.canClipCopyText() 570
dom.canClipPaste() 570
dom.canClipPasteText() 570
dom.canConvertLayersToTable() 571
dom.canConvertTablesToLayers() 571
dom.canDecreaseColspan() 571
dom.canDecreaseRowspan() 572
dom.canDeleteTableColumn() 572
dom.canDeleteTableRow() 572
dom.canEditNoFramesContent() 573
dom.canIncreaseColspan() 573
dom.canIncreaseRowspan() 573
dom.canInsertTableColumns() 573
dom.canInsertTableRows() 574
dom.canMakeNewEditableRegion() 574
dom.canMarkSelectionAsEditable() 574
dom.canMergeTableCells() 575
dom.canPlayPlugin() 575
dom.canRedo() 575
dom.canRemoveEditableRegion() 576
dom.canSelectTable() 576
dom.canSetLinkHref() 576
dom.canShowListPropertiesDialog() 576
dom.canSplitFrame() 577
dom.canSplitTableCell() 577
dom.canStopPlugin() 577
dom.canUndo() 578
dom.checkSpelling() 408
dom.checkTargetBrowsers() 409
dom.clipCopy 353
dom.clipCopyText() 354
dom.clipCut() 354
dom.clipPaste 354
dom.clipPasteText() 355
dom.convertLayersToTable() 359
dom.convertTablesToLayers() 359
dom.convertTo30() 360
dom.convertWidthsToPercent() 504
dom.convertWidthsToPixels() 504
dom.createLayoutCell() 546
dom.createLayoutTable() 547
dom.decreaseColspan() 505
dom.decreaseRowspan() 505
dom.deleteKey() 428
dom.deleteSelection() 390
dom.deleteTableColumn() 505
dom.deleteTableRow() 506
dom.detachFromLibrary() 437
dom.detachFromTemplate() 438
dom.doDeferredTableUpdate() 506
dom.doesColumnHaveSpacer() 547
dom.doesGroupHaveSpacers() 548
dom.editAttribute() 390
dom.endOfDocument() 429
dom.endOfLine() 429
dom.exitBlock() 391
dom.getAttachedTemplate() 438
dom.getBehavior() 344
dom.getCharSet() 391
dom.getClickedHeaderColumn() 548
dom.getEditableRegionList() 439
dom.getEditableRetionList() 440
Index
601
dom.getEditNoFramesContent() 518
dom.getFocus() 552
dom.getFontMarkup() 391
dom.getFrameNames() 387
dom.getIsLibraryDocument() 439
dom.getIsTemplateDocument() 439
dom.getLinkHref() 392
dom.getLinkTarget() 392
dom.getListTag() 393
dom.getPreventLayerOverlaps() 519
dom.getRulerOrigin() 540
dom.getRulerUnits() 541
dom.getSelectedEditableRegion() 440
dom.getSelectedNode() 457
dom.getSelection() 457
dom.getShowAutoIndent() 519
dom.getShowFrameBorders() 519
dom.getShowGrid() 520
dom.getShowHeadView() 520
dom.getShowHighlightInvalidHTML() 520
dom.getShowImageMaps() 521
dom.getShowInvisibleElements() 521
dom.getShowLayerBorders() 521, 528
dom.getShowLayoutTableTabs() 548
dom.getShowLayoutView() 549
dom.getShowLineNumbers() 522
dom.getShowRulers() 522
dom.getShowSyntaxColoring() 522
dom.getShowTableBorders() 522
dom.getShowToolbar() 523
dom.getShowTracingImage() 523
dom.getShowWordWrap() 523
dom.getSnapToGrid() 524
dom.getTableExtent() 506
dom.getTextAlignment() 393
dom.getTextFormat() 393
dom.getTracingImageOpacity() 541
dom.getView() 552
dom.getWindowTitle() 553
dom.hasCharacterMarkup() 394
dom.hasTracingImage() 578
dom.increaseColspan() 507
dom.increaseRowspan() 507
dom.indent() 394
dom.insertHTML() 395
dom.insertLibraryItem() 440
dom.insertObject() 395
602
Index
dom.insertTableColumns() 507
dom.insertTableRows() 508
dom.insertText() 396
dom.instrumentDocument() 422
dom.isColumnAutostretch() 549
dom.isDesignViewUpdated() 487
dom.isDocumentInFrame() 388
dom.isSelectionValid() 487
dom.loadTracingImage() 541
dom.makeCellWidthsConsistent() 549
dom.makeSizesEqual() 435
dom.markSelectionAsEditable() 441
dom.mergeTableCells() 508
dom.moveSelectionBy() 435
dom.newBlock() 397
dom.newEditableRegion() 441
dom.nextParagraph() 430
dom.nextWord() 430
dom.nodeToOffsets() 458
dom.notifyFlashObjectChanged() 397
dom.offsetsToNode() 459
dom.outdent() 398
dom.pageDown() 431
dom.pageUp() 431
dom.playAllPlugins() 542
dom.playPlugin() 542
dom.previousParagraph() 431
dom.previousWord() 432
dom.reapplyBehaviors() 345
dom.redo() 410
dom.removeAllSpacers() 550
dom.removeAllTableHeights() 509
dom.removeAllTableWidths() 509
dom.removeBehavior() 345
dom.removeCharacterMarkup() 398
dom.removeCSSStyle() 361
dom.removeEditableRegion() 441
dom.removeFontMarkup() 398
dom.removeLink() 399
dom.removeSpacerFromColumn() 550
dom.resizeSelection() 399
dom.resizeSelectionBy() 435
dom.runTranslator() 538
dom.saveAllFrames() 388
dom.selectAll() 460
dom.selectChild() 450
dom.selectParent() 451
dom.selectTable() 460
dom.serverModel.getServerLanguage() 465
dom.serverModel.getServerName() 466
dom.serverModel.getServerVersion() 466
dom.setAttributeWithErrorChecking() 399
dom.setColumnAutostretch() 550
dom.setEditNoFramesContent() 524
dom.setHideAllVisualAids() 524
dom.setLayerTag() 436
dom.setLinkHref() 400
dom.setLinkTarget() 400
dom.setListBoxKind() 401
dom.setListTag() 402
dom.setPreventLayerOverlaps() 525
dom.setRulerOrigin() 542
dom.setRulerUnits() 543
dom.setSelectedNode() 460
dom.setSelection() 461
dom.setShowFrameBorders() 525
dom.setShowGrid() 526
dom.setShowHeadView() 526
dom.setShowHighlightInvalidHTML() 526
dom.setShowImageMaps() 527
dom.setShowInvisibleElements() 527
dom.setShowLayerBorders() 527
dom.setShowLayoutTableTabs() 551
dom.setShowLayoutView() 551
dom.setShowLineNumbers() 528
dom.setShowRulers() 528
dom.setShowTableBorders() 529
dom.setShowToolbar() 529
dom.setShowTracingImage() 529
dom.setShowWordWrap() 530
dom.setSnapToGrid() 530
dom.setTableCellTag() 509
dom.setTableColumns() 510
dom.setTableRows() 510
dom.setTextAlignment() 402
dom.setTextFieldKind() 402
dom.setTracingImageOpacity() 544
dom.setTracingImagePosition() 543
dom.setView() 553
dom.showFontColorDialog() 403
dom.showInsertTableRowsOrColumnsDialog() 510
dom.showListPropertiesDialog() 401
dom.showPagePropertiesDialog() 409
dom.snapTracingImageToSelection() 544
dom.source.arrowDown() 487
dom.source.arrowLeft() 488
dom.source.arrowRight() 488
dom.source.arrowUp() 489
dom.source.balanceBracesTextView() 489
dom.source.endOfDocument() 489
dom.source.endOfLine() 490
dom.source.endPage() 490
dom.source.getCurrentLines() 491
dom.source.getSelection() 491
dom.source.getText() 491
dom.source.indentTextView() 492
dom.source.insert() 492
dom.source.nextWord() 492
dom.source.outdentTextView() 493
dom.source.pageDown() 493
dom.source.pageUp() 493
dom.source.previousWord() 494
dom.source.replaceRange() 494
dom.source.scrollLineDown() 495, 497
dom.source.scrollLineUp() 495
dom.source.scrollPageDown() 496
dom.source.scrollPageUp() 496
dom.source.selectParentTag() 497
dom.source.setCurrentLine() 497
dom.source.startOfDocument() 498
dom.source.startOfLine() 498
dom.source.synchronizeDocument() 499
dom.source.topPage() 498
dom.source.wrapSelection() 499
dom.splitFrame() 389
dom.splitTableCell() 511
dom.startOfDocument() 432
dom.startOfLine() 433
dom.stopAllPlugins() 544
dom.stopPlugin() 545
dom.stripTag() 451
dom.undo() 411
dom.updateCurrentPage() 442
dom.wrapTag() 452
Données dynamiques, boîte de dialogue 187
données, propriété
des objets commentaire 28
des objets httpReply 241
des objets texte 27
_notes, dossier 219
doURLEncoding() 500
Index 603
dreamweaver, objet
méthodes 334
propriétés 23
dreamweaver.arrangeFloatingPalettes() 545
dreamweaver.behaviorInspector, objet 343
dreamweaver.behaviorInspector.getBehaviorAt() 349
dreamweaver.behaviorInspector.getBehaviorCount()
349
dreamweaver.behaviorInspector.getSelectedBehavior()
350
dreamweaver.behaviorInspector.moveBehaviorDown()
350
dreamweaver.behaviorInspector.moveBehaviorUp()
351
dreamweaver.behaviorInspector.setSelectedBehavior()
352
dreamweaver.browseDocument() 366
dreamweaver.browseForFileURL() 371
dreamweaver.browseForFolderURL() 372
dreamweaver.canClipCopy() 579
dreamweaver.canClipCut() 579
dreamweaver.canClipPaste() 580
dreamweaver.canExportCSS() 580
dreamweaver.canFindNext() 581
dreamweaver.canOpenInFrame() 581
dreamweaver.canPlayRecordedCommand() 581
dreamweaver.canRedo() 581
dreamweaver.canRevertDocument() 582
dreamweaver.canSaveAll() 582
dreamweaver.canSaveDocument() 582
dreamweaver.canSaveDocumentAsTemplate() 583
dreamweaver.canSaveFrameset() 583
dreamweaver.canSaveFramesetAs() 584
dreamweaver.canSelectAll() 584
dreamweaver.canShowFindDialog() 584
dreamweaver.canUndo() 585
dreamweaver.clipCopy() 356
dreamweaver.clipCut() 356
dreamweaver.clipPaste() 357
dreamweaver.closeDocument() 373
dreamweaver.createDocument() 373
dreamweaver.createResultsWindow() 454
dreamweaver.cssStylePalette, objet 360
dreamweaver.cssStylePalette.deleteSelectedStyle() 362
dreamweaver.cssStylePalette.duplicateSelectedStyle()
362
dreamweaver.cssStylePalette.editSelectedStyle() 362
604
Index
dreamweaver.cssStylePalette.editStyleSheet() 363
dreamweaver.cssStylePalette.getSelectedStyle() 363
dreamweaver.cssStylePalette.getSelectedTarget() 364
dreamweaver.cssStylePalette.getStyles() 365
dreamweaver.cssStylePalette.newStyle() 365
dreamweaver.dbi.getDataSources() 464
dreamweaver.debugDocument() 423
dreamweaver.deleteSelection() 403
dreamweaver.doURLEncoding() 500
dreamweaver.editCommandList() 358
dreamweaver.editFontList() 403
dreamweaver.editLockedRegions() 538
dreamweaver.exportCSS() 374
dreamweaver.exportEditableRegionsAsXML() 374
dreamweaver.findNext() 381
dreamweaver.getActiveWindow() 553
dreamweaver.getBehaviorElement() 346
dreamweaver.getBehaviorEvent() 560
dreamweaver.getBehaviorTag() 347
dreamweaver.getBrowserList() 367
dreamweaver.getClipboardText() 357
dreamweaver.getConfigurationPath() 448
dreamweaver.getDebugBrowserList() 424
dreamweaver.getDocumentDOM() 335
dreamweaver.getDocumentList() 554
dreamweaver.getDocumentPath() 448
dreamweaver.getElementRef() 409
dreamweaver.getExtensionEditorList() 367
dreamweaver.getExternalTextEditor() 368
dreamweaver.getFloaterVisibility() 554
dreamweaver.getFocus() 555
dreamweaver.getFontList() 404
dreamweaver.getFontStyles() 404
dreamweaver.getHideAllFloaters() 530
dreamweaver.getIsAnyBreakpoints() 425
dreamweaver.getKeyState() 405
dreamweaver.getLiveDataInitTags() 443
dreamweaver.getLiveDataMode() 444
dreamweaver.getMenuNeedsUpdating() 446
dreamweaver.getObjectRefs() 560
dreamweaver.getObjectTags() 562
dreamweaver.getPrimaryBrowser() 368
dreamweaver.getPrimaryExtensionEditor() 369
dreamweaver.getPrimaryView() 556
dreamweaver.getRecentFileList() 375
dreamweaver.getRedoText() 411
dreamweaver.getSecondaryBrowser() 369
dreamweaver.getShowDialogsOnInsert() 406
dreamweaver.getShowStatusBar() 531
dreamweaver.getSiteRoot() 449
dreamweaver.getSnapDistance() 556
dreamweaver.getSystemFontList() 405
dreamweaver.getTokens() 500
dreamweaver.getTranslatorList() 539
dreamweaver.getUndoText() 412
dreamweaver.historyPalette, objet 410
dreamweaver.historyPalette.clearSteps() 414
dreamweaver.historyPalette.copySteps() 414
dreamweaver.historyPalette.getSelectedSteps() 415
dreamweaver.historyPalette.getStepCount() 415
dreamweaver.historyPalette.getStepsAsJavaScript() 416
dreamweaver.historyPalette.getUndoState() 417
dreamweaver.historyPalette.replaySteps() 417
dreamweaver.historyPalette.saveAsCommand() 418
dreamweaver.historyPalette.setSelectedSteps() 418
dreamweaver.historyPalette.setUndoState() 419
dreamweaver.htmlInspector.getShowAutoIndent() 531
dreamweaver.htmlInspector.getShowHighlightInvalid
HTML() 531
dreamweaver.htmlInspector.getShowLineNumbers()
531
dreamweaver.htmlInspector.getShowSyntaxColoring()
532
dreamweaver.htmlInspector.getShowWordWrap() 532
dreamweaver.htmlInspector.setShowAutoIndent() 532
dreamweaver.htmlInspector.setShowHighightInvalidH
TML() 533
dreamweaver.htmlInspector.setShowLineNumbers()
533
dreamweaver.htmlInspector.setShowSyntaxColoring()
533
dreamweaver.htmlInspector.setShowWordWrap() 534
dreamweaver.htmlStylePalette, objet 419
dreamweaver.htmlStylePalette.canEditSelection() 585
dreamweaver.htmlStylePalette.deleteSelectedStyle()
420
dreamweaver.htmlStylePalette.duplicateSelectedStyle()
420
dreamweaver.htmlStylePalette.editSelectedStyle() 420
dreamweaver.htmlStylePalette.getSelectedStyle() 421
dreamweaver.htmlStylePalette.getStyles() 421
dreamweaver.htmlStylePalette.newStyle() 421
dreamweaver.htmlStylePalette.setSelectedStyle() 422
dreamweaver.importXMLIntoTemplate() 375
dreamweaver.isRecording() 585
dreamweaver.isReporting() 453
dreamweaver.latin1ToNative() 501
dreamweaver.libraryPalette, objet 437
dreamweaver.libraryPalette.deleteSelectedItem() 563
dreamweaver.libraryPalette.getSelectedItem() 564
dreamweaver.libraryPalette.newFromDocument() 564
dreamweaver.libraryPalette.recreateFromDocument()
564
dreamweaver.libraryPalette.renameSelectedItem() 565
dreamweaver.liveDataTranslate() 444
dreamweaver.loadSitesFromPrefs() 466
dreamweaver.minimizeRestoreAll() 556
dreamweaver.nativeToLatin1() 501
dreamweaver.newFromTemplate() 375
dreamweaver.nodeToOffsets() 565
dreamweaver.notifyMenuUpdated() 447
dreamweaver.offsetsToNode() 566
dreamweaver.openDocument() 376
dreamweaver.openDocumentFromSite() 377
dreamweaver.openInFrame() 377
dreamweaver.openWithApp() 370
dreamweaver.openWithBrowseDialog() 370
dreamweaver.openWithExternalTextEditor() 370
dreamweaver.openWithImageEditor() 371
dreamweaver.playRecordedCommand() 412
dreamweaver.popupAction() 348
dreamweaver.popupCommand() 567
dreamweaver.popupServerBehavior() 463
dreamweaver.quitApplication() 406
dreamweaver.redo() 412
dreamweaver.relativeToAbsoluteURL() 450
dreamweaver.releaseDocument() 377
dreamweaver.reloadMenus() 447
dreamweaver.removeAllBreakpoints() 425
dreamweaver.replace() 382
dreamweaver.replaceAll() 382
dreamweaver.results.setResultData() 453
dreamweaver.revertDocument() 378
dreamweaver.runCommand() 358
dreamweaver.saveAll() 379
dreamweaver.saveDocument() 379
dreamweaver.saveDocumentAs() 380
dreamweaver.saveDocumentAsTemplate() 380
dreamweaver.saveFrameset() 380
dreamweaver.saveFramesetAs() 381
dreamweaver.saveSitesToPrefs() 467
Index 605
dreamweaver.selectAll() 461
dreamweaver.serverBehaviorInspector.findAllServerBeh
aviors() 462
dreamweaver.serverBehaviorInspector.getServerBehavio
rs() 463
dreamweaver.setActiveWindow() 556
dreamweaver.setFloaterVisibility() 557
dreamweaver.setHideAllFloaters() 534
dreamweaver.setLiveDataError() 445
dreamweaver.setLiveDataMode() 445
dreamweaver.setPrimaryView() 558
dreamweaver.setSelection() 567
dreamweaver.setShowStatusBar() 535
dreamweaver.setSnapDistance() 558
dreamweaver.setUpComplexFind() 383
dreamweaver.setUpComplexFindReplace() 383
dreamweaver.setUpFind() 384
dreamweaver.setUpFindReplace() 385
dreamweaver.showAboutBox() 406
dreamweaver.showDynamicData() 407
dreamweaver.showFindDialog() 386
dreamweaver.showFindReplaceDialog() 387
dreamweaver.showGridSettingsDialog() 545
dreamweaver.showLiveDataDialog() 446
dreamweaver.showPreferencesDialog() 408
dreamweaver.showProperties() 558
dreamweaver.showQuickTagEditor() 452
dreamweaver.showReportsDialog() 453
dreamweaver.startDebugger() 425
dreamweaver.startRecording() 413
dreamweaver.stopRecording() 413
dreamweaver.stylePalette.attachExternalStylesheet()
361
dreamweaver.templatePalette, objet 437
dreamweaver.templatePalette.deleteSelectedTemplate()
568
dreamweaver.templatePalette.getSelectedTemplate()
566
dreamweaver.templatePalette.newBlankTemplate() 443
dreamweaver.templatePalette.renameSelectedTemplate(
) 568
dreamweaver.timelineInspector, objet 511
dreamweaver.timelineInspector.addBehavior() 511
dreamweaver.timelineInspector.addFrame() 512
dreamweaver.timelineInspector.addKeyframe() 512
dreamweaver.timelineInspector.addObject() 512
dreamweaver.timelineInspector.addTimeline() 513
606
Index
dreamweaver.timelineInspector.canAddFrame() 585
dreamweaver.timelineInspector.canAddKeyFrame()
586
dreamweaver.timelineInspector.canChangeObject()
586
dreamweaver.timelineInspector.canRemoveFrame()
587
dreamweaver.timelineInspector.canRemoveKeyFrame()
587
dreamweaver.timelineInspector.canRemoveObject()
587
dreamweaver.timelineInspector.changeObject() 513
dreamweaver.timelineInspector.getAutoplay() 513
dreamweaver.timelineInspector.getCurrentFrame() 514
dreamweaver.timelineInspector.getLoop() 514
dreamweaver.timelineInspector.recordPathOfLayer()
514
dreamweaver.timelineInspector.removeBehavior() 515
dreamweaver.timelineInspector.removeFrame() 515
dreamweaver.timelineInspector.removeKeyframe() 515
dreamweaver.timelineInspector.removeObject() 516
dreamweaver.timelineInspector.removeTimeline() 516
dreamweaver.timelineInspector.renameTimeline() 516
dreamweaver.timelineInspector.setAutoplay() 517
dreamweaver.timelineInspector.setCurrentFrame() 517
dreamweaver.timelineInspector.setLoop() 517
dreamweaver.toggleFloater() 559
dreamweaver.undo() 414
dreamweaver.updatePages() 442
dreamweaver.updateReference() 559
dreamweaver.useTranslatedSource() 539
duplicateSelectedStyle()
dreamweaver.cssStylePalette.duplicateSelectedStyl
e() 362
dreamweaver.htmlStylePalette.duplicateSelectedSt
yle() 420
dw, objet 334
dw.arrangeFloatingPalettes() 545
dw.assetPalette.addToFavoritesFromDocument() 336
dw.assetPalette.addToFavoritesFromSiteAssets() 336
dw.assetPalette.addToFavoritesFromSiteWindow() 337
dw.assetPalette.canEdit() 578
dw.assetPalette.canInsertOrApply() 579
dw.assetPalette.copyToSite() 337
dw.assetPalette.edit() 337
dw.assetPalette.getSelectedCategory() 338
dw.assetPalette.getSelectedItems() 338
dw.assetPalette.getSelectedView() 339
dw.assetPalette.insertOrApply() 339
dw.assetPalette.locateInSite() 339
dw.assetPalette.newAsset() 340
dw.assetPalette.newFolder() 340
dw.assetPaletterecreateLibraryFromDocument() 341
dw.assetPalette.refreshSiteAssets() 341
dw.assetPalette.removeFromFavorites() 341
dw.assetPalette.renameNickname() 342
dw.assetPalette.setSelectedCategory() 342
dw.assetPalette.setSelectedView() 342
dw.behaviorInspector.getBehaviorAt() 349
dw.behaviorInspector.getBehaviorCount() 349
dw.behaviorInspector.getSelectedBehavior() 350
dw.behaviorInspector.moveBehaviorDown() 350
dw.behaviorInspector.moveBehaviorUp() 351
dw.behaviorInspector.setSelectedBehavior() 352
dw.browseDocument() 366
dw.browseForFileURL() 371
dw.browseForFolderURL() 372
dw.canClipCopy() 579
dw.canClipCut() 579
dw.canClipPaste() 580
dw.canExportCSS() 580
dw.canFindNext() 581
dw.canOpenInFrame() 581
dw.canPlayRecordedCommand() 581
dw.canRedo() 581
dw.canRevertDocument() 582
dw.canSaveAll() 582
dw.canSaveDocument() 582
dw.canSaveDocumentAsTemplate() 583
dw.canSaveFrameset() 583
dw.canSaveFramesetAs() 584
dw.canSelectAll() 584
dw.canShowFindDialog() 584
dw.canUndo() 585
dw.clipCopy() 356
dw.clipCut() 356
dw.clipPaste() 357
dw.closeDocument() 373
dw.createDocument() 373
dw.createResultsWindow() 454
dw.cssStylePalette.deleteSelectedStyle() 362
dw.cssStylePalette.duplicateSelectedStyle() 362
dw.cssStylePalette.editSelectedStyle() 362
dw.cssStylePalette.editStyleSheet() 363
dw.cssStylePalette.getSelectedStyle() 363
dw.cssStylePalette.getSelectedTarget() 364
dw.cssStylePalette.getStyles() 365
dw.cssStylePalette.newStyle() 365
dw.dbi.getDataSources() 464
dw.debugDocument() 423
dw.deleteSelection() 403
dw.doURLEncoding() 500
dw.editCommandList() 358
dw.editFontList() 403
dw.editLockedRegions() 538
dw.exportCSS() 374
dw.exportEditableRegionsAsXML() 374
DWfile, DLL
API 234
vérification 233
DWfile.copy() 234
DWfile.createFolder() 234
DWfile.exists() 235
DWfile.getAttributes() 235
DWfile.getCreationDate() 237
DWfile.getModificationDate() 236
DWfile.listFolder() 238
DWfile.read() 239
DWfile.remove() 239
DWfile.write() 239
dw.findNext() 381
dw.getActiveWindow() 553
dw.getBehaviorElement() 346
dw.getBehaviorTag() 347
dw.getBrowserList() 367
dw.getConfigurationPath() 448
dw.getDebugBrowserList() 424
dw.getDocumentDOM() 335
dw.getDocumentList() 554
dw.getDocumentPath() 448
dw.getElementRef() 409
dw.getExtensionEditorList() 367
dw.getExternalTextEditor() 368
dw.getFloaterVisibility() 554
dw.getFocus() 555
dw.getFontList() 404
dw.getFontStyles() 404
dw.getHideAllFloaters() 530
dw.getIsAnyBreakpoints() 425
dw.getKeyState() 405
dw.getLiveDataInitTags() 443
Index
607
dw.getLiveDataMode() 444
dw.getMenuNeedsUpdating() 446
dw.getParticipants() 143
dw.getPrimaryBrowser() 368
dw.getPrimaryExtensionEditor() 369
dw.getPrimaryView() 556
dw.getRecentFileList() 375
dw.getRedoText() 411
dw.getSecondaryBrowser() 369
dw.getShowDialogsOnInsert() 406
dw.getShowStatusBar() 531
dw.getSiteRoot() 449
dw.getSnapDistance() 556
dw.getSystemFontList() 405
dw.getTokens() 500
dw.getTranslatorList() 539
dw.getUndoText() 412
dw.historyPalette.clearSteps() 414
dw.historyPalette.copySteps() 414
dw.historyPalette.getSelectedSteps() 415
dw.historyPalette.getStepCount() 415
dw.historyPalette.getStepsAsJavaScript() 416
dw.historyPalette.getUndoState() 417
dw.historyPalette.replaySteps() 417
dw.historyPalette.saveAsCommand() 418
dw.historyPalette.setSelectedSteps() 418
dw.historyPalette.setUndoState() 419
dw.htmlInspector.getShowAutoIndent() 531
dw.htmlInspector.getShowHighlightInvalidHTML()
531
dw.htmlInspector.getShowLineNumbers() 531
dw.htmlInspector.getShowSyntaxColoring() 532
dw.htmlInspector.getShowWordWrap() 532
dw.htmlInspector.setShowAutoIndent() 532
dw.htmlInspector.setShowHighlightInvalidHTML()
533
dw.htmlInspector.setShowLineNumbers() 533
dw.htmlInspector.setShowSyntaxColoring() 533
dw.htmlInspector.setShowWordWrap() 534
dw.htmlStylePalette.canEditSelection() 585
dw.htmlStylePalette.deleteSelectedStyle() 420
dw.htmlStylePalette.duplicateSelectedStyle() 420
dw.htmlStylePalette.editSelectedStyle() 420
dw.htmlStylePalette.getSelectedStyle() 421
dw.htmlStylePalette.getStyles() 421
dw.htmlStylePalette.newStyle() 421
dw.htmlStylePalette.setSelectedStyle() 422
608
Index
dw.importXMLIntoTemplate() 375
dw.isRecording() 585
dw.isReporting() 453
dw.latin1ToNative() 501
dw.libraryPalette.deleteSelectedItem() 563
dw.libraryPalette.getSelectedItem() 564
dw.libraryPalette.newFromDocument() 564
dw.libraryPalette.recreateFromDocument() 564
dw.libraryPalette.renameSelectedItem() 565
dw.liveDataTranslate() 444
dw.loadSitesFromPrefs() 466
dw.minimizeRestoreAll() 556
dw.nativeToLatin1() 501
dw.newFromTemplate() 375
dw.notifyMenuUpdated() 447
dw.openDocument() 376
dw.openDocumentFromSite() 377
dw.openInFrame() 377
dw.openWithApp() 370
dw.openWithBrowseDialog() 370
dw.openWithExternalTextEditor() 370
dw.openWithImageEditor() 371
dw.playRecordedCommand() 412
dw.popupAction() 348
dw.popupServerBehavior() 463
dw.quitApplication() 406
dw.redo() 412
dw.referencePalette.getFontSize() 343
dw.referencePalette.setFontSize() 343
dw.relativeToAbsoluteURL() 450
dw.releaseDocument() 377
dw.reloadMenus() 447
dw.removeAllBreakpoints() 425
dw.replace() 382
dw.replaceAll() 382
dw.results.setResultData() 453
dw.revertDocument() 378
dw.runCommand() 358
dw.saveAll() 379
dw.saveDocument() 379
dw.saveDocumentAs() 380
dw.saveDocumentAsTemplate() 380
dw.saveFrameset() 380
dw.saveFramesetAs() 381
dw.saveSitesToPrefs() 467
dw.selectAll() 461
dw.serverBehaviorInspector.findAllServerBehaviors()
462
dw.serverBehaviorInspector.getServerBehaviors() 463
dw.setActiveWindow() 556
dw.setFloaterVisibility() 557
dw.setHideAllFloaters() 534
dw.setLiveDataError() 445
dw.setLiveDataMode() 445
dw.setPrimaryView() 558
dw.setShowStatusBar() 535
dw.setSnapDistance() 558
dw.setUpComplexFind() 383
dw.setUpComplexFindReplace() 383
dw.setUpFind() 384
dw.setUpFindReplace() 385
dw.showAboutBox() 406
dw.showDynamicData() 407
dw.showFindDialog() 386
dw.showFindReplaceDialog() 387
dw.showGridSettingsDialog() 545
dw.showLiveDataDialog() 446
dw.showPreferencesDialog() 408
dw.showProperties() 558
dw.showQuickTagEditor() 452
dw.showReportsDialog() 453
dw.startDebugger() 425
dw.startRecording() 413
dw.stopRecording() 413
dw.stylePalette.attachExternalStylesheet() 361
dw.templatePalette.deleteSelectedTemplate() 568
dw.templatePalette.getSelectedTemplate() 566
dw.templatePalette.newBlankTemplate() 443
dw.templatePalette.renameSelectedTemplate() 568
dw.timelineInspector.addBehavior() 511
dw.timelineInspector.addFrame() 512
dw.timelineInspector.addKeyframe() 512
dw.timelineInspector.addObject() 512
dw.timelineInspector.addTimeline() 513
dw.timelineInspector.canAddFrame() 585
dw.timelineInspector.canAddKeyFrame() 586
dw.timelineInspector.canChangeObject() 586
dw.timelineInspector.canRemoveFrame() 587
dw.timelineInspector.canRemoveKeyFrame() 587
dw.timelineInspector.canRemoveObject() 587
dw.timelineInspector.changeObject() 513
dw.timelineInspector.getAutoplay() 513
dw.timelineInspector.getCurrentFrame() 514
dw.timelineInspector.getLoop() 514
dw.timelineInspector.recordPathOfLayer() 514
dw.timelineInspector.removeBehavior() 515
dw.timelineInspector.removeFrame() 515
dw.timelineInspector.removeKeyframe() 515
dw.timelineInspector.removeObject() 516
dw.timelineInspector.removeTimeline() 516
dw.timelineInspector.renameTimeline() 516
dw.timelineInspector.setAutoplay() 517
dw.timelineInspector.setCurrentFrame() 517
dw.timelineInspector.setLoop() 517
dw.toggleFloater() 559
dw.undo() 414
dw.updatePages() 442
dw.updateReference() 559
dw.useTranslatedSource() 539
E
e/s de fichier 234
editAttribute() 390
editColumns()
site.editColumns() 471
editCommandList() 358
editFontList() 403
editLockedRegions() 538
editSelectedStyle()
dreamweaver.cssStylePalette.editSelectedStyle()
362
dreamweaver.htmlStylePalette.editSelectedStyle()
420
editStyleSheet() 363
emplacement-menu 137
endOfDocument() 429, 489, 490
endOfLine() 429
endPage() 490
endReporting() 65
envoyer, objet 19
escape() 19
événements
dans les fichiers d'extension 19
execJsInFireworks() 208
exists() 235
exitBlock() 391
exportCSS() 374
exportEditableRegionsAsXML() 374
expressions régulières 150
extensibilité de niveau C
Index 609
dans les boîtes de dialogue de comportement 94
dans les fichiers d'extension 28
renvoi d'une valeur 95
dans les traducteurs 293
F
fenêtre, objet 19
fichier (champ), objet 19
fichiers Groupe 148
fichiers JavaScript externes 28
fichiers Participant 148
fichiers sur disque
copie 234
création (fichiers HTML) 373
création (fichiers non HTML) 239
écriture 239
lecture 239
suppression 239
FilePathToLocalURL() 225
filePathToLocalURL() 220
findAllServerBehaviors() 462
findDynamicSources() 192
findLinkSource() 472
findNext() 381
findSBs() 132
findServerBehaviors() 142
Fireworks
exemple d'intégration 213
Flash, objets
création 215
focus() 19
fonction, objet 19
fonctions C
dans mm_jsapi.h 322
formatDynamicDataRef() 201
formulaire, objet 19
FWLaunch.bringDWToFront() 207
FWLaunch.bringFWToFront() 208
FWLaunch.execJsInFireworks() 208
FWLaunch.getJsResponse() 209
FWLaunch.mayLaunchFireworks() 210
FWLaunch.optimizeInFireworks() 211
FWLaunch.validateFireworks() 212
G
generateDynamicSourceBindings() 193
gestion des versions 23
gestionnaire de traduction 183
gestionnaires d'événements
610
Index
get()
MMNotes.get() 221
site.get() 472
getActiveWindow() 553
getAttachedTemplate() 438
getAttribute() 26
getAttributes() 235
getAutoplay() 513
getBehavior() 344
getBehaviorAt() 349
getBehaviorCount() 349
getBehaviorElement() 346
getBehaviorEvent() 560
getBehaviorTag() 347
getBodyInstrument() 71
getBrowserList() 367
getCharSet() 391
getCheckOutUser() 473
getCheckOutUserForFile() 474
getClickedHeaderColumn() 548
getClipboardText()
dreamweaver.getClipboardText() 357
getColdFusionDsnList() 251
getColumnAndTypeList() 251
getColumnList() 251
getColumnsOfTable() 252
getConfigurationPath() 448
getConnectionList() 253
getConnectionName() 253
getConnectionState() 474
getConnectionString() 254
getCurrentFrame() 514
getCurrentLines() 491
getCurrentSite() 474
getDataSources() 464
getDate() 237
getDebugBrowserList() 424
getDocumentDOM()
dreamweaver.getDocumentDOM() 335
importance 335
getDocumentList() 554
getDocumentPath() 448
getDriverName() 254
getDynamicContent() 56
getEditableRegionList() 439
getEditableRetionList() 440
getEditNoFramesContent() 518
getElementRef() 409
getElementsByTagName()
pour les objets balise 26
pour les objets de document 25
getExtensionEditorList() 367
getExternalTextEditor() 368
getFile() 242
getFileCallback() 244
getFileExtensions() 204
getFloaterVisibility() 554
getFocus()
dom.getFocus() 552
dreamweaver.getFocus() 555
site.getFocus() 475
getFontList() 404
getFontMarkup() 391
getFontStyles() 404
getFrameNames() 387
getFunctionEndInstrument() 70
getFunctionStartInstrument() 71
getGroup() 180
getHeadInstrument() 71
getHideAllFloaters() 530
getIncludedFileList() 71
getIsAnyBreakpoints() 425
getIsLibraryDocument() 439
getIsTemplateDocument() 439
getJsResponse() 209
getKeyCount() 221
getKeys() 221
getKeyState() 405
getLinkHref() 392
getLinkTarget() 392
getLinkVisibility() 475
getListTag() 393
getLiveDataInitTags() 443
getLiveDataMode() 444
getLoop() 514
getMenuNeedsUpdating() 446
getModificationDate() 236
getNaturalSize()
pour des objets Flash 217
GetNote() 226
GetNoteLength() 227
GetNotesKeyCount() 227
GetNotesKeys() 227
getObjectRefs() 560
getObjectTags() 562
getObjectType()
pour des objets Flash 217
getOnUnloadInstrument() 72
getPassword() 255
getPreventLayerOverlaps() 519
getPrimaryBrowser() 368
getPrimaryExtensionEditor() 369
getPrimaryView() 556
getRecentFileList() 375
getRedoText() 411
getRulerOrigin() 540
getRulerUnits() 541
getRuntimeConnectionType() 255
getSecondaryBrowser() 369
getSelectedBehavior() 350
getSelectedEditableRegion() 440
getSelectedItem() 564
getSelectedNode() 457
getSelectedStyle()
dreamweaver.cssStylePalette.getSelectedStyle()
363
dreamweaver.htmlStylePalette.getSelectedStyle()
421
getSelectedTarget() 364
getSelectedTemplate() 566
getSelection() 491
dom.getSelection() 457
dreamweaver.getSelection() 563
site.getSelection() 476
getServerBehaviors() 463
getServerExtension() 205
getServerLanguage() 465
getServerLanguages() 204
getServerName() 466
getServerVersion() 466
getShowAutoIndent() 519
getShowDependents() 535
getShowDialogsOnInsert() 406
getShowFrameBorders() 519
getShowGrid() 520
getShowHeadView() 520
getShowHiddenFiles() 535
getShowHighlightInvalidHTML() 520
Index
611
getShowImageMaps() 521
getShowInvisibleElements() 521
getShowLayerBorders() 521, 528
getShowLayoutTableTabs() 548
getShowLayoutView() 549
getShowLineNumbers() 522
getShowPageTitles() 536
getShowRulers() 522
getShowStatusBar() 531
getShowSyntaxColoring() 522
getShowTableBorders() 522
getShowToolbar() 523
getShowToolTips() 536
getShowTracingImage() 523
getShowWordWrap() 523
getSiteRoot() 449
GetSiteRootForFile() 228
getSiteRootForFile() 222
getSites() 476
getSnapDistance() 556
getSnapToGrid() 524
getSPColumnList() 256
getSPColumnListNamedParams() 257
getSPParamsAsString() 258
getStepCount() 415
getStepInstrument() 72
getStepsAsJavaScript() 416
getStyles()
dreamweaver.cssStylePalette.getStyles() 365
dreamweaver.htmlStylePalette.getStyles() 421
getSystemFontList() 405
getTableExtent() 506
getTables() 258
getText() 245, 491
getTextAlignment() 393
getTextCallback() 245
getTextFormat() 393
getTokens() 500
getTracingImageOpacity() 541
getTranslatedAttribute() 26
getTranslatorInfo() 295
getTranslatorList() 539
getUndoState() 417
getUndoText() 412
getUserName() 259
getVersionArray() 205
GetVersionName() 229
612
Index
getVersionName() 222
getVersionNum() 223, 229
getView() 552
getViews() 259
getWindowTitle() 553
grille de variables, commandes 35, 36
H
hasCharacterMarkup() 394
hasChildNodes()
pour les objets balise 26
pour les objets commentaire 28
pour les objets de document 25
pour les objets texte 27
hasTracingImage() 578
hasTranslatedAttributes() 26
htmlInspector.getShowAutoIndent() 531
htmlInspector.getShowHighlightInvalidHTML() 531
htmlInspector.getShowLineNumbers() 531
htmlInspector.getShowSyntaxColoring() 532
htmlInspector.getShowWordWrap() 532
htmlInspector.setShowAutoIndent() 532
htmlInspector.setShowHighlightInvalidHTML() 533
htmlInspector.setShowLineNumbers() 533
htmlInspector.setShowSyntaxColoring() 533
htmlInspector.setShowWordWrap() 534
I
identifyBehaviorArguments() 101
image (champ), objet 19
image, objet 19
importXMLIntoTemplate() 375
increaseColspan() 507
increaseRowspan() 507
indent() 394
indentTextView() 492
InfoPrefs 228
informations sur la langue 23
initialPosition() 87
initialTabs() 88
innerHTML, propriété 26
insert() 492
insertHTML() 395
insertLibraryItem() 440
insertObject() 395
insertTableColumns() 507
insertTableRows() 508
insertText() 396
inspectBehavior() 103
inspectDynamicDataRef() 194
inspecteur de liaisons de données 187
inspecteurs de propriétés
API 77
attributs traduits 305
éclair au-dessus de l'icône 305
exemple de code 80
expérience de l'utilisateur 76
fonctions requises 77
mot-clé *LOCKED* 313
pour le contenu verrouillé 313
inspectFormatDefinition() 202
inspectSelection() 78
inspectServerBehavior() 142
instructions SQL
acquisition de colonnes à partir de 251
affichage des résultats 260
instrumentDocument() 422
invertSelection() 476
isColumnAutostretch() 549
isCommandChecked() 56
isDesignViewUpdated() 487
isDocumentInFrame() 388
isDomRequired() 41, 49
isRecording() 585
isReporting() 453
isSelectionValid() 487
item() 19
J
JavaBeans 265
JavaScript, commandes 29
JavaScript, commandes personnalisées 29
JS_BooleanToValue() 327
JS_DefineFunction() 324
JS_DoubleToValue() 326
JS_ExecuteScript() 330
JS_GetArrayLength() 328
JS_GetElement() 329
JS_IntegerToValue() 327
JS_NewArrayObject() 328
JS_ObjectToValue() 327
JS_ObjectType() 328
JS_ReportError() 330
JS_SetElement() 329
JS_StringToValue() 326
JS_ValueToBoolean() 325
JS_ValueToDouble() 325
JS_ValueToInteger() 324
JS_ValueToObject() 326
JS_ValueToString() 324
JSBool 323
JSContext 322
JSNative 323
JSObject 323
jsval 323
L
langage-script 137, 204
latin1ToNative() 501
listFolder() 238
liveDataTranslate() 444
liveDataTranslateMarkup function() 298
loadSitesFromPrefs() 466
loadTracingImage() 541
LocalURLToFilePath() 229
localURLToFilePath() 223
locateInSite() 472
M
makeCellWidthsConsistent() 549
makeEditable() 477
makeNewDreamweaverFile() 477
makeNewFolder() 477
makeSizesEqual() 435
manipulation du contenu de commande
d'arborescence 34
markSelectionAsEditable() 441
masqué (champ), objet 19
math, objet 19
mayLaunchFireworks() 210
menus dynamiques
exemple de code 61
expérience de l'utilisateur 53
mergeTableCells() 508
minimizeRestoreAll() 556
MM
TREECOLUMN 31
TREECONTROL 31
TREENODE 31
mm_jsapi.h
Index
613
exemple de fichier 331
inclusion 322
MM_returnValue 95
mmcolorbutton 37
MMDB.getColumnAndTypeList() 251
MMDB.getColumnList() 251
MMDB.getColumnsOfTable() 252
MMDB.getConnectionList() 253
MMDB.getConnectionName() 253
MMDB.getConnectionString() 254
MMDB.getDriverName() 254
MMDB.getPassword() 255
MMDB.getRuntimeConnectionType() 255
MMDB.getSPColumnList() 256
MMDB.getSPColumnListNamedParams() 257
MMDB.getSPParamsAsString() 258
MMDB.getTables() 258
MMDB.getUserName() 259
MMDB.getViews() 259
MMDB.showConnectionMgrDialog() 260
MMDB.showResultset() 260
MMDB.showSPResultset() 261
MMDB.showSPResultsetNamedParams() 262
MMHttp.clearTemp() 242
MMHttp.getFile() 242
MMHttp.getFileCallback() 244
MMHttp.getText() 245
MMHttp.getTextCallback() 245
MMHttp.postText() 246
MMHttp.postTextCallback() 247
MMInfo.h 225
MMJB*(), fonctions 265
MMJB.getClasses() 267
MMJB.getClassesFromPackage() 267
MMJB.getErrorMessage() 267
MMJB.getEvents() 266
MMJB.getIndexedProperties() 266
MMJB.getMethods() 266
MMJB.getProperties() 265
MMNotes, objet 220
MMNotes.close() 220
MMNotes.filePathToLocalURL() 220
MMNotes.get() 221
MMNotes.getKeyCount() 221
MMNotes.getKeys() 221
MMNotes.getSiteRootForFile() 222
MMNotes.getVersionName() 222
MMNotes.getVersionNum() 223
614
Index
MMNotes.localURLToFilePath() 223
MMNotes.open() 223
MMNotes.remove() 224
MMNotes.set() 224
mmparameterlist 36
modèle d'objet de document
dans Dreamweaver 19
spécification DOM niveau 1 19
Modifier la liste de formats, menu contextuel Plus (+)
197
mot de passe (champ), objet 19
*LOCKED*, mot-clé 313
mots de passe 255
moveBehaviorDown() 350
moveBehaviorUp() 351
moveSelectionBy() 435
N
nativeToLatin1() 501
navigateur, objet de 19
newBlankTemplate() 443
newBlock() 397
newEditableRegion() 441
newFromDocument() 564
newFromTemplate() 375
newHomePage() 478
newSite() 478
newStyle()
dreamweaver.cssStylePalette.newStyle() 365
dreamweaver.htmlStylePalette.newStyle() 421
nextParagraph() 430
nextWord() 430, 492
Node.COMMENT_NODE 24
Node.DOCUMENT_NODE 24
Node.ELEMENT_NODE 24
nodelist objet 19
Node.TEXT_NODE 24
nodeToOffsets()
dom.nodeToOffsets() 458
dreamweaver.nodeToOffsets() 565
nodeType, propriété
des objets balise 26
des objets commentaire 28
des objets de document 25
des objets texte 27
nœud d'élément 26
nœud de document 25
nœud de texte 27
nœuds 24
nombre, objet 19
noms d'utilisateur 259
notifyFlashObjectChanged() 397
notifyMenuUpdated() 447
O
objectExistsWithName() 182
objectTag() 42
objet, objet 19
objets
ajout au menu Insertion 43
ajout au panneau Objets 43
API 40
expérience de l'utilisateur 40
offsetsToNode()
dom.offsetsToNode() 459
dreamweaver.offsetsToNode() 566
onBlur 19
onChange 19
onClick 19
onFocus 19
onLoad 19
onMouseDown 19
onMouseOut 19
onMouseOver 19
onMouseUp 19
onResize 19
open()
MMNotes.open() 223
site.open() 478
openDocument() 376
openDocumentFromSite() 377
openInFrame() 377
OpenNotesFile() 230
OpenNotesFilewithOpenFlags() 230
openWithApp() 370
openWithBrowseDialog() 370
openWithExternalTextEditor() 370
openWithImageEditor() 371
optimizeInFireworks() 211
option, objet 19
outdent() 398
outdentTextView() 493
outerHTML, propriété 26
P
pageDown() 431, 493
pageUp() 431, 493
panneaux flottants
API 85
exemple de code 91
expérience de l'utilisateur 84
questions liées aux performances 89
parentNode, propriété
des objets balise 26
des objets commentaire 28
des objets de document 25
des objets texte 27
parentWindow, propriété 25
pasteServerBehavior() 143
pilotes 254
playAllPlugins() 542
playPlugin() 542
playRecordedCommand() 412
popupAction() 348
popupCommand() 567
popupServerBehavior() 463
postText() 246
postTextCallback() 247
previousParagraph() 431
previousWord() 432, 494
procédures stockées 250
acquisition des colonnes à partir de 256, 257
acquisition des paramètres 258
affichage des résultats 261, 262
processFile() 64
put() 479
Q
quitApplication() 406
R
read() 239
readFile()
pour des objets Flash 218
reapplyBehaviors() 345
receiveArguments()
dans les commandes de menu 57
dans les commandes régulières 49
recordPathOfLayer() 514
recreateCache() 479
Index
615
recreateFromDocument() 564
redo()
dom.redo() 410
dreamweaver.redo() 412
referencePalette.getFontSize()
dreamweaver.referencePalette.getFontSize() 343
referencePalette.setFontSize()
dreamweaver.referencePalette.setFontSize() 343
refresh() 480
refreshExtData() 183
regexp, objet 19
relativeToAbsoluteURL() 450
releaseDocument() 377
reloadMenus() 447
remoteIsValid() 480
remove() 224, 239
removeAllBreakpoints() 425
removeAllSpacers() 550
removeAllTableHeights() 509
removeAllTableWidths() 509
removeAttribute() 26
removeBehavior()
dom.removeBehavior() 345
dreamweaver.timelineInspector.removeBehavior()
515
removeCharacterMarkup() 398
removeCSSStyle() 361
removeEditableRegion() 441
removeFontMarkup() 398
removeFrame() 515
removeKeyframe() 515
removeLink()
dom.removeLink() 399
site.removeLink() 480
RemoveNote() 230
removeObject() 516
removeSpacerFromColumn() 550
removeTimeline() 516
renameSelectedItem() 565
renameSelectedTemplate() 568
renameSelection() 481
renameTimeline() 516
replace() 382
replaceAll() 382
replaceRange() 494
replaySteps() 417
reportError() 73
reportWarning() 73
616
Index
resizeSelection() 399
resizeSelectionBy() 435
resizeTo() 19
results.setResultData() 453
resWin.addItem() 454
resWin.setColumnWidths() 455
resWin.setFileList() 456
resWin.setTitle() 456
resWin.startProcessing() 456
resWin.stopProcessing() 457
rétablir, objet 19
revertDocument() 378
runCommand() 358
runTranslator() 538
S
saveAll() 379
saveAllFrames() 388
saveAsCommand() 418
saveAsImage() 481
saveDocument() 379
saveDocumentAs() 380
saveDocumentAsTemplate() 380
saveFrameset() 380
saveFramesetAs() 381
saveSitesToPrefs() 467
scrollLineDown() 495, 497
scrollLineUp() 495
scrollPageDown() 496
scrollPageUp() 496
SCS 286
SCS_AfterGet() 290
SCS_AfterPut() 291
SCS_BeforeGet() 289
SCS_BeforePut() 290
SCS_canCheckin() 287
SCS_canCheckout() 286
SCS_canConnect() 285
SCS_canDelete() 288
SCS_canGet() 286
SCS_canNewFolder() 288
SCS_canPut() 286
SCS_canRename() 288
SCS_CanUndoCheckout() 287
SCS_Checkin() 279
SCS_Checkout() 279
SCS_Connect() 271
SCS_Delete() 275
SCS_Disconnect() 272
SCS_Get() 274
SCS_GetAgentInfo() 271
SCS_GetCheckoutName() 278
SCS_GetConnectionInfo() 276
SCS_GetDesignNotes() 283
SCS_GetErrorMessage() 282
SCS_GetErrorMessageLength() 281
SCS_GetFileCheckoutList() 281
SCS_GetFolderList() 273
SCS_GetFolderListLength() 273
SCS_GetMaxNoteLength() 283
SCS_GetNewFeatures() 278
SCS_GetNoteCount() 282
SCS_GetNumCheckedOut() 280
SCS_GetNumNewFeatures() 277
SCS_GetRootFolder() 272
SCS_GetRootFolderLength() 272
SCS_IsConnected() 272
SCS_IsRemoteNewer() 285
SCS_ItemExists() 276
SCS_NewFolder() 274
SCS_Put() 274
SCS_Rename() 275
SCS_SetDesignNotes() 284
SCS_SiteDeleted() 277
SCS_SiteRenamed() 277
SCS_UndoCheckout() 280
select() 19
selectAll()
dom.selectAll() 460
dreamweaver.selectAll() 461
site.selectAll() 481
SelectAllCheckedOutFiles 595
selectChild() 450
selectHomePage() 482
sélection de commande de couleur pour les extensions
Javascript 37
sélection, objet 19
selectionChanged() 88
selectNewer() 482
selectParent() 451
selectParentTag() 497
selectTable() 460
set() 224
setActiveWindow() 556
setAsHomePage() 483
setAttribute() 26
setAttributeWithErrorChecking() 399
setAutoplay() 517
setColumnAutostretch() 550
setConnectionState() 483
setCurrentFrame() 517
setCurrentLine() 497
setCurrentSite() 483
setEditNoFramesContent() 524
setFloaterVisibility() 557
setFocus() 484
setHideAllFloaters() 534
setHideAllVisualAidst() 524
setInterval() 19
setLayerTag() 436
setLayout() 484
setLinkHref() 400
setLinkTarget() 400
setLinkVisibility() 485
setListBoxKind() 401
setListTag() 402
setLiveDataError() 445
setLiveDataMode() 445
setLoop() 517
setMenuText() 57
SetNote() 231
setPreventLayerOverlaps() 525
setPrimaryView() 558
setRulerOrigin() 542
setRulerUnits() 543
setSelectedBehavior() 352
setSelectedNode() 460
setSelection()
dom.setSelection() 461
dreamweaver.setSelection() 567
site.setSelection() 485
setShowDependents() 536
setShowFrameBorders() 525
setShowGrid() 526
setShowHeadView() 526
setShowHiddenFiles() 537
setShowHighlightInvalidHTML() 526
setShowImageMaps() 527
setShowInvisibleElements() 527
setShowLayerBorders() 527
setShowLayoutTableTabs() 551
setShowLayoutView() 551
setShowLineNumbers() 528
setShowPageTitles() 537
Index
617
setShowRulers() 528
setShowStatusBar() 535
setShowTableBorders() 529
setShowToolbar() 529
setShowToolTips() 537
setShowTracingImage() 529
setShowWordWrap() 530
setSnapDistance() 558
setSnapToGrid() 530
setTableCellTag() 509
setTableColumns() 510
setTableRows() 510
setTextAlignment() 402
setTextFieldKind() 402
setTimeout() 19
dans les panneaux flottants 89
utilisation avec FWLaunch 213
setTracingImageOpacity() 544
setTracingImagePosition() 543
setUndoState() 419
setUpComplexFind() 383
setUpComplexFindReplace() 383
setUpFind() 384
setUpFindReplace() 385
setView() 553
showAboutBox() 406
showConnectionMgrDialog() 260
showDynamicData() 407
showFindDialog() 386
showFindReplaceDialog() 387
showFontColorDialog() 403
showGridSettingsDialog() 545
showInsertTableRowsOrColumnsDialog() 510
showListPropertiesDialog() 401
showLiveDataDialog() 446
showPagePropertiesDialog() 409
showPreferencesDialog() 408
showProperties() 558
showQuickTagEditor() 452
showReportsDialog() 453
showResultset() 260
showSPResultset() 261
showSPResultsetNamedParams() 262
Shutdown, dossier 29
site, objet
méthodes 334
propriétés 23
618
Index
site.addLinkToExistingFile() 467
site.addLinkToNewFile() 468
site.browseDocument() 588
site.canAddLinkToFile() 588
site.canChangeLink() 588
site.canCheckIn() 589
site.canCheckOut() 589
site.canConnect() 590
site.canFindLinkSource() 590
site.canGet() 590
site.canLocateInSite() 591
site.canMakeEditable() 591
site.canMakeNewFileOrFolder() 591
site.canOpen() 592
site.canPut() 592
site.canRecreateCache() 592
site.canRefresh() 593
site.canRemoveLink() 593
site.canSelectAllCheckedOutFiles() 594
site.canSelectNewer() 594
site.canSetLayout() 593
site.canSynchronize() 595
site.canUndoCheckOut() 595
site.canViewAsRoot() 595
site.changeLink() 468
site.changeLinkSitewide() 468
site.checkIn() 469
site.checkLinks() 469
site.checkOut() 470
site.checkTargetBrowsers() 470
site.defineSites() 471
site.deleteSelection() 471
site.findLinkSource() 472
site.get() 472
site.getCheckOutUser() 473
site.getCheckOutUserForFile() 474
site.getConnectionState() 474
site.getCurrentSite() 474
site.getFocus() 475
site.getLinkVisibility() 475
site.getSelection() 476
site.getShowDependents() 535
site.getShowHiddenFiles() 535
site.getShowPageTitles() 536
site.getShowToolTips() 536
site.getSites() 476
site.invertSelection() 476
site.locateInSite() 472
site.makeEditable() 477
site.makeNewDreamweaverFile() 477
site.makeNewFolder() 477
site.newHomePage() 478
site.newSite() 478
site.open() 478
site.put() 479
site.recreateCache() 479
site.refresh() 480
site.remoteIsValid() 480
site.removeLink() 480
site.renameSelection() 481
site.saveAsImage() 481
site.selectAll() 481
site.SelectAllCheckedOutFiles() 595
site.selectHomePage() 482
site.selectNewer() 482
site.setAsHomePage() 483
site.setConnectionState() 483
site.setCurrentSite() 483
site.setFocus() 484
site.setLayout() 484
site.setLinkVisibility() 485
site.setSelection() 485
site.setShowDependents() 536
site.setShowHiddenFiles() 537
site.setShowPageTitles() 537
site.setShowToolTips() 537
site.synchronize() 485
site.undoCheckOut() 486
site.viewAsRoot() 486
snapTracingImageToSelection() 544
splitFrame() 389
splitTableCell() 511
startBlock() 74
startDebugger() 425
startOfDocument() 432, 498
startOfLine() 433, 498
startRecording() 413
Startup, dossier 29
statusCode, propriété 241
stopAllPlugins() 544
stopPlugin() 545
stopRecording() 413
stripTag() 451
structure de itemInfo 289
structure XML 152
SWFFile.createFile() 215
SWFFile.getNaturalSize() 217
SWFFile.getObjectType() 217
SWFFile.readFile() 218
synchronize() 485
synchronizeDocument() 499
T
tableau, objet 19
tables 258
acquisition des colonnes 252
tagName, propriété 26
textarea, objet 19
texte (champ) objet 19
Texte dynamique, boîte de dialogue 187
texte, objet 27
toggleFloater() 559
topPage() 498
traducteurs
attribut 300
blocs/balises 306
débogage 316
traducteurs d'attributs 299
création 300
débogage 316
exemple de code 301
traducteurs de blocs/balises 299
débogage 316
exemple de code 307
traducteurs de données
API 295
débogage 316
expérience de l'utilisateur 294
fonctions requises 295
pour les attributs 300
pour les balises ou les blocs de code 306
types 299
translateMarkup() 297
type d'opérateur 233
U
undo()
dom.undo() 411
dreamweaver.undo() 414
undoCheckOut() 486
unescape() 19
updateCurrentPage() 442
Index
619
updatePages() 442
updateParticipant() 182
updateReference() 559
URL javascript 28
URL, propriété 25
useTranslatedSource() 539
utilisation du gestionnaire de traduction 183
V
validateFireworks() 212
viewAsRoot() 486
W
W3C 19
windowDimensions() 66
dans les actions de comportement 103
dans les commandes de menu 58
dans les commandes régulières 49
dans les fichiers d'objet 42
wrapSelection() 499
wrapTag() 452
write() 239
Z
zones réactives, fonctions 434
620
Index

Documents pareils

"Bien démarrer avec Dreamweaver MX" (PDF - 4,4

"Bien démarrer avec Dreamweaver MX" (PDF - 4,4 FreeHand, FreeHand Graphics Studio, Generator, Generator Developer’s Studio, Generator Dynamic Graphics Server, Knowledge Objects, Knowledge Stream, Knowledge Track, Lingo, Live Effects, Macromedia...

Plus en détail