#!/opt/csw/bin/perl use strict; use warnings; use CGI qw( :standard ); use CGI::Carp qw( fatalsToBrowser ); use OpenGuides; use OpenGuides::Config; use Wiki::Toolkit::Plugin::Locator::Grid; my $config_file = $ENV{OPENGUIDES_CONFIG_FILE} || "../wiki.conf"; my $config = OpenGuides::Config->new( file => $config_file ); my $guide = OpenGuides->new( config => $config ); my $wiki = $guide->wiki; my $formatter = $wiki->formatter; my $q = CGI->new; print $q->header; my $self_url = $q->url( -relative ); print < Randomness Guide to London — Good Beer Guide pubs with no node image

Randomness Guide to LondonGood Beer Guide pubs with no node image

EOHTML my $locale = $q->param( "locale" ); my $dbh = $wiki->store->dbh; my $sql = " SELECT node.name, ml.metadata_value FROM node INNER JOIN metadata as mgbg ON ( node.id=mgbg.node_id AND node.version=mgbg.version AND lower(mgbg.metadata_type) = 'category' AND lower(mgbg.metadata_value) = 'good beer guide' ) INNER JOIN metadata as ml ON ( node.id = ml.node_id AND node.version = ml.version AND lower(ml.metadata_type) = 'locale' ) "; my $sth = $dbh->prepare( $sql ); $sth->execute or die $dbh->errstr; my %data; my %locales; while ( my ( $name, $this_locale ) = $sth->fetchrow_array ) { $locales{$this_locale} = 1; if ( $locale && ( lc( $this_locale ) ne lc( $locale ) ) ) { next; } if ( $data{$name} ) { push @{$data{$name}}, $this_locale; } else { $data{$name} = [ $this_locale ]; } } print_form( keys %locales ); my @pubs = keys %data; @pubs = sort @pubs; my @lacking; foreach my $pub ( @pubs ) { my %data = $wiki->retrieve_node( $pub ); if ( !$data{metadata}{node_image} ) { push @lacking, $pub; } } print "

Total count: " . scalar @lacking . " of " . scalar @pubs . "

\n"; print "