Revision 0e5e3501
Von Sven Schöling vor etwa 7 Jahren hinzugefügt
SL/Presenter/Text.pm | ||
---|---|---|
|
||
use strict;
|
||
|
||
use parent qw(Exporter);
|
||
use SL::Presenter::EscapedText qw(escape);
|
||
|
||
use Exporter qw(import);
|
||
our @EXPORT = qw(format_man_days simple_format truncate);
|
||
our @EXPORT_OK = qw(format_man_days simple_format truncate);
|
||
our %EXPORT_TAGS = (ALL => \@EXPORT_OK);
|
||
|
||
use Carp;
|
||
|
||
sub truncate {
|
||
my ($self, $text, %params) = @_;
|
||
my ($text, %params) = @_;
|
||
|
||
return Common::truncate($text, %params);
|
||
escape(Common::truncate($text, %params));
|
||
}
|
||
|
||
sub simple_format {
|
||
my ($self, $text, %params) = @_;
|
||
my ($text, %params) = @_;
|
||
|
||
$text = $::locale->quote_special_chars('HTML', $text || '');
|
||
|
||
... | ... | |
}
|
||
|
||
sub format_man_days {
|
||
my ($self, $value, %params) = @_;
|
||
my ($value, %params) = @_;
|
||
|
||
return '---' if $params{skip_zero} && !$value;
|
||
|
||
return $self->escape($::locale->text('#1 h', $::form->format_amount(\%::myconfig, $value, 2))) if 8.0 > $value;
|
||
return escape($::locale->text('#1 h', $::form->format_amount(\%::myconfig, $value, 2))) if 8.0 > $value;
|
||
|
||
$value /= 8.0;
|
||
my $output = $::locale->text('#1 MD', int($value));
|
||
my $rest = ($value - int($value)) * 8.0;
|
||
$output .= ' ' . $::locale->text('#1 h', $::form->format_amount(\%::myconfig, $rest)) if $rest > 0.0;
|
||
|
||
return $self->escape($output);
|
||
escape($output);
|
||
}
|
||
|
||
1;
|
Auch abrufbar als: Unified diff
Presenter: Sub-Presenter auf Funktional geändert
1. alle Sub-Presenter aus dem SL::Presenter Namespace geschmissen
2. Keine ungefragten @EXPORTs mehr, nur noch @EXPORT_OK
3. Alle Methoden sind auf Funktionen umgeschrieben (kein $self mehr)
4. Die benötigten Methoden von Sub-Presentern müssen jetzt direkt importiert
werden (betrifft vor allem SL::Presenter::EscapedText und SL::Presenter::Tag)
5. Da die Funktionen in Tag/Text/EscapedText recht häufig gebraucht werden,
exportieren die ihre Funktionen stattdessen nach SL::Presenter::Simple, und
die Proxies in SL::Template::Plugin::L und SL::Template::Plugin::P
dispatchen auf diesen Namespace statt auf SL::Presenter.
6. Die Sub-Namespaces sind in SL::Presenter::ALL registriert, und dort liegt
auch der Proxymechanismus um vom Objekt aus zu der Funktion zu dispatchen.
Das ist nur in SL::Template::Plugin::P registriert, nicht mehr in L.
7. Für Funktionen deren exportierter name mit Namespace präfixt war, gibt es
einen Alias angelegt der nicht exportiert wird.