Developing Drupal 7 Websites: Developer Immersion (5 days)

This 5-day course is for full stack developers who want to see how Drupal works from the ground up. This class is for students who are programmers inheriting a Drupal development, preparing to update or build a new Drupal project, or looking to firm up best practice knowledge in preparation for the Acquia Certified Developer exam.

Quickly get developers running full speed ahead in Drupal, and convey a full understanding of how Drupal sites are constructed and how the system works.

Should I Take this Course?

This course is perfect for those who are:

  • Internal development team preparing for delivery of a new Drupal 7 development
  • Developer planning to build a new Drupal 7 website
  • Developer who is newly responsible for supporting a Drupal 7 website
  • Current Drupal Developer looking to firm up Acquia best practice knowledge for Drupal 7 Certification
Recommended Experience

Having a basic understanding of the following technologies is helpful, but not required:

  • Authoring content using a Content Management system
  • Experience with Drupal's administrative interface
  • Some HTML, CSS knowledge
  • Experience with PHP or other C based programming languages

Day 1: Site Building

  • Setting up a local environment
  • Planning Your New Site
    • What is Site Building?
    • Content Types
    • Taxonomy
    • Anatomy of a Drupal Page
  • Designing Structured Content Collection
    • Planning Content Types
    • Create a Content Type
    • Adding New Fields & Modifying Existing Fields
    • Adding Taxonomy Fields to Categorize Content
    • Manage Display: Modify Image Styles and Display
    • Set Permissions
    • Content Type Test Drive
  • Content Display and Organization
    • Introduction to Views
    • Create List of Content Using Views
    • Views Display Types
    • Adding Related Content with Views
    • Views Caching and Modules to Extend Views

Day 2: Site Building

  • Site Navigation and URLs
    • Custom URL Aliases
    • The Menu System
  • Module Configuration Workshop
    • Selecting Modules to Extend Drupal Functionality
    • 7 Step-by-Step Labs: experiement with common functionality including Calendar and complex Views
  • Customizing Appearance with Themes
    • What are Themes?
    • Install and Configure Themes
  • Content Workflows and Site Maintenance
    • Custom Content Editing, CKEditor
    • Workbench

Day 3: Layout & Theming

  • Drupal Theming Fundamentals
    • How Does Drupal Theming Work?
    • What are Themers?
    • Making a Simple Theme
    • Adding CSS and JavaScript to Themes
    • Anatomy of a Theme
  • Customizing Your Theme
    • Coding Standards in Drupal
    • Introduction to Overriding Template Files
    • Adding Regions to Themes and Templates
    • Basic Structures in PHP
  • Base Themes and Subtheming
    • What are Base and Starter Themes?
    • Using Subthemes
    • File Inheritance

Day 4: Module Development

  • Modules and the Drupal Framework
    • Drupal as a Framework
    • The Page Request Process
    • What are Hooks?
    • The Hook API and Selecting Hooks?
    • The Syntax and Anatomy of a Hook
    • Hook Conflict Resolution
  • Creating Your First Module
    • Module Naming, Location & Basic Requirements
    • Create mymodule
    • What is a Callback?
    • The Form Alter Hook
  • Exposing Node View with Red Link Module
    • Build the Red Link Module
    • Drupal Coding Standards
  • Building a Fully Functional Mailfish Module
    • Mailfish: Menu Hook for Local Tab
    • Mailfish: Drupal Form API
    • Mailfish: The Install File

Day 5: Module Development

  • Building a Fully Functional Mailfish Module (continued)
    • Mailfish: Database Integration I
    • Mailfish: Permissions
    • Mailfish: Block & Theme Systems
    • Mailfish: Menu Hook for Administrative Page
    • Mailfish: Reporting Results
    • Mailfish: Altering the Node Form
    • Mailfish: Database Integration II
    • Mailfish: Node Operations
  • Automated Testing
    • Using the Simpletest Module
    • Types of Testing
    • Writing Tests