Upload
pieter-jan-drouillon
View
322
Download
0
Tags:
Embed Size (px)
DESCRIPTION
This session aims to help new drupal developers based on personal experiences and with simple, working examples. Last year, the presenter lost quite some time to get something working. The steap learning curve, new concepts and extensive documentation makes it difficult to improve.
Citation preview
Module Development - Get the Drupal started
Pieter-Jan Drouillon
2
WHYthis talk?
3http://buytaert.net/creating-passionate-users
Time
Ab
ility
Suck
threshold
How soon can they
start kicking ass?Go
od
Bad
4
WHOis talking?
@pjdrouillon | pieterjd.ulyssis.be
DISCLAIMER5
6
DEFINEyour module
Define your module
7
<name>.info file
name
description
core
files
Achmed's advice :)
sites/all/modules/<name>
8
HOOKS
9
When something happens... your module can hook in on it
DEMO
hook_menu
10
FORMS11
DEMOTo form or not to form ...
12
Forms = arrays
Form API
Reverse example
Add a menu entry
set callback to drupal_get_form
set argument to function returning render array
DEMOLet’s add a submit function
13
<form_function>_submit($form, &$form_state)
DEMOWhat about ...Validation?
14
<form_function>_validate($form, &$form_state)
BLOCKS15
QR BlockOn every page
With a QR code
Use Google Chart API
http://chart.googleapis.com/chart?chs=150x150&cht=qr&chl=<url>
16
DEMODefine the blockhook_block_info
array with all the info
key > block name
info > Some information
hook_block_view($delta = ‘’)
delta > name of block to render
returns render array 17
PERMISSIONS18
DEMOTo show or not to show ...hook_permission
array with all the info
key > permission’s (short) name
title > permission’s fullname
user_access
checks if logged in user has the right permission
user 1 bypass 19
PREPROCESS20
21
»
DEMORead more »hook_preprocess
process of preparing HTML code
$author > name of author linking to user profile
hook_preprocess_hook
hook_preprocess_blog
22
DEMO
hook_form_alter
23
DEMO“I need a signature!”
24
hook_form_alter
hook_form_FORM_ID_alter
DEMO“I sometimes needa legal disclaimer”
25
Add a checkbox
There’s a catch :)
theming26
DEMO“I want mydefinition list”
Cannot just return html
use theming functions
theme(<hook>,...)
search in API for theme_<hook>
27
DEMOhook_themearray with all the info
key > name of theme (item_list, dd, ...)
add a list of variables
write function to create HTML code
theme_dd($variables)
28
TAKE AWAY29
Don’t give up
Join a (local) community
Recommended books
Pro Drupal 7 development
Pakt Drupal 7 Module Development
Recommended sites
api.drupal.org, www.lullabots.com & www.drupalize.me, NodeOne
TODO: Check out Drush & github !30
31
Q & A
Feedback & follow-up:http://drupalcampgent.be/feedback