Drupal 7 Development by Example
Installing an Apache, MySQL, and PHP stack
Time for action — — downloading the latest version of MAMP
Time for action — — downloading the latest version of XAMPP
Time for action — — modifying php.ini settings
Time for action — — modifying the MySQL my.cnf settings
Time for action — creating an empty MySQL database
Time for action — installing Git for Mac OS X
Time for action — installing Git for Windows
Time for action — installing Drush for Mac OS X
Time for action — installing Drush for Windows
Time for action — installing Drupal 7
Installing the Aptana Studio IDE
Time for action — installing the Aptana IDE
Time for action — creating a new Aptana Studio PHP project
Time for action — setting up the Drupal content type associations
Time for action — installing the Drupal-specific Aptana formatter profile
Drupal.org from a developer's perspective
Custom Content Types and an Introduction to Module Development
Creating custom Recipe content type
Time for action — creating a custom Recipe content type
Time for action — developing a custom module
Time for action — installing the Views module
Time for action — creating a recipe block listing with Views
Time for action — installing the Devel Generate content module
Time for action — generating content with the devel_generate module
HTML5 Integration for Drupal 7 and More Module Development
First things first—changing our DOCTYPE
Time for action — installing the HTML5 Tools module
Time for action — installing the Microdata module
Time for action — configuring Microdata for our Recipe content type
Time for action — creating issues in Contrib modules' issue queues
Time for action — adding Microdata mappings for Recipe number_integer fields
Time for action — developing a custom module for a compound NutritionInformation field
Time for action — updating the Recipe content type to use the NutritionInformation field
Introduction to Drupal 7 Theme Development
Time for action — installing a base theme
Time for action — creating a sub-theme and setting it as our default theme
Time for action — creating a sub-theme and setting as default theme with Drush
Time for action — configuring our Omega-based sub-theme
Manage the display for a content type
Time for action — implementing hook_preprocess_node
An introduction to the Drupal 7 field group module
Time for action — creating the wrapper with display suite
Enhancing the Content Author's User Experience
Developing a custom block for adding content
Time for action — developing a custom block for adding recipes
Introduction to the WYSIWYG module
Time for action — installing and configuring the Wysiwyg module
Time for action — deleting all Devel-generated recipe content
Time for action — adding my Cannellini Cumin Chicken Chili recipe
Developing a custom contenteditable module
Time for action — developing an HTML5 contenteditable module
Introduction to the Media module
Time for action — using Drush to install a dev version of the Media module
Time for action — adding a Media field to our Recipe content type
Custom image styles and inline Media for WYSIWYG
Time for action — adding a custom image style through the image styles administrative page
Time for action — creating a programmatic custom image style
Time for action — configuring WYSIWYG inline Media for the basic page content type
Integrating the Colorbox and Media modules
Time for action — installing the Colorbox module
Time for action — applying and testing the patch for the Colorbox File module
How Does it Taste — Getting Feedback
Introduction to the Drupal contact form
Time for action — enabling and configuring the core contact form
Adding descriptive help text to our contact form
Time for action — adding help text to our site contact form
Time for action — creating a contact form with help text, with the Webform module
A more in-depth look at the Webform module
Time for action — using hook_form_FORM_ID_alter to modify our Webform-based contact form
Time for action — enhancing the Colorbox File module with field-based captions
Time for action — installing and configuring the Fivestar module
Time for action — creating a custom Fivestar widget
Recipe Lists and More with Views
Views revisited—advanced configuration
Time for action — building a random top rated recipe block with views
Time for action — creating a cuisine vocabulary to organize recipes
Time for action — creating a Recipes by cuisine type Views block
Time for action — developing a Views style plugin for Semantic tabs
Promoting the Colorbox File module as a full project
Time for action — installing and using the Coder module
Time for action — committing Colorbox File module changes to Drupal Git Repository
Rotating Banners and Project Promotion
Rotating banner with Views Slideshow
Time for action — installing the Views Slideshow module
Time for action — creating a custom Drush command to install the jQuery Cycle plugin
Time for action — creating a banner using the Views Slideshow module
Time for action — updating the front banner view to include a slideshow pager
Promoting a sandbox project to a full project
Time for action — implementing hook_uninstall for the Colorbox File module
Time for action — uninstalling and renaming the Colorbox File module
Time for action — promoting the Media Colorbox module to be a full project on Drupal.org
Test Your Code with SimpleTest
Time for action — creating a unit test case for the D7Dev duration formatter
Time for action — creating a web test case for the D7Dev duration formatter
Introduction to the Features Module and Configuration Management
Introduction to the Features module
Time for action — installing the Features module
Time for action — creating a Recipe content type feature