Drupal Training Level II

The course content is still evolving but more or less it will be based on the content shared below. Do take a look and if you are interested in taking this course then do let us know. You can send us an email at info [at] sparxsys [dot] com or fill the contact form.

Tentative Course Content

1. Introduction

Why to build to module instead of modifying source.
Setting up the module file structure
Writing secure code for secured drupal
Using doc block comment

2. Hooks

What is hook
How hooks works
Basic Introduction of some hooks with examples

3. What is Entity in Drupal vs Bundle ( Content Type) , Fields

Use entity for custom data storage
Creating custom entity with a custom table
Why Content Type are not for all kind of data ?
Drupal default entity i.e content, user, taxonomy, comment, file
Using hook_entity_info() ,entity_load()

4. Form API

Benefits of using form api
Creating a simple form , validating and submitting form using Form API
drupal_get_form()
Exploring more elements
Populating dynamic select options, radio button option
Submitting (Insert or Update) form in any drupal database table
Sending email using drupal_mail
Showing message using drupal_set_message('message')
form alter
autocomplete and #ajax form

5. File Upload System

Understanding file_managed and file unmanaged
File unmanaged with an example
File managed with an example
Understanding drupal table 'file_managed' - Using drupal inbuilt ajax to upload files
Preview files on form
Validating files
Uploading files in drupal 'files' directory using file_save_upload
Use $file->status=1 and save_file($file) to permanently save file
Showing uploaded files using theme_image_style($params)
Register custom image style

6. Working with Menus

How to use render array and creating tabs & subtabs
How to pass argument through path
Using placeholder
Using hook_page_alter & menu_alter
Use include files to improve performance

7. Theming

How theme layers can helps work together designer and coders
How to invoke a theme function, e.g theme_item_list() & theme_table()
Creating own theme function or creating templates
preprocess a theme function to alter data
Adding css & js
Override template files

8. Database API

Running drupal dynamic mysql query using db_select()
Insert Query
Update Query
Delete Query
example to show latest members , recent comments
Rollback query using drupal Transactions

9. Entity Field Query

Understanding why use entity field query
Using EntityFieldQuery() to interact drupal entity base table like node, user, comment
Showing any taxonomy term (vocabulary terms) using EntityFieldQuery()

10. Node access rights

Understanding Drupal node_access, role_permission table
using hook_permission to register a permission
user_access() function to check permission

11. Drupal Module development Debug method

Using Drupal Devel Module for better debug options. usage dpm($vriable_name)
Understanding dpm(get_defined_vars()) to show available variable in the page
Using drupal inbuilt watchdog() function for debug log
using simple & easy drupal_set_message($vars)

12. Creating Custom Module from scratch (i.e Ads Management Module)

Declaring custom tables using hook_schema in .install file
Registering 2 menu for ads listing and ads add
Creating ads add page using form API, file upload system
Creating ads listing page using entityFieldQuery()
Creating new bloc using hook_block_info(), hook_block_configure(),hook_block_save()
Showing all ads in form add/edit page to select with checkbox
Saving form custom checked ads value in our custom table
show ads on front end site using hook_block_view() - Testing and debuging our newly created module