Foreword xvii
Preface xix
Acknowledgments xxiii
About the Authors xxv
Chapter 1: Web Page Design 1
Describing Content 2
Organizing Lists of Content 8
Page Design and Layout 14
Interaction 20
Code 22
Work Flow 25
Summary 29
Chapter 2: The Themers' Toolkit 31
A Gentle Introduction 32
Theming Strategies 33
Drupal Terminology 36
Must-Have Modules 42
Browser Tools 60
Language References 65
Maintaining Your System 69
Summary 71
Chapter 3: Working with Drupal Themes 73
Finding Themes 74
Installing Drupal Themes 78
Administering Themes 82
Anatomy of a Theme 88
Starter Themes 94
Migrating to Drupal 6 99
Summary 104
Chapter 4: The Drupal Page 107
Elements of a Page 107
Sitewide Page Variables 109
Navigation and Menus 115
Grid Work 120
Search 126
Changing Templates 128
Alias: Page 133
Taxonomy Templates 138
Delivering Plain Content 141
Summary 149
Chapter 5: Drupal Content 151
Node Templates 151
Gaining More Control Than $content Provides 155
Node Template Variables 161
Pages and Teasers 165
Images 169
Making Lists of Content with Views 177
Summary 181
Chapter 6: Customizing the Content-Editing Forms 183
Web Forms 184
Form Candy 185
Rich Text Editing 195
Altering Forms with FAPI 201
Multiple-Page Forms 210
Improving Access to Edit Screens 212
Summary 217
Chapter 7: Users and Community Participation 219
Users 219
Granting and Restricting Access 227
Community Comments 231
User-Generated Content 235
Spam 240
Private Web Site Areas 244
Summary 248
Chapter 8: Administrative Interfaces 251
Creating a Custom Administrative Interface 252
Task-Based Navigation 256
Administrative Menus 261
Administrative Dashboards and Control Panels 266
Custom Administrative Screens 270
Error! 279
Summary 283
Chapter 9: Learning JavaScript 285
JavaScript versus DOM 286
The JavaScript Language 287
Object Orientation in JavaScript 293
Summary 309
Chapter 10: An Introduction to jQuery 311
A First Look at jQuery 313
Using jQuery 320
Leveraging jQuery's Full Potential 333
Using Other JavaScript Libraries 343
Summary 344
Chapter 11: JavaScript in Drupal 345
Server-Side Drupal Integration 345
Architecting a Component 353
Example: Horizontal Scroller 355
Using Plugins and jQuery UI 377
Summary 380
Appendix A: Installing Drupal 381
Setting Up a Development Server 381
Configuring Document Root and Virtual Hosts 383
Installing Drupal-and Common Hurdles to Its Installation 385
A Quick Glance at the Admin Area 388
Installing Modules 389
Appendix B: Supplemental Code 391
template 391
demo-module 397
template-skeleton 400
horizscroll and horizscroll-datasource 404
sparkline 415
Index 419