Browse Source

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

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Works as described, fixes long existing bug.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
3.18.x
Tomás Cohen Arazi 8 years ago
parent
commit
5a82616ab7
  1. 37
      opac/maintenance.pl

37
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;
Loading…
Cancel
Save