<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0" xml:base="http://oliverdavies.co.uk/">
  <channel>
    <title>Oliver Davies - Freelance Drupal &amp; Web Developer</title>
    <link>http://oliverdavies.co.uk/</link>
    <description />
    <language>en</language>
          <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/oliverdavies" /><feedburner:info uri="oliverdavies" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>oliverdavies</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
    <title>Installing and configuring the Image Caption module</title>
    <link>http://feedproxy.google.com/~r/oliverdavies/~3/TsLwnJZTfis/installing-and-configuring-the-image-caption-module</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;Up until as recent as last week, whenever I added an image into one of my Blog posts, I was manually adding the caption below each image and styling it accordingly. That was until I installed the &lt;a href="http://drupal.org/project/image_caption"&gt;Image Caption&lt;/a&gt; module. &lt;/p&gt;
&lt;p&gt;The Image Caption module uses jQuery to dynamically add captions to images. Here is a walkthrough of the process that I followed to install and configure the module. As always, I used Drush to download and enable the module, then visited the Image Caption Settings page (admin/settings/image_caption). Here, I select which node types should be included in image captioning. In my case, I only wanted this to apply to Blog posts.&amp;lt;!--break--&gt;&lt;/p&gt;
&lt;p&gt;&lt;img class="imagecache-page imagecache caption" title="The Image Caption Settings page." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/installing-and-configuring-the-image-caption-module/image-caption-settings-oliver-davies1282313277111.png" alt="The Image Caption Settings page." /&gt;&lt;/p&gt;
&lt;p&gt;As I use the &lt;a href="http://drupal.org/project/filefield"&gt;FileField&lt;/a&gt;, &lt;a href="http://drupal.org/project/imagefield"&gt;ImageField&lt;/a&gt; and &lt;a href="http://drupal.org/project/insert"&gt;Insert&lt;/a&gt; modules to add images to my posts, as oppose to via a WYSIWYG editor, I'm able to add the CSS class of 'caption' to my images.&lt;/p&gt;
&lt;p&gt;&lt;img class="imagecache-page imagecache caption" title="'Insert' configuration." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/installing-and-configuring-the-image-caption-module/images-oliver-davies1282313468008.png" alt="'Insert' configuration." /&gt;&lt;/p&gt;
&lt;p&gt;Now, all images inserted this way will have the CSS class of 'caption'.&lt;/p&gt;
&lt;p&gt;&lt;img class="imagecache-page imagecache caption" title="The 'caption' class." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/installing-and-configuring-the-image-caption-module/screen-shot-2010-08-20-at-152000.png" alt="The 'caption' class." /&gt;&lt;/p&gt;
&lt;p&gt;As the Image Caption module uses the image's title tag to create the displayed caption, I enabled the custom title text for my Image field so that when I upload an image, I'm prompted to enter text for the caption.&lt;/p&gt;
&lt;p&gt;&lt;img class="imagecache-page imagecache caption" title="Title text settings." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/installing-and-configuring-the-image-caption-module/images-oliver-davies1282314520764.png" alt="Title text settings." /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img class="imagecache-page imagecache caption" title="Adding an image." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/installing-and-configuring-the-image-caption-module/screen-shot-2010-08-20-at-153051.png" alt="Adding an image." /&gt;&lt;/p&gt;
&lt;p&gt;This results in a span called 'image-caption-container' around the inserted image, and a caption below it called 'image-caption' containing the text.&lt;/p&gt;
&lt;p&gt;&lt;img class="imagecache-page imagecache caption" title="image-caption-container and image-caption." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/installing-and-configuring-the-image-caption-module/screen-shot-2010-08-20-at-154146.png" alt="image-caption-container and image-caption." /&gt;&lt;/p&gt;
&lt;p&gt;All that's left is to style these classes within your CSS stylesheet.&lt;/p&gt;&lt;div class="field field-type-link field-field-external-links"&gt;
      &lt;div class="field-label"&gt;External Links:&amp;nbsp;&lt;/div&gt;
    &lt;div class="field-items"&gt;
            &lt;div class="field-item odd"&gt;
                    &lt;a href="http://drupal.org/project/image_caption" target="_blank"&gt;Image Caption module&lt;/a&gt;        &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;
&lt;!-- google_ad_section_end --&gt;&lt;img src="http://feeds.feedburner.com/~r/oliverdavies/~4/TsLwnJZTfis" height="1" width="1"/&gt;</description>
     <category domain="http://oliverdavies.co.uk/tag/drupal">Drupal</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal-6">Drupal 6</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal-planet">Drupal Planet</category>
 <category domain="http://oliverdavies.co.uk/tag/image-caption">Image Caption</category>
 <category domain="http://oliverdavies.co.uk/tag/imagefield">ImageField</category>
 <category domain="http://oliverdavies.co.uk/tag/modules">Modules</category>
 <pubDate>Fri, 20 Aug 2010 14:10:28 +0000</pubDate>
 <dc:creator>Oliver Davies</dc:creator>
 <guid isPermaLink="false">319 at http://oliverdavies.co.uk</guid>
  <feedburner:origLink>http://oliverdavies.co.uk/2010/08/20/installing-and-configuring-the-image-caption-module</feedburner:origLink></item>
  <item>
    <title>Create a Better Photo Gallery in Drupal - Part 2</title>
    <link>http://feedproxy.google.com/~r/oliverdavies/~3/C2bbKT-uzC8/create-a-better-photo-gallery-in-drupal-part-2</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;At the end of my last post, I'd finished creating the first part of 
the new photo gallery, but I wanted to change the dates of the published
 photos to reflect the ones on the client's original website. &amp;nbsp; &lt;/p&gt;
&lt;p&gt;
Firstly, I'll refer to the previous list of published galleries that I
 created before, and create something different that also displays the 
created and modified dates. Picking the node ID of the required gallery,
 I used the following SQL query to display a list of photos.&amp;lt;!--break--&gt;&lt;/p&gt;
&lt;p&gt;
&lt;pre class="brush: css;fontsize: 100; first-line: 1; "&gt;SELECT n.title, n.nid, n.created, n.changed, p.field_gallery_nid
FROM node n, content_type_photo p
WHERE n.type = 'photo'
AND p.field_gallery_nid = 103
AND n.nid = p.nid
ORDER BY n.nid ASC;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;When I look back at the old photo gallery, I can see that the previous 
'last added' date was June 27, 2008. So, how do I update my new photos 
to reflect that date? Using &lt;a href="http://www.onlineconversion.com/unix_time.htm"&gt;this website&lt;/a&gt;,
 I can enter the required date in its readable format, and it will give 
me the equivilent UNIX timestamp. To keep things relatively simple, I'll
 set all photos within this gallery to the same time.&lt;/p&gt;
&lt;p&gt;&lt;img class="imagecache-page imagecache caption" title="Online time conversion." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/create-a-better-photo-gallery-in-drupal-part-2/create-a-better-photo-gallery-in-drupal-part-2png_0.png" alt="Online time conversion." /&gt;&lt;/p&gt;
&lt;p&gt;The result that I'm given is '1217149200'. I can now use an UPDATE 
statement within another SQL query to update the created and modified 
dates.&lt;/p&gt;
&lt;p&gt;
&lt;pre class="brush: css;fontsize: 100; first-line: 1; "&gt;UPDATE node 
INNER JOIN content_type_photo
ON node.nid = content_type_photo.nid
SET node.created = '1217149200', node.changed = '1217149200'
WHERE content_type_photo.field_gallery_nid = 103;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;img class="imagecache-page imagecache caption" src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/create-a-better-photo-gallery-in-drupal-part-2/screen-shot-2010-08-19-at-172749.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Now when I query the database, both the created and modified databases 
have been updated, and when I return to the new photo gallery, the 
updated value is being displayed.&lt;/p&gt;
&lt;p&gt;&lt;img class="imagecache-page imagecache caption" title="The updated 'node' table." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/create-a-better-photo-gallery-in-drupal-part-2/screen-shot-2010-08-19-at-172459.png" alt="The updated 'node' table." /&gt;&lt;/p&gt;
&lt;p&gt;Once the changes have been applied, it's a case of repeating the above process for each of the required galleries.&lt;/p&gt;
&lt;p&gt;In the next post, I'll explain how to add a count of published 
galleries and photos on the main photo gallery page, as well as how to 
install and configure the &lt;a href="http://drupal.org/project/shadowbox"&gt;Shadowbox&lt;/a&gt; module.&lt;/p&gt;&lt;!-- google_ad_section_end --&gt;&lt;img src="http://feeds.feedburner.com/~r/oliverdavies/~4/C2bbKT-uzC8" height="1" width="1"/&gt;</description>
     <category domain="http://oliverdavies.co.uk/tag/drupal">Drupal</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal-6">Drupal 6</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal-planet">Drupal Planet</category>
 <category domain="http://oliverdavies.co.uk/tag/photo-gallery">Photo Gallery</category>
 <category domain="http://oliverdavies.co.uk/tag/php">PHP</category>
 <category domain="http://oliverdavies.co.uk/tag/sequel-pro">Sequel Pro</category>
 <category domain="http://oliverdavies.co.uk/tag/sql">SQL</category>
 <category domain="http://oliverdavies.co.uk/tag/unix-timestamp">UNIX Timestamp</category>
 <pubDate>Tue, 17 Aug 2010 10:00:10 +0000</pubDate>
 <dc:creator>Oliver Davies</dc:creator>
 <guid isPermaLink="false">315 at http://oliverdavies.co.uk</guid>
  <feedburner:origLink>http://oliverdavies.co.uk/2010/08/17/create-a-better-photo-gallery-in-drupal-part-2</feedburner:origLink></item>
  <item>
    <title>Create a Better Photo Gallery in Drupal - Part 1</title>
    <link>http://feedproxy.google.com/~r/oliverdavies/~3/RYSMmWvuLgw/create-a-better-photo-gallery-in-drupal-part-1</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;Recently, I converted a client's static HTML website, along with their Coppermine Photo Gallery, into a Drupal-powered website.&lt;/p&gt;
&lt;p&gt;Over the next few posts, I'll be replicating the process that I used during the conversion, and how I added some additional features to my Drupal gallery.&lt;/p&gt;
&lt;p&gt;To begin with, I created my photo gallery as described by &lt;a href="http://www.lullabot.com/about/team/jeff-eaton"&gt;Jeff Eaton&lt;/a&gt; 
in &lt;a href="http://www.lullabot.com/articles/photo-galleries-views-attach"&gt;this screencast&lt;/a&gt;, downloaded all my client's previous photos via FTP, 
and quickly added them into the new Gallery using the &lt;a href="http://drupal.org/project/imagefield_import"&gt;Imagefield Import&lt;/a&gt; 
module (which I mentioned &lt;a href="/2010/05/29/importing-images-using-the-imagefieldimport-module" title="Importing images using the Imagefield_Import module" class="nodepicker-link"&gt;previously&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;So, here is the current state of the photo gallery:&lt;/p&gt;
&lt;p&gt;&lt;img class="imagecache-page imagecache caption" src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/create-a-better-photo-gallery-in-drupal-part-1/create-a-better-photo-gallery-in-drupal-part-1png.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;When I compare this to the previous gallery, I can see several 
differences which I'd like to include. The first of which is the number 
of photos in each gallery, and the date that the most recent photo was 
added.&lt;/p&gt;
&lt;p&gt;&lt;img class="imagecache-page imagecache caption" title="The original photo gallery." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/create-a-better-photo-gallery-in-drupal-part-1/create-a-better-photo-gallery-in-drupal-part-1png_0.png" alt="The original photo gallery." /&gt;&lt;/p&gt;
&lt;p&gt;To do this, I'd need to query my website's database. To begin with, I
 wanted to have a list of all the galleries on my site which are 
published, and what they're unique node ID values are. To do this, I 
opened Sequel Pro and entered the following code:&lt;/p&gt;
&lt;p&gt;
&lt;pre class="brush: sql;fontsize: 100; first-line: 1; "&gt;SELECT title AS title, nid AS gallery_id
FROM node
WHERE type = 'gallery'
AND status = 1;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;This then returned the following:&lt;/p&gt;
&lt;p&gt;&lt;img class="imagecache-page imagecache caption" src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/create-a-better-photo-gallery-in-drupal-part-1/screen-shot-2010-08-19-at-182911.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;As the nid value of each gallery corresponds with the 
'field_gallery_nid' field within the content_type_photo field, I can now
 query the database and retrieve information about each specific 
gallery.&lt;/p&gt;
&lt;p&gt;For example, using &lt;a href="http://www.w3schools.com/sql/sql_alias.asp"&gt;aliasing&lt;/a&gt;
 within my SQL statement, I can retrieve a list of all the published 
photos within the 'British Squad 2008' gallery by using the following 
code:&lt;/p&gt;
&lt;p&gt;
&lt;pre class="brush: sql;fontsize: 100; first-line: 1; "&gt;SELECT n.title, n.nid, p.field_gallery_nid
FROM node n, content_type_photo p
WHERE p.field_gallery_nid = 105
AND n.status = 1
AND n.nid = p.nid;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;I can easily change this to count the number of published nodes by changing the first line of the query to read SELECT COUNT(*).&lt;/p&gt;
&lt;p&gt;
&lt;pre class="brush: sql;fontsize: 100; first-line: 1; "&gt;SELECT COUNT(*)
FROM node n, content_type_photo p
WHERE p.field_gallery_nid = 105
AND n.status = 1
AND n.nid = p.nid;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;img class="imagecache-page imagecache caption" src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/create-a-better-photo-gallery-in-drupal-part-1/screen-shot-2010-08-19-at-183124.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;As I've used the &lt;a href="http://drupal.org/project/views_attach"&gt;Views Attach&lt;/a&gt;
 module, and I'm embedding the photos directly into the Gallery nodes, I
 easily add this to each gallery by creating a custom 
node-gallery.tpl.php file within my theme. I can then use the following 
PHP code to retrieve the node ID for that specific gallery: &lt;/p&gt;
&lt;p&gt;
&lt;pre class="brush: php;fontsize: 100; first-line: 1; "&gt;$selected_gallery = db_result(db_query("SELECT nid FROM {node} WHERE type = 'gallery' AND title = '$title'"));&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;I can then use this variable as part of my next query to count the 
number of photos within that gallery, similar to what I did earlier.&lt;/p&gt;
&lt;p&gt;
&lt;pre class="brush: css;fontsize: 100; first-line: 1; "&gt;$gallery_total = db_result(db_query("SELECT COUNT(*) FROM {content_type_photo} WHERE field_gallery_nid = $selected_gallery"));&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Next, I wanted to display the date that the last photo was displayed 
within each album. This was done by using a similar query that also 
sorted the results in a descending order, and limited it to one result -
 effectively only returning the created date for the newest photo.&lt;/p&gt;
&lt;p&gt;
&lt;pre class="brush: php;fontsize: 100; first-line: 1; "&gt;$latest_photo = db_result(db_query("SELECT n.created FROM {node} n, {content_type_photo} p WHERE p.field_gallery_nid = $selected_gallery AND n.nid = p.nid ORDER BY n.created DESC LIMIT 1"));&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;This was all then added into a 'print' statement which displayed it into the page.&lt;/p&gt;
&lt;p&gt;
&lt;pre class="brush: php;fontsize: 100; first-line: 1; "&gt;if($selected_gallery_total != 0) {  
  print '&amp;lt;i&amp;gt;There are currently ' . $selected_gallery_total . ' photos in this gallery. Last one added on ' . $latest_photo . '&amp;lt;/i&amp;gt;';
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;OK, so let's take a look at the Gallery so far:&lt;/p&gt;
&lt;p&gt;&lt;img class="imagecache-page imagecache caption" src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/create-a-better-photo-gallery-in-drupal-part-1/create-a-better-photo-gallery-in-drupal-part-1png_2.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;You will notice that the returned date value for the latest photo 
added is displaying the UNIX timestamp instead of in a more readable 
format. This can be changed by altering the 'print' statement to include
 a PHP 'date' function:&lt;/p&gt;
&lt;p&gt;
&lt;pre class="brush: php;fontsize: 100; first-line: 1; "&gt;if($selected_gallery_total != 0) {
  print '&amp;lt;i&amp;gt;There are currently ' . $selected_gallery_total . ' photos in this gallery. Last one added on ' . date("l, jS F, Y", $latest_photo) . '.&amp;lt;/i&amp;gt;';
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;The values that I've entered are from &lt;a href="http://php.net/manual/en/function.date.php"&gt;this page&lt;/a&gt; on &lt;a href="http://php.net"&gt;PHP.net&lt;/a&gt;, and can be changed according on how you want the date to be displayed.&lt;/p&gt;
&lt;p&gt;&lt;img class="imagecache-page imagecache caption" src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/create-a-better-photo-gallery-in-drupal-part-1/create-a-better-photo-gallery-in-drupal-part-1png_3.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;As I've added all of these photos today, then the correct dates are 
being displayed. However, on the client's original website, the majority
 of these photos were pubished several months or years ago, and I'd like
 the new website to still reflect the original created dates. As opposed
 to modifying each individual photograph, I'll be doing this in bulk in 
my next post.&lt;/p&gt;&lt;!-- google_ad_section_end --&gt;&lt;img src="http://feeds.feedburner.com/~r/oliverdavies/~4/RYSMmWvuLgw" height="1" width="1"/&gt;</description>
     <category domain="http://oliverdavies.co.uk/tag/cck">CCK</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal">Drupal</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal-6">Drupal 6</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal-planet">Drupal Planet</category>
 <category domain="http://oliverdavies.co.uk/tag/photo-gallery">Photo Gallery</category>
 <category domain="http://oliverdavies.co.uk/tag/php">PHP</category>
 <category domain="http://oliverdavies.co.uk/tag/sequel-pro">Sequel Pro</category>
 <category domain="http://oliverdavies.co.uk/tag/sql">SQL</category>
 <category domain="http://oliverdavies.co.uk/tag/views">Views</category>
 <category domain="http://oliverdavies.co.uk/tag/views-attach">Views Attach</category>
 <pubDate>Wed, 11 Aug 2010 22:00:22 +0000</pubDate>
 <dc:creator>Oliver Davies</dc:creator>
 <guid isPermaLink="false">297 at http://oliverdavies.co.uk</guid>
  <feedburner:origLink>http://oliverdavies.co.uk/2010/08/11/create-a-better-photo-gallery-in-drupal-part-1</feedburner:origLink></item>
  <item>
    <title>An Overview of the Admin:hover module</title>
    <link>http://feedproxy.google.com/~r/oliverdavies/~3/fhZbCLVECb0/an-overview-of-the-adminhover-module</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;Sorry for the lack of Blog posts lately, but my &lt;a href="http://horseandcountry.tv"&gt;new job&lt;/a&gt; that I started a few weeks ago has certainly been keeping me busy! I've got a few more posts that I'm preparing content for, and I'll hopefully be back into my weekly-post routine before too long!&lt;/p&gt;
&lt;p&gt;Today, I'd like to just give a quick overview of the &lt;a href="http://drupal.org/project/admin_hover"&gt;Admin:hover&lt;/a&gt; module. It basically adds an administrative menu that pops up when you hover over a node or block within your Drupal website - the kind of functionality that was present within previous versions of the &lt;a href="http://drupal.org/project/admin"&gt;Admin&lt;/a&gt; module. It also integrates well with the &lt;a href="http://drupal.org/project/devel"&gt;Devel&lt;/a&gt; and &lt;a href="http://drupal.org/project/node_clone"&gt;Clone&lt;/a&gt; modules.&amp;lt;!--break--&gt;&lt;/p&gt;
&lt;p&gt;I've found this to be extremely useful whilst working on photo galleries etc. where multiple nodes are displayed in a grid format and I quickly need to publish or unpublish something for testing purposes. No longer do I need to open each node, or go into the administration area to perform the required actions.&lt;/p&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="An example of the Admin:hover menu." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/node_images/An%20Overview%20of%20the%20Admin:hover%20module.png" alt="An example of the Admin:hover menu." /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;It is also possible to customise which links are available from within the adminstration area. The possible selections that I currently have on this site are as follows:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Node links:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Edit&lt;/li&gt;
&lt;li&gt;Publish&lt;/li&gt;
&lt;li&gt;Unpublish&lt;/li&gt;
&lt;li&gt;Promote&lt;/li&gt;
&lt;li&gt;Unpromote&lt;/li&gt;
&lt;li&gt;Make sticky&lt;/li&gt;
&lt;li&gt;Make unsticky&lt;/li&gt;
&lt;li&gt;Delete&lt;/li&gt;
&lt;li&gt;Clone&lt;/li&gt;
&lt;li&gt;Dev load&lt;/li&gt;
&lt;li&gt;View author&lt;/li&gt;
&lt;li&gt;Edit author&lt;/li&gt;
&lt;li&gt;Add&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Block links:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Configure block&lt;/li&gt;
&lt;li&gt;Add block&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;/ul&gt;
&lt;p&gt;Although, as I have additional contributed modules installed, some of these may not neccassaily be available out of the box.&lt;/p&gt;
&lt;p&gt;Another potential candidate if (or when) I decide to add another &lt;a href="/2010/06/25/10-useful-drupal-6-modules-that-i-use-on-every-project" title="10 Useful Drupal 6 Modules that I use on every Project" class="nodepicker-link"&gt;10 Useful Drupal 6 Modules that I use on every Project&lt;/a&gt; post!&lt;/p&gt;&lt;!-- google_ad_section_end --&gt;&lt;img src="http://feeds.feedburner.com/~r/oliverdavies/~4/fhZbCLVECb0" height="1" width="1"/&gt;</description>
     <category domain="http://oliverdavies.co.uk/tag/adminhover">Admin:hover</category>
 <category domain="http://oliverdavies.co.uk/tag/administration">Administration</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal-planet">Drupal Planet</category>
 <category domain="http://oliverdavies.co.uk/tag/modules">Modules</category>
 <pubDate>Tue, 10 Aug 2010 15:57:55 +0000</pubDate>
 <dc:creator>Oliver Davies</dc:creator>
 <guid isPermaLink="false">296 at http://oliverdavies.co.uk</guid>
  <feedburner:origLink>http://oliverdavies.co.uk/2010/08/10/an-overview-of-the-adminhover-module</feedburner:origLink></item>
  <item>
    <title>Creating a Garland sub-theme and enabling the Color module</title>
    <link>http://feedproxy.google.com/~r/oliverdavies/~3/AQHYhEafq9c/creating-a-garland-sub-theme-and-enabling-the-color-module</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;For this site, I've been using Minnelli - a fixed-width version of Drupal 6's default Garland theme - along with the Color module to change the site's default colour set to Bluemarine as oppose to the standard Blue Lagoon.&lt;/p&gt;
&lt;p&gt;Recently, I decided that I wanted to edit the page.tpl.php and node.tpl.php template files, but as I was using a core theme, I wasn't able to change these files. So, I created a copy of the Minelli theme directory, renamed it, and placed it into my sites/all/themes directory. As with the default Minnelli theme, my copied theme would need to use Garland as a base theme, to do this, I added the following code to its .info file:&amp;lt;!--break--&gt;&lt;/p&gt;
&lt;pre&gt;base theme = garland
&lt;/pre&gt;
&lt;p&gt;&lt;a href="http://drupal.org/node/225125"&gt;Click here&lt;/a&gt; for more information on sub-themes.&lt;/p&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="The .info file" src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/creating-a-garland-sub-theme-and-enabling-the-color-module/creating-a-garland-sub-theme-and-enabling-the-color-module.png" alt="The .info file" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;To allow the Color module to work with this theme, the 'Color' directory needs to be copied as part of the Minnelli theme. Once this was copied, I was able to visit admin/build/themes/settings/mytheme to configure its settings.&lt;/p&gt;
&lt;p&gt;However, when I attempted to apply my new colour set, 4 error messages were being displayed telling me that files could not be copied as no file with that name existed. When I looked into it, the files that were missing were images contained within a seperate folder. I opened the color.inc file, and instead of changing the paths and values within it, I decided to find an alternative solution.&lt;/p&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="Error messages." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/creating-a-garland-sub-theme-and-enabling-the-color-module/creating-a-garland-sub-theme-and-enabling-the-color-module0.png" alt="Error messages." /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;My solution was to remove the copied folder, and to create symlinks instead.&lt;/p&gt;
&lt;p&gt;Opening a terminal window, I created symlinks to the original color and images directories within the Garland theme folder, as well as Garland's style.css file.&lt;/p&gt;
&lt;pre&gt;ln -s ../../../../themes/garland/color color
ln -s ../../../../themes/garland/images images
ln -s ../../../../themes/garland/style.css style.css&lt;/pre&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="Creating symlinks in Terminal." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/creating-a-garland-sub-theme-and-enabling-the-color-module/creating-a-garland-sub-theme-and-enabling-the-color-modulepng_1.png" alt="Creating symlinks in Terminal." /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="Symbolic links." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/creating-a-garland-sub-theme-and-enabling-the-color-module/creating-a-garland-sub-theme-and-enabling-the-color-modulepng_2.png" alt="Symbolic links." /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;With these links created, my new theme could reference the original directories and files within the Garland folder, and apply my new theme configuration settings.&lt;/p&gt;&lt;!-- google_ad_section_end --&gt;&lt;img src="http://feeds.feedburner.com/~r/oliverdavies/~4/AQHYhEafq9c" height="1" width="1"/&gt;</description>
     <category domain="http://oliverdavies.co.uk/tag/color-module">Color Module</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal-planet">Drupal Planet</category>
 <category domain="http://oliverdavies.co.uk/tag/garland">Garland</category>
 <category domain="http://oliverdavies.co.uk/tag/sub-theme">Sub-Theme</category>
 <pubDate>Mon, 19 Jul 2010 19:15:18 +0000</pubDate>
 <dc:creator>Oliver Davies</dc:creator>
 <guid isPermaLink="false">262 at http://oliverdavies.co.uk</guid>
  <feedburner:origLink>http://oliverdavies.co.uk/2010/07/19/creating-a-garland-sub-theme-and-enabling-the-color-module</feedburner:origLink></item>
  <item>
    <title>Thanks (again)</title>
    <link>http://feedproxy.google.com/~r/oliverdavies/~3/kYpCWbTF1R8/thanks-again</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;Only 8 days since my previous &lt;a href="/2010/07/05/thanks" title="Thanks!" class="nodepicker-link"&gt;thank you&lt;/a&gt;, I am absolutely thrilled to announce that the total number of visits to the site has almost doubled from 574 to 1,026 since the 19th March. &lt;/p&gt;
&lt;p&gt;So, I think that another round of thanks are in order to all readers, subscribers to the &lt;a href="http://feeds.feedburner.com/oliverdavies"&gt;RSS feed&lt;/a&gt;, commenters, followers on &lt;a href="http://twitter.com/opdavies"&gt;Twitter&lt;/a&gt;, and fans on &lt;a href="http://facebook.com/opdavies"&gt;Facebook&lt;/a&gt;...&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Thank you, and come back again soon!&amp;lt;!--break--&gt;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;!-- google_ad_section_end --&gt;&lt;img src="http://feeds.feedburner.com/~r/oliverdavies/~4/kYpCWbTF1R8" height="1" width="1"/&gt;</description>
     <category domain="http://oliverdavies.co.uk/tag/oliverdaviescouk">oliverdavies.co.uk</category>
 <category domain="http://oliverdavies.co.uk/tag/personal">Personal</category>
 <pubDate>Wed, 14 Jul 2010 00:00:20 +0000</pubDate>
 <dc:creator>Oliver Davies</dc:creator>
 <guid isPermaLink="false">260 at http://oliverdavies.co.uk</guid>
  <feedburner:origLink>http://oliverdavies.co.uk/2010/07/14/thanks-again</feedburner:origLink></item>
  <item>
    <title>An Overview of the Teleport Module</title>
    <link>http://feedproxy.google.com/~r/oliverdavies/~3/feoF06KyeME/an-overview-of-the-teleport-module</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;As a heavily-reliant &lt;a href="http://en.wikipedia.org/wiki/Quicksilver_%28software%29"&gt;Quicksilver&lt;/a&gt; user on my MacBook Pro, I was glad when I found the &lt;a href="http://drupal.org/project/teleport"&gt;Teleport&lt;/a&gt; module for &lt;a href="http://drupal.org"&gt;Drupal&lt;/a&gt; &lt;em&gt;(due to Elliott Rothman's &lt;a href="http://twitter.com/elliotttt/status/18044234238"&gt;tweet&lt;/a&gt;)&lt;/em&gt;. &lt;/p&gt;
&lt;p&gt;When you press a configurable hot-key, a jQuery dialog box appears where you can search for nodes by title or path, or directly enter the path that you want to navigate to. This will greatly reduce the number of clicks that I need to perform to get to my desired page - even compared to the &lt;a href="http://drupal.org/project/admin"&gt;Admin&lt;/a&gt; and &lt;a href="http://drupal.org/project/admin_menu"&gt;Administration Menu&lt;/a&gt; modules.&lt;/p&gt;
&lt;p&gt;Although it's not a new module (the first commits were 2 years ago), I hope that they are still planning on achieving the list of future directions listed on their Drupal.org project page:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Make interface act more like Quicksilver (i.e. you should only have 
to press Enter once to launch)&lt;/li&gt;
&lt;li&gt;'Actions' like Quicksilver: if you select a node, a second input 
should appear with options to go to the View page, Edit page, 
(un)publish, etc. Same with users.&lt;/li&gt;
&lt;li&gt;Hook into more non-node content, like taxonomy terms and functions 
in the API module.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Personally, this will make navigation around both the front-end and administration area of my Drupal sites so much easier, and is a definite contender if I decide to do another &lt;a href="/2010/06/25/10-useful-drupal-6-modules-that-i-use-on-every-project" title="10 Useful Drupal 6 Modules that I use on every Project" class="nodepicker-link"&gt;10 Useful Drupal 
Modules&lt;/a&gt; list...!&lt;/p&gt;
&lt;p&gt;&lt;img class="imagecache-page imagecache caption" src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/an-overview-of-the-teleport-module/an-overview-of-the-teleport-modulepng.png" alt="" /&gt;&lt;/p&gt;&lt;!-- google_ad_section_end --&gt;&lt;img src="http://feeds.feedburner.com/~r/oliverdavies/~4/feoF06KyeME" height="1" width="1"/&gt;</description>
     <category domain="http://oliverdavies.co.uk/tag/drupal-6">Drupal 6</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal-planet">Drupal Planet</category>
 <category domain="http://oliverdavies.co.uk/tag/modules">Modules</category>
 <category domain="http://oliverdavies.co.uk/tag/teleport">Teleport</category>
 <pubDate>Mon, 12 Jul 2010 13:00:50 +0000</pubDate>
 <dc:creator>Oliver Davies</dc:creator>
 <guid isPermaLink="false">248 at http://oliverdavies.co.uk</guid>
  <feedburner:origLink>http://oliverdavies.co.uk/2010/07/12/an-overview-of-the-teleport-module</feedburner:origLink></item>
  <item>
    <title>Drupal Planet</title>
    <link>http://feedproxy.google.com/~r/oliverdavies/~3/NUMY2MsN4gY/drupal-planet</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;I'm pleased to announce that my Blog posts are now being imported into the Drupal.org/Drupal Planet aggregator! &lt;a href="http://drupal.org/aggregator/sources/664" title="http://drupal.org/aggregator/sources/664"&gt;http://drupal.org/aggregator/sources/664&lt;/a&gt;&lt;/p&gt;&lt;!-- google_ad_section_end --&gt;&lt;img src="http://feeds.feedburner.com/~r/oliverdavies/~4/NUMY2MsN4gY" height="1" width="1"/&gt;</description>
     <category domain="http://oliverdavies.co.uk/tag/oliverdaviescouk">oliverdavies.co.uk</category>
 <category domain="http://oliverdavies.co.uk/tag/personal">Personal</category>
 <pubDate>Wed, 07 Jul 2010 13:26:38 +0000</pubDate>
 <dc:creator>Oliver Davies</dc:creator>
 <guid isPermaLink="false">241 at http://oliverdavies.co.uk</guid>
  <feedburner:origLink>http://oliverdavies.co.uk/2010/07/07/drupal-planet</feedburner:origLink></item>
  <item>
    <title>Quickly Adding a Taxonomy Term to Multiple Nodes using SQL</title>
    <link>http://feedproxy.google.com/~r/oliverdavies/~3/DeNXZvekvN4/quickly-adding-a-taxonomy-term-to-multiple-nodes-using-sql</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;In preparation for my Blog posts being added to &lt;a href="http://drupal.org/planet"&gt;Drupal Planet&lt;/a&gt;, I needed to create a new Taxonomy term (or, in this case, tag) called 'Drupal Planet', and assign it to new content to imported into their aggregator. After taking a quick look though my previous posts, I decided that 14 of my previous posts were relevant, and thought that it would be useful to also assign these the 'Drupal Planet' tag.&lt;/p&gt;
&lt;p&gt;I didn't want to manually open each post and add the new tag, so I decided to make the changes myself directly into the database using SQL, and as a follow-up to a previous post - &lt;a href="/2010/07/01/quickly-change-the-content-type-of-multiple-nodes-using-sql" title="Quickly Change the Content Type of Multiple Nodes using SQL" class="nodepicker-link"&gt;Quickly Change the Content Type of Multiple Nodes using SQL&lt;/a&gt;.&amp;lt;!--break--&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Again, before changing any values within the database, ensure that you 
have an up-to-date backup which you can restore if you encounter a 
problem!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The first thing I did was create the 'Drupal Planet' term in my Tags vocabulary. I decided to do this via the administration area of my site, and not via the database. Then, using &lt;a href="http://www.sequelpro.com/"&gt;Sequel Pro&lt;/a&gt;, I ran the following SQL query to give me a list of Blog posts on my site - showing just their titles and nid values.&lt;/p&gt;
&lt;p&gt;&lt;img class="imagecache-page imagecache caption" src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/quickly-adding-a-taxonomy-term-to-multiple-nodes-using-sql/quickly-adding-a-taxonomy-term-to-multiple-nodes-using-sql0.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;I made a note of the nid's of the returned nodes, and kept them for later. I then ran a similar query against the term_data table. This returned a list of Taxonomy terms - showing the term's name, and it's unique tid value.&lt;/p&gt;
&lt;p&gt;&lt;img class="imagecache-page imagecache caption" src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/quickly-adding-a-taxonomy-term-to-multiple-nodes-using-sql/quickly-adding-a-taxonomy-term-to-multiple-nodes-using-sql1.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;The term that I was interested in, Drupal Planet, had the tid of 84. To confirm that no nodes were already assigned a taxonomy term with this tid, I ran another query against the database. I'm using aliases within this query to link the node, term_node and term_data tables. For more information on SQL aliases, take a look at &lt;a href="http://w3schools.com/sql/sql_alias.asp"&gt;http://w3schools.com/sql/sql_alias.asp&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img class="imagecache-page imagecache caption" src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/quickly-adding-a-taxonomy-term-to-multiple-nodes-using-sql/quickly-adding-a-taxonomy-term-to-multiple-nodes-using-sql2.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;As expected, it returned no rows.&lt;/p&gt;
&lt;p&gt;The table that links node and term_data is called term_node, and is made up of the nid and vid columns from the node table, as well as the tid column from the term_data table. Is it is here that the additional rows would need to be entered.&lt;/p&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="The term_node table." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/quickly-adding-a-taxonomy-term-to-multiple-nodes-using-sql/quickly-adding-a-taxonomy-term-to-multiple-nodes-using-sql3.png" alt="The term_node table." /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;To confirm everything, I ran a simple query against my previous &lt;a href="/2010/07/05/thanks" title="Thanks!" class="nodepicker-link"&gt;Thanks!&lt;/a&gt; post (nid 216). I know that the only taxonomy term associated with this post is 'Personal', which has a tid value of 44.&lt;/p&gt;
&lt;p&gt;&lt;img class="imagecache-page imagecache caption" src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/quickly-adding-a-taxonomy-term-to-multiple-nodes-using-sql/quickly-adding-a-taxonomy-term-to-multiple-nodes-using-sql4.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Once the query had confirmed the correct tid value, I began to write the SQL Insert statement that would be needed to add the new term to the required nodes. The nid and vid values were the same on each node, and the value of my taxonomy term would need to be 84.&lt;/p&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="The SQL Insert statement." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/quickly-adding-a-taxonomy-term-to-multiple-nodes-using-sql/quickly-adding-a-taxonomy-term-to-multiple-nodes-using-sql5.png" alt="The SQL Insert statement." /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="The updated node table." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/quickly-adding-a-taxonomy-term-to-multiple-nodes-using-sql/quickly-adding-a-taxonomy-term-to-multiple-nodes-using-sql6.png" alt="The updated node table." /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Once this had completed with no errors, I returned to the administration area of my Drupal site to confirm whether or not the nodes had been assigned the new term.&lt;/p&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="The 'Drupal Planet' tag." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/quickly-adding-a-taxonomy-term-to-multiple-nodes-using-sql/quickly-adding-a-taxonomy-term-to-multiple-nodes-using-sqlpng_7.png" alt="The 'Drupal Planet' tag." /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I navigated to the URL for the tag (&lt;a href="/tag/drupal-planet"&gt;/tag/drupal-planet&lt;/a&gt;), and the required nodes were now showing.&lt;/p&gt;&lt;!-- google_ad_section_end --&gt;&lt;img src="http://feeds.feedburner.com/~r/oliverdavies/~4/DeNXZvekvN4" height="1" width="1"/&gt;</description>
     <category domain="http://oliverdavies.co.uk/tag/database">Database</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal">Drupal</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal-6">Drupal 6</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal-planet">Drupal Planet</category>
 <category domain="http://oliverdavies.co.uk/tag/sequel-pro">Sequel Pro</category>
 <category domain="http://oliverdavies.co.uk/tag/sql">SQL</category>
 <category domain="http://oliverdavies.co.uk/tag/taxonomy">Taxonomy</category>
 <pubDate>Wed, 07 Jul 2010 07:00:00 +0000</pubDate>
 <dc:creator>Oliver Davies</dc:creator>
 <guid isPermaLink="false">219 at http://oliverdavies.co.uk</guid>
  <feedburner:origLink>http://oliverdavies.co.uk/2010/07/07/quickly-adding-a-taxonomy-term-to-multiple-nodes-using-sql</feedburner:origLink></item>
  <item>
    <title>Thanks!</title>
    <link>http://feedproxy.google.com/~r/oliverdavies/~3/9GZ843qSPuc/thanks</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;Since &lt;a href="/2010/03/19/personal-site-launched" title="Personal Site Launched!" class="nodepicker-link"&gt;launching this site&lt;/a&gt; back on the 19th March, I've been quite suprised by the number of visitors I've recevied! At the time of writing this, I've received 574 visits and 1,269 pageviews - which isn't bad considering that, until a few weeks ago, I was only advertising my posts on my personal &lt;a href="http://twitter.com/opdavies"&gt;Twitter&lt;/a&gt; and &lt;a href="http://facebook.com/opdavies"&gt;Facebook&lt;/a&gt; accounts! I'm also quite suprised that one of my earliest Blog posts, &lt;a href="/2010/04/05/styling-drupal-6s-taxonomy-lists-with-php-css-and-jquery" title="Styling Drupal 6&amp;#039;s Taxonomy Lists with PHP, CSS and jQuery" class="nodepicker-link"&gt;Styling Drupal 6&amp;#039;s Taxonomy Lists with PHP, CSS and jQuery&lt;/a&gt;, is still currently the 5th most-viewed page on my site!&amp;lt;!--break--&gt;&lt;/p&gt;
&lt;p&gt;I'd like to take this opportunity to thank everyone who's visited my site so far, everyone who's subscribed to the &lt;a href="/rss.xml"&gt;RSS feed&lt;/a&gt;, everyone who's referred my posts to sites such as &lt;a href="http://www.dzone.com/links/search.html?query=domain%3Aoliverdavies.co.uk"&gt;DZone&lt;/a&gt; and StumbleUpon, everyone who's re-tweeted my posts on Twitter, and everyone who's emailed me with feedback and comments about my posts.&lt;/p&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="My Google Analytics Dashboard." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/thanks/thankspng.png" alt="My Google Analytics Dashboard." /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;!-- google_ad_section_end --&gt;&lt;img src="http://feeds.feedburner.com/~r/oliverdavies/~4/9GZ843qSPuc" height="1" width="1"/&gt;</description>
     <category domain="http://oliverdavies.co.uk/tag/personal">Personal</category>
 <pubDate>Mon, 05 Jul 2010 08:43:51 +0000</pubDate>
 <dc:creator>Oliver Davies</dc:creator>
 <guid isPermaLink="false">216 at http://oliverdavies.co.uk</guid>
  <feedburner:origLink>http://oliverdavies.co.uk/2010/07/05/thanks</feedburner:origLink></item>
  <item>
    <title>Using VirtualHostX to Quickly Create Virtual Hosts on Mac OS X</title>
    <link>http://feedproxy.google.com/~r/oliverdavies/~3/_BuR6gYD9nM/using-virtualhostx-to-quickly-create-virtual-hosts-on-mac-os-x</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;This isn't a Drupal related topic per se, but it is a walk-through of one of the applications that I use whilst doing Drupal development work. I assume, like most Mac OS X users, I use &lt;a href="http://www.mamp.info/en/index.html"&gt;MAMP&lt;/a&gt; to run Apache, MySQL and PHP locally whilst developing. I also use virtual hosts in Apache to create local .dev domains which are as close as possible to the actual live domains. For example, if I was developing a site called mysite.com, my local development version would be mysite.dev.&lt;/p&gt;
&lt;p&gt;Normally, I would have to edit the hosts file and Apache's httpd.conf file to create a virtual host. The first to set the domain and it's associated IP address, and the other to configure the domain's directory, default index file etc. However, using &lt;a href="http://clickontyler.com/virtualhostx/"&gt;VirtualHostX&lt;/a&gt;, I can quickly create a virtual host without having to edt any files. Enter the virtual domain name, the local path and the port, and apply the settings. VirtualHostX automatically restarts Apache, so the domain is ready to work straight away. You can also enter custom directives from within the GUI.&amp;lt;!--break--&gt;&lt;/p&gt;
&lt;p&gt;There's also an option to share the host over the local network. Next, I intend on configuring a virtual Windows PC within VMware Fusion to view these domains so that I can do cross-browser testing before putting a site live.&lt;/p&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="The VirtualHostX interface." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/using-virtualhostx-to-quickly-create-virtual-hosts-on-mac-os-x/using-virtualhostx-to-quickly-create-virtual-hosts-on-mac-os-xpng.png" alt="The VirtualHostX interface." /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;This may or may not be required, but I ensured that my Apache configuration within MAMP was set to port 80, and that VirtualHostX was using Apache from MAMP instead of Apple's built-in Apache.&lt;/p&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="MAMP's port configuration." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/using-virtualhostx-to-quickly-create-virtual-hosts-on-mac-os-x/using-virtualhostx-to-quickly-create-virtual-hosts-on-mac-os-xpng_0.png" alt="MAMP's port configuration." /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="VirtualHostX's preferences." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/using-virtualhostx-to-quickly-create-virtual-hosts-on-mac-os-x/using-virtualhostx-to-quickly-create-virtual-hosts-on-mac-os-xpng_1.png" alt="VirtualHostX's preferences." /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note: &lt;/strong&gt;One problem that I had after setting this up, was that I was receving an error when attempting to open a Drupal website which said &lt;em&gt;'No such file or directory'.&lt;/em&gt; &lt;/p&gt;
&lt;p&gt;After some troubleshooting, I found out that Web Sharing on my Mac had become enabled (I don't know why, I've never enabled it), and that this was causing a conflict with Apache. Once I opened my System Preferences and disabled it, everything worked fine!&lt;/p&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;em&gt;&lt;img class="imagecache-page imagecache caption" title="'No such file or directory'." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/using-virtualhostx-to-quickly-create-virtual-hosts-on-mac-os-x/using-virtualhostx-to-quickly-create-virtual-hosts-on-mac-os-xpng_2.png" alt="'No such file or directory'." /&gt;&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="Web Sharing needs to be disabled." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/using-virtualhostx-to-quickly-create-virtual-hosts-on-mac-os-x/using-virtualhostx-to-quickly-create-virtual-hosts-on-mac-os-xpng_3.png" alt="Web Sharing needs to be disabled." /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;This, along with MAMP, &lt;a href="http://www.panic.com/coda/"&gt;Coda&lt;/a&gt;, &lt;a href="http://www.sequelpro.com/"&gt;Sequel Pro&lt;/a&gt;, and &lt;a href="http://www.panic.com/transmit/"&gt;Transmit&lt;/a&gt;, has become an essential tool within my development environment.&lt;span class="caption"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;!-- google_ad_section_end --&gt;&lt;img src="http://feeds.feedburner.com/~r/oliverdavies/~4/_BuR6gYD9nM" height="1" width="1"/&gt;</description>
     <category domain="http://oliverdavies.co.uk/tag/drupal-planet">Drupal Planet</category>
 <category domain="http://oliverdavies.co.uk/tag/mamp">MAMP</category>
 <category domain="http://oliverdavies.co.uk/tag/virtual-hosts">Virtual Hosts</category>
 <category domain="http://oliverdavies.co.uk/tag/virtualhostx">VirtualHostX</category>
 <pubDate>Fri, 02 Jul 2010 20:00:13 +0000</pubDate>
 <dc:creator>Oliver Davies</dc:creator>
 <guid isPermaLink="false">212 at http://oliverdavies.co.uk</guid>
  <feedburner:origLink>http://oliverdavies.co.uk/2010/07/02/using-virtualhostx-to-quickly-create-virtual-hosts-on-mac-os-x</feedburner:origLink></item>
  <item>
    <title>Quickly Change the Content Type of Multiple Nodes using SQL</title>
    <link>http://feedproxy.google.com/~r/oliverdavies/~3/1WBCfdgU1YU/quickly-change-the-content-type-of-multiple-nodes-using-sql</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;In this Blog post, I will be changing values within my Drupal 6 site's database to quickly change the content type of multiple nodes. I will be using a test development site with the core Blog module 
installed, and converting Blog posts to a custom content type called 
'News article'.&lt;strong&gt;&lt;span style="font-family: mceinline;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Before changing any values within the database, ensure that you have an up-to-date backup which you can restore if you encounter a problem!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;To begin with, I created the 'News article' content type, and then used the Devel Generate module to generate some Blog nodes.&lt;/p&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="The 'News article' content type." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/quickly-change-the-content-type-of-multiple-nodes-using-sql/quickly-change-the-content-type-of-multiple-nodes-using-sql.png" alt="The 'News article' content type." /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Using &lt;a href="http://www.sequelpro.com/"&gt;Sequel Pro&lt;/a&gt;, I can query the database to view the Blog posts (you can also do this via the &lt;a href="http://guides.macrumors.com/Terminal"&gt;Terminal&lt;/a&gt; in a Mac OS X/Linux, &lt;a href="http://www.oracle.com/technology/software/products/sql/index.html"&gt;Oracle SQL Developer&lt;/a&gt; on Windows, or directly within &lt;a href="http://www.phpmyadmin.net/home_page/index.php"&gt;phpMyAdmin&lt;/a&gt;):&lt;/p&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="Viewing the Blog posts in Sequel Pro." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/quickly-change-the-content-type-of-multiple-nodes-using-sql/quickly-change-the-content-type-of-multiple-nodes-using-sql1.png" alt="Viewing the Blog posts in Sequel Pro." /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Using an SQL 'Update' command, I can change the type value from 'blog' to 'article'. This will change every occurance of the value 'blog'. If I wanted to only change certain nodes, I could add a 'Where' clause to only affect nodes with a certain nid or title.&lt;/p&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="Updating the database." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/quickly-change-the-content-type-of-multiple-nodes-using-sql/quickly-change-the-content-type-of-multiple-nodes-using-sql2.png" alt="Updating the database." /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Now, when I query the database, the type is shown as 'article'.&lt;/p&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="Viewing article nodes on the database." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/quickly-change-the-content-type-of-multiple-nodes-using-sql/quickly-change-the-content-type-of-multiple-nodes-using-sql3.png" alt="Viewing article nodes on the database." /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Now, when I go back into the administration section of my site and view the content, the content type now shows at 'News article'.&lt;/p&gt;
&lt;p&gt;This is quite a simple example - it assumes that both content types are identical, and have the same CCK fields. If this is not the case, then more complex SQL would be needed.&lt;/p&gt;
&lt;p&gt;The next time that I do a more complex task using SQL, I'll also add it here as another Blog post.&lt;/p&gt;&lt;!-- google_ad_section_end --&gt;&lt;img src="http://feeds.feedburner.com/~r/oliverdavies/~4/1WBCfdgU1YU" height="1" width="1"/&gt;</description>
     <category domain="http://oliverdavies.co.uk/tag/content-types">Content Types</category>
 <category domain="http://oliverdavies.co.uk/tag/database">Database</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal">Drupal</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal-6">Drupal 6</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal-planet">Drupal Planet</category>
 <category domain="http://oliverdavies.co.uk/tag/sequel-pro">Sequel Pro</category>
 <category domain="http://oliverdavies.co.uk/tag/sql">SQL</category>
 <pubDate>Thu, 01 Jul 2010 16:58:19 +0000</pubDate>
 <dc:creator>Oliver Davies</dc:creator>
 <guid isPermaLink="false">218 at http://oliverdavies.co.uk</guid>
  <feedburner:origLink>http://oliverdavies.co.uk/2010/07/01/quickly-change-the-content-type-of-multiple-nodes-using-sql</feedburner:origLink></item>
  <item>
    <title>Creating a Photo Gallery from Flickr using Feeds, CCK and Views</title>
    <link>http://feedproxy.google.com/~r/oliverdavies/~3/mZ2M8Ell-1Q/creating-a-photo-gallery-from-flickr-using-feeds-cck-and-views</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;In this tutorial, I'll show you how I created my &lt;a href="/photos"&gt;photo gallery&lt;/a&gt; which uses photos imported from my &lt;a href="http://flickr.com/photos/opdavies/"&gt;Flickr account&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;The modules that I'll use to create the Gallery are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://drupal.org/project/cck"&gt;CCK&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://drupal.org/project/feeds"&gt;Feeds&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://drupal.org/project/feeds_imagegrabber"&gt;Feeds Image Grabber&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://drupal.org/project/filefield"&gt;FileField&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://drupal.org/project/imageapi/"&gt;ImageAPI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://drupal.org/project/imagecache"&gt;ImageCache&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://drupal.org/project/imagefield"&gt;ImageField&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://drupal.org/project/views"&gt;Views&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The first thing that I did was to create a content type to store my imported images. I named it 'Photo', removed the Body field, and added an Image field.&lt;/p&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="The 'Photo' content type." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/creating-a-photo-gallery-from-flickr-using-feeds-cck-and-views/creating-a-photo-gallery-from-flickr-using-feeds-cck-and-views.png" alt="The 'Photo' content type." /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Next, I installed and configured the Feeds and Image Grabber module. I used an overridden default Feed to import my photos from Flickr using the following settings:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Basic settings: &lt;/strong&gt;I changed the Refresh time to 15 minutes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Processor settings: &lt;/strong&gt;I changed the content type to 'Photo', and the author's name from 'anonymous'.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Processor mapping:&lt;/strong&gt; I added a new mapping from 'Item URL (link)' to 'Photo (FIG)'. The Photo FIG target is added by the Image Grabber module.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="Editing the Feed Importer." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/creating-a-photo-gallery-from-flickr-using-feeds-cck-and-views/creating-a-photo-gallery-from-flickr-using-feeds-cck-and-views0.png" alt="Editing the Feed Importer." /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Next, I needed to create the actual Feed &lt;em&gt;(node/add/feed)&lt;/em&gt;. I gave it a title, entered the URL to my RSS feed from Flickr, and enabled the Image Grabber for this feed.&lt;/p&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="Creating the Feed." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/creating-a-photo-gallery-from-flickr-using-feeds-cck-and-views/creating-a-photo-gallery-from-flickr-using-feeds-cck-and-views1.png" alt="Creating the Feed." /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Once the Feed is created, the latest 20 images from the RSS feed are imported and 20 new Photos nodes are created. In the example below, the image with the 'Photo' label is the Image field mapped by the Image Grabber module. It is this image that I'll be displaying within my Gallery.&lt;/p&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="An imported Photo node." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/creating-a-photo-gallery-from-flickr-using-feeds-cck-and-views/creating-a-photo-gallery-from-flickr-using-feeds-cck-and-views2.png" alt="An imported Photo node." /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;With the new Photo nodes created, I then created the View to display them.&lt;/p&gt;
&lt;p&gt;The View selects the image within the Photo content type, and displays 
in it a grid using an ImageCache preset. The View is limited to 20 nodes
 per page, and uses a full pager if this is exceeded. The nodes are 
sorted by the descending post date, and filtered by whether or not they 
are published, and only to include Photo nodes. &lt;/p&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="The 'Photos' View." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/creating-a-photo-gallery-from-flickr-using-feeds-cck-and-views/creating-a-photo-gallery-from-flickr-using-feeds-cck-and-views3.png" alt="The 'Photos' View." /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;As an additional effect, I also included the 'Feeds Item - Item Link' field, which is basically the original link from the RSS feed. By checking the box the exclude the item from the display, it is not shown, but makes the link available to be used elsewhere. By checking the box 'Re-write the output for this field' on the 'Content: Photo' field, I was able to add the replacement token (in this case, [url]) as the path for a link around each image. This meant that when someone clicked a thumbnail of a photo, they were directed to the Flickr website instead of the node within my Drupal site.&lt;/p&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="Configuration of the 'Content: Photo' field." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/creating-a-photo-gallery-from-flickr-using-feeds-cck-and-views/creating-a-photo-gallery-from-flickr-using-feeds-cck-and-views4.png" alt="Configuration of the 'Content: Photo' field." /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="The finished result." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/creating-a-photo-gallery-from-flickr-using-feeds-cck-and-views/creating-a-photo-gallery-from-flickr-using-feeds-cck-and-views5.png" alt="The finished result." /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;As usual, please feel free to comment on this post, or &lt;a href="/contact"&gt;contact me&lt;/a&gt; with any feedback!&lt;/p&gt;&lt;!-- google_ad_section_end --&gt;&lt;img src="http://feeds.feedburner.com/~r/oliverdavies/~4/mZ2M8Ell-1Q" height="1" width="1"/&gt;</description>
     <category domain="http://oliverdavies.co.uk/tag/cck">CCK</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal-6">Drupal 6</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal-planet">Drupal Planet</category>
 <category domain="http://oliverdavies.co.uk/tag/feeds">Feeds</category>
 <category domain="http://oliverdavies.co.uk/tag/filefield">FileField</category>
 <category domain="http://oliverdavies.co.uk/tag/flickr">Flickr</category>
 <category domain="http://oliverdavies.co.uk/tag/imagecache">ImageCache</category>
 <category domain="http://oliverdavies.co.uk/tag/imagefield">ImageField</category>
 <category domain="http://oliverdavies.co.uk/tag/tutorials">Tutorials</category>
 <category domain="http://oliverdavies.co.uk/tag/views">Views</category>
 <pubDate>Mon, 28 Jun 2010 16:15:03 +0000</pubDate>
 <dc:creator>Oliver Davies</dc:creator>
 <guid isPermaLink="false">211 at http://oliverdavies.co.uk</guid>
  <feedburner:origLink>http://oliverdavies.co.uk/2010/06/28/creating-a-photo-gallery-from-flickr-using-feeds-cck-and-views</feedburner:origLink></item>
  <item>
    <title>10 Useful Drupal 6 Modules that I use on every Project</title>
    <link>http://feedproxy.google.com/~r/oliverdavies/~3/rnpiIGUiO50/10-useful-drupal-6-modules-that-i-use-on-every-project</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;Aside from the obvious candidates such as Views, CCK etc, here are a list of 10 contributed modules that I currently use on each Drupal project.&lt;/p&gt;
&lt;p&gt;So, in no particular order:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="http://drupal.org/project/admin"&gt;Admin&lt;/a&gt;:&lt;/strong&gt;&lt;br /&gt;The admin module provides UI improvements to the standard Drupal admin 
interface. I've just upgraded to the new &lt;a href="http://drupal.org/node/835870"&gt;6.x-2.0-beta4&lt;/a&gt; version, and installed the newly-required &lt;a href="http://code.developmentseed.org/rubik"&gt;Rubik&lt;/a&gt;/&lt;a href="http://code.developmentseed.org/tao"&gt;Tao&lt;/a&gt; themes. So far, so good!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="http://drupal.org/project/better_perms"&gt;Better Permissions&lt;/a&gt;/&lt;a href="http://drupal.org/project/filter_perms"&gt;Filter Permissions&lt;/a&gt;:&lt;/strong&gt;&lt;br /&gt;Basic permissions is a basic module which enhances the Drupal Permissions page to support 
collapsing and expanding permission rows. Filter permissions provides filters at the top of the Permissions page for easier 
management when your site has a large amount of roles and/or 
permissions. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="http://drupal.org/project/better_formats"&gt;Better Formats&lt;/a&gt;:&lt;/strong&gt;&lt;br /&gt;Better formats is a module to add more flexibility to Drupal's core 
input format system.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="http://drupal.org/project/node_clone"&gt;Clone module&lt;/a&gt;:&lt;/strong&gt;&lt;br /&gt;Allows users to make a copy of an existing item of site content (a node)
 and then edit that copy.  &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="http://drupal.org/project/vertical_tabs"&gt;Vertical Tabs&lt;/a&gt;:&lt;br /&gt;&lt;/strong&gt;Integrated into Drupal 7 core, this module adds vertical tabs to the node add and edit forms.&lt;strong&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="http://drupal.org/project/context"&gt;Context&lt;/a&gt;:&lt;br /&gt;&lt;/strong&gt;Context allows you to manage contextual conditions and reactions for 
different portions of your site. You can think of each context as 
representing a "section" of your site. For each context, you can choose 
the conditions that trigger this context to be active and choose 
different aspects of Drupal that should react to this active context.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="http://drupal.org/project/nodepicker"&gt;Node Picker&lt;/a&gt;:&lt;/strong&gt;&lt;br /&gt;
A rewrite of the module &lt;a rel="nofollow" href="http://drupal.org/project/tinymce_node_picker"&gt;TinyMCE
 Node Picker&lt;/a&gt;. Allows you to easily create links to internal nodes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="http://drupal.org/project/module_filter"&gt;Module Filter&lt;/a&gt;:&lt;/strong&gt;&lt;br /&gt;What this module aims to accomplish is the ability to quickly find the 
module you are looking for without having to rely on the browsers search
 feature which more times than not shows you the module name in the 
'Required by' or 'Depends on' sections of the various modules or even 
some other location on the page like a menu item.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="http://drupal.org/project/zenophile"&gt;Zenophile&lt;/a&gt;:&lt;/strong&gt;&lt;br /&gt;
Quickly create Zen subthemes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="http://drupal.org/project/addanother"&gt;Add Another&lt;/a&gt;:&lt;/strong&gt;&lt;br /&gt;Add another displays a message after a user creates a node, and/or 
displays an "Add another" tab on nodes allowing them to make another 
node of the same type.  You can control what roles and node types see 
this feature.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Please feel free to comment with any other useful modules that you use!&lt;/p&gt;
&lt;ol&gt;
&lt;/ol&gt;&lt;!-- google_ad_section_end --&gt;&lt;img src="http://feeds.feedburner.com/~r/oliverdavies/~4/rnpiIGUiO50" height="1" width="1"/&gt;</description>
     <category domain="http://oliverdavies.co.uk/tag/drupal-6">Drupal 6</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal-planet">Drupal Planet</category>
 <category domain="http://oliverdavies.co.uk/tag/modules">Modules</category>
 <pubDate>Fri, 25 Jun 2010 09:10:53 +0000</pubDate>
 <dc:creator>Oliver Davies</dc:creator>
 <guid isPermaLink="false">95 at http://oliverdavies.co.uk</guid>
  <feedburner:origLink>http://oliverdavies.co.uk/2010/06/25/10-useful-drupal-6-modules-that-i-use-on-every-project</feedburner:origLink></item>
  <item>
    <title>Creating a Block of Social Media Icons using CCK, Views and Nodequeue</title>
    <link>http://feedproxy.google.com/~r/oliverdavies/~3/tRpeDXcThzg/creating-a-block-of-social-media-icons-using-cck-views-and-nodequeue</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;&lt;a href="/../../work/projects/abertawe-country-hotel-for-cats" title="Abertawe Country Hotel for Cats" class="nodepicker-link"&gt;Recent 
work&lt;/a&gt; means that I'm a bit later posting this than I originally 
intended...&lt;/p&gt;
&lt;p&gt;I recently decided that I wanted to have a block displayed in a sidebar on my site containing icons and links to my social media profiles - &lt;a href="http://twitter.com/opdavies"&gt;Twitter&lt;/a&gt;, &lt;a href="http://facebook.com/opdavies"&gt;Facebook&lt;/a&gt; etc. I tried the &lt;a href="http://drupal.org/project/follow"&gt;Follow&lt;/a&gt; module, but it lacked the option to add extra networks such my &lt;a href="http://drupal.org/user/381388"&gt;Drupal.org&lt;/a&gt; account, and my &lt;a href="/rss.xml"&gt;RSS feed&lt;/a&gt;. I started to create my own version, and then found &lt;a href="http://www.hankpalan.com/blog/drupal-themes/add-your-social-connections-drupal-icons"&gt;this Blog post&lt;/a&gt; by Hank Palan.&lt;/p&gt;
&lt;p&gt;I created a 'Social icon' content type with the body field removed, and with fields for a link and image - then downloaded the favicons from the appropriate websites to use. &amp;lt;!--break--&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="The 'Social icon' content type." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/creating-a-block-of-social-media-icons-using-cck-views-and-nodequeue/creating-a-block-of-social-media-icons-using-cck-views-and-nodequeue.png" alt="The 'Social icon' content type." /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;However, instead of using a custom template (node-custom.tpl.php) file, I used the Views module.&lt;/p&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="The Views settings." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/creating-a-block-of-social-media-icons-using-cck-views-and-nodequeue/creating-a-block-of-social-media-icons-using-cck-views-and-nodequeuepng_0.png" alt="The Views settings." /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I added fields for the node titles, and the link from the node's content. Both of these are excluded from being displayed on the site. I then re-wrote the output of the Icon field to create the link using the URL, and using the node's title as the image's alternative text and the link's title.&lt;/p&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="The re-written output." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/creating-a-block-of-social-media-icons-using-cck-views-and-nodequeue/creating-a-block-of-social-media-icons-using-cck-views-and-nodequeue1.png" alt="The re-written output." /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I also used the &lt;a href="http://drupal.org/project/nodequeue"&gt;Nodequeue&lt;/a&gt; module to create a nodequeue and arrange the icons in the order that I wanted them to be displayed. Once this was added as a relationship within my View, I was able to use node's position in the nodequeue as the sort criteria.&lt;/p&gt;
&lt;p&gt;To complete the process, I used the &lt;a href="http://drupal.org/project/css_injector"&gt;CSS Injector&lt;/a&gt; module to add some aditional CSS styling to position and space out the icons.&lt;/p&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="The finished result." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/creating-a-block-of-social-media-icons-using-cck-views-and-nodequeue/creating-a-block-of-social-media-icons-using-cck-views-and-nodequeuepng_2.png" alt="The finished result." /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;!-- google_ad_section_end --&gt;&lt;img src="http://feeds.feedburner.com/~r/oliverdavies/~4/tRpeDXcThzg" height="1" width="1"/&gt;</description>
     <category domain="http://oliverdavies.co.uk/tag/drupal-6">Drupal 6</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal-planet">Drupal Planet</category>
 <category domain="http://oliverdavies.co.uk/tag/nodequeue">Nodequeue</category>
 <category domain="http://oliverdavies.co.uk/tag/oliverdaviescouk">oliverdavies.co.uk</category>
 <category domain="http://oliverdavies.co.uk/tag/tutorials">Tutorials</category>
 <category domain="http://oliverdavies.co.uk/tag/views">Views</category>
 <pubDate>Wed, 23 Jun 2010 21:08:32 +0000</pubDate>
 <dc:creator>Oliver Davies</dc:creator>
 <guid isPermaLink="false">83 at http://oliverdavies.co.uk</guid>
  <feedburner:origLink>http://oliverdavies.co.uk/2010/06/23/creating-a-block-of-social-media-icons-using-cck-views-and-nodequeue</feedburner:origLink></item>
  <item>
    <title>Updated Navigation</title>
    <link>http://feedproxy.google.com/~r/oliverdavies/~3/vy1qEMIKNz0/updated-navigation</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;I've done some re-structuring of the main navigation menu:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href="/work/projects"&gt;Projects&lt;/a&gt; and &lt;a href="/work/testimonials"&gt;Testimonials&lt;/a&gt; pages have been moved to the Work section.&lt;/li&gt;
&lt;li&gt;The Contact page has now been divided into seperate &lt;a href="/contact/personal"&gt;Personal&lt;/a&gt; and &lt;a href="/contact/work"&gt;Work&lt;/a&gt; forms.&lt;/li&gt;
&lt;/ul&gt;&lt;!-- google_ad_section_end --&gt;&lt;img src="http://feeds.feedburner.com/~r/oliverdavies/~4/vy1qEMIKNz0" height="1" width="1"/&gt;</description>
     <category domain="http://oliverdavies.co.uk/tag/oliverdaviescouk">oliverdavies.co.uk</category>
 <pubDate>Thu, 10 Jun 2010 09:38:53 +0000</pubDate>
 <dc:creator>Oliver Davies</dc:creator>
 <guid isPermaLink="false">75 at http://oliverdavies.co.uk</guid>
  <feedburner:origLink>http://oliverdavies.co.uk/2010/06/10/updated-navigation</feedburner:origLink></item>
  <item>
    <title>Improving Imagecache JPG quality</title>
    <link>http://feedproxy.google.com/~r/oliverdavies/~3/m83VhJV4LNA/improving-imagecache-jpg-quality</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;Whilst uploading images for my &lt;a href="/projects"&gt;Projects&lt;/a&gt; and &lt;a href="/testimonials"&gt;Testimonials&lt;/a&gt; sections, I noticed that the Imagecache-scaled images weren't as high a quality the originals on my Mac. I did some searching online and found out that, by default, Drupal resamples uploaded jpgs to 75% of their original quality.&lt;br /&gt;&lt;br /&gt;To increase the quality of your images, change the setting in the two following places:&lt;br /&gt;&lt;br /&gt;admin/settings/imageapi/config&lt;br /&gt;admin/settings/image-toolkit&lt;/p&gt;
&lt;p&gt;&lt;img class="imagecache-page imagecache caption" src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/improving-imagecache-jpg-quality/improving-imagecache-jpg-quality.png" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;The first one is for ImageAPI. Primarily, this means Imagecache presets.&lt;br /&gt;&lt;br /&gt;The second one is for core's image.inc. This is used for resizing profile pictures in core, and some contrib modules.&lt;br /&gt;&lt;br /&gt;Once changed, I did have to flush each of the Imagecache presets (admin/build/imagecache) for the changes to take effect.&lt;/p&gt;&lt;!-- google_ad_section_end --&gt;&lt;img src="http://feeds.feedburner.com/~r/oliverdavies/~4/m83VhJV4LNA" height="1" width="1"/&gt;</description>
     <category domain="http://oliverdavies.co.uk/tag/drupal-6">Drupal 6</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal-planet">Drupal Planet</category>
 <category domain="http://oliverdavies.co.uk/tag/imagecache">ImageCache</category>
 <pubDate>Wed, 02 Jun 2010 14:13:32 +0000</pubDate>
 <dc:creator>Oliver Davies</dc:creator>
 <guid isPermaLink="false">64 at http://oliverdavies.co.uk</guid>
  <feedburner:origLink>http://oliverdavies.co.uk/2010/06/02/improving-imagecache-jpg-quality</feedburner:origLink></item>
  <item>
    <title>Importing images using the Imagefield_Import module</title>
    <link>http://feedproxy.google.com/~r/oliverdavies/~3/zsMA-0BZ6qU/importing-images-using-the-imagefieldimport-module</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;&lt;strong&gt;Thanks to Bob at &lt;a href="http://mustardseedmedia.com"&gt;Mustardseed Media&lt;/a&gt; for &lt;a href="http://twitter.com/mustardseedinc/status/14713096905"&gt;tweeting&lt;/a&gt; about this module. It's undoubtedly saved me hours of work today alone!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I've recently started a personal project converting a website to Drupal. It's currently a static HTML/CSS site which also uses the &lt;a href="http://coppermine-gallery.net/"&gt;Coppermine Photo Gallery&lt;/a&gt;. As part of building the new website, I wanted to move all the photos from the existing site onto the new one. However, with 1260&lt;span class="statlink"&gt; photos in 17 albums, this could have been a lengthy process!&amp;lt;!--break--&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="statlink"&gt;I created a new Drupal-powered Gallery as described in &lt;a href="http://lullabot.com/articles/photo-galleries-views-attach"&gt;this screencast&lt;/a&gt; by &lt;a href="http://twitter.com/eaton"&gt;Jeff Eaton&lt;/a&gt; - using the CCK and Imagefield modules, and re-created each of my existing Gallery nodes. Using the &lt;a href="http://drupal.org/project/imagefield_import"&gt;Imagefield_Import&lt;/a&gt; module, I was then able to quickly import the photos into the new Galleries.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="statlink"&gt;I downloaded all the photos from the previous Gallery via FTP, and installed and configured the Imagefield_Import module.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="statlink"&gt;&lt;img class="imagecache-page imagecache caption" title="Imagefield Import settings." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/importing-images-using-the-imagefieldimport-module/importing-images-using-the-imagefieldimport-module.png" alt="Imagefield Import settings." /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="statlink"&gt;I created an 'Import' folder, selected the target field and mode. In this case, I want each image to be imported onto its own Photo node. I moved the photos for the first album into the Import folder, and loaded the 'Import Images' screen &lt;em&gt;(admin/content/imagefield_import)&lt;/em&gt;.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="statlink"&gt;&lt;img class="imagecache-page imagecache caption" title="Import images." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/importing-images-using-the-imagefieldimport-module/importing-images-using-the-imagefieldimport-module0.png" alt="Import images." /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="statlink"&gt;Due to my earlier configuration, I was able to see a thumbnail of each image, as well as automatically create the node's title by using the filename. I also had the option to select which Gallery node that these photos should be referenced to. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="statlink"&gt;After clicking 'Import', a node is created for each photo, the image is uploaded, and added to the selected Gallery.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="statlink"&gt;Just another 1248 photos to go...&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;!-- google_ad_section_end --&gt;&lt;img src="http://feeds.feedburner.com/~r/oliverdavies/~4/zsMA-0BZ6qU" height="1" width="1"/&gt;</description>
     <category domain="http://oliverdavies.co.uk/tag/cck">CCK</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal-planet">Drupal Planet</category>
 <category domain="http://oliverdavies.co.uk/tag/imagefield">ImageField</category>
 <category domain="http://oliverdavies.co.uk/tag/imagefield-import">ImageField Import</category>
 <category domain="http://oliverdavies.co.uk/tag/photo-gallery">Photo Gallery</category>
 <pubDate>Sat, 29 May 2010 10:40:55 +0000</pubDate>
 <dc:creator>Oliver Davies</dc:creator>
 <guid isPermaLink="false">62 at http://oliverdavies.co.uk</guid>
  <feedburner:origLink>http://oliverdavies.co.uk/2010/05/29/importing-images-using-the-imagefieldimport-module</feedburner:origLink></item>
  <item>
    <title>Create a Slideshow of Multiple Images using the Fancy Slide module</title>
    <link>http://feedproxy.google.com/~r/oliverdavies/~3/RylZKAQzQ2M/create-a-slideshow-of-multiple-images-using-the-fancy-slide-module</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;Whilst updating my &lt;a href="/about"&gt;About&lt;/a&gt; page, I thought about creating a slideshow of several images instead of just the one static image. When I looking on Drupal.org, the only slideshow modules were to create slideshows of images that were attached to different nodes - not multiple images attached to one node. Then, I found the &lt;a href="http://drupal.org/project/fancy_slide"&gt;Fancy Slide&lt;/a&gt; module. It's a jQuery Slideshow module with features that include integration with the &lt;a href="http://drupal.org/project/cck"&gt;CCK&lt;/a&gt;, &lt;a href="http://drupal.org/project/imagecache"&gt;ImageCache&lt;/a&gt; and &lt;a href="http://drupal.org/project/nodequeue"&gt;Nodequeue&lt;/a&gt; modules.&amp;lt;!--break--&gt;&lt;/p&gt;
&lt;p&gt;I added an CCK Image field to my Page content type, and set the number of values to 3, then uploaded my images to the Page.&lt;/p&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="The 'About Me' edit page." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/create-a-slideshow-of-multiple-images-using-the-fancy-slide-module/create-a-slideshow-of-multiple-images-using-the-fancy-slide-module.png" alt="The 'About Me' edit page." /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Once the Images were added, I went to the Fancy Slide page&lt;em&gt; (admin/content/fancy-slide)&lt;/em&gt; and created the slideshow.&lt;/p&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="The Fancy Slide admin page." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/create-a-slideshow-of-multiple-images-using-the-fancy-slide-module/create-a-slideshow-of-multiple-images-using-the-fancy-slide-module0.png" alt="The Fancy Slide admin page." /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I added the dimensions of my images, the type of animation, specified the node that contained the images, the slideshow field, delay between slides and transition speed. With the slideshow created, it now needed embedding into the page.&lt;/p&gt;
&lt;p&gt;I added the following code into my About page, as described in the Fancy Slide readme.txt file - the number representing the ID of the slideshow.&lt;/p&gt;
&lt;p&gt;&lt;pre class="brush: php;fontsize: 100; first-line: 1; "&gt;&amp;lt;?php print theme('fancy_slide', 1); ?&amp;gt;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;In my opinion, this adds a nice effect to the About page. I like it because it's easy to set up, and easy to add additional images later on if required.&lt;/p&gt;&lt;!-- google_ad_section_end --&gt;&lt;img src="http://feeds.feedburner.com/~r/oliverdavies/~4/RylZKAQzQ2M" height="1" width="1"/&gt;</description>
     <category domain="http://oliverdavies.co.uk/tag/drupal">Drupal</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal-6">Drupal 6</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal-planet">Drupal Planet</category>
 <category domain="http://oliverdavies.co.uk/tag/fancy-slide">Fancy Slide</category>
 <category domain="http://oliverdavies.co.uk/tag/jquery">jQuery</category>
 <category domain="http://oliverdavies.co.uk/tag/slideshow">Slideshow</category>
 <pubDate>Wed, 26 May 2010 20:42:55 +0000</pubDate>
 <dc:creator>Oliver Davies</dc:creator>
 <guid isPermaLink="false">61 at http://oliverdavies.co.uk</guid>
  <feedburner:origLink>http://oliverdavies.co.uk/2010/05/26/create-a-slideshow-of-multiple-images-using-the-fancy-slide-module</feedburner:origLink></item>
  <item>
    <title>Site Updated</title>
    <link>http://feedproxy.google.com/~r/oliverdavies/~3/1HHM1OexAx8/site-updated</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;I've recently added the &lt;a href="/work/projects"&gt;Projects&lt;/a&gt; and &lt;a href="/work/testimonials"&gt;Testimonials&lt;/a&gt; sections to the site, and updated the &lt;a href="/about"&gt;About Me&lt;/a&gt; page. &lt;/p&gt;&lt;!-- google_ad_section_end --&gt;&lt;img src="http://feeds.feedburner.com/~r/oliverdavies/~4/1HHM1OexAx8" height="1" width="1"/&gt;</description>
     <category domain="http://oliverdavies.co.uk/tag/oliverdaviescouk">oliverdavies.co.uk</category>
 <pubDate>Wed, 26 May 2010 20:01:35 +0000</pubDate>
 <dc:creator>Oliver Davies</dc:creator>
 <guid isPermaLink="false">60 at http://oliverdavies.co.uk</guid>
  <feedburner:origLink>http://oliverdavies.co.uk/2010/05/26/site-updated</feedburner:origLink></item>
  <item>
    <title>Keyword Link Module</title>
    <link>http://feedproxy.google.com/~r/oliverdavies/~3/5j0iUfsqmMw/keyword-link-module</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;Following on from previous Blog posts about &lt;a href="/2010/04/17/automatic-node-references" title="Automatic Node References" class="nodepicker-link"&gt;Automatic Node References&lt;/a&gt; and the &lt;a href="/2010/04/23/node-picker-module" title="Node Picker Module" class="nodepicker-link"&gt;Node Picker Module&lt;/a&gt;, I have now found the &lt;a href="http://drupal.org/project/keyword_link"&gt;Keyword Link&lt;/a&gt; module!&lt;/p&gt;
&lt;p&gt;&lt;img class="imagecache-page imagecache caption" title="Keyword Link list" src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/keyword-link-module/keyword-link-module.png" alt="Keyword Link list" /&gt;&lt;/p&gt;
&lt;p&gt;This module does exactly what I was looking for before, where I can create a keyword and an associated link which gets created automatically. Although it's a development version, I've tested it on my local version of this site without any problems. It's being used now to automatically link the word 'Drupal' to Drupal.org, and to create links to some internal pages like the testimonials page.&lt;/p&gt;
&lt;p&gt;Unfortunately, I was already 90% of the way through developing my own module before finding it.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;!-- google_ad_section_end --&gt;&lt;img src="http://feeds.feedburner.com/~r/oliverdavies/~4/5j0iUfsqmMw" height="1" width="1"/&gt;</description>
     <category domain="http://oliverdavies.co.uk/tag/drupal">Drupal</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal-6">Drupal 6</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal-planet">Drupal Planet</category>
 <category domain="http://oliverdavies.co.uk/tag/keyword-link">Keyword Link</category>
 <pubDate>Sun, 23 May 2010 22:53:17 +0000</pubDate>
 <dc:creator>Oliver Davies</dc:creator>
 <guid isPermaLink="false">58 at http://oliverdavies.co.uk</guid>
  <feedburner:origLink>http://oliverdavies.co.uk/2010/05/23/keyword-link-module</feedburner:origLink></item>
  <item>
    <title>Quickly Create Zen Subthemes Using the Zenophile Module</title>
    <link>http://feedproxy.google.com/~r/oliverdavies/~3/DY3t-UVw2cw/quickly-create-zen-subthemes-using-the-zenophile-module</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;If you use the &lt;a href="http://drupal.org/project/zen"&gt;Zen&lt;/a&gt; theme, then you should also be using the &lt;a href="http://drupal.org/project/zenophile"&gt;Zenophile&lt;/a&gt; module!&lt;/p&gt;
&lt;p&gt;The Zenophile module allows you to very quickly create Zen subthemes from within your web browser, as well as editing options such as the site directory where it should be placed, the layout type (fixed or fluid), page wrapper and sidebar widths, and the placement of the sidebars.&amp;lt;!--break--&gt;&lt;/p&gt;
&lt;p&gt;&lt;img class="imagecache-page imagecache caption" src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/quickly-create-zen-subthemes-using-the-zenophile-module/quickly-create-zen-subthemes-using-the-zenophile-module.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;For more information about the Zenophile module, check out &lt;a href="http://blip.tv/file/2427703"&gt;this video&lt;/a&gt; by &lt;a href="http://elliottrothman.com"&gt;Elliott Rothman&lt;/a&gt;.&lt;/p&gt;&lt;!-- google_ad_section_end --&gt;&lt;img src="http://feeds.feedburner.com/~r/oliverdavies/~4/DY3t-UVw2cw" height="1" width="1"/&gt;</description>
     <category domain="http://oliverdavies.co.uk/tag/drupal">Drupal</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal-planet">Drupal Planet</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal-theming">Drupal Theming</category>
 <category domain="http://oliverdavies.co.uk/taxonomy/term/54">Zen</category>
 <category domain="http://oliverdavies.co.uk/taxonomy/term/55">Zenophile</category>
 <pubDate>Mon, 10 May 2010 15:53:46 +0000</pubDate>
 <dc:creator>Oliver Davies</dc:creator>
 <guid isPermaLink="false">45 at http://oliverdavies.co.uk</guid>
  <feedburner:origLink>http://oliverdavies.co.uk/2010/05/10/quickly-create-zen-subthemes-using-the-zenophile-module</feedburner:origLink></item>
  <item>
    <title>Conditional Email Addresses in a Webform</title>
    <link>http://feedproxy.google.com/~r/oliverdavies/~3/OaaN__FMhio/conditional-email-addresses-in-a-webform</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;Whilst doing some additional work on the &lt;a href="http://costleyandpartners.co.uk"&gt;Costley &amp;amp; Partners&lt;/a&gt; website, I created an advanced 'Contact Us' form using the &lt;a href="http://drupal.org/project/webform"&gt;Webform&lt;/a&gt; module.
However, as well as the additional fields that I'd created, I also wanted a drop-down menu where the user could choose either 'General enquiry' or 'Website feedback', and for the message to be send to the associated email address - the same as the feature is available in Drupal's core Contact module.
&amp;lt;!--break--&gt;&lt;/p&gt;
&lt;h3&gt;Creating the Form&lt;/h3&gt;
&lt;p&gt;I created a new Webform to serve as a simple Contact form, but left the main configuration until after I created the form components. I added 'Name', 'Email', 'Subject' and 'Message' fields, as well as a 'Category' select list. 
Below 'Options', I entered each of my desired options in the following format:
&lt;/p&gt;
&lt;pre&gt;Email address|Visible name&lt;/pre&gt;
&lt;p&gt;&lt;img class="imagecache-page imagecache caption" src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/conditional-email-addresses-in-a-webform/conditional-email-addresses-in-a-webform.png" alt="" /&gt;&lt;/p&gt;
&lt;h3&gt;Configuring the form&lt;/h3&gt;
&lt;p&gt;I went back to the form configuration page and expanded 'Conditional Email Recipients', and selected my Category. Note that the standard 'Email To' field above it needs to be empty. Originally, I made the mistake of leaving addresses in that field which resulted in people being sent emails regardles of which category was selected. I then configured the rest of the form.&lt;/p&gt;
&lt;p&gt;&lt;img class="imagecache-page imagecache caption" src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/conditional-email-addresses-in-a-webform/conditional-email-addresses-in-a-webform0.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Then, when I went to the finished form, the category selection was available.&lt;/p&gt;
&lt;p&gt;&lt;img class="imagecache-page imagecache caption" title="The finished form." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/conditional-email-addresses-in-a-webform/conditional-email-addresses-in-a-webform1.png" alt="The finished form." /&gt;&lt;/p&gt;&lt;!-- google_ad_section_end --&gt;&lt;img src="http://feeds.feedburner.com/~r/oliverdavies/~4/OaaN__FMhio" height="1" width="1"/&gt;</description>
     <category domain="http://oliverdavies.co.uk/tag/conditional-email">Conditional Email</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal">Drupal</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal-planet">Drupal Planet</category>
 <category domain="http://oliverdavies.co.uk/taxonomy/term/62">Webform</category>
 <pubDate>Thu, 06 May 2010 12:12:55 +0000</pubDate>
 <dc:creator>Oliver Davies</dc:creator>
 <guid isPermaLink="false">49 at http://oliverdavies.co.uk</guid>
  <feedburner:origLink>http://oliverdavies.co.uk/2010/05/06/conditional-email-addresses-in-a-webform</feedburner:origLink></item>
  <item>
    <title>Using ImageCache and ImageCrop for my Portfolio</title>
    <link>http://feedproxy.google.com/~r/oliverdavies/~3/0OU5JdrDSTg/using-imagecache-and-imagecrop-for-my-portfolio</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;Whilst working on my own portfolio/testimonial website, I decided to have a portfolio page displaying the name of each site and a thumbnail image. For this Blog post, I'll be using a site called &lt;a href="http://popcornstrips.com"&gt;Popcorn Strips&lt;/a&gt; which I built for a friend earlier this year as an example.&lt;/p&gt;
&lt;p&gt;I created a content type called 'Project' with a CCK ImageField called 'Screenshot'. I created a project called &lt;span class='keyword_link'&gt;&lt;a href="http://popcornstrips.com" target="_blank"&gt;Popcorn Strips&lt;/a&gt;&lt;/span&gt;, used the &lt;a href="https://addons.mozilla.org/addon/1146"&gt;ScreenGrab&lt;/a&gt; add-on for Mozilla Firefox to take a screenshot of the website, and uploaded it to the project node. &lt;/p&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="Screenshot of Popcorn Strips." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/using-imagecache-and-imagecrop-for-my-portfolio/using-imagecache-and-imagecrop-for-my-portfoliopng.png" alt="Screenshot of Popcorn Strips." /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I created a View to display the published projects, and an ImageCache preset to create the thumbnail image by scaling and cropping the image to a size of 200x100 pixels. &lt;/p&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="Using the standard ImageCache 'Scale &amp;amp; Crop' presets." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/using-imagecache-and-imagecrop-for-my-portfolio/using-imagecache-and-imagecrop-for-my-portfolio0.png" alt="Using the standard ImageCache 'Scale &amp;amp; Crop' presets." /&gt;&lt;br /&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;Although, this automatically focused the crop on the centre of the image, whereas I wanted to crop from the top and left of the image - showing the site's logo and header. &lt;/p&gt;
&lt;p&gt;I installed the &lt;a href="http://drupal.org/project/imagecrop"&gt;ImageCrop&lt;/a&gt; module, which add a jQuery crop function to the standard ImageCache presents. I removed the original Scale and Crop action and replaced it with a Scale action with a width of 200px. &lt;/p&gt;
&lt;p&gt;I then added a new 'Javascript crop' action with the following settings:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Width: 200px&lt;/li&gt;
&lt;li&gt;Height: 100px&lt;/li&gt;
&lt;li&gt;xoffset: Left&lt;/li&gt;
&lt;li&gt;yoffset: Top&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="The updated 'Screenshot' ImageCache preset, using the new 'Javascript crop'." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/using-imagecache-and-imagecrop-for-my-portfolio/using-imagecache-and-imagecrop-for-my-portfolio1.png" alt="The updated 'Screenshot' ImageCache preset, using the new 'Javascript crop'." /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Using the newly-updated ImageCache preset, the thumbnail image displays perfectly!&lt;/p&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="The finished image." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/using-imagecache-and-imagecrop-for-my-portfolio/using-imagecache-and-imagecrop-for-my-portfolio2.png" alt="The finished image." /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;!-- google_ad_section_end --&gt;&lt;img src="http://feeds.feedburner.com/~r/oliverdavies/~4/0OU5JdrDSTg" height="1" width="1"/&gt;</description>
     <category domain="http://oliverdavies.co.uk/tag/cck">CCK</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal">Drupal</category>
 <category domain="http://oliverdavies.co.uk/tag/imagecache">ImageCache</category>
 <category domain="http://oliverdavies.co.uk/tag/imagecrop">ImageCrop</category>
 <category domain="http://oliverdavies.co.uk/tag/imagefield">ImageField</category>
 <category domain="http://oliverdavies.co.uk/tag/jquery">jQuery</category>
 <pubDate>Wed, 28 Apr 2010 18:52:35 +0000</pubDate>
 <dc:creator>Oliver Davies</dc:creator>
 <guid isPermaLink="false">47 at http://oliverdavies.co.uk</guid>
  <feedburner:origLink>http://oliverdavies.co.uk/2010/04/28/using-imagecache-and-imagecrop-for-my-portfolio</feedburner:origLink></item>
  <item>
    <title>3 Golden Rules to Keeping Your Data - Backup... Backup... Backup!</title>
    <link>http://feedproxy.google.com/~r/oliverdavies/~3/KaCou0GYveI/3-golden-rules-to-keeping-your-data-backup-backup-backup</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;Last night, I decided to update my live Drupal 6 multi-site setup. My development version is continually running the latest version of the Drupal core code and modules, but my live setup was slightly outdated. I'd also re-organised my 'sites' structure slightly on my development setup, and found several modules on the live server that I wasn't using. So, I decided to remove everything from the live server and replace it with the shiny up-to-date version from my development setup.&lt;br /&gt;&lt;br /&gt;I'll be one of the first to admit that I don't always 100% backup my code and databases everytime I do an update in development, but seeing I was altering live sites (including sites that I'd built for friends as personal projects) I opened Terminal and created a ZIP archive of my entire setup (which took a while) and also logged into phpMyAdmin and exported a copy of my databases. I placed these in a folder called 'Backups' on my hard drive and renamed both files to yesterday's date.&lt;br /&gt;&lt;br /&gt;I'm glad that I did!&lt;/p&gt;
&lt;p&gt;&lt;img class="imagecache-large imagecache" src="http://oliverdavies.co.uk/sites/default/files/imagecache/large/images/blogs/3-golden-rules-to-keeping-your-data-backup-backup-backup/3-golden-rules-to-keeping-your-data-backup-backup-backuppng.png|sites/default/files/images/blogs/3-golden-rules-to-keeping-your-data-backup-backup-backup/3-golden-rules-to-keeping-your-data-backup-backup-backuppng.png" alt="" /&gt;&lt;br /&gt;&lt;span class="caption"&gt;Drupal's update.php file.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;To begin with, I couldn't log into any of my sites, which I realised quickly was because I'd copied over each settings.php file from development, and that these weren't attempting to connect to the live databases. Having forgotten some of the passwords for some of my databases, I extracted the settings.php file for each site and uploaded it back to the live server. I also realised that one of my sites was in a different location on my development setup and hadn't been uploaded, so I moved it into the appropriate directory (where it should have been in the first place) and uploaded it. I then found that the new theme for this site that I've been working on was missing! Again, I extracted it from my backup archive and uploaded it.&lt;br /&gt;&lt;br /&gt;The moral of the story is &lt;strong&gt;always backup code and databases when updating&lt;/strong&gt;! Hopefully the update process will be a bit easier and quicker in Drupal 7. From now on, I will make sure that I take a copy of my remote code and databases, maybe once a month, just in case! Whilst I didn't have any major problems this time, it could have been much worse!&lt;/p&gt;&lt;!-- google_ad_section_end --&gt;&lt;img src="http://feeds.feedburner.com/~r/oliverdavies/~4/KaCou0GYveI" height="1" width="1"/&gt;</description>
     <category domain="http://oliverdavies.co.uk/tag/backup">Backup</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal">Drupal</category>
 <category domain="http://oliverdavies.co.uk/tag/oliverdaviescouk">oliverdavies.co.uk</category>
 <pubDate>Wed, 28 Apr 2010 09:18:16 +0000</pubDate>
 <dc:creator>Oliver Davies</dc:creator>
 <guid isPermaLink="false">46 at http://oliverdavies.co.uk</guid>
  <feedburner:origLink>http://oliverdavies.co.uk/2010/04/28/3-golden-rules-to-keeping-your-data-backup-backup-backup</feedburner:origLink></item>
  <item>
    <title>Node Picker Module</title>
    <link>http://feedproxy.google.com/~r/oliverdavies/~3/Cdn9T3w37Uo/node-picker-module</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;Since my last post about &lt;a title="Automatic Node References" href="/2010/04/17/automatic-node-references"&gt;&lt;span class="nodepicker-link"&gt;Automatic Node References&lt;/span&gt;&lt;/a&gt;, I've found and started using the &lt;a href="http://drupal.org/project/nodepicker"&gt;Node Picker&lt;/a&gt; module. &lt;/p&gt;
&lt;p&gt;It doesn't give me the exact features I was looking for, but it's a step in the right direction. It adds a button onto the &lt;a href="http://drupal.org/project/wysiwyg"&gt;WYSIWYG&lt;/a&gt; editor installed on my site (in this case, &lt;a href="http://www.google.co.uk/url?sa=t&amp;amp;source=web&amp;amp;ct=res&amp;amp;cd=1&amp;amp;ved=0CAkQFjAA&amp;amp;url=http%3A%2F%2Ftinymce.moxiecode.com%2F&amp;amp;ei=pUrRS9GgHon-0gT6jLTYDQ&amp;amp;usg=AFQjCNHQOBXk3ZASFAf_m-FLnqiANkoXFg&amp;amp;sig2=xzNJL733TUMSXa2oB9SXVQ"&gt;TinyMCE&lt;/a&gt;) which gives me a jQuery pop-up box listing all my internal content. There is also a filter option which can be used to filter by node title or content type.&lt;/p&gt;
&lt;p&gt;&lt;img class="imagecache-page imagecache caption" src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/node-picker-module/node-picker-modulepng.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;I'll keep searching for an automatic solution, and will post the results on this site.&lt;/p&gt;&lt;!-- google_ad_section_end --&gt;&lt;img src="http://feeds.feedburner.com/~r/oliverdavies/~4/Cdn9T3w37Uo" height="1" width="1"/&gt;</description>
     <category domain="http://oliverdavies.co.uk/tag/drupal-6">Drupal 6</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal-planet">Drupal Planet</category>
 <category domain="http://oliverdavies.co.uk/tag/node-picker">Node Picker</category>
 <category domain="http://oliverdavies.co.uk/taxonomy/term/53">WYSIWYG</category>
 <pubDate>Fri, 23 Apr 2010 07:28:06 +0000</pubDate>
 <dc:creator>Oliver Davies</dc:creator>
 <guid isPermaLink="false">44 at http://oliverdavies.co.uk</guid>
  <feedburner:origLink>http://oliverdavies.co.uk/2010/04/23/node-picker-module</feedburner:origLink></item>
  <item>
    <title>Automatic Node References</title>
    <link>http://feedproxy.google.com/~r/oliverdavies/~3/MD1cu8xoBoQ/automatic-node-references</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;I was recently doing some more development work on a website that I created for &lt;a href="http://costleyandpartners.co.uk"&gt;Costley &amp;amp; Partners&lt;/a&gt; - a solicitors firm based in Caerphilly, South Wales. Among other things, there is a view showing all &lt;a href="http://costleyandpartners.co.uk/staff"&gt;members of staff&lt;/a&gt;, and a view listing of of the &lt;a href="http://costleyandpartners.co.uk/services"&gt;services provided by the firm&lt;/a&gt;. The staff member pages list the specialist areas of law for each employee (where applicable), and the the services pages also describe the employee that specialises in that area.
&lt;/p&gt;
&lt;p&gt;What I'd like, is have all references to a staff member on a services page link to their page, and all references to a service on a staff member page link to the page where they can get more information about that service. However, instead of the user manually having to add the links themselves, I'd like for it to happen automatically - sort of link how the &lt;a href="http://drupal.org/project/twitter"&gt;Twitter&lt;/a&gt; module automatically links to usernames and hashtags.
 
&lt;/p&gt;
&lt;p&gt;My thoughts are to have a module where you declare the terms, and their associated URLs, and then add a filter to an input module to search for the terms and convert them into links. I've searched through Drupal.org, but can't find anything that adds that functionality. &lt;/p&gt;
&lt;p&gt;
Maybe this will be a good module development project?&lt;/p&gt;&lt;!-- google_ad_section_end --&gt;&lt;img src="http://feeds.feedburner.com/~r/oliverdavies/~4/MD1cu8xoBoQ" height="1" width="1"/&gt;</description>
     <category domain="http://oliverdavies.co.uk/tag/drupal">Drupal</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal-planet">Drupal Planet</category>
 <category domain="http://oliverdavies.co.uk/tag/module-development">Module Development</category>
 <pubDate>Sat, 17 Apr 2010 06:32:12 +0000</pubDate>
 <dc:creator>Oliver Davies</dc:creator>
 <guid isPermaLink="false">42 at http://oliverdavies.co.uk</guid>
  <feedburner:origLink>http://oliverdavies.co.uk/2010/04/17/automatic-node-references</feedburner:origLink></item>
  <item>
    <title>Subscribe via RSS</title>
    <link>http://feedproxy.google.com/~r/oliverdavies/~3/Gh4ua61srYM/subscribe-via-rss</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;For those who aren't aware, you can subscribe to my Blog posts via the &lt;a href="http://feeds.feedburner.com/oliverdavies"&gt;RSS feed&lt;/a&gt;. Updates are also posted on my &lt;a href="http://twitter.com/opdavies"&gt;Twitter&lt;/a&gt; and &lt;a href="http://facebook.com/opdavies"&gt;Facebook&lt;/a&gt; pages when new Blog posts are added.&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;&lt;img src="http://feeds.feedburner.com/~r/oliverdavies/~4/Gh4ua61srYM" height="1" width="1"/&gt;</description>
     <category domain="http://oliverdavies.co.uk/tag/oliverdaviescouk">oliverdavies.co.uk</category>
 <category domain="http://oliverdavies.co.uk/tag/rss">RSS</category>
 <pubDate>Wed, 07 Apr 2010 08:46:34 +0000</pubDate>
 <dc:creator>Oliver Davies</dc:creator>
 <guid isPermaLink="false">38 at http://oliverdavies.co.uk</guid>
  <feedburner:origLink>http://oliverdavies.co.uk/2010/04/07/subscribe-via-rss</feedburner:origLink></item>
  <item>
    <title>Styling Drupal 6's Taxonomy Lists with PHP, CSS and jQuery</title>
    <link>http://feedproxy.google.com/~r/oliverdavies/~3/GZQBsbVtOsQ/styling-drupal-6s-taxonomy-lists-with-php-css-and-jquery</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;Whilst developing this, and other Drupal websites for clients, I decided
 that I wanted to categorise content using the taxonomy system. However,
 I wasn't happy with the way that Drupal displayed the terms lists by 
default, and I started comparing this to other websites that I look at.&lt;span class="caption"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="The way that the default Garland theme displays terms." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/styling-drupal-6s-taxonomy-lists-with-php-css-and-jquery/styling-drupal-6039s-taxonomy-lists-with-php-css-and-jqueryjpg.jpg" alt="The way that the default Garland theme displays terms." /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="caption"&gt;&lt;img class="imagecache-page imagecache caption" title="Some other Blogs that I read displaying terms." src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/styling-drupal-6s-taxonomy-lists-with-php-css-and-jquery/styling-drupal-6039s-taxonomy-lists-with-php-css-and-jquery0.jpg" alt="Some other Blogs that I read displaying terms." /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span class="caption"&gt;Part 1 - Editing node.tpl.php&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;To start with, I wanted to have something that described what the 
list was displaying - like in the second example above. I wanted to have
 the words 'Posted in' displayed before the list of terms. To do this, I
 had to edit the node template file that exists within my theme folder 
(sites/all/themes). As I only wanted this change to affect my Blog 
posts, the file that I needed to change is &lt;strong&gt;node-blog.tpl.php&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I scrolled down until I found the piece of code that displayed the terms list:&lt;/p&gt;
&lt;p&gt;
&lt;pre class="brush: css;fontsize: 100; first-line: 1; "&gt;&amp;lt;?php if ($terms): ?&amp;gt;
  &amp;lt;div class="terms terms-inline"&amp;gt;
    &amp;lt;?php print t(' Posted in ') . $terms; ?&amp;gt;
  &amp;lt;/div&amp;gt;
&amp;lt;?php endif; ?&amp;gt;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Adding &lt;strong&gt;print t(' Posted in ')&lt;/strong&gt; will print the words 'Posted in' before outputing the terms.&lt;/p&gt;
&lt;p&gt;&lt;img class="imagecache-page imagecache caption" src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/styling-drupal-6s-taxonomy-lists-with-php-css-and-jquery/styling-drupal-6039s-taxonomy-lists-with-php-css-and-jqueryjpg_1.jpg" alt="" /&gt;&lt;/p&gt;
&lt;h2&gt;Part 2 - Adding the CSS&lt;/h2&gt;
&lt;p&gt;I then added some CSS to re-size the spacing between the items, and then add the commas between them to seperate them:&lt;/p&gt;
&lt;p&gt;
&lt;pre class="brush: css;fontsize: 100; first-line: 1; "&gt;.terms ul.links li {
  margin-right: 1px;
  padding: 0;
}
.terms ul.links li:after {
  content: ",";
}
.terms ul.links li.last:after {
  content: ".";
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;img class="imagecache-page imagecache caption" src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/styling-drupal-6s-taxonomy-lists-with-php-css-and-jquery/styling-drupal-6039s-taxonomy-lists-with-php-css-and-jqueryjpg_2.jpg" alt="" /&gt;&lt;/p&gt;
&lt;h2&gt;Part 3 - Adding the jQuery&lt;/h2&gt;
&lt;p&gt;I created a file named &lt;strong&gt;script.js&lt;/strong&gt; in my theme folder 
with the following code in it. After clearing Drupal's caches, this file
 is automatically recognised by Drupal 6.&lt;/p&gt;
&lt;p&gt;
&lt;pre class="brush: css;fontsize: 100; first-line: 1; "&gt;if(Drupal.jsEnabled) {
  $(document).ready(function() {
    $('.terms ul.links li.last') .prev() .addClass('test');
  })
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;This code finds the last item in the list, uses &lt;strong&gt;.prev&lt;/strong&gt; to select the one before it, and then uses &lt;strong&gt;.addClass&lt;/strong&gt; to assign it the HTML class of "test". We can then use this class to target it with specific CSS.&lt;/p&gt;
&lt;h3&gt;Part 3.1 - Adding the additional CSS&lt;/h3&gt;
&lt;p&gt;Using the new CSS class, I added:&lt;/p&gt;
&lt;p&gt;
&lt;pre class="brush: css;fontsize: 100; first-line: 1; "&gt;.terms ul.links li.test:after {
  content: " and";
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;img class="imagecache-page imagecache caption" src="http://oliverdavies.co.uk/sites/default/files/imagecache/page/images/blogs/styling-drupal-6s-taxonomy-lists-with-php-css-and-jquery/styling-drupal-6039s-taxonomy-lists-with-php-css-and-jqueryjpg_3.jpg" alt="" /&gt;&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;In my opinion, this looks a lot better than the default, and looks a 
lot better on Blog websites, or any website which uses Drupal's taxonomy
 system.&lt;/p&gt;
&lt;p&gt;Please feel free to comment! Any feedback would be greatly appreciated!&lt;/p&gt;&lt;!-- google_ad_section_end --&gt;&lt;img src="http://feeds.feedburner.com/~r/oliverdavies/~4/GZQBsbVtOsQ" height="1" width="1"/&gt;</description>
     <category domain="http://oliverdavies.co.uk/tag/css">CSS</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal">Drupal</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal-6">Drupal 6</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal-planet">Drupal Planet</category>
 <category domain="http://oliverdavies.co.uk/tag/drupal-theming">Drupal Theming</category>
 <category domain="http://oliverdavies.co.uk/tag/jquery">jQuery</category>
 <category domain="http://oliverdavies.co.uk/tag/php">PHP</category>
 <category domain="http://oliverdavies.co.uk/tag/tutorials">Tutorials</category>
 <pubDate>Mon, 05 Apr 2010 18:22:56 +0000</pubDate>
 <dc:creator>Oliver Davies</dc:creator>
 <guid isPermaLink="false">43 at http://oliverdavies.co.uk</guid>
  <feedburner:origLink>http://oliverdavies.co.uk/2010/04/05/styling-drupal-6s-taxonomy-lists-with-php-css-and-jquery</feedburner:origLink></item>
  <item>
    <title>Change of Plan</title>
    <link>http://feedproxy.google.com/~r/oliverdavies/~3/tZP76gqu8_4/change-of-plan</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;Unfortunately, I haven't had time to finish my next Blog post, but I'll post when I'm back from holiday!&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;&lt;img src="http://feeds.feedburner.com/~r/oliverdavies/~4/tZP76gqu8_4" height="1" width="1"/&gt;</description>
     <category domain="http://oliverdavies.co.uk/tag/general">General</category>
 <pubDate>Sat, 20 Mar 2010 18:00:33 +0000</pubDate>
 <dc:creator>Oliver Davies</dc:creator>
 <guid isPermaLink="false">36 at http://oliverdavies.co.uk</guid>
  <feedburner:origLink>http://oliverdavies.co.uk/2010/03/20/change-of-plan</feedburner:origLink></item>
  <item>
    <title>Personal Site Launched!</title>
    <link>http://feedproxy.google.com/~r/oliverdavies/~3/xUEw48GtwRc/personal-site-launched</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;Yes, there is still a LOT of work to do theming this site (it's currently just a slightly-modified &lt;a href="http://drupal.org/project/zen"&gt;Zen&lt;/a&gt; subtheme), but the basic development work is more-or-less done, and I think that I've gone long enough without a personal website!&lt;/p&gt;
&lt;p&gt;As I continue to develop and build this website, I'll be adding Blog posts and tutorials of the technologies and techniques I've used, as well as reviews of contributed modules and other things that I've used.&lt;/p&gt;
&lt;p&gt;I will also be adding a Portfolio of completed development work which will include write-ups of the development process - similar to the &lt;a href="http://drupal.org/success-stories"&gt;Success Stories&lt;/a&gt; section on Drupal.org.&lt;/p&gt;
&lt;p&gt;The next Blog post/first tutorial will be posted in the next day or so! Please come back again soon, or subscribe to my &lt;a href="http://feeds.feedburner.com/oliverdavies"&gt;RSS feed&lt;/a&gt;.&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;&lt;img src="http://feeds.feedburner.com/~r/oliverdavies/~4/xUEw48GtwRc" height="1" width="1"/&gt;</description>
     <category domain="http://oliverdavies.co.uk/tag/oliverdaviescouk">oliverdavies.co.uk</category>
 <category domain="http://oliverdavies.co.uk/tag/personal">Personal</category>
 <category domain="http://oliverdavies.co.uk/tag/site-launch">Site Launch</category>
 <pubDate>Fri, 19 Mar 2010 08:30:37 +0000</pubDate>
 <dc:creator>Oliver Davies</dc:creator>
 <guid isPermaLink="false">35 at http://oliverdavies.co.uk</guid>
  <feedburner:origLink>http://oliverdavies.co.uk/2010/03/19/personal-site-launched</feedburner:origLink></item>
  </channel>
</rss>
