| |
Back to BOOK PAGE
Table of ContentsPreface 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
- Crucial Drupal Concepts
- 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
- 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
- Chapter 4: Theming Modules
- Our Target Module: What We Want
- Creating a Custom Content Type
- Using the Administration Interface to Create a Content Type
- 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
- 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
- Chapter 6: An Administration Module
- The emailusers Module
- The Beginning of the Module
- 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()
- 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
- 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
- The Beginning of an Action
- Implementing hook_action_info()
- The Action Callback
- Defining 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
- 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
- Finishing the Installation Profile
- Packaging the Distribution
- Summary
Back to BOOK PAGE
| |
|