presentation - People.csail.mit.edu

Download Report

Transcript presentation - People.csail.mit.edu

Welcome to Drupal Crash
course
- Gartheeban Ganeshapillai
Have you got any
experience?
People used to build computers
from the scratch
One day someone thought why reinvent the wheel again and again - so
there came prefabricated components.
We no longer build computers, we just assemble them, and customize them
Web services
Not simple HTML webpages
HyperTextMarkupLanguage is what renders
the webpages
They were used to be built from the scratch
They would have looked
index.html
<html>
<head>
<title ="Welcome">My homepage</title>
</head>
<body>Here goes content.
<a href="contact.html">Contact me</a>
</body>
</html>
contact.html
<html>
<head><title ="Contacts">My Contacts</title></head>
<body>Garthee <br /> 32G - 915 <br /> Stata Center <br /> MIT</body>
</html>
Do we have to code repeatedly when we
need more pages?
Simple PHPHypertextPreprocessor script that could generate
this
index.php
<html>
<head>
<title>
<?php if($_GET['q'] == 'contact') echo "Contact"; else echo
"Welcome"; ?>
</title>
</head>
<body> ... </body>
</html>
Seems like a lot of work
Imagine you have a blog with 1000 pages.
The latter SCALES (capable of handling
enormous expansion) ...
But how to keep record of content?
Hard code?
NOOO!
We need database!
Database (DB) is a container of data, often organized
in tabular format, that is easily accessible, indexed,
catalogued, etc.
Management is easier than storing data in separate
files.
How DB is going to help us?
index.php
<html>
<head>
<title><?php echo getTitle($_GET['q']); ?></title>
</head>
<body><?php echo getBody($_GET['q']); ?></body>
</html>
<?php
function getTitle($key) {
query the database table for title using the key, return the value;}
function getContent($key) {
query the database table for content using the key, return the value;}
?>
Content Management SYstem (CMS)
A complete web based system that handles
Content management
User management
File (attachment, media - images, audio,
video) management and many more
Is called CMS
Drupal
Developed by
Dries BuyTaert
Creators envisioned it to be generic, flexible, simple and scalable.
Drupal is a web-based content
management system.
Text and pointers to other kinds of content are stored in a database, dynamically retrieved and
composed, and presented to a user in response to a request sent via a web-browser"
- from drupal.org
It is more than a CMS now, powering up both high
profile sites and highly loaded sites
CSAIL - http://csail.mit.edu
Whitehouse http://whitehouse.gov
Check the link for a
presentation on the list of
high profile sites powered by
Drupal
Why Drupal
(list retrieved from drupal.org)
Modular and extensible : Drupal aims to provide a slim, powerful core that can be readily extended
through custom modules.
Quality coding : High quality, elegant, documented code is a priority over roughed-in functionality.
Standards-based : Drupal supports established and emerging standards. Specific target standards
include XHTML and CSS.
Low resource demands : To ensure excellent performance, Drupal puts a premium on low-profile
coding (for example, minimizing database queries).
Open source : Licensed under the GPL. Specifically, Drupal is coded in the open source scripting
language PHP and supports as primary data sources the open source database formats MySQL and
Postgresql.
Ease of use : Drupal aims for a high standard of usability for developers, administrators, and users.
Collaboration : Drupal development supports open, collaborative information sharing systems and
approaches.
SEcret Weapons of Drupal
Secret Weapon No 1:
Taxonomy
Classification, tagging , categorization, faceted search, etc
Secret Weapon No 2:
Views
Build a query, sort, filter and pass arguments to query through a UI
Secret Weapon No 3:
CCK
Fields, Custom Content, RDF support, XMLRPC support, etc
Action PLAN
Introduction to CMS (15 mins) :
Websites in General | Frameworks in General | What is a CMS
Introduction to Drupal (15 mins) :
Drupal | Features | What can you do with Drupal
Installing Drupal (30 mins) :
Single Domain installation | Module Installation | Theme Installation | Site configuration | General
Management
Modules (45 mins) :
Taxonomy | Views | Fields - CCK | Themes - Acquia Marina (15 mins)
Hacking (20 mins) :
Module Hacking | Theme Hacking | Never ever hack the core
Module Development (20 mins) :
Design | Architecture | Development | Coding style
Multi-site Installation (if time permits)
Troubleshooting (if time permits)
Installing Drupal (30 mins)
Single Domain installation
Site configuration
Module Installation
Theme Installation
General Management
Installing Drupal (30 mins)
Single Domain installation
splash.theebgar.net
Installing Drupal (30 mins)
Site configuration
Installing Drupal (30 mins)
Single Domain installation
Site configuration
Module Installation
Theme Installation
General Management
Installing Drupal (30 mins)
Single Domain installation
Site configuration
Module Installation
Theme Installation
General Management
Modules (45 mins)
Taxonomy
Views
Fields - CCK
Themes (15 MINS)
Acquia Marina
Other themes
Acquia Slate
Pushbutton
Garland
A THEME I DEVELOPED -
Brownie
Hacking (20 mins)
Module Hacking
Theme Hacking
Never ever hack the core
Module Development (20 mins)
Design
Architecture
Development
Coding style
...
Multi-site Installation
Troubleshooting
Questions?