| [perl]include('/templates/includes/leftnav_proddir.tmpl', section => 'bestsellers')[/perl] |
 |
 |
 |
 |
[perl]
# column-based layout with order of products zig-zagging down the page from left to right
# re-order the products for iteration over columns
use integer;
$rows = scalar(@products) / $COLUMNS_PER_PAGE;
$rows++ if (scalar(@products)) % $COLUMNS_PER_PAGE;
no integer;
for ($row = 1; $row < $rows; $row++) {
push @left_products, $products[2*($row-1)];
push @right_products, $products[2*$row-1];
}
push @left_products, $products[2*($rows-1)];
push @right_products, $products[2*$rows-1] if ref($products[2*$rows-1]);
@products = (@left_products, @right_products);
$empty_cell = q{};
$interrow_spacer = q{};
$intercolumn_spacer = q{ | };
sub render_product {
my $product = shift;
my $column = shift;
my $row = shift;
my $count = ($row-1)*$COLUMNS_PER_PAGE + $column;
my $product_image = $product->SMALL_IMAGE;
my $product_image_html_imgszie = $product->SMALL_IMAGE_HTML_IMGSIZE;
my $product_namestring = $product->PRODUCT_NAME;
my $product_subheading = $product->SUB_HEADING;
$product_namestring .= ($product_subheading) ? qq{ $product_subheading} : '';
$product_subline = $product->SUBLINE;
my $product_url = $product->url;
my $product_description = $product->SHORT_DESC;
my $showextras = 1;
my $out = qq{
 |
 |
};
if ($product_namestring && $showextras) {
$out .= qq{
 |
 |
$product_namestring |
};
}
if ($product_subline && $showextras) {
$out .= qq{
 |
 |
$product_subline |
};
}
$out .= qq{
 |
 |
$product_description |
};
$out;
}
@TABLE_CELLS = ();
for ($column = 1; $column <= $COLUMNS_PER_PAGE; $column++) {
@COLUMN_CELLS = ();
for( $row = 1; $row <= $rows; $row++ ) {
$product = shift @products;
if (ref($product)) {
push @COLUMN_CELLS, render_product( $product, $column, $row );
} else {
push @COLUMN_CELLS, $empty_cell
}
}
unshift @COLUMN_CELLS, q{} if ($column == $COLUMNS_PER_PAGE);
push @TABLE_CELL, q{}. join( $interrow_spacer, @COLUMN_CELLS ) . q{ | };
}
$OUT .= q{} . join( $intercolumn_spacer, @TABLE_CELL ) . q{ };
[/perl]
|
|