The Skill Set of a Well-rounded Drupal Web Developer

The design, development and release of a complex website involve a large array of skills that few individuals can master all-together. In actuality, most successful web development efforts rely on a team of specialized individuals to cover the entire skill base.

Most people are in tune to the need for skill diversity. For instance, many people accept that the visual design of a website is often an artistic task performed by a graphic designer, while the configuration of a website is a technical process often performed by a code programmer.

Drupal FAPI: Disabling Form Elements

Access Control of Form Element

We can use the #access directive of the form element so that a permission can be specified using user_access(). For instance:

$form['menu'] = array(
'#type' => 'fieldset',
'#title' => t('My Menu'),
'#access' => user_access('administer menu'),
'#collapsible' => TRUE,
'#collapsed' => !$link['link_title'],

In this case, only users with the “administer menu” permission will see this field rendered.

10 Opportunities to Write a Press Release

Most business people know how important it is to take advantage of PR opportunities, but few realize just how many opportunities happen in the normal course of business. The list on this page provides an overview of the many good occasions to write and distribute press releases regularly.

Routine Business Events
Annual report, anniversary, grants given or received, achieving key business goals

Routine People Events
Executive appointments, retirements, new employees, connection to celebrity or public figure

Drupal Override: Understanding Themable Output

Drupal Theming is hard enough when it comes to dealing with CSS & browser rendering issues. On the other end, for programmers the code templating process can be powerful and convenient once we get the hang of Drupal’s theming system.

A community documentation page at offers a good introductory overview of themable output, covering the basics of data source and overrides:

Introducing the Project Status Center

The Status Center provides a complete project overview in a single page in order to keep all members up to date with planning, progress and project needs. The status center is designed to look like a paper report so that it is easy to use for anyone affiliated with the project.

The project page includes: status overview, expectations for the week, overview of all tasks and milestones with completion percentage, files and resources, as well as important notes and comments.

Drupal Search: Disable Indexing of a Node Taxonomy

The following code stops Drupal 6 from indexing a node’s taxonomy as part of its content. The code uses hook_nodeapi to alter the node object when it is being built to update the index. At this stage it is possible to add, remove or alter any of the node’s elements.

Drupal: Generate your own view with PHP

This example shows how to generate a list of nodes using the Drupal framework. The code assumes you have already loaded Drupal (see Bootstrap if you want to place this code in an external script.)

1. Query the database for node ids
2. Load the full nodes based on their ids
3. Generate html output

Drupal_bootstrap: Connect to Drupal from an External PHP Script

For testing purposes, or for executing Drupal-related operations but from a PHP script that runs outside of Drupal, I often create independent PHP files that are not meant to be Drupal modules but still require access to Drupal’s database, functions and modules.

Using the function drupal_bootstrap, located within includes/, your script can load Drupal and make all of Drupal’s functionality accessible to your script.

Simple and flexible PHP execution-time tracking

This is a simple function that always comes in very handy in debugging and logging PHP code. ExecTime() keeps track of one or more processes, and can round the result up to your desired level of decimal point precision.

ExecTime() starts counting the first time you call it, and from that point on it returns the elapsed time every time you call it again.

IBM Recommends Drupal offers a series of articles following the IBM Internet Technology Group as the team designs, develops and deploys a community website utilizing the best of Open Source technologies.

These articles are meant to offer insight into the development process of complex websites, and offer key comparisons and recommendations as the team describes how and why they decided to use Drupal as the platform of choice for complex web applications.