Blog posts

Firefox images getting extra space when in table cell

Disclaimer: OK - so I know I shouldn't be using tables, but sometimes, I just have to.

Was trying to figure out this extra space around an image that was sitting in a table cell. Came across this article which explains why.

It's to do with using a strict doctype, and the fact that the images are by default inline which display on top of the baseline. Quick fix for me was to apply the following style to the offending images:

.header-image {display:block}

Drupal CCK email field errors: "doesn't have a default value query"

Ran into this error a couple of times before when adding content to a CCK email field in MySQL 5.0.27: user warning: Field 'field_email_email' doesn't have a default value query: It seems the email field is initially set up to not allow null values. To fix this check out this patch or just update the field in phpMyAdmin: ALTER TABLE `table_name` CHANGE `field_email_email` `field_email_email` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL

How Drupal's CCK already provides a safely formatted cck field for display

Came across an interesting post when investigating some "n/a" text appearing in a CCK node field when not logged in. I was using the code echo content_format('field_description', $field_description[0]); to safely format and output the description field. Not sure exactly why it happens but it turns out that there's no need to actually do it that way as CCK already provides a safe string of that field for outputting to the browser that is already formatted accordingly.

Drupal path not available to anonymous users in view block

I created a view in drupal with some argument handling code. This code loaded the node so as to get the value of the path alias. I then used this path alias as a taxonomy argument for the view:


if ($type == 'block' && arg(0)=='node')
{
$node = node_load(arg(1));
$path = $node->path;
$args = array();
$args[0] = '';
if (!empty($path))
{
$args[0] = $path;

}
return $args;
}

phpMyAdmin "Save as file" file name template

When using phpMyadmin to backup a MySQL database, there is an option near the bottom to save as a file. When you use this option, you can make your life easier by using a file name template that automatically names the backup file for you. By default it is the database name, but I find it useful to put a timestamp on it as well. To do that, use the following in the file name template field:

%Y%m%d%H%M%S-__DB__

This will save your files in the following format: 20070815152612-databasename.sql

Google reader shortcuts

I was looking for a shortcut to share an item in google reader, and came across a good list of shortcuts here.

Ones that I use regularly:

Shift S : To share an item

S : To star an item

J : Selects Next Item in list

K : Selects Previous Item in list

Space : Page Down

Shift Space : Page Up

Web application page hierarchy podcast and slides

Listened to a great podcast on web page hierarchy, that gives insight into how to use hierarchy on a web page to increase usability, prioritise content, and to ultimately help attain whatever goals you've set for your website. He also presents a number of case studies, slides of which you will find in his presentation pdf. So much good stuff here, like how users actually read a webpage (we don't - we just scan), and what tools to use to create hierarchy (contrast).

Change TinyMCE background colour in drupal from grey to white

Found that by default the background colour for tinymce textareas was grey with my newest drupal 5 installation. Found this node which shows which style to add to your stylesheet to change the background colour to white.

Add the following to your theme's style.css:

body.mceContentBody {
background: #fff;
color: #000;
}

Funny, strange, weird borders in drupal template (in firefox and not ie)?

Took me forever to figure out that this was due to a tbody style in system.css. This border only showed up in firefox and not in internet explorer. The system style is:

tbody { border-top: 1px solid #ccc;}

I added this to my theme stylesheet:
tbody { border: none;}

Not sure if I'm missing something here, but this worked for me.

How to get the path to your theme in your drupal template

Instead of hard coding your theme path into your drupal theme templates, it's better to use some built in drupal functions or template variables:

  • Use the $directory variable which will be available in your .tpl.php files
  • Use the path_to_theme() function - this provides the same output as the $directory variable
  • Use the base_path() function which will give you the url to the root of your site.

I always use absolute references, for example: