UPDATE:
I just had a thought (rare for me)... Since the layout on the front page works from left to right I could steal the code used in: (only the bit that arranges the articles)
->components->com_content->frontpage->tmpl->default.php
as a template override. This achieves exactly what I was trying to do before but with code made by the Joomla team (which is much better than my code!!!). So this should now work perfectly. I will attach the file that you need to upload as a template override.
Code:
<?php
defined('_JEXEC') or die('Restricted access');
$cparams =& JComponentHelper::getParams('com_media');
?>
<?php if ($this->params->get('show_page_title')) : ?>
<div class="componentheading<?php echo $this->params->get('pageclass_sfx');?>">
<?php echo $this->escape($this->params->get('page_title')); ?>
</div>
<?php endif; ?>
<table class="blog<?php echo $this->params->get('pageclass_sfx'); ?>" cellpadding="0" cellspacing="0">
<?php if ($this->params->def('show_description', 1) || $this->params->def('show_description_image', 1)) :?>
<tr>
<td valign="top">
<?php if ($this->params->get('show_description_image') && $this->section->image) : ?>
<img src="<?php echo $this->baseurl . '/' . $cparams->get('image_path') . '/'. $this->section->image;?>" align="<?php echo $this->section->image_position;?>" hspace="6" alt="" />
<?php endif; ?>
<?php if ($this->params->get('show_description') && $this->section->description) : ?>
<?php echo $this->section->description; ?>
<?php endif; ?>
<br/>
<br/>
</td>
</tr>
<?php endif; ?>
<?php if ($this->params->def('num_leading_articles', 1)) : ?>
<tr>
<td valign="top">
<?php for ($i = $this->pagination->limitstart; $i < ($this->pagination->limitstart + $this->params->get('num_leading_articles')); $i++) : ?>
<?php if ($i >= $this->total) : break; endif; ?>
<div>
<?php
$this->item =& $this->getItem($i, $this->params);
echo $this->loadTemplate('item');
?>
</div>
<?php endfor; ?>
</td>
</tr>
<?php else : $i = $this->pagination->limitstart; endif; ?>
<?php
$startIntroArticles = $this->pagination->limitstart + $this->params->get('num_leading_articles');
$numIntroArticles = $startIntroArticles + $this->params->get('num_intro_articles', 4);
if (($numIntroArticles != $startIntroArticles) && ($i < $this->total)) : ?>
<tr>
<td valign="top">
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<?php
$divider = '';
for ($z = 0; $z < $this->params->def('num_columns', 2); $z ++) :
if ($z > 0) : $divider = " column_separator"; endif; ?>
<?php
$rows = (int) ($this->params->get('num_intro_articles', 4) / $this->params->get('num_columns'));
$cols = ($this->params->get('num_intro_articles', 4) % $this->params->get('num_columns'));
?>
<td valign="top" width="<?php echo intval(100 / $this->params->get('num_columns')) ?>%" class="article_column<?php echo $divider ?>">
<?php
$loop = (($z < $cols)?1:0) + $rows;
for ($y = 0; $y < $loop; $y ++) :
$target = $i + ($y * $this->params->get('num_columns')) + $z;
if ($target < $this->total && $target < ($numIntroArticles)) :
$this->item =& $this->getItem($target, $this->params);
echo $this->loadTemplate('item');
endif;
endfor;
?>
</td>
<?php endfor; ?>
<?php $i = $i + $this->params->get('num_intro_articles') ; ?>
</tr>
</table>
</td>
</tr>
<?php endif; ?>
<?php if ($this->params->def('num_links', 4) && ($i < $this->total)) : ?>
<tr>
<td valign="top">
<div class="blog_more<?php echo $this->params->get('pageclass_sfx') ?>">
<?php
$this->links = array_splice($this->items, $i - $this->pagination->limitstart);
echo $this->loadTemplate('links');
?>
</div>
</td>
</tr>
<?php endif; ?>
<?php if ($this->params->def('show_pagination', 2)) : ?>
<tr>
<td valign="top" align="center">
<?php echo $this->pagination->getPagesLinks(); ?>
<br /><br />
</td>
</tr>
<?php endif; ?>
<?php if ($this->params->def('show_pagination_results', 1)) : ?>
<tr>
<td valign="top" align="center">
<?php echo $this->pagination->getPagesCounter(); ?>
</td>
</tr>
<?php endif; ?>
</table>
[YOUR TEMPLATE]->html->com_content->section->
[YOUR TEMPLATE]->html->com_content->category->
(choose one or both of the above depending on what your needs are)
This works perfectly for me. I hope it works for someone else having trouble as well.
Paul