The Web Developer's Blog has been discontinued. I am now maintaining a new blog that is related to my company, Blue Piccadilly. The most popular articles from this blog (by monthly page views) have already been republished on the new blog, and indeed those original pages on this blog are being redirected to their new location. I'll probably keep these pages up here for a while. At least until the domain expires.

Drupal

Nov22

Add tertiary links to your Drupal 6 template

22-Nov-2010
Filed under: Drupal, Drupal 6.x
I have previously covered this topic for Drupal 5, but below are instructions for adding tertiary links to any Drupal 6 template. By default, Drupal provides for primary (level 1) and secondary (level 2) links. But what if you want to display the children of the secondary links in a separate menu?

Nov15

Essential Drupal modules (revisited)

15-Nov-2010
Filed under: Drupal, Drupal 6.x

Almost three years have passed since I compiled my first list of essential Drupal modules and a lot has changed since then, not the least of which is that Drupal 6 has long since replaced its older sibling. I thought it was high time for an update.

Jul31

Exclude all nodes of a Drupal node type from the search results

31-Jul-2009
Filed under: Drupal

Here's an easy way to entirely exclude all nodes of a certain type from your search results using hook_db_rewrite_sql. Simply create a Drupal module containing the following snippet, and change the $excluded_content_types array to contain the content types you wish to exclude:

Oct29

Give your Drupal blocks a more descriptive HTML ID attribute

29-Oct-2008
Filed under: Drupal, Drupal 5.x

I don't know about you, but I like my HTML ID attributes and therefore my CSS selectors to be descriptive. It makes both my HTML and CSS more readable, and lets me scan a document more effectively, locating the section I need with relative ease.

If you create a custom Drupal block the system will typically output a line of HTML which might look like this:

Oct28

Restrict access to Drupal nodes, node types and menu items

28-Oct-2008
Filed under: Drupal, Drupal 5.x

If you want to restrict access to certain pages, or all pages of a certain type, on your Drupal website, I recommend the Content Access module. Unfortunately, the Content Access module fails to hide the menu item of a restricted page.

Oct23

Showing the nested sub-navigation of the active primary link

23-Oct-2008
Filed under: Drupal, Drupal 5.x

This seems obvious, yet every time I start a new Drupal project I spend at least 10 minutes looking at older projects trying to find the solution.

I'm talking about getting Drupal to show the sub-navigation of a primary link when that primary link is active.

The solution is so simple it invariably leads to a facepalm: Instead of using the provided $primary_links variable in your template, enable the primary links block on the block configuration page.

Why can't I remember this?

Jul02

Add tertiary links to your Drupal template

02-Jul-2008
Filed under: Drupal, Drupal 5.x

Update: For a version of this snippet compatible with Drupal 6, see Add tertiary links to your Drupal 6 template.

By default, Drupal gives you two menu variables to use in your templates. $primary_links contains the first level of navigation and $secondary_links contains the child pages of the active primary link.

But what if you need to display the children of the secondary links? Fortunately, Drupal user rapidsynergy has done the hard work for us in this comment he posted on the Drupal website. I'll reproduce his code here (with slight modifications) for future reference.

Jun30

Disable TinyMCE on a per-field basis in Drupal

30-Jun-2008
Filed under: Drupal, Drupal 5.x

There's a post on avocadoshake.net, which describes how to disable TinyMCE on a per field basis in Drupal.

Read How to disable TinyMCE per fields in Drupal.

May22

Instruct the Views module to add class values to each item of a list view

22-May-2008
Filed under: Drupal, Drupal 5.x

I had a client ask me recently to help them identify the first and last nodes of a list view by adding a class to each of the list items.

This can be done pretty easily by overriding the appropriate views theme function and injecting some of our own code into the array of rendered nodes just before they are converted to a list and displayed.

Simply paste the snippet below into the file named template.php residing in your theme's folder. If there's no template.php, go ahead and create it.

Dec21

My favourite Drupal modules and why you should use them

21-Dec-2007
Filed under: Drupal, Drupal 5.x

Update: I've compiled an updated list of essential modules for Drupal 6 (and beyond).

Drupal's power and flexibility really comes into its own when you start using add-on modules to extend its functionality. Finding the really useful modules amongst the hundreds that are available can be a daunting task. To help you sort the wheat from the chaff, I've compiled a list of the sixteen Drupal modules that I use in almost every site I build.

< Prev12Next >