X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FDB%2FHelper%2FAttrHTML.pm;h=b914e432468f145434ba2214b1862567aa7af028;hb=f769991a4bd3d207cece79bb2cb3fc96cec4602d;hp=b57997272a5ea2d92306a9ababc3b8a4e236f152;hpb=ecfae06f7ab8715b708ac70da907328a7c272b72;p=kivitendo-erp.git diff --git a/SL/DB/Helper/AttrHTML.pm b/SL/DB/Helper/AttrHTML.pm index b57997272..b914e4324 100644 --- a/SL/DB/Helper/AttrHTML.pm +++ b/SL/DB/Helper/AttrHTML.pm @@ -5,30 +5,6 @@ use strict; use parent qw(Exporter); our @EXPORT = qw(attr_html); -use utf8; -use Carp; -use Encode (); -use HTML::Restrict (); -use HTML::Parser; - -my %stripper; - -sub _strip_html { - my ($value) = @_; - - if (!%stripper) { - %stripper = ( parser => HTML::Parser->new ); - - $stripper{parser}->handler(text => sub { $stripper{text} .= $_[1]; }); - } - - $stripper{text} = ''; - $stripper{parser}->parse($value); - $stripper{parser}->eof; - - return delete $stripper{text}; -} - sub attr_html { my ($package, $attributes, %params) = @_; @@ -49,12 +25,13 @@ sub _make_stripped { my ($package, $attribute, %params) = @_; no strict 'refs'; + require SL::HTML::Util; *{ $package . '::' . $attribute . '_as_stripped_html' } = sub { my ($self, $value) = @_; - return $self->$attribute(_strip_html($value)) if @_ > 1; - return _strip_html($self->$attribute); + return $self->$attribute(SL::HTML::Util->strip($value)) if @_ > 1; + return SL::HTML::Util->strip($self->$attribute); }; } @@ -62,8 +39,9 @@ sub _make_restricted { my ($package, $attribute, %params) = @_; no strict 'refs'; + require SL::HTML::Restrict; - my $cleaner = HTML::Restrict->new(rules => $params{allowed_tags}); + my $cleaner = SL::HTML::Restrict->create(%params); *{ $package . '::' . $attribute . '_as_restricted_html' } = sub { my ($self, $value) = @_; @@ -89,7 +67,7 @@ all/restricting to wanted HTML tags in columns # In a Rose model: use SL::DB::Helper::AttrHTML; - __PACKAGE__->attr_as_html( + __PACKAGE__->attr_html( 'content', with_stripped => 0, allowed_tags => { b => [ '/' ], i => [ '/' ] },