Skip to Content

Notes on Drupal

Ahmed Hashim's picture


What is a CMS ?

highly philosophical question, no clear answer.

one must understand how the web is built out of HTML pages, CMS systems simplify the process of publishing and generating these HTML pages and make it possible to allow website visitors to contribute content (as in forums, comments, or even wikis).


there are 4 major platforms for web applications including CMSs

  1. CGI
  2. Java
  3. LAMP
  4. .Net

LAMP is by far the cheapest, most popular and most widely supported, since LAMP is built on FOSS and is very easy and cheap to build for, deploy, run and maintain. there are thousands of FOSS projects that provide you with useful packaged webapplications that you can start using immediately.

this enables anyone to have a complex and rich website (or benefit from other webapplications), Drupal is one among a huge variety of FOSS, ready to run, easy to use CMS systems.

What should I expect from a CMS

  • Interface for creating, editing, moving, deleting, etc pages
  • Navigation
  • User Management, accounts, permissions, profiles etc
  • RSS Syndication
  • Themes
  • Search
  • standalone modules or applications (forums, calendars, wikis, surveys)

Drupal offers

  • Great platform for community websites
  • Special support for cheap hosting situations
  • Vibrant community, fast development process
  • many many useful modules
  • translated to many languages (EGLUG and Arabeyes working on Arabic Translation)
  • Easy to use (relative to its power and flexibility, there are easier systems)
  • support for multiple user roles
  • support for complex categorization of content
  • different content types
  • powerfull syndicated content aggregation
  • multiple methods of data input
  • multiple ways to make themes
  • easy to build themes
  • easy to develop new modules and extensions

Steps involved in installing Drupal (or any webapp)

  1. get hosting space that supports PHP+Mysql or configure your own webserver

  1. unpack package
  2. edit configuration file (only 2 things need to be set in drupal)
  3. upload files (typically using ftp)
  4. create and prepare database (typically using command line or phpMyAdmin)
  5. create admin account
  6. configure periodic actions (cronjob)

we do not cover installing drupal today, the details will differ according to your hosting service, and the platform you use at home.

check the drupal documentation and post any questions on the EGLUG forums, those who need help making a local installation on their GNU/Linux pcs can seek help on Saturday gatherings.

Steps involved in creating a website using drupal

  1. Configure Drupal
  2. Add extra modules (maybe develop your own)
  3. Configure Modules
  4. Choose Theme (or create new theme)
  5. design category taxonomy
  6. design site navigation and content layout
  7. Decide on User roles (author, editor, admin, etc.), brief members of different roles (workflow)
  8. create static content
  9. populate with dynamic content, maintain site (ongoing process)
  10. monitor reader activity, errors, complaints etc.
  11. keep track of new modules, updates, new versions
  12. measure performance and configure throttle accordingly
  13. contribute back to drupal community

Tour Through Drupal

we will assume a site with the typical roles Author, Editor, WebAdmin



  • create content
  • edit own content
  • submit content for publishing or publish directly (depending on workflow)
  • categorize content according to existing categories


  • look at create content page
  • look at content creating/edit form
  • quick look at built in content types
  • quick look at important extra content types



  • everything author does
  • edit anyone's content
  • mass administer content
  • administer comments
  • create and maintain categorization system
  • review content categorization


  • administer content
  • administer comments
  • taxonomy creation, editing etc
  • quick look at modules that build on top of taxonomy



  • everything editor can do
  • configure theme
  • configure website
  • enable/disable modules
  • configure modules
  • manage user accounts, permissions, roles etc
  • track user activities and system logs
  • configure input formats
  • configure content types
  • configure workflow (limited)


  • admin menu
  • admin->themes
  • admin->modules
  • admin->settings menu
  • admin->users
  • watchdog, system logs
  • admin->input formats
  • admin->content types

Dr. Radut | book