use strict;
#use warnings; FIXME - Bug 2505
-our $VERSION = 3.00;
+our $VERSION = 3.07.00.049;
use C4::Context;
-use C4::Installer::PerlModules 1.000000;
+use C4::Installer::PerlModules;
=head1 NAME
my ($fwk_language, $error_list) = $installer->load_sql_in_order($all_languages, @$list);
$installer->set_version_syspref();
$installer->set_marcflavour_syspref('MARC21');
- $installer->set_indexing_engine(0);
=head1 DESCRIPTION
my @frameworklist;
map {
my $name = substr( $_, 0, -4 );
- open FILE, "<:utf8","$dir/$requirelevel/$name.txt";
- my $lines = <FILE>;
+ open my $fh, "<:encoding(UTF-8)", "$dir/$requirelevel/$name.txt";
+ my $lines = <$fh>;
$lines =~ s/\n|\r/<br \/>/g;
use utf8;
utf8::encode($lines) unless ( utf8::is_utf8($lines) );
my @frameworklist;
map {
my $name = substr( $_, 0, -4 );
- open FILE, "<:utf8","$dir/$requirelevel/$name.txt";
- my $lines = <FILE>;
+ open my $fh , "<:encoding(UTF-8)", "$dir/$requirelevel/$name.txt";
+ my $lines = <$fh>;
$lines =~ s/\n|\r/<br \/>/g;
use utf8;
utf8::encode($lines) unless ( utf8::is_utf8($lines) );
Set the 'marcflavour' system preference. The incoming
C<$marcflavour> references to a subdirectory of
installer/data/$dbms/$lang/marcflavour, and is
-normalized to MARC21 or UNIMARC.
+normalized to MARC21, UNIMARC or NORMARC.
FIXME: this method assumes that the MARC flavour will be either
-MARC21 or UNIMARC.
+MARC21, UNIMARC or NORMARC.
=cut
# marc_cleaned finds the marcflavour, without the variant.
my $marc_cleaned = 'MARC21';
$marc_cleaned = 'UNIMARC' if $marcflavour =~ /unimarc/i;
+ $marc_cleaned = 'NORMARC' if $marcflavour =~ /normarc/i;
my $request =
$self->{'dbh'}->prepare(
- "INSERT IGNORE INTO `systempreferences` (variable,value,explanation,options,type) VALUES('marcflavour','$marc_cleaned','Define global MARC flavor (MARC21 or UNIMARC) used for character encoding','MARC21|UNIMARC','Choice');"
+ "INSERT IGNORE INTO `systempreferences` (variable,value,explanation,options,type) VALUES('marcflavour','$marc_cleaned','Define global MARC flavor (MARC21, UNIMARC or NORMARC) used for character encoding','MARC21|UNIMARC|NORMARC','Choice');"
);
$request->execute;
}
-=head2 set_indexing_engine
-
- $installer->set_indexing_engine($nozebra);
-
-Sets system preferences related to the indexing
-engine. The C<$nozebra> argument is a boolean;
-if true, turn on NoZebra mode and turn off QueryFuzzy,
-QueryWeightFields, and QueryStemming. If false, turn
-off NoZebra mode (i.e., use the Zebra search engine).
-
-=cut
-
-sub set_indexing_engine {
- my $self = shift;
- my $nozebra = shift;
-
- if ($nozebra) {
- $self->{'dbh'}->do("UPDATE systempreferences SET value=1 WHERE variable='NoZebra'");
- $self->{'dbh'}->do("UPDATE systempreferences SET value=0 WHERE variable in ('QueryFuzzy','QueryWeightFields','QueryStemming')");
- } else {
- $self->{'dbh'}->do("UPDATE systempreferences SET value=0 WHERE variable='NoZebra'");
- }
-
-}
-
=head2 set_version_syspref
$installer->set_version_syspref();
my $datadir = C4::Context->config('intranetdir') . "/installer/data/$self->{dbms}";
my $error;
my $strcmd;
+ my $cmd;
if ( $self->{dbms} eq 'mysql' ) {
- $strcmd = "mysql "
+ $cmd = qx(which mysql 2>/dev/null || whereis mysql 2>/dev/null);
+ chomp $cmd;
+ $cmd = $1 if ($cmd && $cmd =~ /^(.+?)[\r\n]+$/);
+ $cmd = 'mysql' if (!$cmd || !-x $cmd);
+ $strcmd = "$cmd "
. ( $self->{hostname} ? " -h $self->{hostname} " : "" )
. ( $self->{port} ? " -P $self->{port} " : "" )
. ( $self->{user} ? " -u $self->{user} " : "" )
. " $self->{dbname} ";
$error = qx($strcmd --default-character-set=utf8 <$filename 2>&1 1>/dev/null);
} elsif ( $self->{dbms} eq 'Pg' ) {
- $strcmd = "psql "
+ $cmd = qx(which psql 2>/dev/null || whereis psql 2>/dev/null);
+ chomp $cmd;
+ $cmd = $1 if ($cmd && $cmd =~ /^(.+?)[\r\n]+$/);
+ $cmd = 'psql' if (!$cmd || !-x $cmd);
+ $strcmd = "$cmd "
. ( $self->{hostname} ? " -h $self->{hostname} " : "" )
. ( $self->{port} ? " -p $self->{port} " : "" )
. ( $self->{user} ? " -U $self->{user} " : "" )