Absolutely not tested.
In includes/functions.php find:
$sub_cat_list = "";
Insert below:
$cat_image_list = array();
$i = 1;
foreach ($visible_cat_cache as $subcat_id)
{
if ($i > $num_subs || $i > $config['num_subcats'])
break;
if (!$cat_cache[$subcat_id]['cat_image'] || isset($cat_cache[$subcat_id]['cat_image_url']))
continue;
$cat_image_list[] = $cat_cache[$subcat_id]['cat_image'];
$i++;
}
if (!empty($cat_image_list))
{
$sql = "SELECT image_id, image_media_file, image_thumb_file, cat_id
FROM ".IMAGES_TABLE."
WHERE image_id IN (".implode(",", $cat_image_list).")";
if ($result = $site_db->query($sql))
{
while ($image_row = $site_db->fetch_array($result))
{
if (!get_file_path($image_row['image_thumb_file'], "thumb", $image_row['cat_id'], 0, 0))
{
$cat_cache[$image_row['cat_id']]['cat_image_url'] = ICON_PATH."/".get_file_extension($image_row['image_media_file']).".gif";
}
else
{
$cat_cache[$image_row['cat_id']]['cat_image_url'] = get_file_path($image_row['image_thumb_file'], "thumb", $image_row['cat_id'], 0, 1);
}
}
}
}
Find:
$sub_cat_list .= "<a href=\"".$sub_url."\" class=\"subcat\">".format_text($cat_cache[$subcat_id]['cat_name'], 2)."</a>";
Replace with:
$sub_cat_list .= "<a href=\"".$sub_url."\" class=\"subcat\">";
if (isset($cat_cache[$subcat_id]['cat_image_url']) && $cat_cache[$subcat_id]['cat_image_url'])
$sub_cat_list .= '<img src="' . $cat_cache[$subcat_id]['cat_image_url'] . '" width="20" height="13" alt="" /> ';
$sub_cat_list .= format_text($cat_cache[$subcat_id]['cat_name'], 2);
$sub_cat_list .= "</a>";