Learning Drupal 6 Module Development
eBook - ePub

Learning Drupal 6 Module Development

Matt Butcher

Share book
  1. 328 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

Learning Drupal 6 Module Development

Matt Butcher

Book details
Book preview
Table of contents
Citations

About This Book

In Detail

With great power comes... tremendous flexibility. Drupal is an award-winning open-source Content Management System, and the feature-packed sixth release is right around the corner. It's a modular system, with an elegant hook-based architecture, and great code. These are a few of the perks that make Drupal a choice platform for developers who want the power of an established CMS, but the freedom to make it work for them. From social networking to AJAX to e-commerce, the hundreds of existing modules attest to Drupal's flexibility. When you create a new module for Drupal, it fits seamlessly into the look and feel of your overall site. If you can think it in PHP, you can code it as a Drupal module.

Dive into Drupal module development as we create the Philosopher Biographies website, developing new modules and themes to meet practical goals. Create custom content types. Add AJAX functionality with the jQuery library. Use external XML APIs to add content to your site. Email newsletters to site members. Use themes. Empower administrators with extra features. And bundle it all up in a custom installation profile. You won't find a "hello world" here!

If you're eager to start creating modules for Drupal 6, this is your book. Walk through the development of complete Drupal modules with this primer for PHP programmers. Specifically written for Drupal 6, this book will get you coding modules as quickly as possible, and help you add the features that will give your work that professional gloss!

Just getting started with Drupal development? This book will give you a clear, concise and, of course, practical guidance to take you from the basics of creating your first module to developing the skills to make you a Drupal developer to be reckoned with.

Are you a Drupal developer looking to update to version 6? This book covers the new and updated APIs to guide your transition to Drupal 6. The new menu system, the Forms and Schema APIs, and many core revisions are covered in this book.

Walk through the development of complete Drupal 6 modules with this primer for PHP programmers, written specifically for Drupal 6 to get you started coding your first module.

Are you a Drupal developer looking to update to version 6? This book covers the new and updated APIs to guide your transition to Drupal 6. The new menu system, the Forms and Schema APIs, and many core revisions are covered in this book.

 

Who this book is for

This book is written for PHP developers who want to add custom features to Drupal. You will need to know the basics of PHP and MySQL programming, but no experience of programming Drupal is required, although you will be expected to be familiar with the basic operation of Drupal.

Frequently asked questions

How do I cancel my subscription?
Simply head over to the account section in settings and click on “Cancel Subscription” - it’s as simple as that. After you cancel, your membership will stay active for the remainder of the time you’ve paid for. Learn more here.
Can/how do I download books?
At the moment all of our mobile-responsive ePub books are available to download via the app. Most of our PDFs are also available to download and we're working on making the final remaining ones downloadable now. Learn more here.
What is the difference between the pricing plans?
Both plans give you full access to the library and all of Perlego’s features. The only differences are the price and subscription period: With the annual plan you’ll save around 30% compared to 12 months on the monthly plan.
What is Perlego?
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Do you support text-to-speech?
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Is Learning Drupal 6 Module Development an online PDF/ePUB?
Yes, you can access Learning Drupal 6 Module Development by Matt Butcher in PDF and/or ePUB format, as well as other popular books in Computer Science & Information Technology. We have over one million books available in our catalogue for you to explore.

Information

Year
2008
ISBN
9781847194442
Edition
1

Learning Drupal 6 Module Development

Matt Butcher


Table of Contents

Learning Drupal 6 Module Development
Credits
About the Author
About the Reviewers
Preface
What This Book Covers
Who Is This Book For?
Conventions
Reader Feedback
Customer Support
Downloading the Example Code for the Book
Errata
Questions
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
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
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
Custom Breadcrumbs
Interacting with Other Theme Functions
template.php Gotchas
Creating a Screenshot
From Here to a Full Theme
Summary
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
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
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
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
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
Creating Filters
The First Filter: News Brief Placeholders
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
Theming Content before Returning It
Completing the Action: Theming and Mailing
Theme Functions
The hook_mail() Implementation
Adding a Trigger
Summary
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
Creating a Content Type
Creating a Trigger
Moving to the Next Task
The 'profile' Task is Special
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
Index

Learning Drupal 6 Module Development

Copyright © 2008 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, Packt Publishing, nor its dealers or distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: May 2008
Production Reference: 1020508
Published by Packt Publishing Ltd.
32 Lincoln Road
Olton
Birmingham, B27 6PA, UK.
ISBN 978-1-847194-44-2
www...

Table of contents