X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=C4%2FInstaller.pm;h=2add0e81bc1cf1a375af79083464ddf24b973300;hb=9c5e40e4923179bf0b2b630d3e09797dc4c1fdb0;hp=c1f356f19c51b632ec43d0fe97659fdc8fa2478b;hpb=b7b92a4c812570894286bbd2094ff0377c35221f;p=koha.git diff --git a/C4/Installer.pm b/C4/Installer.pm index c1f356f19c..2add0e81bc 100644 --- a/C4/Installer.pm +++ b/C4/Installer.pm @@ -34,11 +34,11 @@ C4::Installer my $installer = C4::Installer->new(); my $all_languages = getAllLanguages(); my $error = $installer->load_db_schema(); - my $list = $installer->sql_file_list('en', 'marc21', { optional => 1, mandatory => 1 }); + my $list; + #fill $list with list of sql files 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 @@ -78,27 +78,6 @@ sub new { return $self; } -=head2 marcflavour_list - - my ($marcflavours) = $installer->marcflavour_list($lang); - -Return a arrayref of the MARC flavour sets available for the -specified language C<$lang>. Returns 'undef' if a directory -for the language does not exist. - -=cut - -sub marcflavour_list { - my $self = shift; - my $lang = shift; - - my $dir = C4::Context->config('intranetdir') . "/installer/data/$self->{dbms}/$lang/marcflavour"; - opendir(MYDIR, $dir) or return; - my @list = grep { !/^\.|CVS/ && -d "$dir/$_" } readdir(MYDIR); - closedir MYDIR; - return \@list; -} - =head2 marc_framework_sql_list my ($defaulted_to_en, $list) = @@ -154,8 +133,8 @@ sub marc_framework_sql_list { my @frameworklist; map { my $name = substr( $_, 0, -4 ); - open FILE, "<:utf8","$dir/$requirelevel/$name.txt"; - my $lines = ; + open my $fh, "<:encoding(UTF-8)", "$dir/$requirelevel/$name.txt"; + my $lines = <$fh>; $lines =~ s/\n|\r/
/g; use utf8; utf8::encode($lines) unless ( utf8::is_utf8($lines) ); @@ -232,8 +211,8 @@ sub sample_data_sql_list { my @frameworklist; map { my $name = substr( $_, 0, -4 ); - open FILE, "<:utf8","$dir/$requirelevel/$name.txt"; - my $lines = ; + open my $fh , "<:encoding(UTF-8)", "$dir/$requirelevel/$name.txt"; + my $lines = <$fh>; $lines =~ s/\n|\r/
/g; use utf8; utf8::encode($lines) unless ( utf8::is_utf8($lines) ); @@ -258,41 +237,6 @@ sub sample_data_sql_list { return ($defaulted_to_en, \@levellist); } -=head2 sql_file_list - - my $list = $installer->sql_file_list($lang, $marcflavour, $subset_wanted); - -Returns an arrayref containing the filepaths of installer SQL scripts -available for laod. The C<$lang> and C<$marcflavour> arguments -specify the desired language and MARC flavour. while C<$subset_wanted> -is a hashref containing possible named parameters 'mandatory' and 'optional'. - -=cut - -sub sql_file_list { - my $self = shift; - my $lang = shift; - my $marcflavour = shift; - my $subset_wanted = shift; - - my ($marc_defaulted_to_en, $marc_sql) = $self->marc_framework_sql_list($lang, $marcflavour); - my ($sample_defaulted_to_en, $sample_sql) = $self->sample_data_sql_list($lang); - - my @sql_list = (); - map { - map { - if ($subset_wanted->{'mandatory'}) { - push @sql_list, $_->{'fwkfile'} if $_->{'mandatory'}; - } - if ($subset_wanted->{'optional'}) { - push @sql_list, $_->{'fwkfile'} unless $_->{'mandatory'}; - } - } @{ $_->{'frameworks'} } - } (@$marc_sql, @$sample_sql); - - return \@sql_list -} - =head2 load_db_schema my $error = $installer->load_db_schema(); @@ -408,10 +352,10 @@ sub load_sql_in_order { 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 @@ -423,38 +367,14 @@ sub set_marcflavour_syspref { # 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();