Detailed instructions for use are in the User's Guide.
Extending Dreamweaver
Trademarks Add Life to the Web, Afterburner, Aftershock, Andromedia, Allaire, Animation PowerPack, Aria, Attain, Authorware, Authorware Star, Backstage, Bright Tiger, Clustercats, Cold Fusion, Contribute, Design in Motion, Director, Dream Templates, Dreamweaver, Drumbeat 2000, EDJE, EJIPT, Extreme 3D, Fireworks, Flash, Fontographer, FreeHand, Generator, HomeSite, JFusion, JRun, Kawa, Know Your Site, Knowledge Objects, Knowledge Stream, Knowledge Track, LikeMinds, Lingo, Live Effects, MacRecorder Logo and Design, Macromedia, Macromedia Action!, Macromedia Flash, Macromedia M Logo & Design, Macromedia Spectra, Macromedia xRes Logo and Design, MacroModel, Made with Macromedia, Made with Macromedia Logo and Design, MAGIC Logo and Design, Mediamaker, Movie Critic, Open Sesame!, Roundtrip HTML, Shockwave, Sitespring, SoundEdit, Titlemaker, UltraDev, Web Design 101, what the web can be, and Xtra are either registered or trademarks of Macromedia, Inc. and may be registered in the United States or in other jurisdictions including internationally. Other product names, logos, designs, titles, words or phrases mentioned within this publication may be trademarks, servicemarks, or tradenames of Macromedia, Inc. or other entities and may be registered in certain jurisdictions including internationally. Third-Party Information This guide contains links to third-party websites that are not under the control of Macromedia, and Macromedia is not responsible for the content on any linked site. If you access a third-party website mentioned in this guide, then you do so at your own risk. Macromedia provides these links only as a convenience, and the inclusion of the link does not imply that Macromedia endorses or accepts any responsibility for the content on those third-party sites. Third Party Software Notices and/or Additional Terms and Conditions can be found at www.macromedia.com/go/thirdparty/. Opera ® browser Copyright © 1995-2002 Opera Software ASA and its suppliers. All rights reserved. Apple Disclaimer APPLE COMPUTER, INC. MAKES NO WARRANTIES, EITHER EXPRESS OR IMPLIED, REGARDING THE ENCLOSED COMPUTER SOFTWARE PACKAGE, ITS MERCHANTABILITY OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. THE EXCLUSION OF IMPLIED WARRANTIES IS NOT PERMITTED BY SOME STATES. THE ABOVE EXCLUSION MAY NOT APPLY TO YOU. THIS WARRANTY PROVIDES YOU WITH SPECIFIC LEGAL RIGHTS. THERE MAY BE OTHER RIGHTS THAT YOU MAY HAVE WHICH VARY FROM STATE TO STATE. Copyright © 1997-2003 Macromedia, Inc and its licensors. All rights reserved. This manual may not be copied, photocopied, reproduced, translated, or converted to any electronic or machine-readable form in whole or in part without prior written approval of Macromedia, Inc. Part Number ZDW70M300 Acknowledgments Senior Management: Sheila McGinn Project Management: Robert Berry Writing: Robert Berry, David Jacowitz Editing Management: Lisa Stanziano Editing: Mary Kraemer, Noreen Maher Production Management: Patrice O'Neill Media Design and Production: Adam Barnett, Aaron Begley, Chris Basmajian, John Francis, Jeff Harmon Special thanks to Jay London, Jeff Schang, Lori Hylan-Cho, Hisami Scott, Sam Mathews, Jake Cockrell, Russ Helfand, Randy Edmunds, George Comninos, Rosana Francescato, Charles Nadeau, and the entire Dreamweaver engineering and QA teams. First Edition: September 2003 Macromedia, Inc. 600 Townsend St. San Francisco, CA 94103
CONTENTS
CHAPTER 1: Introduction.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 14 14 14 15 15 16 16 16 17
Background. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Installing an extension. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Additional resources for extension writers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . What's new in Extending Dreamweaver. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Documentation Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Macromedia Press. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Removed Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Errata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conventions used in this guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PART I: Overview
CHAPTER 2: Extending Dreamweaver .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 21 22 23 25 25 25 26 27 27 27 28 28 29 29 29 31 32 32 32 32
Types of Dreamweaver extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Other ways to extend Dreamweaver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuration folders and extensions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Multiuser Configuration folders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Running scripts at startup or shutdown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Extension APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . How Dreamweaver processes JavaScript in extensions. . . . . . . . . . . . . . . . . . . . Displaying Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Localizing an extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XML String files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Localizable Strings with Embedded Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . Working with the Extension Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Customizing Dreamweaver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . About customizing Dreamweaver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . About customizing Dreamweaver in a multiuser environment . . . . . . . . . . . . . About mm_deleted_files.xml tag syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reinstalling and uninstalling Dreamweaver in a multiuser environment . . . . . . Customizing default documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Customizing page designs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Customizing the appearance of dialog boxes . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
Changing the default file type. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Customizing the interpretation of third-party tags . . . . . . . . . . . . . . . . . . . . . . 34 Working with browser profiles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 About browser-profile formatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Creating and editing a browser profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Changing FTP mappings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Extensible document types in Dreamweaver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Opening a document in Dreamweaver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
CHAPTER 3: User Interfaces for Extensions.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Designing an extension user interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Dreamweaver HTML rendering control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Using custom UI controls in extensions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Editable select lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Database controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Adding a variable grid control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Adding tree controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Manipulating content within a tree control . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 A color button control for extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Adding Flash content to Dreamweaver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 A simple Flash dialog box example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
CHAPTER 4: The Dreamweaver Document Object Model.
. . . . . . . . . . . . . . . . . 67
Which document DOM? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 The Dreamweaver DOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Objects, properties, and methods of the Dreamweaver DOM . . . . . . . . . . . . . 68 Properties and methods of the document object . . . . . . . . . . . . . . . . . . . . . . . 71 Properties and methods of HTML tag objects . . . . . . . . . . . . . . . . . . . . . . . . . 72 Properties and methods of text objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Properties and methods of comment objects . . . . . . . . . . . . . . . . . . . . . . . . . . 74 The dreamweaver and site objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
CHAPTER 5: Customizing Code View
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Code Hints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 The CodeHints.xml file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Code Hints tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Code coloring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Code coloring files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Scheme block delimiter coloring. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Scheme processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Editing schemes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Code coloring examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Code validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Changing default HTML formatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
4
Contents
PART II: Extension APIs
CHAPTER 6: Insert Bar Objects
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
How object files work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 The Insert bar definition file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 Insertbar.xml tag hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 Insert bar definition tags. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 Insert bar definition tag attributes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Modifying the Insert bar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Adding objects to the Insert bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Adding objects to the Insert menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 The Objects API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 canInsertObject() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 displayHelp() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 isDomRequired() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ...