Drupal 7 Module Development

Learn to create your own modules for Drupal 7

Course Overview

In this course, you will learn to build your own custom modules for Drupal. Covering the Drupal 7 core API and the Views module API, you'll discover the most commonly-used Drupal hooks and functions and find out how to use Drupal's documentation to learn about the rest. You'll develop several modules step-by-step, while following best practices to ensure maintainability and interoperability with other modules. This course covers the Drupal hook system, the database API, the form API, Views module API, security and performance best practices. This course is taught by a practicing Drupal developer and will take a pragmatic approach to development based on real-world experience.

Who is it for?

This course is for anyone who wants to create their own Drupal modules. It targeted a web developers, system integrators, and anyone who want to tweak Drupal's behavior to meet their needs.

Pre-requisites: This course was designed for those who have experience with Drupal site building and knowledge of PHP. Students without PHP experience should consider taking our PHP Bootcamp for Drupal class. Those without Drupal experience should take Building Websites with Drupal 7

How is it taught

The class will consist of six video lessons, each around 3 hours, and six live lab sessions with the instructor. The lessons will cover all the topics listed below and can be watched anytime that is convenient for you. At the end of each lesson, you will be given an assignment to practice what you've learned. (We will provide web hosting for your practice work, so you don't need to worry about setting that up.) The lab sessions will be conducted online, using the webinar software GotoWebinar. During the sessions, the instructor will answer all your questions from and will help troubleshoot any issues you have doing the assignment. (GotoWebinar allows us to view your computer, and take control of your keyboard and mouse if needed. So, we can see any error messages that you're seeing and figure out how to fix it in realtime.)

In addition to the live sessions, students will have access to an online forum to discuss assignments with other students and ask the instructor questions.

Lessons In This Course

Lesson 1: Drush, Git and The Drupal Hook System

Introduction to Drupal 7 Module Development
00:05:32
Using the DrupalTutor DevStack
00:28:42
Installing Drupal with Drush
00:13:29
Writing Your First Module (Intro to Drupal Hooks)
01:45:05

Lesson 2: The Menu Routing System

Using hook_menu() to Declare Menu Routes
01:40:59
Advanced hook_menu() Settings and hook_permission()
00:40:51
Altering Menu Routes with hook_menu_alter()
00:44:08

Lesson 3: Accessing Databases and Theming the Results

Accessing Databases with db_query and Theming the Results
01:53:25
Using the Object-Oriented Database Library
00:27:40
Installing Custom Tables with Module (the Schema API)
00:17:04
Accessing External / Legacy Databases from Drupal
00:17:15

Lesson 4: The Drupal FormAPI

Introduction to the FormAPI
00:34:44
The Kitchen Sink Form Module
01:00:34
Handling File Uploads (Managed and Unmanged)
00:28:14
Altering Forms Created by Drupal Core and Other Modules with hook_form_alter()
00:40:48

Lesson 5: Putting it All Together and Integrating with Views

The Hamster Database Module
01:01:45
Integrating Your Module with Views
01:30:46
Altering Views Queries and Output with Views Hooks
00:25:53

Lesson 6: Writing Secure, High-Performance Drupal Modules

NodeAPI Hooks
00:24:51
User-Related Hooks
00:14:18
Writing Secure Drupal Code
00:42:59
Using Caching to Improve Module Performance
00:27:33
Responsibly Hacking Drupal Core and Contributed Modules
00:32:36

Appendix: Using Local Development Environments

An Overview of Local Development Environments
00:01:50
Using Lando as a Local Development Environment
00:39:00
Using DDev as a Local Development Environment
00:28:36
Using DrupalVM as a Local Development Environment
00:30:38
Wayne Eaker
Wayne Eaker
Drupal Architect, Developer, and Trainer

About Your Instructor

Wayne Eaker is the director and chief developer of Zengenuity. He's a Drupal expert with years of experience building highly-customized Drupal websites. He is also a seasoned trainer, having taught professionals, corporate clients and high school computer science students.

Handshake

Our Guarantee

Try this course for a week, and if you don't agree that it's the best way to learn Drupal, we'll refund the full price. No questions asked.

$ 494
Per student
  • 12+ hours of video lessons
  • 6 weekly live webinars with your instructor
  • Permanent access to the recordings of all the lessons and live sessions
  • A development environment for your practice Drupal site
  • Access to an online forum to ask questions of the instructor and discuss with other students
?

Your Class Session Details

Lesson Videos

Your lesson videos will be available starting March 8, 2021. You can start and stop the videos at your convenience, and use them as a reference forever!

Your lesson videos will be available starting March 17, 2021. You can start and stop the videos at your convenience, and use them as a reference forever!

Your lesson videos will be available starting March 31, 2021. You can start and stop the videos at your convenience, and use them as a reference forever!

Your lesson videos will be available starting April 14, 2021. You can start and stop the videos at your convenience, and use them as a reference forever!

Your lesson videos will be available starting April 28, 2021. You can start and stop the videos at your convenience, and use them as a reference forever!

Your lesson videos will be available starting May 12, 2021. You can start and stop the videos at your convenience, and use them as a reference forever!

Your lesson videos will be available starting May 26, 2021. You can start and stop the videos at your convenience, and use them as a reference forever!

Your lesson videos will be available starting June 9, 2021. You can start and stop the videos at your convenience, and use them as a reference forever!

Your lesson videos will be available starting June 23, 2021. You can start and stop the videos at your convenience, and use them as a reference forever!

Your lesson videos will be available starting July 7, 2021. You can start and stop the videos at your convenience, and use them as a reference forever!

Development Environment

Your practice development environment will be available from March 8, 2021 to April 28, 2021.

Your practice development environment will be available from March 17, 2021 to May 12, 2021.

Your practice development environment will be available from March 31, 2021 to May 26, 2021.

Your practice development environment will be available from April 14, 2021 to June 8, 2021.

Your practice development environment will be available from April 28, 2021 to June 22, 2021.

Your practice development environment will be available from May 12, 2021 to July 7, 2021.

Your practice development environment will be available from May 26, 2021 to July 21, 2021.

Your practice development environment will be available from June 9, 2021 to August 3, 2021.

Your practice development environment will be available from June 23, 2021 to August 17, 2021.

Your practice development environment will be available from July 7, 2021 to September 1, 2021.

Live Webinars

Webinars for this session are scheduled at the dates and times below. Don't worry. These webinars are strictly for questions and troubleshooting. They are not required to cover the lesson material, and you are not expected to attend them all. These webinars will also be recorded, so if you can't attend a webinar due to your time zone or other conflicts, you can submit your questions ahead of time and watch the answers on the recording.

Webinar Schedule
Date Time(s)
March 9 10:00am-11:00am & 4:00pm-5:00pm EST
March 16 10:00am-11:00am & 4:00pm-5:00pm EDT
March 23 10:00am-11:00am & 4:00pm-5:00pm EDT
March 30 10:00am-11:00am & 4:00pm-5:00pm EDT
April 6 10:00am-11:00am & 4:00pm-5:00pm EDT
April 13 10:00am-11:00am & 4:00pm-5:00pm EDT
Date Time(s)
March 23 10:00am-11:00am & 4:00pm-5:00pm EDT
March 30 10:00am-11:00am & 4:00pm-5:00pm EDT
April 6 10:00am-11:00am & 4:00pm-5:00pm EDT
April 13 10:00am-11:00am & 4:00pm-5:00pm EDT
April 20 10:00am-11:00am & 4:00pm-5:00pm EDT
April 27 10:00am-11:00am & 4:00pm-5:00pm EDT
Date Time(s)
April 6 10:00am-11:00am & 4:00pm-5:00pm EDT
April 13 10:00am-11:00am & 4:00pm-5:00pm EDT
April 20 10:00am-11:00am & 4:00pm-5:00pm EDT
April 27 10:00am-11:00am & 4:00pm-5:00pm EDT
May 4 10:00am-11:00am & 4:00pm-5:00pm EDT
May 11 10:00am-11:00am & 4:00pm-5:00pm EDT
Date Time(s)
April 20 10:00am-11:00am & 4:00pm-5:00pm EDT
April 27 10:00am-11:00am & 4:00pm-5:00pm EDT
May 4 10:00am-11:00am & 4:00pm-5:00pm EDT
May 11 10:00am-11:00am & 4:00pm-5:00pm EDT
May 18 10:00am-11:00am & 4:00pm-5:00pm EDT
May 25 10:00am-11:00am & 4:00pm-5:00pm EDT
Date Time(s)
May 4 10:00am-11:00am & 4:00pm-5:00pm EDT
May 11 10:00am-11:00am & 4:00pm-5:00pm EDT
May 18 10:00am-11:00am & 4:00pm-5:00pm EDT
May 25 10:00am-11:00am & 4:00pm-5:00pm EDT
June 1 10:00am-11:00am & 4:00pm-5:00pm EDT
June 8 10:30am-11:30am & 4:00pm-5:00pm EDT
Date Time(s)
May 18 10:00am-11:00am & 4:00pm-5:00pm EDT
May 25 10:00am-11:00am & 4:00pm-5:00pm EDT
June 1 10:00am-11:00am & 4:00pm-5:00pm EDT
June 8 10:30am-11:30am & 4:00pm-5:00pm EDT
June 15 10:00am-11:00am & 4:00pm-5:00pm EDT
June 22 10:00am-11:00am & 4:00pm-5:00pm EDT
Date Time(s)
June 1 10:00am-11:00am & 4:00pm-5:00pm EDT
June 8 10:30am-11:30am & 4:00pm-5:00pm EDT
June 15 10:00am-11:00am & 4:00pm-5:00pm EDT
June 22 10:00am-11:00am & 4:00pm-5:00pm EDT
June 29 10:00am-11:00am & 4:00pm-5:00pm EDT
July 6 10:00am-11:00am & 4:00pm-5:00pm EDT
Date Time(s)
June 15 10:00am-11:00am & 4:00pm-5:00pm EDT
June 22 10:00am-11:00am & 4:00pm-5:00pm EDT
June 29 10:00am-11:00am & 4:00pm-5:00pm EDT
July 6 10:00am-11:00am & 4:00pm-5:00pm EDT
July 13 10:00am-11:00am & 4:00pm-5:00pm EDT
July 20 10:00am-11:00am & 4:00pm-5:00pm EDT
Date Time(s)
June 29 10:00am-11:00am & 4:00pm-5:00pm EDT
July 6 10:00am-11:00am & 4:00pm-5:00pm EDT
July 13 10:00am-11:00am & 4:00pm-5:00pm EDT
July 20 10:00am-11:00am & 4:00pm-5:00pm EDT
July 27 10:00am-11:00am & 4:00pm-5:00pm EDT
August 3 10:00am-11:00am & 4:00pm-5:00pm EDT
Date Time(s)
July 13 10:00am-11:00am & 4:00pm-5:00pm EDT
July 20 10:00am-11:00am & 4:00pm-5:00pm EDT
July 27 10:00am-11:00am & 4:00pm-5:00pm EDT
August 3 10:00am-11:00am & 4:00pm-5:00pm EDT
August 10 10:00am-11:00am & 4:00pm-5:00pm EDT
August 17 10:00am-11:00am & 4:00pm-5:00pm EDT