Drupal — the design errors that just won’t go away!

Recently, while designing a site in Drupal using the theme acquia prosper (awesome theme, very customizable, gives a lot of control without you needing to go deep into theme css files or sub-theming), I just happened to fumble upon a few things that just wouldn’t go away.. ah the hours wasted! Well if this can help someone, I’d be very happy.

1.  FCKEditor loves to add <p> tags.  Problem becomes even worse if you are making a block with only an image in it and FCKEditor just won’t let you take that <p> tag out.  Of course you can disable FCKeditor and enter everything manually, but I’m sure we will all agree that FCKEditor along with IMCE just makes life a lot easier when adding images to the site.  One solution is to configure the FCKEditor module so that on <Enter> it adds a <br /> tag instead of a <p> tag.  The other solution ties in with the second problem below

2. Even without FCKEditor, when you go and check your site on IE, you see the block is just not positioned properly! What’s going on?  You check the source and you find a <p> tag AGAIN around the image!  What the?  If you create a block with the intent of only including a simple image tag in the code (or anything besides text), Drupal will surround your code with paragraph tags. The tags, by default, come along with a 1em margin on both top and bottom — right, while Firefox may show your design properly, IE definitely doesn’t.  Solution?  You can always just put a small code in the CSS file.  In my case, with Acquia prosper (and Skinr module), I was able to add a custom CSS class to the block which then was defined in the local.css file:

.custom-css-name p{
margin:0;}

So that works.  You can also try a CSS override in the following manner:  #your-block-id p { margin: 0; }

Or finally, you can always create a new block input type that doesn’t convert spaces into unwanted tags.  Basically a new input format that will have the following property unchecked:

Converts line breaks into HTML (i.e. <br> and <p> tags).

I hope this helps if you have also run across this problem … ah that pesky <p> tag that just won’t go away!


If you create a block with the intent of only including a simple image tag in the code (or anything besides text), Drupal will surround your code with paragraph tags. The tags, by default, come along with a 1em margin on both top and bottom,

  • Share/Bookmark

Drupal Updating / Upgrading

Updating or Upgrading Drupal is not an easy task.  Compared to Wordpress, where the updating is simply a mouse-click away, Drupal requires you to do certain things that can take a bit of time in extremely extensive sites.  I recently had to update my Drupal installation from 6.12 to 6.14

Now this being my first Drupal installation, and as much as I love this CMS, the updating process can be a pain if not following the instructions carefully.  The instructions can be found in “upgrade.txt” file located in your drupal zip file, also you can find tons of instructions online.  An excellent website learnbythedrop.com can help you out a lot if you are looking for tutorials on Drupal.  Here’s the video I followed to help me update Drupal.  Posting it here so that it can get more recognition on the web!  They say you can fill an ocean, one drop at a time….

  • Share/Bookmark

Drupal 6 Installation issues

Drupal 6 requires php directive “register_globals” to be off.  This is not always the case depending on your hosting environment or even your own requirements as Drupal may not be the only thing residing on your virtual server.

There are several work arounds for the issue if you come across an error during installation asking you to turn “register_globals” off.  It may work for you or it may not work for you, but the final one will definitely do the job.  Just to be safe, try the fixes in the order below:

1.  You can always add or edit the .htaccess file in your root directory with the following line:

php_flag register_globals off

This may or may not work depending on whether the apache configuration on your host allows directives to be fed through the .htaccess file.  Find out more about .htaccess files by going to http://www.freewebmasterhelp.com/tutorials/htaccess/

2. So that didn’t work huh?  Fret not, here’s another solution.  Place a “php.ini” file in your root directory with the following line:

register_globals = 0

did that work?  Basically you are telling php to initialize with the setting for your directory.

3. Wait, we didn’t cover the fact that you may be running your own server! Well if you are lucky enough to have your own server and control over your php.ini file, simply change the register_globals variable to ‘off’  in your php.ini file.  More information can be found at the php website about how to configure your php.ini file.

4. You could also try adding the following line to your .htaccess file (it has been proven to work on 1&1 webservers):

AddType x-mapp-php5 .php

This directive simply tells the server to use php5 for .php files instead of php4 (which might be the default for several webhosts out there)

5.  Ok genius, nothing worked, now what? Yup, that was my case as well, nothing worked, seemed the host didn’t allow default settings to be changed.  Well there’s always the “ask your hosting provider” answer.  If you are so inclined to do so, send them an email and ask them how to turn the “register_globals” variable off for your particular site.  They might not be of much help, but you never know.  Or, (Yes!) there’s another method.  You can simply tell Drupal to ignore it when installing.  It requires you to change the install file located in modules/system directory called “system.install“.  Go ahead and find the line:

if (!empty($register_globals) && strtolower($register_globals) != ‘off’)

and change the “!=” to “==” .   The line should now read:


if (!empty($register_globals) && strtolower($register_globals) == ‘off’)

Curious to know what you are doing here?  Well you are simply telling the system.install file change the “not equal to” to “equal to”.   Basically, you fooled the system into treating a response which would mean that “register_globals” is “on” into treating it as “register_globals” is “off”.  You will not get any more errors when doing the install now.

Now, remember, it is unsafe to have register_globals on.  Your system is not fully secure if that directive is on.  So if you are willing to take the risk, you can implement the solutions provided in this post.

  • Share/Bookmark