Professional Documents
Culture Documents
Drupal Development
What is Drupal?
Open Source software written in php.
A CMS or content-management
system.
A sophisticated web application
building tool.
What is a CMS?
Simply put, a CMS is a website you
build using the website itself.
blog
Forum
Online newspaper, Portal / Directory
Brocure site, portfolio, flickr like photo drop
Social community site, job post board
Video site like youtube
Project management site
CRM, ERP, SCM, Wiki
Shopping cart system
E-learning, training site
Dating site
Anything you can think of
Other CMSes do a very very bad job of at least one of the above.
What is a UI?
UI is a user-interface, which is a
general term for the layout of
options, widgets and settings used to
configure the system or manage
content.
Site-building activities refer to
configuring settings or managing
content through the UI, such as
building navigation menus.
Drupal Structure
Drupal is a database-driven
(dynamic) application. It requires a
database.
Drupal has a core filesystem whose
functionality can be extended using
the UI itself, modules and themes.
The UI settings are stored in the
database.
Modules
Packages of files in a directory that you
upload into drupals module space
(/sites/all/modules)
Add functionality to drupal
Core Modules come shipped with
drupal
Contributed Modules are downloads
from drupal.org
Themes
Packages of files in a directory that
you upload into drupals theme space
(/sites/all/themes)
Themes adjust the site layout and
style. Like skinning your media
player.
Themes can be easily changed in the
UI.
Drupal Database
Drupals database tracks things like :
Nodes
A node is the primary form of content
in a drupal site. At a minimum it is a
title and a body, and can be
specialized.
A page and story for example are
node types that have a specific node
settings.
A node type is a blueprint for
creating instances of content of a
Nodes (cont)
Not everything in Drupal is a node.
This is important!!
Ex: A user is not a node. A taxonomy
is not a node. An account is not a
node.
Knowing this is important for
evaluation of what can and cannot be
easily done through the UI, without
additional programming.
Blocks
Blocks are added by modules.
Blocks can contain views, widgets,
menus, nodes (in special
circumstances), and panels.
Blocks can be moved around through
the UI
Blocks can be styled individually.
Additional Terminology
Views an interface for making
customized lists of the data
contained in the drupal database.
Panels an interface for making
customized layouts of nodes
available to the panels module.
Widgets a general term for
interactive form elements or graphs
that are enabled by modules.
Admin Menu
The administrative menu is a part of
the UI that allows one to configure
Drupals settings.
The settings available depend on
which modules are installed and
enabled.
Permissions allow users to have
administrative access to module
Users
All CMSes (wordpress, Joomla,
Drupal) have a user login system;
users have a username/pw.
Drupal also supports the concepts of
1) Roles and 2) Permissions.
Roles are user designations to groups
having the same set of permissions.
Anonymous User
A (not-logged-in) site visitor is called
a guest, visitor or anonymous
user.
Has a user-id (uid) of 0 (zero).
All anonymous users belong to the
anonymous user role (a role ID of 1)
and have a set of permissions
assigned to them.
Authenticated User
A user in drupal may belong to one
or more roles.
Every registered user in Drupal
belongs to at least the authenticated
user role.
Authenticated user role has a role ID
of 2
Managing Permissions
KEY concept: if you grant permission
to an authenticated user, it applies to
ALL roles except the anonymous
user.
To grant a permission to everyone on
a site, you must grant the permission
to both the anonymous user and
authenticated user.
Managing Permissions
To grant permission to only a newly
created dentist role, tick the
permission on that role.
Leave all the other roles deselected.
If you grant to both the dentist role
AND the authenticated user role,
you would be doing it wrong. Drupal
assumes you know this.
In the Title, type About Us. In the body type This is my first drupal page.
Click Save
You should now see the About Us menu item in the Primary Link navigation.
Click it to go to this newly created node.
Installing Modules
Download (from drupal.or) and Unpack module
tarballs (*.tar.gz) files to the folder inside.
Upload the module folder to <drupal_root>
/sites/all/modules.
Create the modules and themes directories if
they are not there.
Go to Administer > Site Building > Modules :
and tick Enabled next to the module to enable
it and click Save Configuration
Using Modules
A newly enabled module will add an
administration menu.
Go to that module and read the help
before changing anything.
Play around and learn its feature set.
Install the Advanced Help module to
get more verbose help with modules.
Views
String
Overrides
Backup and
Migrate
SEO Checklist
SEO Compliance
Checker
Pathauto
Path Redirect
Global
Redirect
Search404
Meta Tags
Global GEOurl
Html Purifier
Page Title
Menu Attributes
Site Map
Taxonomy
Manager
Token
Ubercart
Date
Mollum / Spam
Captcha
WYSIWYG API
FCKEditor
IMCE
Chaos Tools +
Delegator
Panels
Actions
Triggers
Notify
Scheduler
Guestbook
Simplenews
Addthis /
Diggthis/
Sharethis
GoogAnalytics
SEO Checklist
SEO
Compliance
Checker
Path +
Pathauto
Path Redirect
Global
Redirect
Search404
Meta Tags
Global GEOurl
Html Purifier
Page Title
Site Map
Advanced:
Open Calais
RDF metadata
WS
Menu
Attributes
New XML
Sitemap
CCK
Views
String
Overrides
Backup and
Migrate
SEO Checklist
SEO Compliance
Checker
Pathauto
Path Redirect
Global Redirect
Search404
Meta Tags
Global GEOurl
Html Purifier
Page Title
Menu Attributes
Site Map
Taxonomy
Manager
Token
Ubercart
Mollum / Spam
Captcha
WYSIWYG API
FCKEditor
IMCE
Actions
Triggers
Notify
Date
Addthis /
Diggthis/
Sharethis
Advanced:
Advanced:
Apache Solr
Search (we
cannot support
yet)
Scheduler
Chaos Tools +
Delegator
Panels
Guestbook
Simplenews
GoogAnalytics
Advanced: Open
Calais RDF
metadata WS
Advanced: Devel
(danger)
Advanced:
PHPmailer /
SMTP Auth
They are more difficult to customize than starting from scratch, but
faster to use.
Some of the markup may be in tables or liquid layout and this may be
hard to change for your particular project, even if it looks nice to you.
Best practice suggests you either find a theme design and mimic its
look-and-feel or do the traditional photoshop mock up.
If you take someone elses theme, you dont know what youre going
to get and this can hinder your ability to develop
Garland
(use as admin
theme)
Blarland an evil
copy of garland. Place
it in sites/all/themes
and change the name
of garland to blarland
in folder, and file
names esp in the info
file.