Drupal
Create a website/web app quickly with this Content Management System
Jiaying
Xu
jx2129@columbia.edu
Spring 2011
COMS E6125 Web
-
enHanced
Information Management (WHIM)
Content Management Systems (CMS)
•
What is a CMS?
•
A CMS allows for the management of website
content in a user friendly way
•
Extension of web application framework that has
additional functionality and is more user
-
friendly
•
CMS benefits
•
Clients can update content themselves
•
Separation of content and presentation
•
Easy to redesign website since content is stored in the
database and inserted using page templates
•
Develop websites/web applications quickly
•
Utilize built in features such as user management and
content management
•
Popular CMSs
•
Drupal
,
Joomla
,
Wordpress
Content
Management
Systems
Web Application
Frameworks
Programming
Languages/Databases
Overview of Drupal
•
Open source
•
Maintained by many developers
•
Community
•
There are over 400,000
Drupal
websites
•
DrupalCon
yearly conference
•
Documentation
•
Extensive documentation on
drupal.org written by
Drupal
community
•
Developer friendly
•
Functionality can be easily
extended
•
Requirements
•
PHP,
MySQL
, web server (Apache)
Usage statistics of
Drupal
from drupal.org, which only shows
sites with the Update Status module enabled
[1]
Map showing the local
Drupal
groups around the world from
drupal.org
[1]
Sites That Use Drupal
•
Large variety of organization use
Drupal
•
Corporate, Education, Entertainment, Government, Newspaper, Non
-
profit, Sports
Features of
Drupal
•
Administrative interface
•
Web interface that allows
admins
to manage content, users, etc
•
Content Management
•
Allow users to create, edit,
manage content without detailed
knowledge of HTML/CSS
•
User Management
•
Built in user authentication
•
Management of adding, editing,
deleting users
•
Menus
•
Easy to add pages to menus
•
Easy to display menus on website
Content management admin page
WYSIWYG editor seen when editing pages
Features of
Drupal
•
Statistics
•
Tracks website usage
-
referrers,
page hits, visitors, etc
•
Performance
•
Tune website performance with
page caching and bandwidth
optimizations of CSS and
JavaScript files
•
File Uploads
•
Allows users to easily upload
files
•
URL Aliases
•
Allows
admins
to define custom
URL aliases for pages
Recent log entries page
Performance page
Drupal
is Extensible and
Themable
•
Modules
•
Open source add
-
ons to
Drupal
that extends its functionality
•
Over 7000 modules available and you can contribute your own module
•
Example modules
•
Pathauto
: Generates automatic URL aliases for pages based on a pattern such
as the page title
•
Content Construction Kit (CCK)
•
Views
•
Themes
•
Allows you to apply a design to your website
•
Over 800 themes available and you can contribute
your own theme
Corolla theme
[1]
Drupal
Basics: Content
•
Nodes
•
All content are nodes
•
Content types
•
Page
•
Story
•
Add your own
•
Examples: Alumni Profile, Event,
Lecture
•
Content Construction Kit (CCK)
Module
•
Allows you to add
custom fields
to
content types
•
Without using CCK, the only fields
in a content type are the title and
body
•
Custom fields can have type: date,
email, file, image, integer, link, text
Custom Alumni Profile
content type
with
custom fields
defined using
CCK
Creating an Alumni Profile
node
Drupal
Basics: Views
•
Views Module
•
User interface that allows
you to select and display
one or more pieces of
content in a single view
•
Can create view from
content nodes or users
•
Builds SQL query to select
the content on the back
end
Example view to display board members of an organization
Page rendered from view
Building a Job Database Web App
•
Functionality
•
Allow any visitor to post
jobs
•
Jobs can be viewed and
searched for
•
Basic steps
•
1. Define a custom content
type and CCK fields
•
2. Create some sample job
nodes
•
3. Create a view
•
4. Modify permissions
Result of creating job database app in
Drupal
1. Define a Content Type and CCK Fields
Define a content type called job
Create custom fields for the job
content
type
2. Create Job Nodes
Create some sample jobs for the job
database
Page generated as a result of submitting
the “Create Job” form shown on the left
3. Create a View
•
This generates the main job
database page that lists all the jobs
in a table and allows for user
searches and filtering
•
Fields (SQL select)
•
Add all the job fields that will be
shown in the display
•
Filters (SQL where)
•
By default, a view shows all nodes
•
Specify that the node type is job
•
Add
exposed filters
so users can filter
and search
•
Sort criteria (SQL order by)
•
Sort all jobs in descending order
according to when the job was
submitted
•
Style
•
Display the results in a table format
SELECT
node.nid AS
nid
,
node.created
AS
node_created
,
node.title
AS
node_title
,
node_data_field_job_employer_name.field_job_employer_name_value
AS
node_data_field_job_employer_name_field_job_employer_name_value,
node.type
AS
node_type
, node.vid AS
node_vid
,
node_data_field_job_employer_name.field_job_position_type_value
AS
node_data_field_job_employer_name_field_job_position_type_value,
node_data_field_job_employer_name.field_job_paid_value
AS
node_data_field_job_employer_name_field_job_paid_value
,
node_data_field_job_employer_name.field_job_category_value
AS
node_data_field_job_employer_name_field_job_category_value
,
node_data_field_job_employer_name.field_job_location_value
AS
node_data_field_job_employer_name_field_job_location_value
FROM
node
node
LEFT JOIN
content_type_job
node_data_field_job_employer_name
ON
node.vid = node_data_field_job_employer_name.vid
WHERE
node.type
in
('job') ORDER BY
node_created
DESC
Job database view
Generated SQL query
SQL Select Statement Review
SELECT
–
which table columns to retrieve
WHERE
–
what to filter the results by
ORDER BY
–
sort results of query
4. Modify Permissions
•
By default, anonymous
users cannot create
content
•
Modify permissions to
allow anonymous users
to create job content
Permissions page
Power of
Drupal
•
Drupal
is not just a
platform for creating web
pages
•
Allow developers to create
both simple websites and
powerful web applications
•
Applications that Columbia
created using
Drupal
•
Student Affairs
-
Student
Groups Interactive Directory
•
Columbia College:
Fellowship
Database
•
Career Center:
Internship
Survey Database
Student Groups Directory
–
ACM page
Bibliography
•
[1] “
Drupal
–
Open Source CMS.”
Drupal
. http://drupal.org.
•
[2] Harrison,
Davd
. “The advantages and disadvantages of
Content Management Systems.”
http://daveharrison.net/articles/the
-
advantages
-
and
-
disadvantages
-
of
-
content
-
management
-
systems.
THANK YOU
Enter the password to open this PDF file:
File name:
-
File size:
-
Title:
-
Author:
-
Subject:
-
Keywords:
-
Creation Date:
-
Modification Date:
-
Creator:
-
PDF Producer:
-
PDF Version:
-
Page Count:
-
Preparing document for printing…
0%
Σχόλια 0
Συνδεθείτε για να κοινοποιήσετε σχόλιο