Caleb Gilbert's blog

Drupal sites: Some of the finest examples

Published in: 

Here are links to some of the finer examples of many different site types, nationalities, big sites, smaller sites, and notable, as well as not-so-notable, companies/agencies/people who all have one thing in common. They are powered by the Drupal CMS.

100links - Portal

Approva - Company

CAESY Education Systems - Company

Council of Writing Program Administrators - Education

creativebits- Technology, blog

Cross-Pro - Motocycle apparel company

Dirtbike - News, community, portal

ecademy - Portal

Fight Hunger (United Nations) - Education, awareness

Iowa State Entomology Index -Index, education

Linux Journal - Technology, media, community - Personal site

MTV (UK) - News, portal, Community

NASA Project & Engineering Leadership - Government, technology

NowPublic - News, community

ONION, the - News, Portal

ourmedia - Music, video, community, portal

Q94.5 Rock - Music station

Project Opus - Community, music, portal

Relay for Life - Community, education

SpreadFirefox - Technology, internet, community

Sudden Thoughts - Music, community, portal

Teka Electronics - Company website

Terminus1525 - Community, culture, art

World, The (BBC) - International news

21 January, 2007

Recommended Drupal modules

Published in: 

It's tough coming up with a short list of "recommended Drupal modules", but here it is anyway. We'll probably expand it as time goes on...


This is a simple filter module. It handles and php tags so that users can post code without having to worry about escaping with < and >

This is a HTML correcting module. The filter scans the input, builds up a list of open tags and closes them when needed. Without this module you can expect to have a front page which is regularly broken by even a single missing tag from any post you put up.

This is a simple filter module. It automatically converts URLs (http, ftp, email, ...) into hyperlinks.

content moderator
If your site doesn't require multiple levels of site administrators you can skip this module. The idea of the content_moderator.module is that you can avoid having to hand out the god-like access which "administer nodes" would normally give someone. This module allows you to give only a "moderate nodes" permission to a user role. Users with this permission may see a list of content at /admin/content_moderator. Within this list they can either approve posts to move them out of moderation, or put them into moderation to remove them from public view.


This module creates a cached version of each block. Block caching happens separately from page caching and so it will work for logged-in users whether or not page caching is enabled for the site. Cached blocks make just one call to the database and can therefore reduce the overhead required to render blocks that require complex queries and/or calculations such as some Views or Taxonomy-related blocks.

DB maintenance performs an OPTIMIZE TABLE query on administrator-selected tables during regular cron.php executions. For MyISAM tables, OPTIMIZE TABLE repairs a table if it has deleted or split rows, sorts table indexes, and updates table statistics. For BDB and InnoDB, OPTIMIZE rebuilds the table. Note, MySQL locks tables during the time OPTIMIZE TABLE is running.


This module integrates the TinyMCE WYSIWYG editor into a Drupal site for editing site content.

21 January, 2007

Drupal how to: upload modules to your server using cpanel

Published in: 

The instructions below are written specifically for those accessing their site directories through cPanel. FTP user will need to adapt the instructions.

Before getting started - a note about modules
Modules available at are not guaranteed to work as described there, or even work at all.

It is very recommendable to read the "issues" page for any module you are considering installing to see what others are saying about the module and to be sure the version you are downloading is actually the right one for you. Sometime, unfortunately, it's not as simple as just picking the one which is "obviously labeled correctly". Some after-install tinkering is often required to get things working properly.

Finally, and above all - always make a backup before doing any work which will affect your database. If you have a backup there is virtually nothing you can do to mess things up which isn't reversible. If you don't have a backup, there's a lot you can do to make your site irreversibly messed up. :)

First goto: http://your-site-url/cpanel and login:

1. Once you're logged in navigated to the "File Manager" icon and click.

2. then click the "public_html" folder icon. Everything you put in this folder is "public", meaning that others and/or search robots will be able to "see" it.

3. locate the "modules" directory and click it, then click (or if you don't have one, make) the "CustomModules" directory within it.

4. Select the "Create New Folder" link at the top of the page and name your new folder appropriately. No uppercase and no spaces.

5. Once you've made your new directory select it's folder icon, and then after the new page loads select the "Upload file(s) link which is at the top of the page.

6. Select the files on your desktop which you want to be uploaded and upload away.

7. Go to your modules administration page at your-site/admin/modules and enable your newly uploaded module(s)

8. Configure the modules specific settings on the module settings page which you can get to by going to you admin pages at for it. (hopefully you've read the "readme.txt" files that came with your module by now)

9. Test your module's functionality by logging in as different test users.

21 January, 2007

Drupal how to: Editing your theme colors, stylesheets

Published in: 

This article is provided for do-it-yourself'ers who would like to customize their site's theme colors, (which will be a good warm-up for doing other things with your theme, btw). With this information and a some patience it's should not be too hard to change your template's colors around yourself, so take heart, and quit your shakin' already!

To change theme colors, the file you'll usually want to edit is called "styles.css" and it can normally be found inside your selected theme's folder. Every great once in a while you may also need to edit "drupal.css" which is located in the "misc" folder of your root Drupal directory, but most of the time this is not the case.

So now let's get editing:

If you have the theme_editor.module installed you can just edit the styles.css file inside your browser window, but it may be a lot easier to see and/or search and replace things if you copy and paste the contents of " style.css" into a proper text editor like like NoteTab Light for instance ( ). It is VERY important NOT to use a rich-text application like Microsoft Word or Wordpad for editing because those programs will introduce invisible characters which can screw up the processing of your code! Believe it or not, the otherwise enemic "Notepad" which comes with windows CAN be used for editing code, since it is plain-text based and not rich-text.

Once you decide where you'll edit the file the next thing to do is to decide what to edit.

If you have Firefox, you should install the Web Developer extension for it - - its tools have been a lifesaver many times. Actually, if you don't have Firefox you should just go ahead and get it because this tool alone is worth going through the 5-10 minute installation process. (additional tip - once you have the developer extension installed find the "CSS" menu item and select "View Style Information". This will turn your cursor into "crosshairs" which you can then use to click any item on your webpage to reveal the css classes styling it. Then simply locate the style in your stylesheet)

We recommend using this handy tool to pick out your new colors and/or to figure out what colors are currently being used.

It will be important to remember that in the online world colors are generally referred to by hex numbers, meaning that something like "596F80" will be the current color of your page titles. By going to the url above and clicking "Enter RGB" (lower left-hand corner) a popup box will open and you can paste an existing hex value and doublecheck the color of your numerical values. With this tool and a little trial and error you can replace the color values of what you don't want with the color values of what you do want. Tip - using the 'search and replace all' function of a html/text editor can be a big time saver here.

21 January, 2007

Mysql tuning. Tools, tips, and links on optimizing mysql for Drupal

Published in: 

Here are some basic, but high impact ways to optimize MySQL for Drupal (there are much more sophisticated and expensive ways to speed up your database of course):

Am not sure if these tips do any good for someone on a shared hosting plan or not (do shared plans have access to a my.cnf file?). Also, I can only confirm these setting for MySQL 4.0.2 thru the latest 4.0.x version, but I think it would work for 5.x (maybe someone can confirm this and leave a comment...).

Actually, it will work for below 4.0.2 I think as long as you add set-variable = before each line (see this page for more on set-variable)

1. Get this script, upload it, unzip it, and install it in your /etc folder (at the root of your server, not your Drupal install, right). Then run it from the command line by entering sh /path-to-file/

The script will run and what you'll be left with is an output with some info and suggestions about your MySQL settings. Was shocked to learned that on my VPS the cache was not even enabled - very helpful to know!

2. Next open your my.conf file in pico or some kind of proper code/text editor:

Depending on the memory resources you have available you'll want to paste in something like these examples (adjust up or down depending on how your system differs, of course):

For a setup with 500mb or ram paste this in your my.cnf file:

max_connections = 800
max_user_connections = 800
key_buffer = 36M
myisam_sort_buffer_size = 64M
join_buffer_size = 2M
read_buffer_size = 2M
sort_buffer_size = 3M
table_cache = 1024
thread_cache_size = 286
interactive_timeout = 25
wait_timeout = 1800
connect_timeout = 10
max_allowed_packet = 1M
max_connect_errors = 999999
query_cache_limit = 1M
query_cache_size = 16M
query_cache_type = 1
tmp_table_size = 16M

For a system with 256mb of ram:

max_user_connections = 500
key_buffer = 16M
myisam_sort_buffer_size = 32M
join_buffer_size = 1M
read_buffer_size = 1M
sort_buffer_size = 2M
table_cache = 1024
thread_cache_size = 286
interactive_timeout = 25
wait_timeout = 1000
connect_timeout = 10
max_allowed_packet = 1M
max_connect_errors = 999999
query_cache_limit = 1M
query_cache_size = 16M
query_cache_type = 1
tmp_table_size = 16M

3. Save your my.cnf file and restart mysql. This can be done via WHM or the command line (not sure what that command is - sorry)

21 January, 2007


Subscribe to RSS - Caleb Gilbert&#039;s blog