2. A lot of people get a bit overwhelmed by Drupal coding.
Sometimes that leads to running away or hacking.
3. Systems, Frameworks
and APIs, Oh My!
API = set of functions that accomplish programming tasks - can be used “publicly”
Framework = basic app skeleton that solves common needs in a standardized way
CMS = features that help people build sites and manage content
Advantages: takes care of nasty, tedious stu; auth., security, etc. and its Open Source :)
4. Systems, Frameworks
and APIs, Oh My!
Content Management System
built on the
API = set of functions that accomplish programming tasks - can be used “publicly”
Framework = basic app skeleton that solves common needs in a standardized way
CMS = features that help people build sites and manage content
Advantages: takes care of nasty, tedious stu; auth., security, etc. and its Open Source :)
5. Systems, Frameworks
and APIs, Oh My!
Content Management System
built on the
Framework,
which uses the
API = set of functions that accomplish programming tasks - can be used “publicly”
Framework = basic app skeleton that solves common needs in a standardized way
CMS = features that help people build sites and manage content
Advantages: takes care of nasty, tedious stu; auth., security, etc. and its Open Source :)
6. Systems, Frameworks
and APIs, Oh My!
Content Management System
built on the
Framework,
which uses the
APIs
(Application Programming
Interface)
API = set of functions that accomplish programming tasks - can be used “publicly”
Framework = basic app skeleton that solves common needs in a standardized way
CMS = features that help people build sites and manage content
Advantages: takes care of nasty, tedious stu; auth., security, etc. and its Open Source :)
7. What is where?
CMS framework apis
Core modules and themes use the framework like everyone else.
Everyone should actually look at the files.
Includes folder holds the magic.
8. What is where?
CMS framework apis
Core modules and themes use the framework like everyone else.
Everyone should actually look at the files.
Includes folder holds the magic.
9. What is where?
base_path()
format_date()
l()
t()
url()
CMS framework apis
Core modules and themes use the framework like everyone else.
Everyone should actually look at the files.
Includes folder holds the magic.
10. Hooks
‣ Naming convention
‣ hook_* where hook is replaced
by your module name
‣ Lets modules add their own stuff
to Drupal’s workflow
11. A hook example
Hey modules! I’m
gonna display the
permissions page, you
have anything you
want me to add?
Naming convention for functions that lets modules jump in to the Drupal workflow
12. hook_perm
Each module can respond by saying they have something.
If they don’t have anything, they just don’t use the hook.
13. blog_perm
I do!
blog
Each module can respond by saying they have something.
If they don’t have anything, they just don’t use the hook.
14. block_perm
I do!
blog
block
me too
Each module can respond by saying they have something.
If they don’t have anything, they just don’t use the hook.
15. hook_perm
I do!
blog
blogapi
block I don’t
me too
Each module can respond by saying they have something.
If they don’t have anything, they just don’t use the hook.
17. The Train Analogy
• The Node Train leaves the station with node/12 hitched
It goes to the hook_nodeapi stop
Attaches the taxonomy and comment cars
Gets to the Theme depot
18. The Train Analogy
• The Node Train leaves the station with node/12 hitched
It goes to the hook_nodeapi stop
Attaches the taxonomy and comment cars
Gets to the Theme depot
19. The Train Analogy
• The Node Train leaves the station with node/12 hitched
It goes to the hook_nodeapi stop
Attaches the taxonomy and comment cars
Gets to the Theme depot
20. The Train Analogy
• The Node Train leaves the station with node/12 hitched
It goes to the hook_nodeapi stop
Attaches the taxonomy and comment cars
Gets to the Theme depot
22. output: HTML, RSS
actions like: forwarding, login/logout
every internal link on a Drupal site is controlled by the menu system
23. Menu
๏menu.inc != menu.module
๏maps URLs to functions
๏functions can display output
and initiate actions
output: HTML, RSS
actions like: forwarding, login/logout
every internal link on a Drupal site is controlled by the menu system
24. give it an array and it will give you the form
not just for devs. themers can control form output
25. give it an array and it will give you the form
not just for devs. themers can control form output
26. FAPI
• form.inc
• handles the form, validation
and submission
give it an array and it will give you the form
not just for devs. themers can control form output
27. dbs are not standardized for creation (schema)
built in security
28. Database
• database.inc (and
database*.inc)
• schema creation
• abstracted to work with
multiple databases
dbs are not standardized for creation (schema)
built in security
29. output is put through the theme system
many core theme elements are found in tpl files in the modules
30. Theme layer
✦theme.inc
✦system module has default tpls
block, box, page
✦
✦ other tpls are in the module folder
output is put through the theme system
many core theme elements are found in tpl files in the modules
31. Theme’s rule
they get a last crack at all output so the themer can change whatever they need
a function named mytheme_function_name will trump core and modules
32. ✴Module output uses theme()
✴Order of priority:
✴ theme_function_name()
✴ phptemplate_function_name()
✴ mytheme_function_name()
Theme’s rule
they get a last crack at all output so the themer can change whatever they need
a function named mytheme_function_name will trump core and modules