SL::DBUpgrade2::Base: Spalte-zu-HTML-Funktion ausgelagert
authorMoritz Bunkus <m.bunkus@linet-services.de>
Wed, 10 Feb 2016 12:29:54 +0000 (13:29 +0100)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Wed, 10 Feb 2016 12:29:54 +0000 (13:29 +0100)
Damit diese Funktion auch aus anderen Datenbankupgradescripten heraus
benutzt werden kann, wurde sie nun in die Basisklasse verschoben.

SL/DBUpgrade2/Base.pm
sql/Pg-upgrade2/requirement_spec_edit_html.pl

index 594fb7f..024282f 100644 (file)
@@ -143,6 +143,26 @@ SQL
   $self->db_query(qq|ALTER TABLE $params{schema}."$params{table}" DROP CONSTRAINT "${_}"|) for map { $_->[0] } @{ $constraints };
 }
 
   $self->db_query(qq|ALTER TABLE $params{schema}."$params{table}" DROP CONSTRAINT "${_}"|) for map { $_->[0] } @{ $constraints };
 }
 
+sub convert_column_to_html {
+  my ($self, $table, $column) = @_;
+
+  my $sth = $self->dbh->prepare(qq|UPDATE $table SET $column = ? WHERE id = ?|) || $self->dberror;
+
+  foreach my $row (selectall_hashref_query($::form, $self->dbh, qq|SELECT id, $column FROM $table WHERE $column IS NOT NULL|)) {
+    next if !$row->{$column} || (($row->{$column} =~ m{^<[a-z]+>}) && ($row->{$column} =~ m{</[a-z]+>$}));
+
+    my $new_content = "" . $::request->presenter->escape($row->{$column});
+    $new_content    =~ s{\r}{}g;
+    $new_content    =~ s{\n\n+}{</p><p>}g;
+    $new_content    =~ s{\n}{<br />}g;
+    $new_content    =  "<p>${new_content}</p>" if $new_content;
+
+    $sth->execute($new_content, $row->{id}) if $new_content ne $row->{$column};
+  }
+
+  $sth->finish;
+}
+
 1;
 __END__
 
 1;
 __END__
 
@@ -317,6 +337,11 @@ C<acc_trans> yet.
 This method is the entry point for the actual upgrade. Each upgrade
 script must provide this method.
 
 This method is the entry point for the actual upgrade. Each upgrade
 script must provide this method.
 
+=item C<convert_column_to_html $table, $column>
+
+Converts the content of a single column from text to HTML suitable for
+use with the ckeditor.
+
 =back
 
 =head1 BUGS
 =back
 
 =head1 BUGS
index c6c7b9f..5075653 100644 (file)
@@ -10,26 +10,6 @@ use SL::DBUtils;
 
 use parent qw(SL::DBUpgrade2::Base);
 
 
 use parent qw(SL::DBUpgrade2::Base);
 
-sub convert_column {
-  my ($self, $table, $column) = @_;
-
-  my $sth = $self->dbh->prepare(qq|UPDATE $table SET $column = ? WHERE id = ?|) || $self->dberror;
-
-  foreach my $row (selectall_hashref_query($::form, $self->dbh, qq|SELECT id, $column FROM $table WHERE $column IS NOT NULL|)) {
-    next if !$row->{$column} || (($row->{$column} =~ m{^<[a-z]+>}) && ($row->{$column} =~ m{</[a-z]+>$}));
-
-    my $new_content = "" . $::request->presenter->escape($row->{$column});
-    $new_content    =~ s{\r}{}g;
-    $new_content    =~ s{\n\n+}{</p><p>}g;
-    $new_content    =~ s{\n}{<br />}g;
-    $new_content    =  "<p>${new_content}</p>" if $new_content;
-
-    $sth->execute($new_content, $row->{id}) if $new_content ne $row->{$column};
-  }
-
-  $sth->finish;
-}
-
 sub run {
   my ($self) = @_;
 
 sub run {
   my ($self) = @_;
 
@@ -41,7 +21,7 @@ sub run {
     map({ ($_ => 'longdescription') } qw(translation orderitems invoice delivery_order_items)),
   );
 
     map({ ($_ => 'longdescription') } qw(translation orderitems invoice delivery_order_items)),
   );
 
-  $self->convert_column($_, $tables{$_}) for keys %tables;
+  $self->convert_column_to_html($_, $tables{$_}) for keys %tables;
 
   return 1;
 }
 
   return 1;
 }