2. Who am I?
Director of Web CommunicationTechnologies;
Webmaster for Western Washington
1980s: programming operating systems for military flight
simulators; Project Engineer for F/A-18 program
1990s: Design school at U of O; CAD programming for Energy
Studies Lab in the Architecture department
1994: First web design projects when pictures came to web
2005: Started at Western; 2011: Launched wwu.edu on Drupal.
Now: Converting College sites to Drupal.
3.
4. Web History
1990s – isn’t the web cool – look what I can do! (web
as we know it is invented)
2000s – We need to put everything on the web.
(Major business functions transition to websites)
2010s – This is too hard. How do we put content
control back into the hands of non-techical content
experts? (CMS required in most sites)
5. Now: types of Web Pain
User: Can’t find anything (usability due to extent and
organization of information)
Owner: can’t keep everything updated (capability /
maintainability of content)
Admin: can’ keep it running with new features
needed frequently (maintainability)
8. Example: find something
• Easy to find a product when there are a
dozen or two – how do you do it when there
are tens of thousands?
• A multitude of ways: menus, filtering, search,
related objects, popular items… most of
these require a database
9. What Can a CMS do?
An example: Amazon.com associates buying and browsing history with a user:
.
10. CMS: Database Records
In order to create that page, Amazon might have a database table for
each user that looks something like this:
Name of Item Category Status
Cast-Iron 2-Quart Cooking viewed
22 Britannia Road Novel Wish list
Ethernet Cable Electronics bought
11. Another example of CMS?
.
Western’s Academic Calendar
has Events, each defined with
FIELDS:
Calendar Event
Date: June 11 - 18
Name: Summer Break
Type: Term Break
12. DB gives CMS power
Static Web has pages
The page is smallest unit
you can link to it
you can link to it again
the page has no values –
just text
CMS has DB fields
Content is made of fields which
have a value:
a number
a link
a date
You can perform operations on
content with values e.g. List all
the holidays > TODAY
13.
14. Editor Usability
WHAT EDITOR NEEDS
No Coding Required!
WYSIWYG (what you see
is what you get)
Simplicity – only see what
can change
HOW CMS CAN DO IT
Web Forms for point-click
Apply CSS to editor OR
edit in page
WorkBenchs, permissions,
etc
15. So, Define “CMS”?
A web application that facilitates
the production and re-use of
modern web content by
non-technical content providers.
16. What does that mean?
A web application that facilitates the production and re-use of
modern web content by non-technical content providers.
• Web application = no download required, edit in browser
• Production = user interface for all facets of website creation
• Re-use = there’s a database to hold and classify content
• Modern = Server-side capability to do the interactive stuff
• Non-technical = web forms allow point-&-click so no coding
17. An example?
Academic calendar on WWU.edu:
http://www.wwu.edu/academic_calendar
Look at behind-the-scenes editing screens – user is
updating the database without coding
21. Maintenance Nightmares
Security: Virus, Spam, Hacking etc – these threats morph and
proliferate – how do you keep up?
New Functionality: how to add capability over time without
breaking existing installations? New Languages? Responsive
Design? HTML 5? HTML xxx?
New Designs, Looks, Styles: Can the style be easily updated
over time?
Growth: Does it work for 20 users? 20,000? Can I add sites for
new groups?
22.
23. Why Drupal:
Capability – Usability - Maintainability
Drupal is a stable and mature open
source product with one of the most
active communities in the open source
world. It has a fabulous security team
and over 15000 modules contributed by
thousands of developers. Let’s look
at:
1. Architecture
2. Development Process
3. Security
4. Community
24. Drupal: Good Architecture
Some common problems with poor architecture:
• Code upgrade breaks previous customizations
• Code becomes slow, unmanageable as time goes on
• Can add functionality, but error modes, initialization, translation,
status reporting have to be re-invented
• Custom code introduces security problems
Architecture is destiny. And more so for open source code.
25. Drupal: Good Architecture
Based on clear Principles http://drupal.org/principles
Core and User code (= Drupal “Module”) completely
separate; Great API http://api.drupal.org/api/drupal/7
Content and Design (= Drupal “Theme”) completely
separate
Next version (D8) will be based on Symfony PHP
framework
26. Drupal: Good Process
GIT Repository for code / documentation issue control
Translation, documentation, core code, module code,
theme code, testing, all have processes so anyone can
contribute in manageable, traceable way
Testing Framework: SimpleTest
27. Drupal: Good Security
QUALITY. Great security team: 40 people currently on
official team to approve changes but 100s have
contributed
OPENESS. Anyone can subscribe to advisories; all sites
automatically email the admin when a security update is
available
Resources:
http://drupalsecurityreport.org/
Security Fixes By Year
Year Core Contributed
2013 (YTD) 2 33
2012 4 174
28. Drupal: Great Community
9000 unique people filed issues
in 12 months
1800 unique people filed
patches in 12 months
Strong central development
team; 4 people make final
commits to core
20000+ published modules by
users like us!
29. Drupal Architecture
Various setup
possibilities
allows for many
sites to be run
off of same code
base and either
same databases
or separate
databases.