Understanding Drupal

advertisement
Steve Kessler
Denver DataMan
Our Presentation
 What is Drupal
 Drupal Core
 Modules
 Site Building
 Resources
Content, Content Everywhere and
Giving People A Place to Drink
 A great Internet site is like a well made watering hole.
 There is lots of information on the Internet and much
of it is not worth the time it took to write it.
 Internet users are saturated with JUNK and SPAM!
 A great website shows users why your content is worth
“drinking from” and makes it excisable so they will.
What do Internet users want at
your watering hole?
Drupal as a CMS
 Solid well developed system that can be expanded to
be used in any industry segment
 Content is stored separately from the way its displayed
so that it can be used in many different ways on the
same site
 Easy control of access to specific content
 Sites can be built to be easily maintained by nontechnical users
 Sites can be optimized for being found by search
engines
Open Source
 The source code for everyday software and non-
specialized applications should be open and built by a
community of developers.
 Open source code promotes ingenuity and
applications that will work in the most cases
 Open source allows for many users to vet code and
check for best practices and optimization
 Open source is not just for idealists - there is lots of
money to be made in customization and providing
services based on open source software (like today’s
session)
Popular, Powerful, Robust, Secure
 Many sites are being built on Drupal
 Here are some great examples that are driving Drupal
innovation!
The Onion
Sony myplay
PopSci
ubuntu
Popular
 Drupal is gaining in popularity
 Big sites and little sites are using Drupal
 Drupal is being used in the real world not just
hobbyist and nonprofits.
Powerful and Robust
 Drupal is built to run using the latest technologies that
it optimizes for speed
 Thousands of modules allow for modular additions to
the platform including:
 Ecommerce
 Multimedia
 Comments
 Dynamic User Groups
 And many, many, many, more
 Highly scalable
Secure
 Drupal developers work to make the platform very
secure
 Developers are working on making Drupal easier to
administer while still remaining secure
 Automatic updates
 Secure transfer of data between Drupal.com and your
website
 When problems are found they are resolved rapidly
There is no longer a “Drupal Look”
 Because Drupal has such flexible themes a Drupal
website does not need to look like a Drupal website
The Drupal Community
 The Drupal community not only builds Drupal but it
also provides support for Drupal.
 The Drupal community is very in tune to helping users
get started with Drupal.
 The Drupal community is innovative and wins many
awards.
Drupal Voting
 You can support Drupal by voting for Drupal in
upcoming award programs
 Look at the front page of Drupal.org for more
information on these types of opportunities
Summer of Code
 Google pays college students around the world to help
with open source project
 Drupal was given 19 spots!
 Summer of Code Projects will expand the core
application and add many great modules.
Drupal Core
 Drupal Versions
 Hook
 Themes
 Nodes
 Blocks
 Menus
 URL’s
 Taxonomy
 Users
Core
 Drupal core houses the main features of the
applicationthat are supported by the Drupal community.
 Core components include:
 Structures for accessing the database
 The Drupal start-up sequence (bootstrap)
 Support for nodes
 Support for taxonomies
 Support for themes
 Support for menus
 Basic core modules
 Blogs
 RSS
5 or 6
 Drupal is transitioning between a 5.X version to a 6.X
version
 6.X has many exciting features that add great functionality
and expanded resources for themers and Web 2.0 type
development
 Modules for 6.X are under development and many critical
modules that we will talk about later are not released for 6.X
yet
 6.X will be supported until 8.X

5.X will probably only be supported till 7.X next year
 There are some that think this schedule will change given the
delay in critical contrib modules
 5.X is still an application that has many supporters and
benefits
Hooks
 Everything ties back to Drupal using a hook.
 Hooks can be thought of as internal Drupal events (Pro
Drupal Development).
 Hooks are how one connects into the structures
provided by core .
Themes
 The theme layer provides the graphical presentation
for site elements and output the HTML to the browser.
 Themes take over the output of content displayed from
the database.
 Some modules will have their own themeing but in
general you can override their CSS with your own
 Generally when this happens you can override the
module CSS .
 Themes are made up of a specific series of files that we
will review later .
 Theme override functions
Nodes
 Almost any kind of object accessed in Drupal
 A page is a node.
 An image can be a node.
 A user can be a node.
 In general, a node type is created to do something or post a
specific kind of content.
 News story
 Event
 Product
 Tech support article
 You can also use node types to help control access.
Filters
 Filter s control the type of content that can be added to each
page
 By default there are three filters
 Filtered HTML



Web page addresses and e-mail addresses turn into links automatically.
Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li>
<dl> <dt> <dd>
Lines and paragraphs break automatically.
 PHP code
 Full HTML


Web page addresses and e-mail addresses turn into links automatically.
Lines and paragraphs break automatically.
 Filters can be added and changed to match the needs of a site.
For example if you use <b> to mean something in your style
sheet you could make <b> available in the filtered HTML filter
Blocks
 Blocks are areas that can be displayed in regions on a
theme.
Weights
 Through out Drupal weights are used to help place
things on the screen for determining precedence
 Items with lower numbered weights float to the top
while items with higher weights fall to the bottom
 Many weights are replaced with drag-and-drop AJAX
based interfaces in 6
Menus
 Menus are critical to functionality of a site and are
created using the menus interface and placed using
the blocks interface
 You will find that you often want to disable the main
menu (called the navigation menu) and create your
own menu structures
 Menus are greatly enhanced in 6 with AJAX
Modules
 Drupal is a modular system
 Modules can be core or contrib (contributed).
 Core modules have been included in core because they
are considered critical to the function of Drupal and
often start out as contrib modules which get lots of
attention.

6 has many examples of contrib modules that are included as
core.
 Contrib modules range in quality but most are of a high
quality.

Stay tuned for more information about nearly core modules
URLs
 Drupal has two forms of URL’s
 Clean URL’s do not require showing query strings (for
example, http://www.denverdataman.com/articles ).
 http://denverdataman.com/?q=glossary is what a URL
looks like without clean URL’s
 Most sites will want to use clean URL’s
Admin Page
 /admin provides access to all the key administration
areas of the site
 The default view is By Task. The view can be changed
to By Module .
 By task is organized by task group like Content
Management, Site Building, and E-commerce
 Organized by Module provides a section for each
module.
Taxonomy
 Taxonomy is the system that Drupal uses to manage
tag like information about nodes
 Taxonomy has vocabularies
 Vocabularies have terms
 For example
 Product Vocabulary
 Product 1
 Product 2
 Topic Vocabulary
 Support
 Installation
 Customization
Taxonomy Continued
 You can think of Taxonomy as a tagging system
 Something may be a press release, but it may also have
other attributes.
 Sometimes you will a vocabulary that relates to a
specific functions of a module.
 The classified ads module lets you create classifications
of classified ads based on the classified ads vocabulary.
Tagging Options
 Controlled
 A set of tags are available and cannot be changed
without the administrator
 Great for tags that are static like products, versions, key
areas, or press releases.
 Free tagging
 Lets users add tags to the system as they add content
 Great for getting the most number of labels associated
with content
 A single term or multiple terms can be tagged for a
given node .
Tagging Options Continued
 Flat
 A flat list of terms
 Hierarchical
 A taxonomy that can have hierarchical relationships

Software
 Operating Systems
 Office Suites
 Photo Editing
 Web Design
Software
Operating
Systems
Office
Suites
Photo
Editing
Web
Design
Tagging Options Continued
 You can have vocabularies that share terms in a
hierarchy
Operating
Systems
Software
Web
Design
Office
Suites
Photo
Editing
Administering Taxonomy
 Taxonomy is administered under categories
 admin/content/taxonomy
 Taxonomies can used to display data using URLs like
http://www.denverdataman.com/taxonomy/term/18
or
http://www.denverdataman.com/taxonomy/term/18+
20
Users
 Drupal creates users to represent individuals with
access to the site .
 By default, someone who has not logged in is
Anonymous.
 This name can be changed on the site information page
/admin/settings/site-information
 Add as many other users as needed.
 Registration can be done by administrators or from a
public link.
Users and Roles
 Groups of users are called Roles
 Roles are assigned on the users page
(/admin/user/user).
 There are modules that allow changes to roles based on
other criterion.
 Users can have more than one role
 The role with the greatest permission will be inherited
for a specific task.
Access Control
 Access Control allows you to set very granular control
based on roles .
 Each module has its own permissions
User Settings
 User Settings can be configured at
/admin/user/settings
 This is the page where the administrator can control
what happens when a new user is created, and what
emails users receive upon being registered or
registering .
Node Types
 By default Drupal creates a page and story node types
 The main difference between story and page is that story
is promoted to the front page.
 An administrator can create more node types that
match the needs of specific content .
 Nodes types are an excellent way to pre-define a set of
options and security permissions for content being
produced
 Example: Technical support articles have access to
specific vocabularies, don’t get promoted to the front
page, and can only be added by a specific role
Contrib Modules
 All of the contrib modules you use should come from
the Drupal site unless you know the author or you are
the author .
 Make sure you choose modules that will work with
your installations .
Drupal Design
 Themes
 Templates
 Folders
 Installing Drupal
 Installing Modules
 Updating Drupal
Finding Themes
 Drupal.org - http://drupal.org/project/Themes
 The Theme Garden
 Drupal 5 - http://themegarden.org/drupal50/
 Drupal 6 - http://themegarden.org/drupal6/
 Top Notch Themes -
http://www.topnotchthemes.com/
Theme Considerations
 Overall aesthetics
 Programming quality
 Does the theme match your XHTML standards for your
site?
 Does the page have blocks where you need them?
 You can add blocks later, but it is typically better to find
or build a theme with the blocks you may want to use.
Template Files
 Theme files end in tpl.php
 There is a hierarchy of files
 page.tpl.php

node.tpl.php
 block.tpl.php
 You can override specific pages, nodes, or blocks
 page-page_name.tpl.php
 node-node_name.tpl.php
 block-block.name.tpl.php
Drupal Directories
 Modules
 Themes
 Sites
 All


Modules
Themes
 Default
 Files
Installing Drupal
 Your installation of Drupal will depend on your server
configuration .
 Cron.php
 One often skipped step is setting up the cron job for
Drupal.

Cron.php is a file that should be ran as a cron job and
performs critical tasks for Drupal.
 DenverDataman.com runs cron job every 6 hours.
 Some sites run it more frequently.
Installing Modules
Find the module you want to install
Right click on download and copy the link location
Go to your upload folder on your server
1.
2.
3.

4.
5.
6.
7.
8.
9.
I like to have an area where I download the TAR files before
untaring them
Type wget and the URL for the module
Untar the file
Copy the module folder into /sites/all/modules
Enable the module
Configure the permissions for the module
Configure the module
Drupal Resources
 Drupal.org
 Discussion boards
 Download modules and themes
 List servers
 Drupal Groups
 DBUG (Denver Boulder User Group)
 Lulabot (http://www.lullabot.com/)
 Drupal company who publishes a large amount of resources
for the Drupal community
 Great podcasts
 Pro Drupal Development - a great book for 5 with a new
version coming out for 6
 John K. VanDyk and Matt Westgate, Apress, 2007
Download