Introducing Drupal (for developers)
Tools for developing Drupal code
Our goal: a module with a block
Business logic versus presentation logic
Reusing a default theme implementation
Steps to build a default theme implementation
Sending mail with drupal_mail() and hook_mail()
Our goal: a "dimensions" field
Exposing fields to the Form API with widgets
Using formatters to display our field
Drupal Permissions and Security
Using user_access() to assert permissions
Checking the proper user account
Declaring your own access functions
Responding when access is denied
Enabling permissions programmatically
Defining roles programmatically
Handling AJAX callbacks securely
Node Access compared to user_access() and other permission checks
When to write a node access module
Creating the role access module
Modifying the behavior of other modules
Testing and debugging your module
The Twitpic and watermark modules
Introducing installation profiles