2. INTRODUCTIONS ARE IN ORDER
Desktop publishing >> Graphic design >> Web design >> PHP developer >> Drupal
Joe Crespo | Developer, Aten Design Group
Monday, July 1, 13
4. Drupal has its own set of vocabulary.
1. “Nodes,”“entities,” and “modules” have
specific meanings in Drupal that may
differ from what you think of as a
“node,” “entity,” or “module.”
Getting a handle on these concepts will
elevate your Drupal development skills.
ESSENTIALVOCABULARY
Terms to Know:
1. blocks
2. content types
3. entities
4. fields
5. hooks
6. nodes
7. taxonomy
8. themes
Beginning Module Development | Getting Started
Monday, July 1, 13
5. hook_form_alter()
Use your module to change an existing form.
drupal_add_css()
Add your own CSS file to add styles or amend
existing.
drupal_get_path()
Returns a path within the Drupal site structure.
DRUPAL FUNCTIONS
Beginning Module Development |The Context Module
Monday, July 1, 13
6. 1. Adding new functionality to
Drupal means installing and
activating existing modules, or
creating new ones.
DRUPAL IS MODULAR
Beginning Module Development | Getting Started
Monday, July 1, 13
7. 2. Modules communicate with one
another and manipulate data
through a series of hooks.
HOOKS
Beginning Module Development | Getting Started
Monday, July 1, 13
8. Hooks are functions automatically called
during execution.
Your module can make changes to content or
functionality by invoking these hooks.
HOOKS 2: ELECTRIC BOOGALOO
Beginning Module Development | Getting Started
For example:
Your Module Name: my_first_module
Drupal Hook: hook_form_alter()
Module invokes Hook with my_first_module_form_alter()
Monday, July 1, 13
9. 1. Drupal 7 is not object-oriented. While
Drupal does use objects, as its core,
Drupal is procedural.
DRUPAL IS NOT DOWN WITH O.O.P.
Beginning Module Development | Getting Started
Monday, July 1, 13
10. 2. Drupal loves enormous multidimensional arrays.
YOU DOWN WITH OOP?
Beginning Module Development | Getting Started
Monday, July 1, 13
13. DRUPAL DEVELOPMENT FUNDAMENTALS
1. Never add functionality to your
site by making changes to Drupal
core.
2. Avoid hacking contrib modules.
Beginning Module Development | Rules ofThumb
Monday, July 1, 13
14. Separate Drupal core modules, contrib modules, and your custom modules.
root directory
|__ modules <<< this is where core modules live – DO NOTTOUCH!
|__ sites
|__ all
|__ modules
|__ contrib <<< this is where the modules you download live
|__ custom <<< this is where the modules you build live
ORGANIZINGYOUR SITE
Beginning Module Development | Rules ofThumb
Monday, July 1, 13
15. • Always keep in mind that the
module you are contemplating might
already exist.
• Search Drupal.org to see if the
module has already been built.
• If you don’t find an obvious answer,
ask on IRC.
BEFOREYOU START DEVELOPING A MODULE
Beginning Module Development | Rules ofThumb
Monday, July 1, 13
16. Clear the cache.
THE BEST DRUPALTIPYOU’LL EVER HEAR
Beginning Module Development | Rules ofThumb
That is all.
Monday, July 1, 13
18. What Context does that’s pertinent to this session it that it allows site
builders to add blocks of content to regions of the page if certain
criteria are met.
For example:
You want to advertise free shipping, but only want to show that
message on your catalog index page at http://example.com/catalog.
You would create a block advertising free shipping and then set the
context to only show that block when the path is currently “catalog”
THE CONTEXT MODULE
Beginning Module Development |The Context Module
Monday, July 1, 13
21. What else can we do with
context_ui_extras?
This module solves one problem
with the UI, but maybe there are
ways to improve it?
1. More efficient:
hook_ form_ FORM_ID_alter()
2. Add a time condition to Context.
3. Make the Reactions draggable.
JUSTTHETIP OFTHE ICEBERG
Beginning Module Development | Now what?
Monday, July 1, 13
22. DRUPALTOOLBOX
Get to know these things: (if you don’t already)
1. Git: The version control software of choice for Drupal.
2. drush: A command line tool used for Drupal development.
3. devel: A really useful Drupal development module.
4. IRC: Internet Relay Chat and a helpful support tool used
throughout the community.
5. api.drupal.org is your new best friend.
Beginning Module Development |Toolbox
Monday, July 1, 13