Learning Drupal 6 Module Development Table of Contents

Back to BOOK PAGE

Table of Contents

Preface
Chapter 1: Introduction to Drupal Modules
Chapter 2: Creating Our First Module
Chapter 3: The Theme System
Chapter 4: Theming Modules
Chapter 5: Using JavaScript and AJAX/JSON in Modules
Chapter 6: An Administration Module
Chapter 7: Building a Content Type
Chapter 8: Filters, Actions, and Hooks
Chapter 9: An Installation Profile
Index

  • Chapter 1: Introduction to Drupal Modules
    • Drupal's Architecture
      • Module Architecture
        • Core Modules
        • Hooks
      • Themes
    • Crucial Drupal Concepts
      • Nodes
        • Comments Are Not Nodes
      • Users
        • Access and Security
      • Blocks and Page Rendering
      • Menus
      • Forms
      • Database and Schema APIs
    • Developers' Tools
      • Developer Module
      • Coder Module
    • A Word on Our Demonstration Site
    • Summary
  • Chapter 2: Creating Our First Module
    • Starting Out
      • A Place for the Module
      • Creating a .info File
    • A Basic .module File
      • Our Goal: A Block Hook
      • Starting the .module
      • The hook_block() Implementation
        • The t() Function
        • A view Operation
    • Installing a Module
      • Step 1: Copying the Module
      • Step 2: Enabling the Module
      • Step 3: Displaying the Module's Content
    • Using Goodreads Data
      • Modifying the Block Hook
      • Retrieving XML Content over HTTP
        • The watchdog() Function
      • Processing the HTTP Results
      • Formatting the Block's Contents
    • Finishing Touches: hook_help()
    • Summary
  • Chapter 3: The Theme System
    • The Theme System's Architecture
      • Theme Templates
      • Theme Engines
      • Theme Hooks
    • Creating a Custom Theme
      • Organization of Themes
        • Sub-themes (Derivative Themes)
        • How Each Theme Functions
      • Creating a Theme
        • Creating the Theme Directory
        • A .info File
        • A CSS Stylesheet
      • A PHPTemplate Theme
        • Template Structure
        • A Page Template for Descartes
        • Using PHP to Override Theme Behavior
        • template.php Gotchas
        • Creating a Screenshot
      • From Here to a Full Theme
    • Summary
  • Chapter 4: Theming Modules
    • Our Target Module: What We Want
    • Creating a Custom Content Type
      • Using the Administration Interface to Create a Content Type
        • Content and Nodes
    • The Foundations of the Module
    • A Simple Database Lookup
      • Getting the Node ID
      • Getting the Node's Content
    • Theming Inside a Module
      • Registering a Theme
      • Creating a Theme Hook Function
      • Adding a Stylesheet
    • Overriding the Default Theme from a Theme
      • A Quick Clarification
      • Overriding the Default Theme's CSS
      • Overriding Layout with Templates
    • Summary
  • Chapter 5: Using JavaScript and AJAX/JSON in Modules
    • Picking up Where We Left Off
    • Introducing jQuery
      • Modifying HTML with jQuery
      • Checking for JavaScript Support with Drupal
        • Namespaces in JavaScript
        • Drupal's Namespace
        • A Drupal Function: Drupal.jsEnabled()
      • Delaying JavaScript Execution with jQuery
      • Including JavaScript from the Module's Theme
    • Writing a Drupal AJAX/JSON Service
      • The JSON Format
      • Our Module Roadmap
      • Server Side: Defining a New Page
        • Creating a JSON Message
        • Mapping a Function to a URL
        • Passing PHP Settings to JavaScript
      • Client Side: AJAX Handlers
        • A JavaScript Function to Get JSON Content
        • Adding an Event Handler
    • Summary
  • Chapter 6: An Administration Module
    • The emailusers Module
    • The Beginning of the Module
      • Mail Configuration
    • Registering an Administration Page
      • A Detailed Look at the Path
        • Marking the Path as an Administration Page
      • Path Registration Parameters
      • Defining the Callback Function
    • Handling Forms with the Forms API (FAPI)
      • Loading a Form with drupal_get_form()
      • A Form Constructor
      • Handling Form Results
      • The Form Submissions Callback
    • Sending Mail with the Mail API
      • Formatting Mail with hook_mail()
      • Altering Messages with hook_mail_alter()
        • Altering Hooks
        • Adding a Mail Footer
    • Incorporating the Module into Administration
      • Modifying the User Profile with hook_user()
        • Constructing the Content
    • Summary
  • Chapter 7: Building a Content Type
    • The biography Module
    • The Content Creation Kit
    • The Starting Point
    • The Module Installation Script
      • The Schema API: Defining Database Structures
        • A First Look at the Table Definition
        • Defining Fields (Columns)
        • Defining Keys and Indexes
    • Correlating the New Table with Nodes
    • The Content Creation Form
      • Overriding hook_form() Defaults
      • Adding New hook_form() Form Elements
  • Access Controls
  • Database Hooks
    • Database Inserts with hook_insert()
    • Updating and Deleting Database Records
  • Hooks for Getting Data
    • Loading a Node with hook_load()
    • Preparing the Node for Display with hook_view()
  • Theming Biography Content
    • Registering a Theme
    • The biography_info.tpl.php Template
    • The Results
  • Summary
  • Chapter 8: Filters, Actions, and Hooks
    • The sitenews Module
    • Getting Started
      • Citing Dependencies in the .info File
      • The Beginning of the .module File
    • A Simple Content Type, Defined in Code
    • Creating Filters and an Input Format
      • The Second Filter: Remove All Tags
    • Adding an Input Format
  • The Beginning of an Action
    • Implementing hook_action_info()
    • The Action Callback
  • Defining a Hook
    • Invoking a Custom Hook
      • So What Is a Hook?
    • Creating a hook_sitenews() Function
    • Implementing hook_sitenews() in Other Modules
      • In the philquotes Module
      • In the biography Module
  • Completing the Action: Theming and Mailing
    • Theme Functions
    • The hook_mail() Implementation
  • Adding a Trigger
  • Summary
  • Chapter 9: An Installation Profile
    • Introducing Installation Profiles
      • Why Use Installation Profiles?
    • Setting up a Distribution
      • Creating a Profile Directory
    • Programming Profiles
    • The .profile Script
      • The Details Function
      • The Modules List
    • The Installation Task System
      • The Profile Task
        • A Basic Profile Task
        • A Complex Profile Task
        • Moving to the Next Task
      • Registering a New Task
      • The Theme Selection Form
      • Returning to the philosopherbios_pick_theme Task
        • The Submission Handler
      • Finishing the Installation Profile
    • Packaging the Distribution
    • Summary

Back to BOOK PAGE

Awards Voting Nominations Previous Winners
Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
Resources
Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
Sort A-Z