Why a CMS? Why Drupal?
-
Upload
marie-toler-raney -
Category
Technology
-
view
137 -
download
0
Transcript of Why a CMS? Why Drupal?
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.
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)
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)
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
CMS: Database Records
Name of Item Category Status
Cast-Iron 2-Quart Cooking viewed
22 Britannia Road Novel Wish list
Ethernet Cable Electronics bought
In order to create that page, Amazon might have a database table for
each user that looks something like this:
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
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
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
So, Define “CMS”?
A web application that facilitates
the production and re-use of
modern web content by
non-technical content providers.
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
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
Some CMS Products
Wordpress, blogger, etc
Drupal, Joomla
ModX, TextPattern, Concrete5, DotNetNuke
CascadeServer, SiteCore, CampusSuite
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?
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
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.
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
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
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
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!
Drupal Architecture
Various setup
possibilities
allows for many
sites to be run
off of same code
base and either
same databases
or separate
databases.