Quicktips

DrupalEasy Quicktips are short, focused posts intended to accomplish a very specific goal. Quicktips are exclusively available first via our @drupaleasy Twitter account.

Keep Local Database and Filesystem Settings in a Site-specific settings.php

A common development practice is to keep a local web server running on your laptop, or a development/staging server. A feature of Drupal designed for multisite installations can actually help you out in this situation.

Different servers often mean different databases, database users, and passwords. Sometimes, you may also need to point to a different files/ directory or tmp/ directory, especially if you are moving between Windows to Linux, or a local machine to a server.

Rounded Corners for All (Except IE)

Getting quick and easy control of rounded corners is a bit of a holy grail for theme developers and CSS jockeys. In order to do rounded corners correctly and have them appear consistent across a wide range of browsers often entails several additional HTML elements (usually DIVs) and several hours of CSS head-banging.

An easy way to get around this, providing you're willing to give up rounded corners in IE (a big "if", I know) is to utilize a couple of browser-specific CSS properties. Both Firefox and Safari utilize the "border-radius" CSS properties. For example:


Using Context Module to Set Body Classes

The Context module is a great way to get a site's unwieldy block configuration page under control. It allows you to display individual blocks only when a certain "context" is available.

For example, a context may be set when a particular view is displayed. When that happens, you can use the Context module to display certain blocks alongside the view. If you find yourself writing block visibility code over-and-over again, the context module will save you time and headaches.

Forgotten Password - Reset it Using phpMyAdmin

When developing a Drupal site, sometimes you have the need to reset a password - either for yourself or another user. Often, when working with a copy of live data, I want to be able to login as another user who is already in the system. Rather than asking them for their password, I use this method to change it.

While Drupal's built-in "reset password" functionality or user editing capabilities work great, if you're like me and tend to work with your database editor open, there's a quick-and-dirty way to quickly change a user's password.

Do Not Use "admin" as a Username

Perhaps the most critical component of a Drupal site's security is the user login. For a login attack to be successful, the attacker must guess both the username and its password -- usually an impossible feat. But if the username can be easily guessed, that reduces the potency of this key security barrier. Far too many Drupal sites have "admin" as a username. Even worse, this is typically not a username assigned to a user who only has permissions for relatively innocuous capabilities, such as commenting on articles.

Change the Default Calendar View to Something Other than "Month"

If you use the most excellent Calendar module, then you probably know that it defaults to a "Month" view. Here's the easy way to change the default view to something different.

In your calendar's main view, click on the "defaults" tab, and then click to edit the "Date: Date (node)" argument. Simply change the "granularity" setting to whatever you want the default view to be and you're golden.

(I found this tip deep in the Drupal.org forums.)

Create Referenced Nodes On-The-Fly

If you use CCK's Node Reference field often, then this tip is for you.

Occasionally I run into the situation when I start adding a new node that contains a Node Reference field only to get half-way through before realizing that the node I want to reference doesn't exist yet. At that point I have to stop what I'm doing, open a new browser window, create the node I want to reference, then reload the original node's "add" form. What a hassle.

Module Development - Alternative to the "Are You Sure?" Screen

There have been several times where I've had to write a custom module that enables the site admin to make some major changes to their site. With changes like these, I want the site admin to be super-duper sure they know what they're doing, so while sometimes I use Drupal's built-in Confirm Form function, I sometimes decide to take a less-intrusive approach.

Low Hanging Fruit - Increasing Site Performance

One of the first things I look at when a client asks me "why is my web site so slow" is the admin/build/modules page (actually, the first thing I look at is the client's internet connection). It's very rare that I don't find more than a couple of modules that are enabled for absolutely no reason - sucking down precious server resources.

Here's a few that I find most often - and are usually no-brainers to disable: