Welcome to Drupal Crash course

architectgroundhogInternet and Web Development

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

101 views

Welcome to

Drupal Crash
course

-

Garthee
ban 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?