An overview of Drupal as a Content Management System presented at the Web Content Mavens in Washington, DC by Phase2 Technology Project Manager Joel Sackett.
1. Choosing an Open Source CMS
An overview of Drupal as a Content
Management System
2. Introduction & What I’ll be covering
• Who am I?
• Overview of Drupal as a CMS
• Pros & cons
• Where is Drupal (and to some extent open
source) headed...?
• Some sites that use Drupal
2
3. A little bit about me...
• Joel Sackett
• (Drupal) Project Manager w/ Phase2 Technology
for three years
– Phase2 designs, develops and supports high quality innovative web applications
using open source technology. Learn more at www.phase2technology.com
• I’ve managed approx. 15 medium to large Drupal
site build-outs
– I have also managed Wordpress projects (and
used it for personal stuff)
3
4. Understanding Drupal: The official explanation
Drupal is an open source social publishing software that empowers individuals,
teams, and communities to easily publish, manage and organize a wide variety of
content on a website.
It offers flexibility through vetted systems and tools that empower users to leverage
previous community successes through modules and create unlimited new
functionalities with a flexible architecture.
Drupal was also designed to allow third parties to create and customize new features
and behaviors through APIs.
The Drupal framework offers a sophisticated programming interface for developers,
but few programming skills are required for basic website installation and
administration.
Drupal is written in PHP and can run on any platform that supports:
• a web server capable of running PHP (version 4.3.5+), including Apache and IIS
• OS: Linux, BSD, Solaris, Windows, and Mac OS X
• a database, such as MySQL or PostgreSQL, to store content and settings.
4
Source: Idealware report
5. Understanding Drupal: The layman’s translation
Drupal is an open source CMS with a social flare (read: web
2.0 pre-wired)
It is flexible and lets you utilize contributions from thousands
of developers.
People can do some really amazing things with Drupal, as it
has very few inherent limitations.
Its hard if you want it to be, but you can keep it simple if you
try. Plus, there is an incredible community of developers and
consultants should you ever need help.
5
Source: Idealware report
6. Social Publishing Software Participation-Driven
Websites
users
content
blogs /
workflow wikis
forums /
taxonomy
Content
Social Social
comments
Mgmt Publishing Software
Systems Systems Tools
ratings
search
tagging
RSS
social
analytics networks
Source:
7. Key Drupal terms: Content
Node: a primary unit of content. It has a unique URL given by
the system. It can also be given a custom URL as well (an
"alias,").
When people refer to "a node" all they mean is a piece of
content stored within Drupal. A node could be a poll, a story,
an image, a book page, etc.
Nodes belong to a "content type." The "Page" and "Story"
content types come set up in the default installation. Many
more can be added. And with the help of the Content
Construction Kit (CCK) you can extend the number and types
of fields for each content type.
Nodes can have taxonomy terms (categories) applied to it, files
attached to it, and be extended in many ways.
Source: Drupal.org
8. Key Drupal terms: Code
Module: software (code) that extends Drupal features and/or
functionality.
Core modules are those included with the main download of
Drupal.
Contributed (or "contrib") modules are available for separate
download from the modules section of Drupal.org.
Modules can be written to do just about anything in Drupal
without modifying the core functionality.
Source: Drupal.org
9. Key Drupal terms: User interface
Theme: is the way your site is displayed to the end-user. The
graphic look, layout and colors of Drupal sites are defined
by the themes.
Block: a method for positioning data within a page. Blocks
contains content, like a node, but is conceived of as lighter
weight and is not as flexible as a node. Blocks are often
positioned in the sidebars of a web site.
Menu: a list of links. Menus become available as blocks after
they are created. The look of menus are typically controlled
by the theme.
Views: A module which allows site developers a simple
graphical interface for modifying the presentation of
content.Views permits selection of specific fields and filters
for what to display (ie. list, full nodes, teasers, etc.)
Source: Drupal.org
12. Why we (phase2) use Drupal
Performance/Reliability: Dozens of major Large Community Support: You
publishers turn to Drupal and tens of thousands of need a community that is active, robust,
high traffic sites because it is an enterprise class responsive and growing. We are involved
platform. in the Drupal community and have an
ear to the ground on features and
changes that would affect your site.
Ease/Expense of Implementation:
development shops worldwide find they can be as Easy Staff Training: The Drupal
efficient as anyone on this platform and use is as CMS is intuitive and we are well versed
their preferred technology. in training others to use it. To support
training, there are numerous videos,
online tutorials, local classes and even
Evolving Technology Extensibility: You books on how it works.
need something modular/extensible that allows
you to add new features easily and it is all possible
with Drupal. Decreased Support Costs:
Organizations find they can do a lot
more themselves and when they do
Easier Modular Enhancements: Drupal's need help, the time is a fraction of what
architecture is modular and integrates well a proprietary CMS would cost for
without requiring customization to core similar changes.
components that would make them difficult to
maintain.
12
13. Some potential cons (that can be over-come!)
Accessibility: Out of the box, Drupal does not
offer full-blown accessibility support (508
compliance, etc). But, it can be over-come
(whitehouse.gov...)
Perception that Open Source = cheap:
While Drupal may be free, that does not mean that
everyone who implements Drupal can do so on the
cheap. There are a lot of services inherent to a
complex site build that should be considered
(project management, information architecture,
design, etc) - providers of these services are not
necessarily ‘cheaper’ just because they utilize Open
Source/Drupal.
Ongoing maintenance & support: Not
necessarily a con, but something to consider.
Drupal is not a magic panacea: Special
project needs require extra due diligence. For
example, if your organization is constantly targeted
from a security perspective, simply switching to
Drupal is not necessarily a cure-all.
13
14. Understanding the open source landscape
• OSS (Open Source Software) is only as good as
the community that supports it:
– Drupal community is very robust.
– The Drupal community is very good at
recognizing the contributions of others.
– Open source is only the opposite of closed
source.
– The idea of “vendor-provided” and “open
source” solutions are not opposites.
• Distributions...
14
15. What’s to like about open source?
• Cost
• Ease/expense of implementation
• No vendor tie in
• Control over destiny
– Contributions
– Openness
• Community support
• Modularity
• Community innovation
15
16. Sounds good, so what’s the catch?
• You have to pick the right community
• Where to start?
– Lots of options that are hard to evaluate
– You will probably need consulting help
– Documentation/training may be limited
• Maintenance & support should be taken seriously as an
ongoing cost/activity
• Staying up to date
– Upgrades and patches
– Knowledge of the community
• Requires discipline to stick to the architecture model
16
17. Things to consider...
• Drupal has the potential to be a very complex platform. Because of
this, it can solve really complex problems. There are a lot of options,
settings and screens, and the flexibility of the system means it’s
important to think before diving in.
– Sometimes it is best to get an outside perspective - when you
are too close to a legacy system, even ‘new solutions’ start to
look a lot like the old ones.
– Consider on-going development needs. If developed iteratively,
without a lot of documentation along the way, it can be harder
for a new developer to just jump in - Drupal or any other system
can’t mitigate this problem.
– Drupal by itself cannot get you past certain hurdles, such as
scalability requirements, complex data relationships, etc. This
often requires the help of seasoned professionals; again
regardless of the system.
17
18. Dispelling the myth of the ‘whatever module’
• Because Drupal is powerful, flexible, and extensible, there
seems to be the myth that you can just install the ‘whatever
module’ and all of your problems will go away.
• The truth is, modules tend to really only get you between
50% - 80% of the way there. There will always be the need
for additional code, bug fixes, resolution of unexpected
results, upgrade issues, etc. A module description is really
only that - a description written by someone who installed it
in a very specific environment. Module contributors cannot
always take into account 100% of the use-cases that other
users will come up with.
18
19. What’s next for Drupal?
• The latest release of Drupal was focused mainly around
improving the administrative functions within Drupal admin.
• As Drupal continues to gain traction as an enterprise level
solution, distributions will become more and more prevalent.
• Complex workflow, document management and on-demand
theme additions are all areas of potential future
improvement.
19
1. At the core of the system is the big bucket of nodes—the data pool. Before anything can be displayed on the site, it must be input as data.\n 2. The next layer out from the center is where modules live. Modules are functional plug-ins that are either part of the Drupal core (they ship with Drupal) or they are contributed items that have been created by members of the Drupal community. Modules provide various functionality to expand your site’s capabilities to include things like the creation of custom data points (fields) for your nodes; event calendars; e-commerce; programmatic sorting and display of content (custom output keyed off of any number of configurable parameters that interrelate your content) and more. There are hundreds of different options within the fast growing repository of contributed Drupal modules. They represent the work of everyone from individuals to large corporations who use and rely on Drupal and are working to extend its power and usefulness.\n 3. At the next layer, we find blocks and menus. Blocks often provide the output from a module, and can be placed in various spots in your template (theme) layout. Blocks can be configured to output in various ways, as well as only showing on certain defined pages, or only for certain defined users.\n 4. Next are user permissions. This is where settings are configured to determine which things different user types have access to. Permissions are assigned to various roles, and in turn, users are associated with those various roles in order to grant them the associated permissions.\n 5. On the surface layer is the site template. This is made up predominately of XHTML and CSS, with some PHP tokens sprinkled throughout to insert content from the system into the correct spots. Also included with each template is a set of functions that can be used to override standard functions in the modules in order to provide complete control over how the modules generate their markup at output time. Templates can also be assigned on-the-fly based on user permissions.\n