商品リスト(カテゴリ)について ver.2

テーブルのレイアウトを変更する場合、デザインを確定し、管理画面で表示の順番などを確定させてから変更するほうが、後々面倒にならないと思います。
かつ、今後変更しないという前提が必要。……でもないか。可変性の高い段組で作成することもできるかも?
 
とりあえず現段階での見た目OKは、
/includes/templates/template_default/common/tpl_tabular_display.phpのline19-line42

<table width="100%" border="0" cellspacing="0" cellpadding="0" id="<?php echo 'cat' . $cPath . 'Table'; ?>" class="tabTable">
<?php
  for($row=0; $row<sizeof($list_box_contents); $row++) {
    $r_params = "";
    $c_params = "";
    if (isset($list_box_contents[$row]['params'])) $r_params .= ' ' . $list_box_contents[$row]['params'];
?>

  <tr <?php echo $r_params; ?>>
<?php
    for($col=0;$col<sizeof($list_box_contents[$row]);$col++) {
      $c_params = "";
      $cell_type = ($row==0) ? 'th' : 'td';
      if (isset($list_box_contents[$row][$col]['params'])) $c_params .= ' ' . $list_box_contents[$row][$col]['params'];
      if (isset($list_box_contents[$row][$col]['align'])) $c_params .= ' ' . $list_box_contents[$row][$col]['align'];
      if ($cell_type=='th') $c_params .= ' scope="' . $cell_scope . '" id="' . $cell_title . 'Cell' . $row . '-' . $col.'"';
      if (isset($list_box_contents[$row][$col]['text'])) {
?>
   <?php echo '<' . $cell_type . $c_params . '>'; ?><?php echo $list_box_contents[$row][$col]['text'] ?><?php echo '</' . $cell_type . '>'  . "\n"; ?>
<?php
      }
    }
?>
  </tr>

<table width="100%" border="0" cellspacing="0" cellpadding="0" id="<?php echo 'cat' . $cPath . 'Table'; ?>" class="tabTable">
<?php
  for($row=1; $row< ( sizeof($list_box_contents) * 2 ); $row++) {
    $r_params = "";
    $c_params = "";
    if (isset($list_box_contents[$row]['params'])) $r_params .= ' ' . $list_box_contents[$row]['params'];
?>
  <tr>
<?php
    for($col=0;$col< sizeof($list_box_contents[$row]);$col++) {
      $c_params = "";
      $cell_type = ($row==0) ? 'th' : 'td';
      if (isset($list_box_contents[$row][$col]['params'])) $c_params .= ' ' . $list_box_contents[$row][$col]['params'] ;
      if (isset($list_box_contents[$row][$col]['align'])) $c_params .= ' ' . $list_box_contents[$row][$col]['align'];
      if ($cell_type=='th') $c_params .= ' scope="' . $cell_scope . '" id="' . $cell_title . 'Cell' . $row . '-' . $col.'"';
      if (isset($list_box_contents[$row][$col]['text'])) {
?>
<?php
        if ( $column_list[$col] == 'PRODUCT_LIST_IMAGE' ) {
          echo '    <td rowspan="2">' . $list_box_contents[$row][$col]['text'] . '</td>' . "\n";
        } elseif ( $column_list[$col] == 'PRODUCT_LIST_NAME' ) {
          echo '    <td>' . $list_box_contents[$row][$col]['text'] . '</td>' . "\n" . '  </tr>' . "\n";
        } else {
          echo '  <tr>' . "\n" . '    <' . $cell_type . $c_params . '>' . $list_box_contents[$row][$col]['text'] . '</' . $cell_type . '>' . "\n" . '  </tr>' . "\n";
        }
?>

こんな感じに。
現段階ではかなり強引なので、これから洗練させていく予定。
 
ちなみに一行目の見出しをカットする場合は、
includes/modules/product_listing.php、line18

$list_box_contents[0] = array('params' => 'class="productListing-rowheading"');

コメントアウト
ただしこのままだと、最初にからのtrタグだけ吐き出されてしまうので、
includes/templates/template_default/common/tpl_tabular_display.php、line21

  for($row=0; $row<sizeof($list_box_contents); $row++) {

  for($row=1; $row<sizeof($list_box_contents); $row++) {

とし、初期値を「1」にすると、きちんと表示される。