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
-
Code Walkthrough
-
Hook concepts
-
Blocks – in details
-
Views Module
-
Content Types, fields etc
-
Drupal API
-
Database API
-
Form API
-
Entities
-
Modifying Contributed and Core modules and use of patches
-
Web services
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
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-...
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
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
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
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
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...
Drupal provides an important API to deal with forms, Form API.
https://www.sitepoint.com/understanding-forms-drupal/
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...
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
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...