From: Moritz Bunkus Date: Wed, 29 Aug 2012 14:05:35 +0000 (+0200) Subject: L.truncate: Funktion zum intelligenten Verkürzen eines Strings X-Git-Tag: release-3.0.0beta1~264^2~10 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=46b4927562b9679deec973e1b2d6dbdc7b4e755c;p=kivitendo-erp.git L.truncate: Funktion zum intelligenten Verkürzen eines Strings --- diff --git a/SL/Template/Plugin/L.pm b/SL/Template/Plugin/L.pm index 43ac5d250..8523db9e0 100644 --- a/SL/Template/Plugin/L.pm +++ b/SL/Template/Plugin/L.pm @@ -570,6 +570,18 @@ sub dump { return '
' . Data::Dumper::Dumper(@_) . '
'; } +sub truncate { + my ($self, $text, @slurp) = @_; + my %params = _hashify(@slurp); + + $params{at} ||= 50; + $params{at} = 3 if 3 > $params{at}; + $params{at} -= 3; + + return $text if length($text) < $params{at}; + return substr($text, 0, $params{at}) . '...'; +} + 1; __END__ @@ -918,6 +930,16 @@ the resulting tab will get ignored by C: L.tab('Awesome tab wih much info', '_much_info.html', if => SELF.wants_all) +=item C + +Returns the C<$text> truncated after a certain number of +characters. + +The number of characters to truncate at is determined by the parameter +C which defaults to 50. If the text is longer than C<$params{at}> +then it will be truncated and postfixed with '...'. Otherwise it will +be returned unmodified. + =back =head1 MODULE AUTHORS