From 40f1dd9821c8d1f00eb68729e31545e6b2b6a215 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Fri, 31 Oct 2014 12:50:37 -0300 Subject: [PATCH] Bug 10582: Koha OPAC URL shows Perl error message before web installer was run This patch makes opac/maintenance.pl run smoothly when the DB hasn't been populated yet. It does so, by using C4::Templates::gettemplate instead of C4::Auth::get_user_and_template as the maintenance page doesn't need authentication checks at all, it should happen *before* any attempt to check credentials. To test: - Backup and DROP your database - Point your browser to the OPAC page => FAIL: An error is shown: "Cant's use an undefined value as an ARRAY..." - Apply the patch - Relad the page => SUCCESS: The maintenance page correctly shows. We should now check the rest of the script's behaviour remains untouched: - Reload your backed up DB - Change your DB version number by hand to one version lower, like in: > UPDATE systempreferences SET value="3.1700042" WHERE variable LIKE '%version%'; - Go to the OPAC => SUCCESS: Maintenance page shows as expected - Recover the right version number, like in: > UPDATE systempreferences SET value="3.1700043" WHERE variable LIKE '%version%'; - Set OpacMaintenance to Show on the staff client - Reload the OPAC => SUCCESS: Maintenance page shows as expected - Set OpacMaintenance to 'Don't show' on the staff client - Reload the OPAC => SUCCESS: Normal OPAC shows - Sign off :-D Regards Sponsored-by: Universidad Nacional de Cordoba --- opac/maintenance.pl | 37 +++++++++++++++---------------------- 1 file changed, 15 insertions(+), 22 deletions(-) diff --git a/opac/maintenance.pl b/opac/maintenance.pl index 9c2d9b0..53394cb 100755 --- a/opac/maintenance.pl +++ b/opac/maintenance.pl @@ -15,36 +15,29 @@ # with Koha; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -use strict; -use warnings; - -# FIXME - Generates a warning from C4/Context.pm (uninitilized value). +use Modern::Perl; use CGI; use C4::Auth; use C4::Output; +use C4::Templates qw/gettemplate/; -my $input = new CGI; - -my ( $template, $borrowernumber, $cookie ) = get_template_and_user( - { - template_name => "maintenance.tt", - type => "opac", - query => $input, - authnotrequired => 1, - flagsrequired => { borrow => 1 }, - } -); +my $query = new CGI; +my $template = C4::Templates::gettemplate( 'maintenance.tt', 'opac', $query, 0 ); my $koha_db_version = C4::Context->preference('Version'); my $kohaversion = C4::Context::KOHAVERSION; -$kohaversion =~ s/(.*\..*)\.(.*)\.(.*)/$1$2$3/; - -#warn "db: $koha_db_version, koha: $kohaversion"; - -if ( $kohaversion > $koha_db_version or C4::Context->preference('OpacMaintenance') ) { - output_html_with_http_headers $input, '', $template->output; +# Strip dots from version +$kohaversion =~ s/\.//g if defined $kohaversion; +$koha_db_version =~ s/\.//g if defined $koha_db_version; + +if ( !defined $koha_db_version || # DB not populated + $kohaversion > $koha_db_version || # Update needed + C4::Context->preference('OpacMaintenance') ) { # Maintenance mode enabled + output_html_with_http_headers $query, '', $template->output; } else { - print $input->redirect("/cgi-bin/koha/opac-main.pl"); + print $query->redirect("/cgi-bin/koha/opac-main.pl"); } + +1; \ No newline at end of file -- 1.9.1