The Drupal Content Management System - UCSC Web Coordinators

pielibraryInternet and Web Development

Dec 4, 2013 (3 years and 4 months ago)

85 views

Drupal for

UCSC Web Coords

by Shawn Seley

May 20, 2008

Goals

for this presentation


Answer

some basic questions


Demo

a Killer feature of Drupal


A quick taste of Drupal
administration
screens


A sampling of how to use Drupal as a
framework


15+ minutes at the end for
questions

So … am I drinking
the
Kool Aid
?


The Kool Aid that I
am

drinking is this
Web
Coords

group


What I’m really interested in promoting is that
we work towards common standards


Learn

from each other


Share

each other’s work


Collaborate

with each other


Drupal

is only what I see as a good means
towards that end….

What is Drupal?

Drupal is
3
-
in
-
1

1.
Content Management System

(CMS)
-

very light weight, but fully extensible

2.
CMS framework

for rapid custom
features

3.
Programming

framework
for layered
-
code web application development

What is a
CMS
?


Manage

web based content


Separation

of content from display


Example
: by clicking a radio button, I
can change a whole site’s look….


So, what is a programming
framework
?


Buzzword
with an obscured meaning


More than a library. In a library the
programmer’s code calls

on library
components


But in a framework, the
framework calls

on
the code written by the programmer


Programming
customizes and extends

the
framework

Benefits

of a framework?


Faster

development (twice as fast?)


Standardized

for collaboration


Facilitates
best practices



Facilitates
code reuse

by separating logic
into layers


Data


Business logic


Presentation


Leverage the work of others

Why not a
different

CMS?


WordPress
: not a programming framework


Joomla
: requires a separate installation for
every site (hard to maintain more than a few)


Plone
: written in rarer Python language, and
known for a steeper learning curve


Sharepoint (MOSS)
: (no in
-
depth
comparisons) not open source, requires
Windows servers, also I
suspect

it to be less
standards compliant (
?
), and as a framework
it requires knowledge of C# and ASP.net … I
suspect

it has a higher learning curve (
?
)

What makes Drupal special?

(
Killer features
)

1.
No
-
code
rapid

(basic) custom web apps

2.
Proven
scalability

(400+ sites on one
installation, able to support very high traffic)

3.
Best blend of power and ease.

A good
solution for simple/small sites as well as for
big/complex sites. It’s the one that I can
recommend to the
greatest number

of web
developers here on campus … and
that’s

my
Kool Aid

No code

web applications?


Caveat:
basic

web applications


Two downloadable modules:


Content Construction Kit (
CCK
)


Views


Extremely widely used in production on
Drupal 5, but still in development for
Drupal 6 (used in this demo)

CCK


Wizard

interface for creating custom
web forms


Automatically creates new database
fields and the code to populate them


Automatically informs the
Views

module
about these fields


Also has its own programmer’s
API

Views


Wizard

interface for creating database driven
lists/reports


Handles table
relationships

automatically


Many options for data formatting, sorting, and
filtering … even according to passed URL
arguments


Output is completely
themeable

with both
HTML and CSS


Also has its own programmer’s
API

Web app
example


As a
proof of concept
, I created a little
project
-
tracking web application … entirely
through CCK and Views (and Fivestar)


Staff

submit their projects via a web form


Divisional Liaisons

then go in and discuss
via comments and assign star rating to each
project … the highest average star rating gets
worked on first


[demo CCK, Views, and their permissions]

Drupal as a programming
framework


Simple example from my own module


This code (called a “hook” in Drupal)


function
randomqoute
_perm()

{ return array('access
randomqoute content', 'display edit link'); }


Produces these checkboxes for the
administrator



Which can then be checked by using
code like this

if (
user_access
('display edit link'))

{ print ' (' .
l('edit', 'node/' . $quote
-
>nid . '/edit') . ')'; }


To produce this output on the home
page when viewed by a content editor:

(highlighting added for clarity)

Drupal
Developers Group
?


I know there is interest in Drupal, but I’d
rather not dominate the Web Coords
group with the details of how to
use

it


So, for those developers who are
interested in using Drupal please
email
me

at
shawnse
@ucsc.edu