5. www.vibranttechnologies.co.in
PHP
●
Drupal is written in PHP
●
Web application scripting language
●
Open source language sponsored by Zend
●
PHP is actually written in C
●
Easy to learn
●
Great for rapid application development
●
One of the more popular languages for web
applications
5
6. www.vibranttechnologies.co.in
How PHP Works
●
PHP is run by the web server
●
PHP code embedded in web pages is compiled
and interpreted when the page is requested
●
Uncompiled code means portability and rapid
refactoring
●
PHP is truly dynamic
– Even variable names can be dynamic
●
Code can include other scripts or libraries
6
7. www.vibranttechnologies.co.in
Data Persistence
●
Like most web applications Drupal needs to
store data
●
Data is in a database (MySQL)
– Database means content changes happen in
the database rather than in code or on files
– Makes for easy portability and backup
– Access via code, or directly at command line
– SQL is a standard, popular, well understood
language
7
8. www.vibranttechnologies.co.in
Drupal Hierarchy
●
Drupal uses dynamic includes to load code
●
What happens when there are conflicts?
– Last loaded code is the one that runs
●
Drupal uses this to allow developers and users
to “extend” Drupal
8
9. www.vibranttechnologies.co.in
Composition of Drupal
●
Drupal includes a common set of files used to
“bootstrap” Drupal
– Set up database connections, provide
authentication, present output, etc.
●
Drupal has additional modules
– These are dynamically included depending on
configuration
– 33 modules are included in the Drupal core
9
10. www.vibranttechnologies.co.in
Running Drupal
●
Every Drupal request goes to index.php, even if
the URL looks like a different location
●
Index.php does bootstrapping:
– checks database for enabled modules
– loads modules that are appropriate
– checks permissions
– queries database for content
– applies theme
– renders the page
10
11. www.vibranttechnologies.co.in
When things go bad
●
When Drupal encounters a PHP fatal error:
– White screen of death
●
What has happened:
– PHP hit an error that forced a stop to
compilation
– PHP logs the error in the web server logs
– Potentially Drupal logs the error in the Drupal
watchdog table
– Execution dies silently without output
11
13. www.vibranttechnologies.co.in
Top Level Files
●
Several critical php files:
cron.php - web interface for scheduled tasks
index.php - everything flows through index.php
install.php - installation file (remove)
update.php - update install (for new modules)
xmlrpc.php - provide remote procedures (opt.)
●
Various other text files
13
14. www.vibranttechnologies.co.in
How to install Drupal
●
You need a database and a web server with
PHP already running
●
Create a database for the Drupal site
●
Download the Drupal code from Drupal.org
●
Point web browser and Drupal root and the rest
is automated
14
16. www.vibranttechnologies.co.in
Modules
●
Modules can be installed in a number of
locations
– /modules
– /sites/all/modules
– /sites/default/modules
– /profiles/profileName/modules
●
Modules should be installed in:
– /sites/all/modules
16
17. www.vibranttechnologies.co.in
What is a “module”
●
Modular piece of code that extends Drupal
●
Uses the Drupal API
– Just a set of functions defined in the Drupal
core (or other modules)
●
Provide drop in functionality
●
Can be enabled/disabled (in the database)
●
Provide additional functionality without altering
the Drupal core
17
19. www.vibranttechnologies.co.in
Look and Feel
●
Drupal takes a similar approach to display
●
Display is a separate area of Drupal
●
Many components of Drupal are defined in the
“theme”
●
Themes are comprised of HTML, CSS, PHP
and imagery
●
Themes utilize the same hierarchy as modules
●
Theme files are called “templates”
19
20. www.vibranttechnologies.co.in
Advantage of Themes
●
Themes follow a convention (standardization)
●
Can easily be swapped out to quickly change or
upgrade the look of a site
●
Useful because theme developers need not
necessarily be Drupal developers (or PHP
programmers)
●
Can provide powerful filters to screen output in
Drupal
20
21. www.vibranttechnologies.co.in
Blocks
●
Blocks are pieces of content placed in regions
of Drupal pages
●
Blocks are arbitrary pieces of content
●
Usually the stuff that appears in sidebar, header
and footer content
●
Blocks can be content, forms, special lists,
polls, or arbitrary HTML
●
Themes define regions for blocks
21
22. www.vibranttechnologies.co.in
Nodes
●
Drupal organizes most content around the
concept of a “node”
●
Nodes are just pieces of content
●
Only a few things aren't nodes – users, groups,
modules, and themes being the main ones
●
Other stuff, from calendar events, to RSS feed
items, to page content is a node
22
23. www.vibranttechnologies.co.in
How Nodes Work
●
Nodes support versioning
●
As a result node content is stored in the
node_revisions table
●
The Drupal “node” table only stores metadata
about nodes
●
Nodes can have various modules applied to
them to adjust input and output handling
23
24. www.vibranttechnologies.co.in
Organizing Nodes
●
There are all sorts of nodes, how do we keep them
organized?
●
Drupal supports a categorization of nodes that allows for
various node “definitions”
●
Content types allow Drupal users to define various fields
for different types of nodes
●
For instance, one node might include a URL, another a
title
●
Using “fields” specific to node types allows sorting and
display (rather than having the data stuck in a node
“body”)
24
25. www.vibranttechnologies.co.in
Content Types
●
“Page” and “Story” are two default content
types
●
The titles are arbitrary
●
Content types define input fields and how the
content is displayed
●
New content types can easily be created
●
Content type creation should follow careful
consideration of site architecture and purpose
25
26. www.vibranttechnologies.co.in
Taxonomy
●
Taxonomy is another way to organize content
●
Taxonomy are “tags” that are applied to content
●
“Vocabularies” set up as taxonomies
●
Vocabularies then contain terms
●
Taxonomies can be extended and used for
various rules in the Drupal back end
●
Taxonomy can also be used for display
purposes
26
29. www.vibranttechnologies.co.in
Permissions
●
Drupal utilizes a Role Based Access Control
(RBAC) system
●
Users are assigned to roles, roles receive
permissions
●
Permissions are set through the Drupal
administrative interface
●
Uid 1 user (created during install) has all
permissions
●
When in doubt: it's a permissions issue
29
31. www.vibranttechnologies.co.in
Got Drupal, now what?
●
Drupal out of the box doesn't look like much
●
Drupal is extremely flexible but requires a lot of
configuration
●
Changing Drupal after deployment is a pain, so
you must plan carefully
●
Drupal is a framework that doesn't make
assumptions about use cases
●
Drupal requires lots of tweaks to enable
functionality the way you want it
31