Drupal Module Development - Drupal Training Curriculum for Drupal Companies

Events happening in the community are now at Drupal community events on www.drupal.org.
You are viewing a wiki page. You are welcome to join the group and then edit it. Be bold!

Back to Drupal Training Syllabus

Drupal Module Development

A module is a collection of functions that link into Drupal, providing additional functionality for your Drupal installation.

Learning Objectives

Getting familiar with Drupal code base, Implementation of hooks, Drupal coding standards and documentation standards.

Course Content

  1. Code Walkthrough

  2. Before starting with module development, it is important to understand how Drupal works. A core code walk through helps to achieve this.
    https://www.drupal.org/getting-started/before/overview

  3. Hook concepts

  4. Drupal's module system is based on the concept of "hooks". A hook is a PHP function that is named foo_bar(), where "foo" is the name of the module (whose filename is thus foo.module) and "bar" is the name of the hook.
    https://www.drupal.org/node/292
    https://buildamodule.com/video/drupal-6-development-and-tools-essential-...

  5. Blocks – in details

  6. In Drupal, the boxes which can be made to appear in various regions of a Drupal website are called Blocks
    https://www.drupal.org/documentation/blocks
    https://drupalize.me/blog/201403/block-system-finally-useful-drupal-8

  7. Views Module

  8. One of the important contributed module in Drupal 7, and upgraded as core module in Drupal 8, Views module is widely used in Drupal development field.
    https://www.drupal.org/project/views
    http://www.inmotionhosting.com/support/edu/drupal-7/views-module-tutorial

  9. Content Types, fields etc

  10. A Drupal "content type" is a particular kind of content. For instance, in Drupal 7, the default content types include "article", "basic page", and "forum topic". Content types have Fields
    http://cms.about.com/od/drupal/g/What-Is-A-Drupal-Content-Type-What-Are-...
    https://drupalwatchdog.com/volume-3/issue-2/drupal-7-content-types-code
    https://drupalize.me/videos/content-types-drupal-7?p=1166

  11. Drupal API

  12. The official programming reference for all Drupal versions. Also lists references for other programming languages used by Drupal programmers.
    https://www.drupal.org/developing/api
    https://www.drupaleasy.com/quicktips/better-drupal-api-documentation-site

  13. Database API

  14. Drupal provides a database abstraction layer to provide developers with the ability to support multiple database servers easily. The intent of this layer is to preserve the syntax and power of SQL as much as possible, but also allow developers a way to leverage more complex functionality in a unified way. It also provides a structured interface for dynamically constructing queries when appropriate, and enforcing security checks and similar good practices.
    https://buildamodule.com/video/drupal-7-development-core-concepts-how-to...

  15. Form API

  16. Drupal provides an important API to deal with forms, Form API.
    https://www.sitepoint.com/understanding-forms-drupal/

  17. Entities

  18. The Entity API in Drupal 7 provides a set of common functions and classes to make it easier for developers to create their own custom entity types or to work with existing ones in a generic way.
    https://www.drupal.org/node/1261744
    https://drupalize.me/videos/introduction-working-entities-drupal-7-serie...

  19. Modifying Contributed and Core modules and use of patches

  20. It is not preferred to customize core or contributed modules. But some scenarios come, where, it is essential to change some code in core or contributed modules. It is very important to understand the procedures to follow in the above mentioned situations.
    http://www.zyxware.com/articles/2730/drupal-tips-how-to-update-drupal-co...
    https://www.drupal.org/node/52241

  21. Web services

  22. Web services are open standard (XML, SOAP, HTTP etc.) based Web applications that interact with other web applications for the purpose of exchanging data.
    Web Services can convert your existing applications into Web-applications.
    https://www.ostraining.com/blog/drupal/services/
    https://drupalize.me/videos/what-are-web-services?p=1487

Reference

https://buildamodule.com/video/drupal-7-development-core-concepts-welcom...

Exercise

Exercises on Module development

Next » Drupal Database API Basics