[Koha-patches] [PATCH] Bug 10582: Koha OPAC URL shows Perl error message before web installer was run

Tomas Cohen Arazi tomascohen at gmail.com
Fri Oct 31 17:12:53 CET 2014


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



More information about the Koha-patches mailing list