You are previewing Leveraging Drupal®: Getting Your Site Done Right.
O'Reilly logo
Leveraging Drupal®: Getting Your Site Done Right

Book Description

This book is a step-by-step guide and a hands-on co-piloted experience for those trying to make Drupal powered websites work for them, and for their clients. Much more than a "tutorial", what is needed is a nuts-and-bolts living mentor and guide which really shows the reader how to do the things really required for bringing it all together in a site which works. This will be the only book covering all the difficult components of Drupal: views, panels, themes, content creation, etc. The book will cover:

  • How to upgrade your hopelessly outdated and obsolete-software dependent site and bring it into the Drupal mainstream and future

  • How to become a great Drupal themer and make "non-Drupal" looking sites

  • How to really customize Drupal for your real needs

  • How to start using best practices in Drupal web application development

  • How to work like the pro Drupal shops and be ready for big projects - and small ones

  • Learn by example (code samples, theme samples, videos) at every step

Table of Contents

  1. Copyright
  2. About the Author
  3. Credits
  4. Acknowledgments
  5. Introduction
    1. Whom This Book Is For
    2. What This Book Covers
    3. How This Book Is Structured
    4. What You Need to Use This Book
    5. Conventions
    6. Source Code
    7. Errata
    8. p2p.wrox.com
  6. I. Launching Your Website as a Software Project
    1. 1. Keeping It Simple
      1. 1.1. Getting with the "Program"
        1. 1.1.1. Starting with a Map for Business Vision and Scope
        2. 1.1.2. Who's Going to Use the Site?
        3. 1.1.3. What Are They Going to Use It For?
        4. 1.1.4. What Needs to Be Done So They Can Do That?
        5. 1.1.5. When Should You Do That?
        6. 1.1.6. What Should It Look Like?
        7. 1.1.7. Making Sure You're Getting What You Really Want
        8. 1.1.8. Turning Over the Helm
      2. 1.2. Information Architecture and an Agile Approach for the Rest of Us
      3. 1.3. The Example Used throughout This Book
      4. 1.4. Summary
    2. 2. Taking Baby Steps
      1. 2.1. Creating an Initial Environment
        1. 2.1.1. Installing Drupal as a "One-Click" Pre-Installed Script
        2. 2.1.2. Installing Drupal Right
          1. 2.1.2.1. Creating a MySQL Database
          2. 2.1.2.2. Downloading Drupal
            1. 2.1.2.2.1. Using FTP
            2. 2.1.2.2.2. Doing It on the Command Line
            3. 2.1.2.2.3. Installing Drupal into the Root Directory
            4. 2.1.2.2.4. Doing It with CVS
          3. 2.1.2.3. Making Sure the Settings File Is Writeable
          4. 2.1.2.4. Pointing Your Browser at the Drupal Installation
          5. 2.1.2.5. Creating Your First Users
      2. 2.2. Whipping up the Initial Prototype
        1. 2.2.1. Implementing Roles
        2. 2.2.2. Implementing the Business Objects
        3. 2.2.3. Putting the First Role to Work (Initial Basic CMS Workflow...)
      3. 2.3. Summary
      4. 2.4. References
    3. 3. Getting Organized
      1. 3.1. Reviewing the Initial Environment
        1. 3.1.1. Housekeeping the SVN Repository and Trac Instance
        2. 3.1.2. Main Directory Structure for Drupal
          1. 3.1.2.1. Using Version Control
          2. 3.1.2.2. What to Do about the Database
          3. 3.1.2.3. Using phpMyAdmin
        3. 3.1.3. Main Directory Structure for the Repository
        4. 3.1.4. Initial Import of the Codebase into the Repository
        5. 3.1.5. Getting the Test Site Up and Running
          1. 3.1.5.1. In a Nutshell
          2. 3.1.5.2. Using a Dedicated Server or VPS
          3. 3.1.5.3. settings.php File
      2. 3.2. Building on Your Initial Prototype
        1. 3.2.1. Creating the literary_piece Content Type
        2. 3.2.2. Enabling Comments for the literary_piece Content Type
        3. 3.2.3. Creating Some Magazines and Books
        4. 3.2.4. Setting up Some Forums
        5. 3.2.5. Setting up Blogs
        6. 3.2.6. Completing the Primary Menu
        7. 3.2.7. Committing to the Repository and Tagging the Initial Prototype
        8. 3.2.8. Deploying to the Test Site
      3. 3.3. Getting Initial Feedback from the Client
      4. 3.4. Summary
    4. 4. Getting up to Speed
      1. 4.1. Finishing the User Stories with the Client
        1. 4.1.1. User Story 4-1: Workshop Leader Can Approve Applications to Join the Workshop
          1. 4.1.1.1. Card
          2. 4.1.1.2. Conversation
          3. 4.1.1.3. Confirmation
      2. 4.2. Planning the Project
        1. 4.2.1. Doing It on the Dining Room Table
        2. 4.2.2. Doing It with Trac
        3. 4.2.3. Doing It
        4. 4.2.4. Committing, Deploying to Test, Testing, Tracking
      3. 4.3. Working on the Architectural Baseline
      4. 4.4. Getting the Team Organized and with the Program
        1. 4.4.1. Whom Do You Need?
        2. 4.4.2. "Who You Gonna Call?"
      5. 4.5. Elaboration Phase Cleanup
      6. 4.6. Summary
  7. II. Getting Your 5.x Site Up-To-Date
    1. 5. Finishing up the Elaboration Phase
      1. 5.1. Creating an Initial Environment
        1. 5.1.1. How Can I Easily Update the Drupal Release?
        2. 5.1.2. How Can I Update Modules Easily and Cleanly?
      2. 5.2. Whipping up the Initial Prototype
        1. 5.2.1. A Workshop Leader Can Manage Affinity Groups
        2. 5.2.2. A Workshop Leader Can Broadcast Messages to Members
      3. 5.3. What's Left?
      4. 5.4. Working on the Architectural Baseline
      5. 5.5. Summary
    2. 6. Pushing the Envelope
      1. 6.1. You've Got Mail!
      2. 6.2. Using Your Own dev Affinity Group
      3. 6.3. Rolling Your Own Document Case and Index
        1. 6.3.1. Implementing the Document Case
        2. 6.3.2. Views-Sorting Tweak
      4. 6.4. Now, Where Were We?
        1. 6.4.1. Creating Role-Specific Navigation Menu Blocks
        2. 6.4.2. Creating the Menus and Navigation Blocks
      5. 6.5. Browsing and Filtering Views of Literary Pieces
        1. 6.5.1. Example: The Beta Milestone
        2. 6.5.2. Allowing Filtered HTML Formatting in the Text Area
        3. 6.5.3. The Tagadelic Module
        4. 6.5.4. Creating the View Itself
        5. 6.5.5. Using Exposed Filters with the View
        6. 6.5.6. Using Categories and Tag Clouds for Project Management
      6. 6.6. Summary
    3. 7. Becoming an Expert Drupal Themer
      1. 7.1. On to Theming
        1. 7.1.1. Dividing and Conquering Complexity
        2. 7.1.2. Understanding Dynamic Content
        3. 7.1.3. Specifying Structure
          1. 7.1.3.1. Creating Additional Regions
          2. 7.1.3.2. Adding a Quote Region
          3. 7.1.3.3. Populating the Quote Region with a Custom Block
          4. 7.1.3.4. Enabling the Block in a New Region
        4. 7.1.4. Specifying Style
        5. 7.1.5. Synching Your Work with the Repository and the Test Site
        6. 7.1.6. Weak and Strong Points in Separation of Concerns with Drupal
      2. 7.2. Standing on the Shoulders of Giants — Reusing the Zen Theme
        1. 7.2.1. Creating Subthemes
        2. 7.2.2. Applying the Subtheme to the Quotation Block
          1. 7.2.2.1. Fixing It So That the Quote Doesn't Appear on the Front Page
          2. 7.2.2.2. Creating a Background for the Quote Block
      3. 7.3. Summary
  8. III. Upgrading Your Drupal Site
    1. 8. Upgrading to Drupal 6
      1. 8.1. Recommended Reading
      2. 8.2. Upgrading — The Basic Process
      3. 8.3. Step 1: Shifting Everything over to a Test Site
        1. 8.3.1. Installing Using a Complete Backup from Your Hosting
        2. 8.3.2. Quick and Dirty on the Command Line
      4. 8.4. Step 2: Updating to the Latest Drupal 5.x Version Available
        1. 8.4.1. Updating to 5.x Steps
        2. 8.4.2. The Sad State of My Modules
        3. 8.4.3. Doing What I Did
      5. 8.5. Step 3: Testing Everything in the Upgraded 5.x Version
      6. 8.6. Step 4: Making a Module Inventory
      7. 8.7. Step 5: Switching to the Default Drupal Theme
      8. 8.8. Step 6: Disabling All Contributed Modules
      9. 8.9. Step 7: Updating the Drupal Core
      10. 8.10. Step 8a: Enabling the Modules
      11. 8.11. Step 8b: Upgrading the Theme
      12. 8.12. Step 9: Re-running All Site Acceptance Tests
      13. 8.13. Step 10: Deploying
      14. 8.14. Summary
    2. 9. Upgrading to Drupal 6 Revisited
      1. 9.1.
        1. 9.1.1. Shifting Everything over to a Test Site
      2. 9.2. Update Everything to the Latest Drupal 5.x Version
      3. 9.3. Module Inventory for the On-Line Literary Workshop
      4. 9.4. Preparatory Steps before the Point of No Return
      5. 9.5. Physically Replacing the Drupal 5 Contributed Modules
      6. 9.6. Update Drupal Core and Run the Update Script
      7. 9.7. Solving Problems with Organic Groups
        1. 9.7.1. Escaped PHP Showing up in My Groups View
        2. 9.7.2. Group Home Pages No Longer Showing the Group's Posts
      8. 9.8. Getting the Old Views Back
      9. 9.9. Installing the Advanced Help Module
      10. 9.10. Upgrading Your Zen Theme to Drupal 6.x
      11. 9.11. The All-New Devel Module
      12. 9.12. Committing and Deploying to the Test Site
      13. 9.13. Summary
  9. IV. Getting the Most out of Drupal 6.x
    1. 10. Installing and Using Drupal 6 Fresh out of the Box
      1. 10.1. Step 1: Installing Drupal — Easier Than Ever Before
        1. 10.1.1. Downloading Drupal
        2. 10.1.2. Unzipping and Preparing Files for Upload
        3. 10.1.3. Uploading Files
        4. 10.1.4. Creating the Database and User for the Drupal Installation
        5. 10.1.5. Running the Drupal Install Wizard
      2. 10.2. Step 2: Designing and Building the Architecture
        1. 10.2.1. Application Scope and Domain
        2. 10.2.2. Creating Roles and Users
        3. 10.2.3. Installing and Enabling Modules
        4. 10.2.4. Making the Site Bilingual
      3. 10.3. Step 3: Creating the Business Objects
      4. 10.4. Step 4: Creating the Workflows
        1. 10.4.1. Implementing the Registration Workflow
        2. 10.4.2. Implementing the Client's Workflow
        3. 10.4.3. Implementing the Translator Team Leader's Workflow
          1. 10.4.3.1. Team Leader Registration Workflow
          2. 10.4.3.2. Team Leader's Translation Workflow
        4. 10.4.4. Implementing the Translator's Workflow
      5. 10.5. Summary
    2. 11. Full Swing Agile Approach to Drupal Development
      1. 11.1. Honing the Project Tools
        1. 11.1.1. Adding an Acceptance Test Node
        2. 11.1.2. Make a View to List User Stories
        3. 11.1.3. Making the User List Available
        4. 11.1.4. Creating a Block Menu to Easily Access the New View
      2. 11.2. Implementing the User Stories
        1. 11.2.1. Workshop Member: Starting an Affinity Group with Its Own Forums
          1. 11.2.1.1. Working with the Conversation and Confirmation Sections
          2. 11.2.1.2. Making Options Appear in the Place Menu
          3. 11.2.1.3. Adding a Forum Topic
        2. 11.2.2. A Publisher Can Browse Public Content
          1. 11.2.2.1. Enabling the Places Menu Block
        3. 11.2.3. A Publisher Can Select Content for Inclusion in a Publication
        4. 11.2.4. A Publisher Can Manage a Publication
        5. 11.2.5. A Publisher Can Broadcast a Call for Pieces to be Submitted for a Publication
        6. 11.2.6. Initial Theming
          1. 11.2.6.1. Getting the Header in Place
          2. 11.2.6.2. Invert the Printing of div#site-name and div#logo in page.tpl.php
          3. 11.2.6.3. CSS Layout and Styling Changes
          4. 11.2.6.4. Configure Logo to Point to clouds.jpg
          5. 11.2.6.5. Results So Far
          6. 11.2.6.6. Theming the Primary Menu
          7. 11.2.6.7. Theming the Quotations Block and the Left Sidebar Regions
          8. 11.2.6.8. Theme the Main Content Area
          9. 11.2.6.9. Theme the Footer
      3. 11.3. On-Line Blog Functionality
        1. 11.3.1. Implementing Service Links
        2. 11.3.2. Implementing the Author Info Block for Individual Blogs
        3. 11.3.3. Implementing Recent Posts Block
        4. 11.3.4. Implementing the Blogroll
      4. 11.4. Summary
    3. 12. The jQuery Chapter
      1. 12.1. Anatomy of a Rich Internet Application Framework
        1. 12.1.1. The Basics
        2. 12.1.2. Getting at the DOM with CSS
        3. 12.1.3. Getting at the DOM with JavaScript
      2. 12.2. Anatomy of jQuery and Its Plug-Ins
        1. 12.2.1. jQuery Itself
        2. 12.2.2. Our onload() Example Implemented with jQuery
        3. 12.2.3. A Theming Example
        4. 12.2.4. Plug-Ins
      3. 12.3. Drupal 5.x Uses of jQuery and Other JavaScript Libraries
        1. 12.3.1. jstools
        2. 12.3.2. Prototype and script.aculo.us
        3. 12.3.3. Drupal 5.x UI
        4. 12.3.4. The jQuery Update Module
      4. 12.4. Advanced Drupal 5.x Examples
        1. 12.4.1. Reusing the Collapsible Widget
        2. 12.4.2. Dependent Autocomplete Fields
          1. 12.4.2.1. Step 1: MENU_CALLBACK URI Setup
          2. 12.4.2.2. Step 2: Attach the Overriding URI
          3. 12.4.2.3. Step 3: The Handler
        3. 12.4.3. Making Use of Hierarchical Select (Drupal 5.x)
      5. 12.5. Validate, Validate, Validate!
        1. 12.5.1. Drupal 5.x Thread
        2. 12.5.2. Drupal 6 Thread: An Ajax-Validated Application Form
          1. 12.5.2.1. Creating litworkshop.info and litworkshop.module
          2. 12.5.2.2. Getting the Plug-in to Function
      6. 12.6. Drupal 6.x jQuery Breakthrough
        1. 12.6.1. An Example jQuery Ajax Alarm Module for Drupal 6.x
          1. 12.6.1.1. Creating a Simple View
          2. 12.6.1.2. Implementing the Functionality
      7. 12.7. Summary
  10. V. Drupal 7 and the Road Ahead
    1. 13. From Drupal 6 to Drupal 7 and Beyond
      1. 13.1. What's Changed in Drupal 6?
      2. 13.2. Killing the Webmaster
      3. 13.3. Understanding the Drupal Blueprint from Drupal 7 On
      4. 13.4. Making the Historic Decision to Postpone the Drupal 7 Code Freeze
      5. 13.5. Listing the Drupal 7 Features
      6. 13.6. Drupal 7 Architectural Style
        1. 13.6.1. Drupal 7 Database API
        2. 13.6.2. Going PHP 5
        3. 13.6.3. Considering Usability Concerns, Usability Sprints
          1. 13.6.3.1. Studying Usability
          2. 13.6.3.2. Usability Group
          3. 13.6.3.3. drupal.org Face-Lifting
          4. 13.6.3.4. Documentation Team
      7. 13.7. Projecting Drupal 7 Contributed Module Battle Plans
      8. 13.8. Installing Drupal 7
      9. 13.9. Developing a Minimalist On-Line Literary Workshop in Drupal 7
      10. 13.10. Creating Literary Pieces
      11. 13.11. Summary
    2. 14. Deploying your Application as a Drupal Installation Profile
      1. 14.1. Leveraging the Advanced Help Module
        1. 14.1.1. Analyzing the Components of the Views 2 Help System
        2. 14.1.2. Planning the On-Line Literary Workshop Help System
        3. 14.1.3. Implementing the On-Line Literary Workshop Help System
          1. 14.1.3.1. Creating the .ini File
          2. 14.1.3.2. Creating One HTML File for Each Entry
          3. 14.1.3.3. Theming in the On-Line Help Icon
      2. 14.2. Installing Profiles! Kill the Webmaster!
        1. 14.2.1. What Are Installation Profiles?
        2. 14.2.2. Analyzing Drupalbin: An Example Installation Profile
      3. 14.3. Writing the On-Line Literary Workshop Installation Profile
        1. 14.3.1. Starting with a Clean Drupal Installation Tarball
        2. 14.3.2. Copying in the Modules and the Theme
        3. 14.3.3. Abstracting out the Views into the litworkshop Module
          1. 14.3.3.1. Exporting the Website Application Views
          2. 14.3.3.2. The Views Include File
        4. 14.3.4. Preparing the ./profile Directory
        5. 14.3.5. Caveats
        6. 14.3.6. Creating the Drupal Installation Tarball Itself
      4. 14.4. Summary
    3. 15. Acquia Drupal as an Enterprise-Ready Alternative
      1. 15.1. Trying out Acquia Drupal
        1. 15.1.1. Step 1: Creating a Subscription
        2. 15.1.2. Step 2: Setting up Acquia Drupal
        3. 15.1.3. Step 3: Registering Your Website with the Acquia Network
        4. 15.1.4. Step 4: Getting Support
      2. 15.2. Exploring the New Acquia Drupal Website Installation
      3. 15.3. Installing Updates
      4. 15.4. Introducing the Acquia Marina Theme
      5. 15.5. Checking out Mollom
      6. 15.6. Using the Acquia Partner Program
      7. 15.7. Summary