You are previewing Drupal® 7 Bible.
O'Reilly logo
Drupal® 7 Bible

Book Description

Guidance for administrators, content managers and web publishers on using Drupal for content management

Start building and managing web sites with the open-source content management system Drupal 7 and this in-depth guide. Whether you're new to Drupal or migrating from another system, you'll find the tips and techniques you need to understand Drupal, create a new web site, or manage an existing one. Learn how to create, modify, and delete items-and much more-with the detailed tutorials in this step-by-step guide.

  • Teaches you how to use a Drupal site, as well as how to set up, configure, and customize a new site, including obtaining code and deploying it to a server

  • Covers advanced topics like multilingual content management, publishing workflows, or Views and Panels

  • Shows you how to work with Drupal 7's new fields and custom content types

Get on the Drupal bandwagon with this complete guide.

Table of Contents

  1. Copyright
  2. About the Authors
  3. Credits
  4. Introduction
    1. Who Should Read This Book
    2. How This Book Is Organized
    3. Icons
    4. Minimum Requirements
    5. Where to Go from Here
  5. Acknowledgments
  6. I. Getting Started
    1. 1. Introducing the Drupal Content Management System
      1. 1.1. Discovering Open-Source Content Management
        1. 1.1.1. What is content?
        2. 1.1.2. What is a CMS?
        3. 1.1.3. Why should you use a CMS?
          1. 1.1.3.1. Empowering content authors
          2. 1.1.3.2. Controlling content authors
          3. 1.1.3.3. Managing content presentation
        4. 1.1.4. Why should you use open source?
      2. 1.2. Discovering Drupal
        1. 1.2.1. Considering Drupal's strengths and weaknesses
        2. 1.2.2. The Drupal open-source license
        3. 1.2.3. The Drupal architecture
          1. 1.2.3.1. Programming languages used
          2. 1.2.3.2. Fundamental architecture concepts
            1. 1.2.3.2.1. Users
            2. 1.2.3.2.2. Nodes
            3. 1.2.3.2.3. Fields
            4. 1.2.3.2.4. Taxonomies
            5. 1.2.3.2.5. Comments
            6. 1.2.3.2.6. Modules
            7. 1.2.3.2.7. Hooks
            8. 1.2.3.2.8. Regions, blocks, and menus
          3. 1.2.3.3. The database
          4. 1.2.3.4. How it works
        4. 1.2.4. What's new in Drupal 7?
      3. 1.3. The Drupal Community
        1. 1.3.1. How the community works
          1. 1.3.1.1. Drupal core project maintainers
          2. 1.3.1.2. Drupal module project maintainers
          3. 1.3.1.3. Important Drupal Web sites
        2. 1.3.2. How to participate in the community
          1. 1.3.2.1. Getting a bug fixed
          2. 1.3.2.2. Lending a hand
      4. 1.4. Summary
    2. 2. Obtaining and Installing Drupal
      1. 2.1. Getting the Installation Files
        1. 2.1.1. Exploring the Drupal.org site
        2. 2.1.2. Knowing which files you need
      2. 2.2. Technical Requirements
        1. 2.2.1. The server requirements
        2. 2.2.2. Requirements for site visitors and administrators
      3. 2.3. Installing Drupal
        1. 2.3.1. Creating a local development site
        2. 2.3.2. Installing on a Web-hosting service
        3. 2.3.3. Running the Drupal installer
      4. 2.4. Summary
    3. 3. Taking Your First Look at Drupal
      1. 3.1. The Front End: Drupal's Public Interface
        1. 3.1.1. Menu structure
          1. 3.1.1.1. Main menu
          2. 3.1.1.2. Management menu
          3. 3.1.1.3. Navigation menu
          4. 3.1.1.4. User menu
        2. 3.1.2. Modules
        3. 3.1.3. Blocks and regions
      2. 3.2. The Back End: Drupal's Admin Interface
        1. 3.2.1. The Management menu
          1. 3.2.1.1. The Home option
          2. 3.2.1.2. The Dashboard option
          3. 3.2.1.3. The Content option
          4. 3.2.1.4. The Structure option
          5. 3.2.1.5. The Appearance option
          6. 3.2.1.6. The People option
          7. 3.2.1.7. The Modules option
          8. 3.2.1.8. The Configuration option
          9. 3.2.1.9. The Reports option
          10. 3.2.1.10. The Help option
        2. 3.2.2. Working with the dashboard
        3. 3.2.3. Customizing the admin interface
      3. 3.3. Summary
    4. 4. Configuring Your Drupal Site
      1. 4.1. Basic Site Configuration
        1. 4.1.1. Modifying site information
        2. 4.1.2. Configuring Regional and Language settings
        3. 4.1.3. Options for error handling
        4. 4.1.4. Configuring media management
        5. 4.1.5. Configuring text formats
        6. 4.1.6. Configuring cron
      2. 4.2. Theme Configuration
        1. 4.2.1. Global theme configuration
        2. 4.2.2. Theme-specific configuration
      3. 4.3. Managing Search and URL Settings
        1. 4.3.1. Configuring site search
        2. 4.3.2. Configuring clean URLs
        3. 4.3.3. Creating URL aliases
      4. 4.4. Setting Up Logging and Reporting
        1. 4.4.1. Using the Syslog module
        2. 4.4.2. Using the Database Logging module
        3. 4.4.3. Configuring the Statistics module
        4. 4.4.4. Managing update notifications
      5. 4.5. Configuring Your Site's RSS Feeds
      6. 4.6. Summary
  7. II. Using Drupal's Site Building Tools
    1. 5. The Default Drupal Themes
      1. 5.1. Working with the Theme Manager
      2. 5.2. Reviewing the Default Themes
        1. 5.2.1. Bartik
        2. 5.2.2. Garland
        3. 5.2.3. Seven
        4. 5.2.4. Stark
      3. 5.3. Summary
    2. 6. Working with the Default Modules
      1. 6.1. Enabling and Disabling Modules
      2. 6.2. Managing Enabled Modules
      3. 6.3. Reviewing the Default Modules
        1. 6.3.1. Aggregator
        2. 6.3.2. Block
        3. 6.3.3. Blog
        4. 6.3.4. Book
        5. 6.3.5. Color
        6. 6.3.6. Comment
        7. 6.3.7. Contact
        8. 6.3.8. Content Translation
        9. 6.3.9. Contextual Links
        10. 6.3.10. Dashboard
        11. 6.3.11. Database Logging
        12. 6.3.12. Field
        13. 6.3.13. Field SQL Storage
        14. 6.3.14. Field UI
        15. 6.3.15. File
        16. 6.3.16. Filter
        17. 6.3.17. Forum
        18. 6.3.18. Help
        19. 6.3.19. Image
        20. 6.3.20. List
        21. 6.3.21. Locale
        22. 6.3.22. Menu
        23. 6.3.23. Node
        24. 6.3.24. Open ID
        25. 6.3.25. Options
        26. 6.3.26. Overlay
        27. 6.3.27. Path
        28. 6.3.28. PHP Filter
        29. 6.3.29. Poll
        30. 6.3.30. RDF
        31. 6.3.31. Search
        32. 6.3.32. Shortcut
        33. 6.3.33. Statistics
        34. 6.3.34. Syslog
        35. 6.3.35. System
        36. 6.3.36. Taxonomy
        37. 6.3.37. Testing
        38. 6.3.38. Text
        39. 6.3.39. Toolbar
        40. 6.3.40. Tracker
        41. 6.3.41. Trigger
        42. 6.3.42. Update Manager
        43. 6.3.43. User
      4. 6.4. Summary
    3. 7. Working with Blocks
      1. 7.1. Understanding Blocks
      2. 7.2. Overview of the Blocks Manager
        1. 7.2.1. Understanding the key concepts
        2. 7.2.2. Managing and configuring blocks
      3. 7.3. Reviewing the Default Blocks
      4. 7.4. Summary
    4. 8. Working with the Menus Manager
      1. 8.1. Overview of the Menus Manager
      2. 8.2. Creating and Managing Menus
        1. 8.2.1. Creating new menus
        2. 8.2.2. Managing existing menus
        3. 8.2.3. Configuring global Menu module settings
        4. 8.2.4. Configuring menus for content types
      3. 8.3. Creating and Managing Menu Items
        1. 8.3.1. Creating menu items
        2. 8.3.2. Managing menu items
      4. 8.4. Summary
    5. 9. Using Actions and Triggers
      1. 9.1. The Default Simple Actions
      2. 9.2. Adding an Advanced Action
        1. 9.2.1. Introducing Advanced actions
        2. 9.2.2. Creating an Advanced action
      3. 9.3. Assigning Triggers to Actions
        1. 9.3.1. Understanding triggers
        2. 9.3.2. Assigning the advanced action's trigger
      4. 9.4. Summary
  8. III. Working with Content
    1. 10. Content Management with Drupal
      1. 10.1. Understanding the Key Concepts
        1. 10.1.1. Content and nodes
        2. 10.1.2. Content types and fields
        3. 10.1.3. Content versus metadata
        4. 10.1.4. Versioning of content items
        5. 10.1.5. Publish status and lifecycles
        6. 10.1.6. Multilingual content
      2. 10.2. Understanding Drupal Content Types and Fields
        1. 10.2.1. Discovering the default content types
          1. 10.2.1.1. Introducing articles
          2. 10.2.1.2. Introducing blog entries
          3. 10.2.1.3. Introducing book pages
          4. 10.2.1.4. Introducing forum topics
          5. 10.2.1.5. Introducing pages
          6. 10.2.1.6. Introducing polls
        2. 10.2.2. Creating content types
        3. 10.2.3. Editing content types
          1. 10.2.3.1. Adding new fields
          2. 10.2.3.2. Editing field labels
          3. 10.2.3.3. Editing basic content-type options
          4. 10.2.3.4. Deleting existing fields
        4. 10.2.4. Deleting content types
      3. 10.3. Controlling How Content Is Created
        1. 10.3.1. Configuring standard content-item defaults
          1. 10.3.1.1. Submission form settings
          2. 10.3.1.2. Publishing options
          3. 10.3.1.3. Display settings
          4. 10.3.1.4. Comment settings
          5. 10.3.1.5. Menu settings
        2. 10.3.2. Understanding field settings and field instance settings
          1. 10.3.2.1. Field settings
          2. 10.3.2.2. Field instance settings
          3. 10.3.2.3. Making fields required
          4. 10.3.2.4. Limiting the length of a text field
      4. 10.4. Creating New Content
        1. 10.4.1. Understanding authoring basics
        2. 10.4.2. Working with the standard content item options
          1. 10.4.2.1. Menu settings
          2. 10.4.2.2. Revision information
          3. 10.4.2.3. URL path settings
          4. 10.4.2.4. Comment settings
          5. 10.4.2.5. Authoring information
          6. 10.4.2.6. Publishing options
      5. 10.5. Managing Existing Content
        1. 10.5.1. Publishing and unpublishing content
        2. 10.5.2. Modifying content
        3. 10.5.3. Deleting content
      6. 10.6. Summary
    2. 11. Managing Taxonomies
      1. 11.1. Understanding Key Concepts
        1. 11.1.1. Metadata
        2. 11.1.2. Taxonomy
        3. 11.1.3. Vocabulary
        4. 11.1.4. Term
        5. 11.1.5. Tagging
        6. 11.1.6. Tag cloud
      2. 11.2. Introducing the Taxonomy Manager
        1. 11.2.1. Listing available vocabularies
        2. 11.2.2. Viewing vocabulary terms
        3. 11.2.3. Viewing vocabulary fields
      3. 11.3. Creating Vocabularies
        1. 11.3.1. Defining a new vocabulary
        2. 11.3.2. Binding to a content type
      4. 11.4. Managing Terms
        1. 11.4.1. Adding new vocabulary terms
        2. 11.4.2. Editing and deleting vocabulary terms
      5. 11.5. Summary
    3. 12. Formatting Content and Media
      1. 12.1. Understanding Text Formatting
        1. 12.1.1. Introducing text format management
        2. 12.1.2. Creating and customizing text formats
        3. 12.1.3. Controlling the use of text formats
      2. 12.2. Working with Images
        1. 12.2.1. Creating an image field
        2. 12.2.2. Configuring the image toolkit
        3. 12.2.3. Defining image styles
        4. 12.2.4. Using image styles
          1. 12.2.4.1. Applying image styles to user profile pictures
          2. 12.2.4.2. Applying image styles to content fields
      3. 12.3. Working with Other Media
        1. 12.3.1. Adding files to content
        2. 12.3.2. Embedding remote media
        3. 12.3.3. Exploring contributed modules
      4. 12.4. Using WYSIWYG Editors
        1. 12.4.1. Adding a WYSIWYG editor
        2. 12.4.2. Creating Wysiwyg profiles
      5. 12.5. Summary
    4. 13. Managing the Front Page of Your Site
      1. 13.1. Controlling the Front-Page Layout
      2. 13.2. Using a Distinct Template for the Front Page
      3. 13.3. Publishing Content on the Front Page
      4. 13.4. Publishing Module Output on the Front Page
        1. 13.4.1. Publishing content from modules
        2. 13.4.2. Publishing content from custom blocks
      5. 13.5. Publishing Blocks on the Front Page
      6. 13.6. Summary
    5. 14. Employing Advanced Content Management Techniques
      1. 14.1. Creating Content Versions
        1. 14.1.1. Understanding the business drivers for content versions
        2. 14.1.2. Configuring content versioning
      2. 14.2. Implementing Authoring Workflows
        1. 14.2.1. Using Rules and Views for workflow
        2. 14.2.2. Using Maestro for workflow
        3. 14.2.3. Using the Workflow module
      3. 14.3. Controlling Comment Spam
        1. 14.3.1. Controlling access to commenting functions
        2. 14.3.2. Thwarting robots with CAPTCHA and reCAPTCHA
          1. 14.3.2.1. Using the CAPTCHA module
          2. 14.3.2.2. Using the reCAPTCHA module
        3. 14.3.3. Automating comment moderation with Mollom
      4. 14.4. Creating Content Hierarchies
        1. 14.4.1. Structuring content relationships with the Book module
        2. 14.4.2. Creating content hierarchies with taxonomies
      5. 14.5. Syndicating Your Content
        1. 14.5.1. Introducing Drupal Web feeds
        2. 14.5.2. Configuring content syndication
      6. 14.6. Summary
    6. 15. Working with the Comment Functionality
      1. 15.1. Introducing the Comment Module
        1. 15.1.1. Enabling and disabling the module
        2. 15.1.2. Configuring comments
        3. 15.1.3. Defining fields for comments
      2. 15.2. Controlling the Styling of Comments
        1. 15.2.1. Reviewing the default templates
          1. 15.2.1.1. Reviewing comment.tpl.php
          2. 15.2.1.2. Reviewing comment-wrapper.tpl.php
        2. 15.2.2. Reviewing the default style sheets
        3. 15.2.3. Reviewing the themable functions
      3. 15.3. Administering Comments
      4. 15.4. Summary
    7. 16. Managing Blog Content
      1. 16.1. Introducing the Blog Module
        1. 16.1.1. Enabling and disabling the module
        2. 16.1.2. Configuring the module
      2. 16.2. Administering Blogs
        1. 16.2.1. Adding blog entries
        2. 16.2.2. Editing blogs
        3. 16.2.3. Deleting blogs
      3. 16.3. Controlling the Styling of the Blog Module
      4. 16.4. Using the Most Recent Blog Posts Block
      5. 16.5. Summary
    8. 17. Using the Book Module
      1. 17.1. Introducing the Book Module
        1. 17.1.1. Enabling and disabling the module
        2. 17.1.2. Configuring the module
      2. 17.2. Administering Books and Pages
        1. 17.2.1. Adding a top-level book page
        2. 17.2.2. Adding child pages
        3. 17.2.3. Editing book pages
        4. 17.2.4. Deleting book pages
      3. 17.3. Controlling the Styling of the Book Module
        1. 17.3.1. Reviewing the default templates
          1. 17.3.1.1. Reviewing book-all-books-block.tpl.php
          2. 17.3.1.2. Reviewing book-export-html.tpl.php
          3. 17.3.1.3. Reviewing book-navigation.tpl.php
          4. 17.3.1.4. Reviewing book-node-export-html.tpl.php
        2. 17.3.2. Reviewing the default style sheets
        3. 17.3.3. Reviewing the themable functions
      4. 17.4. Using the Book Navigation Block
      5. 17.5. Summary
  9. IV. Working with Content-Related Modules
    1. 18. Using the Aggregator Module
      1. 18.1. Introducing the Aggregator Module
        1. 18.1.1. Enabling and disabling the module
        2. 18.1.2. Configuring the module
      2. 18.2. Administering the Aggregator
        1. 18.2.1. Adding and deleting feed categories
        2. 18.2.2. Adding and deleting feeds
      3. 18.3. Controlling the Styling of the Aggregator
        1. 18.3.1. Reviewing the default templates
          1. 18.3.1.1. Reviewing aggregator-feed-source.tpl.php
          2. 18.3.1.2. Reviewing aggregator-item.tpl.php
          3. 18.3.1.3. Reviewing aggregator-summary-item.tpl.php
          4. 18.3.1.4. Reviewing aggregator-summary-items.tpl.php
          5. 18.3.1.5. Reviewing aggregator-wrapper.tpl.php
        2. 18.3.2. Reviewing the default style sheets
        3. 18.3.3. Reviewing the themable functions
      4. 18.4. Using the Latest Items Block
      5. 18.5. Summary
    2. 19. Working with Forms
      1. 19.1. Using Drupal's Contact Module
        1. 19.1.1. Creating site-wide contact forms
        2. 19.1.2. Creating user contact forms
      2. 19.2. Creating Custom Forms
        1. 19.2.1. Installing and configuring the Webforms module
        2. 19.2.2. Creating new forms with Webforms
          1. 19.2.2.1. Adding new fields to a custom form
          2. 19.2.2.2. Controlling submission settings
            1. 19.2.2.2.1. Configuring e-mail sending
            2. 19.2.2.2.2. Controlling form behaviors
        3. 19.2.3. Gathering data with Webforms
      3. 19.3. Summary
    3. 20. Using the Forum Module
      1. 20.1. Introducing the Forum Module
        1. 20.1.1. Enabling and disabling the module
        2. 20.1.2. Configuring the module
      2. 20.2. Administering Forums
        1. 20.2.1. Working with containers
          1. 20.2.1.1. Adding a container
          2. 20.2.1.2. Editing a container
          3. 20.2.1.3. Deleting a container
        2. 20.2.2. Working with forums
          1. 20.2.2.1. Adding a forum
          2. 20.2.2.2. Editing a forum
          3. 20.2.2.3. Deleting a forum
        3. 20.2.3. Working with forum topics
          1. 20.2.3.1. Create a new forum topic
          2. 20.2.3.2. Editing forum topics
          3. 20.2.3.3. Deleting forum topics
      3. 20.3. Controlling the Styling of the Forum Module
        1. 20.3.1. Reviewing the default templates
          1. 20.3.1.1. Reviewing forum-icon.tpl.php
          2. 20.3.1.2. Reviewing forum-list.tpl.php
          3. 20.3.1.3. Reviewing forum-submitted.tpl.php
          4. 20.3.1.4. Reviewing forum-topic-list.tpl.php
          5. 20.3.1.5. Reviewing forums.tpl.php
        2. 20.3.2. Reviewing the default style sheets
      4. 20.4. Using the Active Forum Topics Block
      5. 20.5. Using the New Forum Topics Block
      6. 20.6. Summary
    4. 21. Using the Poll Module
      1. 21.1. Introducing the Poll Module
        1. 21.1.1. Enabling and disabling the module
        2. 21.1.2. Configuring the module
      2. 21.2. Administering Polls
        1. 21.2.1. Adding polls
        2. 21.2.2. Editing polls
        3. 21.2.3. Deleting polls
      3. 21.3. Controlling the Styling of the Poll Module
        1. 21.3.1. Reviewing the default templates
          1. 21.3.1.1. Reviewing poll-bar--block.tpl.php
          2. 21.3.1.2. Reviewing poll-bar.tpl.php
          3. 21.3.1.3. Reviewing poll-results--block.tpl.php
          4. 21.3.1.4. Reviewing poll-results.tpl.php
          5. 21.3.1.5. Reviewing poll-vote.tpl.php
        2. 21.3.2. Reviewing the default style sheets
      4. 21.4. Using the Most Recent Poll Block
      5. 21.5. Summary
    5. 22. Managing Multilingual Content
      1. 22.1. Understanding Key Concepts
        1. 22.1.1. Content
        2. 22.1.2. Internationalization (i18n)
        3. 22.1.3. Locales
        4. 22.1.4. Localization (L10n)
        5. 22.1.5. Localized Drupal
        6. 22.1.6. Metadata
        7. 22.1.7. Multilingual content
        8. 22.1.8. Translation sets
      2. 22.2. Introducing Multilingual Content Management
        1. 22.2.1. The Locale module
        2. 22.2.2. The Content translation module
        3. 22.2.3. Drupal translation packages
      3. 22.3. Enabling Multilingual Content
        1. 22.3.1. Enabling multiple languages
          1. 22.3.1.1. Enabling the Locale module
          2. 22.3.1.2. Adding a language
        2. 22.3.2. Enabling multilingual content
          1. 22.3.2.1. Enabling the Content translation module
          2. 22.3.2.2. Configuring content types
      4. 22.4. Authoring and Managing Multilingual Content
        1. 22.4.1. Creating a new translation set
        2. 22.4.2. Managing translation sets
        3. 22.4.3. Managing translation synchronization
      5. 22.5. Controlling Multilingual Content and Interface Presentation
        1. 22.5.1. Understanding language negotiation
        2. 22.5.2. Configuring language negotiation
          1. 22.5.2.1. Planning your language negotiation strategy
          2. 22.5.2.2. Enabling language negotiation
          3. 22.5.2.3. Configuring URL triggers
            1. 22.5.2.3.1. Selecting domain or path prefix triggers
            2. 22.5.2.3.2. Specifying the trigger text pattern
          4. 22.5.2.4. Configuring the Session language negotiation option
      6. 22.6. Summary
  10. V. Managing Users
    1. 23. Understanding the Drupal User System
      1. 23.1. Introducing the User System
        1. 23.1.1. Reviewing the People Manager
        2. 23.1.2. Configuring Account Settings
          1. 23.1.2.1. Reviewing the Settings tab
            1. 23.1.2.1.1. Anonymous Users
            2. 23.1.2.1.2. Administrator Role
            3. 23.1.2.1.3. Registration and Cancellation
            4. 23.1.2.1.4. Personalization
            5. 23.1.2.1.5. E-mails
          2. 23.1.2.2. Reviewing the Manage Fields tab
          3. 23.1.2.3. Reviewing the Manage Display tab
        3. 23.1.3. Reviewing the My Account page
      2. 23.2. Creating a New User
      3. 23.3. Managing Users
        1. 23.3.1. Editing user accounts
        2. 23.3.2. Blocking users
        3. 23.3.3. Canceling user accounts
      4. 23.4. Working with the Default Profiles
      5. 23.5. Controlling the Styling of the Default Profiles
        1. 23.5.1. Reviewing the default templates
          1. 23.5.1.1. Reviewing user-picture.tpl.php
          2. 23.5.1.2. Reviewing user-profile.tpl.php
          3. 23.5.1.3. Reviewing user-profile-category.tpl.php
          4. 23.5.1.4. Reviewing user-profile-item.tpl.php
        2. 23.5.2. Reviewing the default style sheets
        3. 23.5.3. Reviewing the themable functions
      6. 23.6. Using the Tracker Module
        1. 23.6.1. Enabling the module
      7. 23.7. Summary
    2. 24. Controlling User Access
      1. 24.1. Introducing Drupal's Access Controls
      2. 24.2. Adding a New Role
      3. 24.3. Assigning Users to Roles
      4. 24.4. Setting Permissions
        1. 24.4.1. Controlling global access
        2. 24.4.2. Blocking IP addresses
        3. 24.4.3. Controlling block level access
      5. 24.5. Summary
    3. 25. Configuring User Registration
      1. 25.1. Enabling User Registration
        1. 25.1.1. Drupal Authentication
        2. 25.1.2. Using OpenID
      2. 25.2. Managing Notifications
      3. 25.3. Working with the User Login Function
        1. 25.3.1. Using the Login block
        2. 25.3.2. Using the Login page
        3. 25.3.3. The Request Password function
      4. 25.4. Styling the Display
      5. 25.5. Summary
  11. VI. Customizing and Extending the System
    1. 26. Customizing Drupal's Appearance
      1. 26.1. Understanding How Themes Work
      2. 26.2. Knowing the Parts of a Theme
        1. 26.2.1. Directory structure
        2. 26.2.2. The theme files
          1. 26.2.2.1. The template files
          2. 26.2.2.2. The theme CSS
          3. 26.2.2.3. The role of the template.php file
      3. 26.3. Adding New Themes
      4. 26.4. Customizing Themes
        1. 26.4.1. Modifying themes through configuration
          1. 26.4.1.1. Changing page element options
          2. 26.4.1.2. Changing the logo
          3. 26.4.1.3. Using the Color module
        2. 26.4.2. Modifying themes by changing the code
          1. 26.4.2.1. Customizing the CSS
            1. 26.4.2.1.1. Modifying the CSS inside a theme
            2. 26.4.2.1.2. Overriding styles in the core or contributed modules
            3. 26.4.2.1.3. Adding new style sheets
          2. 26.4.2.2. Customizing templates
            1. 26.4.2.2.1. Modifying templates inside a theme
            2. 26.4.2.2.2. Overriding core templates
          3. 26.4.2.3. Controlling template display through template suggestions
          4. 26.4.2.4. Using theme functions
            1. 26.4.2.4.1. Overriding themable functions
            2. 26.4.2.4.2. Using variable process functions
      5. 26.5. Creating a New Theme
        1. 26.5.1. Requirements for a theme
        2. 26.5.2. Creating a custom sub-theme
          1. 26.5.2.1. Selecting a base theme
          2. 26.5.2.2. Creating the sub-theme
          3. 26.5.2.3. Customizing the sub-theme
      6. 26.6. Working with an Admin Theme
      7. 26.7. Summary
    2. 27. Customizing the Display of Content
      1. 27.1. Basic Principles
      2. 27.2. Introduction to Views
        1. 27.2.1. Overview of the Views framework
        2. 27.2.2. Installing Views
        3. 27.2.3. Getting started with Views
        4. 27.2.4. Creating new views
        5. 27.2.5. Editing and deleting views
      3. 27.3. Introduction to Panels
        1. 27.3.1. Installing Panels
        2. 27.3.2. Getting started with Panels
        3. 27.3.3. Creating new Panels
        4. 27.3.4. Editing and deleting panels
      4. 27.4. Summary
    3. 28. Customizing Drupal Functionality
      1. 28.1. Basic Principles
      2. 28.2. The Right Tools
        1. 28.2.1. The Devel module
        2. 28.2.2. The Coder module
        3. 28.2.3. Drush
        4. 28.2.4. Version control
      3. 28.3. The Drupal API
      4. 28.4. Customizing Modules
      5. 28.5. Creating a New Module
        1. 28.5.1. Creating a new module folder
        2. 28.5.2. Creating the .info file
        3. 28.5.3. Creating the .module file
        4. 28.5.4. Interacting with the database
        5. 28.5.5. Adding blocks to a module
      6. 28.6. Theming a Module
        1. 28.6.1. Reusing existing theme hooks
        2. 28.6.2. Implementing hook_theme()
        3. 28.6.3. Using preprocess functions
      7. 28.7. Summary
    4. 29. Extending Your Site
      1. 29.1. Finding Extensions
      2. 29.2. Working with Extensions
        1. 29.2.1. Adding new modules automatically
        2. 29.2.2. Adding new modules manually
        3. 29.2.3. Adding new themes automatically
        4. 29.2.4. Adding new themes manually
        5. 29.2.5. Uninstalling extensions automatically
        6. 29.2.6. Uninstalling extensions manually
      3. 29.3. Key Extensions to Address Common Issues
        1. 29.3.1. Improving content management and presentation
          1. 29.3.1.1. FCK Editor
          2. 29.3.1.2. Panels
          3. 29.3.1.3. Printer, e-mail, and PDF versions
          4. 29.3.1.4. Tagadelic
          5. 29.3.1.5. Taxonomy Manager
          6. 29.3.1.6. Views
          7. 29.3.1.7. WYSIWYG
        2. 29.3.2. Improving administration
          1. 29.3.2.1. Administration Menu
          2. 29.3.2.2. CAPTCHA
          3. 29.3.2.3. CAPTCHA Pack
          4. 29.3.2.4. Mollom
          5. 29.3.2.5. reCAPTCHA
        3. 29.3.3. Enhancing search
          1. 29.3.3.1. Apache Solr Search Integration
          2. 29.3.3.2. Core Searches
          3. 29.3.3.3. Porter-Stemmer
        4. 29.3.4. Enhancing forms
          1. 29.3.4.1. Login Toboggan
          2. 29.3.4.2. Webform
        5. 29.3.5. Improving navigation
          1. 29.3.5.1. Custom Breadcrumbs
          2. 29.3.5.2. DHTML Menu
          3. 29.3.5.3. Menu Breadcrumb
          4. 29.3.5.4. Nice Menus
          5. 29.3.5.5. Taxonomy Breadcrumb
          6. 29.3.5.6. Taxonomy Menu
        6. 29.3.6. Managing media
          1. 29.3.6.1. Album Photos
          2. 29.3.6.2. Fast Gallery
          3. 29.3.6.3. Lightbox 2
          4. 29.3.6.4. Video
          5. 29.3.6.5. Video Filter
          6. 29.3.6.6. Views Slideshow
        7. 29.3.7. Enabling community
          1. 29.3.7.1. Comment Notify
          2. 29.3.7.2. Fivestar
          3. 29.3.7.3. Organic Groups
          4. 29.3.7.4. Privatemsg
          5. 29.3.7.5. Service Links
          6. 29.3.7.6. Voting API
        8. 29.3.8. Adding geolocation functionality
          1. 29.3.8.1. GMap Module
          2. 29.3.8.2. Location
        9. 29.3.9. Enhancing SEO
          1. 29.3.9.1. Global Redirect
          2. 29.3.9.2. Google Analytics
          3. 29.3.9.3. Nodewords
          4. 29.3.9.4. Page Title
          5. 29.3.9.5. PathAuto
          6. 29.3.9.6. Search 404
          7. 29.3.9.7. Site Verify
          8. 29.3.9.8. XML Sitemap
        10. 29.3.10. Adding ad management
          1. 29.3.10.1. Advertisement
          2. 29.3.10.2. Google Ad Manager
        11. 29.3.11. For developers
          1. 29.3.11.1. Backup and Migrate
          2. 29.3.11.2. Devel
          3. 29.3.11.3. Drush
          4. 29.3.11.4. Theme Developer
          5. 29.3.11.5. Services
          6. 29.3.11.6. Skinr
      4. 29.4. Summary
    5. 30. Implementing eCommerce with Ubercart
      1. 30.1. Understanding Ubercart
        1. 30.1.1. Features
          1. 30.1.1.1. For customers
          2. 30.1.1.2. For site administrators
        2. 30.1.2. Using Ubercart
      2. 30.2. Obtaining and Installing Ubercart
        1. 30.2.1. Installation requirements
        2. 30.2.2. Integrating with an existing site
      3. 30.3. Configuring Ubercart
        1. 30.3.1. Configuring the required core
          1. 30.3.1.1. Managing Cart settings
            1. 30.3.1.1.1. General cart settings
            2. 30.3.1.1.2. Cart panes
            3. 30.3.1.1.3. Cart block
          2. 30.3.1.2. Managing Checkout settings
            1. 30.3.1.2.1. General checkout settings
            2. 30.3.1.2.2. Checkout panes
            3. 30.3.1.2.3. Checkout messages
            4. 30.3.1.2.4. Address fields
          3. 30.3.1.3. Managing Country settings
          4. 30.3.1.4. Managing Order settings
            1. 30.3.1.4.1. General order settings
            2. 30.3.1.4.2. Order workflow
            3. 30.3.1.4.3. Order panes
          5. 30.3.1.5. Managing Price handler settings
          6. 30.3.1.6. Managing Product settings
            1. 30.3.1.6.1. General product settings
            2. 30.3.1.6.2. Product fields
            3. 30.3.1.6.3. Product features
          7. 30.3.1.7. Managing Store settings
            1. 30.3.1.7.1. Contact settings
            2. 30.3.1.7.2. Display settings
            3. 30.3.1.7.3. Format settings
        2. 30.3.2. Core options
        3. 30.3.3. Ubercart extras
        4. 30.3.4. Fulfillment options
        5. 30.3.5. Payment options
      4. 30.4. Store Administration
        1. 30.4.1. Managing products
          1. 30.4.1.1. Creating new products
          2. 30.4.1.2. Working with existing products
        2. 30.4.2. Managing orders
        3. 30.4.3. Managing customers
        4. 30.4.4. Viewing reports
        5. 30.4.5. Creating conditional actions
      5. 30.5. Enhancing Ubercart
      6. 30.6. Summary
  12. VII. Drupal in the Enterprise
    1. 31. Securing Your Site
      1. 31.1. Security Best Practices
        1. 31.1.1. Securing the Drupal core
          1. 31.1.1.1. Protect directories and files
          2. 31.1.1.2. Protect access details
          3. 31.1.1.3. Remove unnecessary files
          4. 31.1.1.4. Protect version details
          5. 31.1.1.5. Maintain a sensible server setup
        2. 31.1.2. Securing third-party extensions
        3. 31.1.3. Securing your content
      2. 31.2. Keeping Up with Security Notices
      3. 31.3. Summary
    2. 32. Managing Site Performance
      1. 32.1. Addressing Typical Performance Concerns
        1. 32.1.1. Reducing server load via caching and resource aggregation
          1. 32.1.1.1. Introducing the site cache
          2. 32.1.1.2. Configuring the site cache
        2. 32.1.2. Reducing server load by controlling block visibility
        3. 32.1.3. Configuring additional performance settings
      2. 32.2. Testing Performance
        1. 32.2.1. Simulating system load
        2. 32.2.2. Using the Devel module to analyze performance
        3. 32.2.3. Analyzing the performance of Views
      3. 32.3. Summary
    3. 33. Creating a Search Engine-Friendly Site
      1. 33.1. Creating Search Engine-Friendly URLs
        1. 33.1.1. Enabling the Clean URLs feature
          1. 33.1.1.1. Configuring Clean URLs with Apache 2.2
          2. 33.1.1.2. Configuring Clean URLs with IIS 7
            1. 33.1.1.2.1. Verifying the Web Platform Installer availability
            2. 33.1.1.2.2. Enabling the URL Rewrite add-on
        2. 33.1.2. Working with the Path and Pathauto modules
          1. 33.1.2.1. Enabling the Path module
          2. 33.1.2.2. Managing Path module aliases
          3. 33.1.2.3. Enabling the Pathauto module
          4. 33.1.2.4. Configuring Pathauto alias patterns
      2. 33.2. Managing Canonicalization Issues
        1. 33.2.1. Understanding canonicalization issues
        2. 33.2.2. Configuring a canonical homepage URL
          1. 33.2.2.1. Configuring Apache 2.2 for canonical redirects
          2. 33.2.2.2. Configuring IIS 7.0 for canonical redirects
        3. 33.2.3. Configuring canonical content URLs
          1. 33.2.3.1. Installing and enabling the Global Redirect module
          2. 33.2.3.2. Configuring the Global Redirect module
          3. 33.2.3.3. Configuring Pathauto to work with the Redirect module
            1. 33.2.3.3.1. Understanding URL change management issues
            2. 33.2.3.3.2. Installing and enabling the Redirect module
            3. 33.2.3.3.3. Configuring Pathauto and Redirect to work together
      3. 33.3. Adding Content Metadata
        1. 33.3.1. Understanding the types of metadata
        2. 33.3.2. Taking control of your metadata
      4. 33.4. Adding Sitemaps with XML Sitemaps
      5. 33.5. Optimizing Page Templates
        1. 33.5.1. Understanding HTML semantics and templating practices
        2. 33.5.2. Understanding content semantics and RDFa
      6. 33.6. Creating Custom Error Pages
        1. 33.6.1. Creating custom 404 error pages
          1. 33.6.1.1. Choosing which approach to use
          2. 33.6.1.2. Configuring custom 404 content
        2. 33.6.2. Creating custom 403 error pages
          1. 33.6.2.1. Configuring custom 403 content
      7. 33.7. Summary
    4. 34. Making an Accessible Site
      1. 34.1. What Is Accessibility?
      2. 34.2. Drupal and Accessibility
        1. 34.2.1. Improving theme accessibility
          1. 34.2.1.1. Support semantic structure
          2. 34.2.1.2. Avoid tables
          3. 34.2.1.3. Don't rely on JavaScript
          4. 34.2.1.4. Use system fonts for your nav menus
          5. 34.2.1.5. Use appropriate capitalization
          6. 34.2.1.6. Use a suitable color scheme
          7. 34.2.1.7. Order elements on the screen logically
          8. 34.2.1.8. Make sure your text resizes
          9. 34.2.1.9. Use jump links
          10. 34.2.1.10. Make forms accessible
          11. 34.2.1.11. Provide hover states and visited states
          12. 34.2.1.12. Provide alternatives to applets and plugins
          13. 34.2.1.13. Avoid requiring timed responses
        2. 34.2.2. Creating accessible content
          1. 34.2.2.1. Use headings and styles correctly
          2. 34.2.2.2. Use lists correctly
          3. 34.2.2.3. Use alt image attributes
          4. 34.2.2.4. Summarize graphs and charts
          5. 34.2.2.5. Summarize multimedia
          6. 34.2.2.6. Format tabular data properly
      3. 34.3. Summary
    5. 35. Handling Change Management
      1. 35.1. Taking a Site Offline
      2. 35.2. Backing Up Your Site
      3. 35.3. Restoring from a Backup
      4. 35.4. Using the Update Manager Module
      5. 35.5. Managing Site Upgrades
        1. 35.5.1. Handling minor upgrades
        2. 35.5.2. Handling major version upgrades
      6. 35.6. Summary
  13. VIII. Appendixes
  14. A. The Directory Structure of a Drupal Installation
  15. B. Location of Key Files
    1. B.1. Aggregator
      1. B.1.1. Module
      2. B.1.2. Style Sheets
      3. B.1.3. Templates
    2. B.2. Blocks
      1. B.2.1. Module
      2. B.2.2. Style Sheets
      3. B.2.3. Templates
    3. B.3. Blog Content Type
      1. B.3.1. Module
    4. B.4. Book Content Type
      1. B.4.1. Module
      2. B.4.2. Style Sheets
      3. B.4.3. Templates
    5. B.5. Comments
      1. B.5.1. Module
      2. B.5.2. Style Sheets
      3. B.5.3. Templates
    6. B.6. Contact Module
      1. B.6.1. Module
    7. B.7. Forum
      1. B.7.1. Module
      2. B.7.2. Style Sheets
      3. B.7.3. Templates
    8. B.8. Menus
      1. B.8.1. Module
      2. B.8.2. Style Sheets
    9. B.9. Nodes
      1. B.9.1. Module
      2. B.9.2. Style Sheets
      3. B.9.3. Templates
    10. B.10. Polls
      1. B.10.1. Module
      2. B.10.2. Style Sheets
      3. B.10.3. Templates
    11. B.11. Profile
      1. B.11.1. Module
      2. B.11.2. Style Sheets
      3. B.11.3. Templates
    12. B.12. Search
      1. B.12.1. Module
      2. B.12.2. Style Sheets
      3. B.12.3. Templates
    13. B.13. System
      1. B.13.1. Module
      2. B.13.2. Style Sheets
      3. B.13.3. Templates
    14. B.14. Taxonomy
      1. B.14.1. Module
      2. B.14.2. Style Sheets
      3. B.14.3. Templates
    15. B.15. Users
      1. B.15.1. Module
      2. B.15.2. Style Sheets
      3. B.15.3. Templates
  16. C. Installing XAMPP
  17. D. Installing MAMP
  18. E. Beyond the Book—Additional Help Resources Online
    1. E.1. The Help Files Inside Drupal
    2. E.2. Online Help and Support Resources
    3. E.3. Using Community Support Options
    4. E.4. Finding Commercial Support