pricecharts

track prices of consumer electronics
Log | Files | Refs | README

commit 7eedc493d8dacf77abb021bbf614cb59eef1d817
parent badf6b9422d08e0471463d97bab0b32087eff597
Author: Kyle Milz <kyle@getaddrinfo.net>
Date:   Sat,  4 Apr 2015 15:36:19 -0600

gen_html: put total products beside logos on links pages

Diffstat:
Mgen_html | 29++++++++++++++++++++---------
Mtt/link_list.tt | 8++++----
2 files changed, 24 insertions(+), 13 deletions(-)

diff --git a/gen_html b/gen_html @@ -35,11 +35,13 @@ my $template = Template->new($config) # manufacturers/* # my $sql = "select distinct lower(manufacturer) from products"; -my $manufacturers = $dbh->selectcol_arrayref($sql); +my $manufacturers = $dbh->selectall_arrayref($sql); my ($num_manuf, $manufacturer_indexed) = (scalar @$manufacturers, 0); print "info: gen manufacturers/ " if ($args{v}); -for my $manufacturer (@$manufacturers) { +for (@$manufacturers) { + my ($manufacturer) = @$_; + # merge manufacturers that are spelled the same except for casing $sql = "select manufacturer from products where lower(manufacturer) = ?"; my ($manufacturer_cased) = $dbh->selectrow_array($sql, undef, $manufacturer); @@ -59,6 +61,7 @@ for my $manufacturer (@$manufacturers) { || die "template: " . $template->error() . "\n"; $manufacturer_indexed += @$products; + $_->[1] = scalar @$products; } print "$num_manuf pages, $manufacturer_indexed indexed\n" if ($args{v}); @@ -67,7 +70,9 @@ print "$num_manuf pages, $manufacturer_indexed indexed\n" if ($args{v}); # print "info: gen manufacturers.html\n" if ($args{v}); -my $vars = { name => "Manufacturers", num => $num_manuf, links => $manufacturers }; +# sort by total number of products +my @manuf_sorted = sort {$b->[1] <=> $a->[1]} @$manufacturers; +my $vars = { name => "Manufacturers", num => $num_manuf, links => \@manuf_sorted }; $template->process("link_list.tt", $vars, "manufacturers.html") || die "template: " . $template->error() . "\n"; @@ -75,11 +80,12 @@ $template->process("link_list.tt", $vars, "manufacturers.html") # retailers/* # $sql = "select distinct retailer from prices"; -my $retailers = $dbh->selectcol_arrayref($sql); +my $retailers = $dbh->selectall_arrayref($sql); my ($num_retailers, $retailer_indexed) = (scalar @$retailers, 0); print "info: gen retailers/ " if ($args{v}); -for my $retailer (@$retailers) { +for (@$retailers) { + my ($retailer) = @$_; my $retailer_lc = lc($retailer); # must have at least one price @@ -95,6 +101,7 @@ for my $retailer (@$retailers) { || die "template: " . $template->error() . "\n"; $retailer_indexed += @$products; + $_->[1] = scalar @$products; } print "$num_retailers pages, $retailer_indexed indexed\n" if ($args{v}); @@ -103,7 +110,8 @@ print "$num_retailers pages, $retailer_indexed indexed\n" if ($args{v}); # print "info: gen retailers.html\n" if ($args{v}); -$vars = { name => "Retailers", num => $num_retailers, links => $retailers }; +my @retailers_sorted = sort {$b->[1] <=> $a->[1]} @$retailers; +$vars = { name => "Retailers", num => $num_retailers, links => \@retailers_sorted }; $template->process("link_list.tt", $vars, "retailers.html") || die "template: " . $template->error() . "\n"; @@ -111,11 +119,12 @@ $template->process("link_list.tt", $vars, "retailers.html") # product_types/* # $sql = "select distinct type from products"; -my $product_types = $dbh->selectcol_arrayref($sql); +my $product_types = $dbh->selectall_arrayref($sql); my ($num_types, $type_indexed) = (scalar @$product_types, 0); print "info: gen product_types/ " if ($args{v}); -for my $type (@$product_types) { +for (@$product_types) { + my ($type) = @$_; my $type_lc = lc($type); $sql = "select manufacturer, part_num from products where type = ?"; @@ -130,6 +139,7 @@ for my $type (@$product_types) { || die "template: " . $template->error() . "\n"; $type_indexed += @$products; + $_->[1] = scalar @$products; } print "$num_types pages, $type_indexed indexed\n" if ($args{v}); @@ -138,7 +148,8 @@ print "$num_types pages, $type_indexed indexed\n" if ($args{v}); # print "info: gen product_types.html\n" if ($args{v}); -$vars = { name => "Product_Types", num => $num_types, links => $product_types }; +my @types_sorted = sort {$b->[1] <=> $a->[1]} @$product_types; +$vars = { name => "Product_Types", num => $num_types, links => \@types_sorted }; $template->process("link_list.tt", $vars, "product_types.html") || die "template: " . $template->error() . "\n"; diff --git a/tt/link_list.tt b/tt/link_list.tt @@ -10,13 +10,13 @@ [% FOREACH link IN links %] [% PERL %] # all url references are lower case - my $link_lc = lc $stash->get("link"); + my $link_lc = lc $stash->get("link.0"); $stash->set("link_lc", $link_lc); [% END %] <li><a href="/[% dir_prefix %]/[% link_lc %].html"> - <img alt="[% link %]" class="[% dir_prefix %]" - src="/logo/[% link_lc %].svg" /> - </a> + <img alt="[% link.0 %]" class="[% dir_prefix %]" + src="/logo/[% link_lc %].svg" /></a> + ([% link.1 %] products) [% END %] </ul> </div>