X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=inline;f=SL%2FPresenter%2FText.pm;h=7d56d940be03243c36facae0759dee93a1f50401;hb=e3dfdb7a78f6e0bc8ac1075fedc36f8247c6fd92;hp=539f3804a125f39211c2a49008fd485b59620eed;hpb=0e5e350124f7eec8f67109fe4777bc2dae6c0ea6;p=kivitendo-erp.git diff --git a/SL/Presenter/Text.pm b/SL/Presenter/Text.pm index 539f3804a..7d56d940b 100644 --- a/SL/Presenter/Text.pm +++ b/SL/Presenter/Text.pm @@ -3,13 +3,17 @@ package SL::Presenter::Text; use strict; use SL::Presenter::EscapedText qw(escape); +use SL::HTML::Restrict; +use SL::HTML::Util; use Exporter qw(import); -our @EXPORT_OK = qw(format_man_days simple_format truncate); +our @EXPORT_OK = qw(format_man_days simple_format truncate restricted_html); our %EXPORT_TAGS = (ALL => \@EXPORT_OK); use Carp; +my $html_cleaner; + sub truncate { my ($text, %params) = @_; @@ -43,6 +47,17 @@ sub format_man_days { escape($output); } +sub restricted_html { + my ($value) = @_; + $html_cleaner //= SL::HTML::Restrict->create; + return $html_cleaner->process($value); +} + +sub stripped_html { + my ($value) = @_; + return SL::HTML::Util::strip($value); +} + 1; __END__ @@ -56,8 +71,10 @@ SL::Presenter::Text - Presenter module for assorted text helpers =head1 SYNOPSIS + use SL::Presenter::Text qw(truncate); + my $long_text = "This is very, very long. Need shorter, surely."; - my $truncated = $::request->presenter->truncate($long_text, at => 10); + my $truncated = truncate($long_text, at => 10); # Result: "This is..." =head1 FUNCTIONS @@ -87,6 +104,16 @@ paragraph change: they close the current paragraph tag and start a new one. Single newlines are converted to line breaks. Carriage returns are removed. +=item C + +Returns HTML code stripped from unwanted/unsupported content. This is +done via the module L. + +=item C + +Returns the raw text with all HTML tags and comments stripped. This is +done via L. + =back =head1 BUGS