[Koha-cvs] koha/installer install.pl

Henri-Damien LAURENT laurenthdl at alinto.com
Fri Apr 13 18:30:00 CEST 2007


CVSROOT:	/cvsroot/koha
Module name:	koha
Changes by:	Henri-Damien LAURENT <hdl>	07/04/13 16:30:00

Modified files:
	installer      : install.pl 

Log message:
	Automatically adding a new syspref called FrameworksLoaded which is updated via webinstaller.
	It stores and lists loaded frameworks for management.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/installer/install.pl?cvsroot=koha&r1=1.4&r2=1.5

Patches:
Index: install.pl
===================================================================
RCS file: /cvsroot/koha/koha/installer/install.pl,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- install.pl	6 Apr 2007 15:53:18 -0000	1.4
+++ install.pl	13 Apr 2007 16:30:00 -0000	1.5
@@ -215,19 +215,24 @@
     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] <=> $bb[-1] } $query->param('framework')  ;
+    my @fnames = sort { my @aa = split /\/|\\/, ($a); my @bb = split /\/|\\/, ($b); $aa[-1] lt $bb[-1] } $query->param('framework')  ;
+    my $systempreference;
     foreach my $file (@fnames){
 #      warn $file;
       undef $/;
       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} ";
-      my $str = qx($strcmd < $file 2>&1);
+      my $error = qx($strcmd < $file 2>&1);
       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]|";
+      }
       #Bulding here a hierarchy to display files by level.
-      push @{$hashlevel{$level}},{"fwkname"=>$file[scalar(@file)-1],"error"=>$str};
+      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;
@@ -238,6 +243,14 @@
               $fwk_language = $each_language->{language_locale_name};
       }
     }
+    warn "frameworksloaded : $systempreference";
+    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')";
+      warn "$string";
+      my $rq=$dbh->prepare($string);
+      $rq->execute;
+    }
     $template->param("fwklanguage"=>$fwk_language,
                      "list"=>\@list);
     $template->param("$op"=>1);
@@ -270,6 +283,13 @@
     @listdir= grep { !/^\.|CVS/ && -d "$dir/$_"} readdir(MYDIR);
     closedir MYDIR;
     my @levellist;
+    my $request=$dbh->prepare("SELECT value FROM systempreferences WHERE variable='FrameworksLoaded'");
+    $request->execute;
+    my ($frameworksloaded)=$request->fetchrow;
+    my %frameworksloaded;
+    foreach (split(/\|/,$frameworksloaded)){
+      $frameworksloaded{$_}=1;
+    }
 	foreach my $requirelevel (@listdir){
       $dir =C4::Context->config('intranetdir')."/misc/sql-datas/$langchoice/$requirelevel";
       opendir (MYDIR,$dir);
@@ -284,10 +304,15 @@
         $lines=~s/\n|\r/<br \/>/g;
         use utf8;
         utf8::encode($lines) unless (utf8::is_utf8($lines));
-        push @frameworklist,{'fwkname'=>$name, 'fwkfile'=>"$dir/$_",'fwkdescription'=>$lines};
+        push @frameworklist,
+          {'fwkname'=>$name, 
+           'fwkfile'=>"$dir/$_",
+           'fwkdescription'=>$lines,
+           'checked'=>(($frameworksloaded{$_}||($requirelevel=~/(mandatory|requi|oblig|necess)/i))?1:0)
+          };
       } @listname;
-	  my @fwks = sort { $a->{'fwkname'} <=> $b->{'fwkname'} } @frameworklist;
-      $cell{"mandatory"}=($requirelevel=~/(mandatory|requi|oblig|necess)/i);
+      my @fwks = sort { $a->{'fwkname'} lt $b->{'fwkname'} } @frameworklist;
+#       $cell{"mandatory"}=($requirelevel=~/(mandatory|requi|oblig|necess)/i);
       $cell{"frameworks"}=\@fwks;
       $cell{"label"}=ucfirst($requirelevel);
       $cell{"code"}=lc($requirelevel);





More information about the Koha-cvs mailing list