Why a CMS? Why Drupal?

31

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)

What I’m going to say: A

CMS is…

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

What Can a CMS do?

.

An example: Amazon.com associates buying and browsing history with a user:

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

What can a CMS do?

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.