use File::Copy ();
use File::Path ();
use List::MoreUtils qw(uniq);
+use SL::DBUtils qw(selectfirst_hashref_query);
+use SL::Presenter::EscapedText qw(escape);
use version;
use Rose::Object::MakeMethods::Generic (
die $EVAL_ERROR;
}
+ my $auth = $file_name =~ m{/Pg-upgrade2-auth/} ? 'Auth::' : '';
my $package = delete $params{tag};
$package =~ s/[^a-zA-Z0-9_]+/_/g;
- $package = "SL::DBUpgrade2::${package}";
+ $package = "SL::DBUpgrade2::${auth}${package}";
$package->new(%params)->run;
}
croak "File '${src_dir}/$_' does not exist" unless -f "${src_dir}/$_";
}
- return 1 unless my $template_dir = $::instance_conf->reload->get_templates;
+ # can't use Rose or InstanceConf here because defaults might not be fully upgraded yet.
+ my $defaults = selectfirst_hashref_query($::form, $::form->get_standard_dbh, "SELECT * FROM defaults");
+ return 1 unless my $template_dir = $defaults->{template};
$::lxdebug->message(LXDebug::DEBUG1(), "add_print_templates: template_dir $template_dir");
foreach my $src_file (@files) {
$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 = "" . 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__
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