IBM's 5th article on Drupal
IBM's Internet Technology Group has written a very nice series of articles on Drupal, the latest of which gives a fabulous introduction to the basics of Drupal.
This article gives you an overview of the Drupal content management system. We'll describe the common building blocks and discuss some common assumptions of the Drupal approach. It is helpful to understand core concepts and basic Drupal terminology as you go through this article and beyond.
The article starts off by explaining much of the Drupal jargon, and does so without falling back on other jargon, which is the first step for anyone wanting to understand the basic structures behind how Drupal works.
For example, explaning nodes:
An important concept in Drupal is that all content is stored as a node. They are the basic building blocks for the system, and provide a foundation from which content stored in Drupal can be extended. Creating new node modules allows developers to define and store additional fields in the database that are specific to your site's needs. Nodes are classified according to a type. Each type of node can be manipulated and rendered differently based on its use case.
Or taxonomy:
The Drupal taxonomy system allows the classification of nodes, which enables the organization of node content on a displayed Web page. This categorization can also be used to modify Web site navigation.
Categories are defined by tags, or terms, and sets of terms can be grouped into a vocabulary. Drupal can automatically classify node content with terms, or node content can be manually classified using associated vocabularies. Drupal also allows free tagging, letting users define their own terms for node content.
Even the concept of program hooks is covered.
The authors also spend a fair amount on Drupal theming and template construction, going through various functions and node presentation hooks available to customize the look and feel of your Drupal content to however you like.
The PHPtemplate engine allows you to map templates to specific theme functions. Theme functions provide generic methods to build Web content that is used by modules providing core functions in Drupal, or by your own modules to extend Drupal.
One example is the theme_links function. Given an array of xHTML anchor elements (links), theme_links will return a string containing these links delimited by a given character. This is an example of a very simple building block....
function phptemplate_links($links, $delimiter = ' | ') {<br> if (!is_array($links)) {<br> return '';<br> }<br> $content = '&lt;div class="links"&gt;';<br> $content .= implode($delimiter, $links);<br> $content .= '&lt;/div&gt;';<br> return $content;<br> }
Okay, so the writing tends to be a little on the geeky side, but this article admittedly is for the geek reader -- probably someone who is either interested in learning how to develop with or theme for Drupal -- but the post is clear enough that it could also be of interest to anyone interested in getting more than the most simplistic sense of how Drupal works.
I find myself hoping that authors Alister Lewis-Bowen, Stephen Evanchik and Louis Weitzman have the time to join the Drupal documentation team