- #Framework importing and reports
- my $lang;
- my %hashlevel;
-
- # sort by filename -> prepend with numbers to specify order of insertion.
- my @fnames = sort {
- my @aa = split /\/|\\/, ($a);
- my @bb = split /\/|\\/, ($b);
- $aa[-1] cmp $bb[-1]
- } $query->param('framework');
- my $request =
- $dbh->prepare(
- "SELECT value FROM systempreferences WHERE variable='FrameworksLoaded'"
- );
- $request->execute;
- my ($systempreference) = $request->fetchrow;
- $systempreference = '' unless defined $systempreference; # avoid warning
- foreach my $file (@fnames) {
-
- # warn $file;
- undef $/;
- my $error;
- if ( $info{dbms} eq 'mysql' ) {
- my $strcmd = "mysql "
- . ( $info{hostname} ? " -h $info{hostname} " : "" )
- . ( $info{port} ? " -P $info{port} " : "" )
- . ( $info{user} ? " -u $info{user} " : "" )
- . ( $info{password} ? " -p'$info{password}'" : "" )
- . " $info{dbname} ";
- $error = qx($strcmd < $file 2>&1 1>/dev/null); # We want to send stdout to null and return only stderr... -fbcit
- }
- elsif ( $info{dbms} eq 'Pg' ) {
- my $strcmd = "psql "
- . ( $info{hostname} ? " -h $info{hostname} " : "" )
- . ( $info{port} ? " -p $info{port} " : "" )
- . ( $info{user} ? " -U $info{user} " : "" )
-# . ( $info{password} ? " -W $info{password}" : "" )
- . " $info{dbname} ";
- $error = qx($strcmd -f $file 2>&1 1>/dev/null); # ...even more so with psql...
- }
- my @file = split qr(\/|\\), $file;
- $lang = $file[ scalar(@file) - 3 ] unless ($lang);
- my $level = $file[ scalar(@file) - 2 ];
- unless ($error) {
- $systempreference .= "$file[scalar(@file)-1]|"
- unless (
- index( $systempreference, $file[ scalar(@file) - 1 ] ) >=
- 0 );
- }
-
- #Bulding here a hierarchy to display files by level.
- push @{ $hashlevel{$level} },
- { "fwkname" => $file[ scalar(@file) - 1 ], "error" => $error };
- }
-
- #systempreference contains an ending |
- chop $systempreference;
- my @list;
- map { push @list, { "level" => $_, "fwklist" => $hashlevel{$_} } }
- keys %hashlevel;
- my $fwk_language;
- for my $each_language (@$all_languages) {
-
- # warn "CODE".$each_language->{'language_code'};
- # warn "LANG:".$lang;
- if ( $lang eq $each_language->{'language_code'} ) {
- $fwk_language = $each_language->{language_locale_name};
- }
- }
- my $updateflag =
- $dbh->do(
- "UPDATE systempreferences set value=\"$systempreference\" where variable='FrameworksLoaded'"
- );
- unless ( $updateflag == 1 ) {
- my $string =
- "INSERT INTO systempreferences (value, variable, explanation, type) VALUES (\"$systempreference\",'FrameworksLoaded','Frameworks loaded through webinstaller','choice')";
- my $rq = $dbh->prepare($string);
- $rq->execute;
- }