Benutze das Perl-Modul "YAML", um $form in einen String umzuwandeln und später daraus...
authorMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 15 Feb 2007 14:41:35 +0000 (14:41 +0000)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 15 Feb 2007 14:41:35 +0000 (14:41 +0000)
SL/InstallationCheck.pm
bin/mozilla/common.pl
doc/INSTALL
doc/UPGRADE

index 84ee43d..5f44cd2 100644 (file)
@@ -12,6 +12,7 @@ use vars qw(@required_modules);
   { "name" => "Archive::Zip", "url" => "http://search.cpan.org/~adamk/" },
   { "name" => "Text::Iconv", "url" => "http://search.cpan.org/~mpiotr/" },
   { "name" => "Time::HiRes", "url" => "http://search.cpan.org/~jhi/" },
+  { "name" => "YAML", "url" => "http://search.cpan.org/~ingy/" },
   );
 
 sub module_available {
index ea34189..6793a1d 100644 (file)
@@ -9,21 +9,20 @@
 #
 ######################################################################
 
-use Data::Dumper;
+use YAML;
 
 use SL::Common;
 
 sub save_form {
   $lxdebug->enter_sub();
 
-  my (@names, @values);
-  foreach my $key (keys(%{$form})) {
-    push(@names, "\$form->{\"$key\"}");
-    push(@values, $form->{$key});
-  }
-  my $dumper = Data::Dumper->new(\@values, \@names);
-  $dumper->Indent(0);
-  my $old_form = $dumper->Dump();
+  my $yaml = new YAML;
+  $yaml->Indent(1);
+  my $old_form = $yaml->dump($form);
+  $old_form =~ s|!|!!|g;
+  $old_form =~ s|\n|!n|g;
+  $old_form =~ s|\r|!r|g;
+  $lxdebug->message(0, "yeah!???\n\n$old_form\n\n\n");
 
   $lxdebug->leave_sub();
 
@@ -36,7 +35,10 @@ sub restore_form {
   my ($old_form, $no_delete) = @_;
 
   map({ delete($form->{$_}); } keys(%{$form})) unless ($no_delete);
-  eval($old_form);
+  $old_form =~ s|!r|\r|g;
+  $old_form =~ s|!n|\n|g;
+  $old_form =~ s|!!|!|g;
+  $form = YAML::Load($old_form);
 
   $lxdebug->leave_sub();
 }
index 2582204..1a0da65 100644 (file)
@@ -31,9 +31,10 @@ sind:
 * Class::Accessor
 * Archive::Zip
 * Text::Iconv
+* YAML
 
 Diese Pakete können bei den unterschiedlichen Distributionen anders heißen. 
-(Debian: apache, postgresql, libdbi-perl, libdbd-pg-perl,  libpgperl, libhtml-template-perl, libclass-accessor-perl, libarchive-zip-perl, libtext-iconv-perl)
+(Debian: apache, postgresql, libdbi-perl, libdbd-pg-perl,  libpgperl, libhtml-template-perl, libclass-accessor-perl, libarchive-zip-perl, libtext-iconv-perl, libyaml-perl)
 (Fedora: httpd, postgresql-server, perl-DBI, perl-DBD-Pg) 
 (SuSE: apache2, postgresql-server,  perl-DBI, perl-DBD-Pg)
 
index 095c213..3358ee7 100644 (file)
@@ -13,7 +13,8 @@ aus zwei Teilen: den Dateien (einfaches Entpacken und Kopieren in das
 Installationsverzeichnis genügen) sowie dem Datenbankupgrade.
 
 Bitte beachten Sie auch die Liste der benötigten Perl-Module am Anfang
-der Datei "doc/INSTALL".
+der Datei "doc/INSTALL". Besonders nach einem Upgrade auf 2.4.2 muss
+sichergestellt werden, dass das Modul "YAML" installiert ist.
 
 Das Datenbankupgrade wird automatisch gestartet, wenn sich der erste
 Benutzer nach dem Upgrade der Dateien an Lx-Office anmeldet.