Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 0e5e3501

Von Sven Schöling vor etwa 7 Jahren hinzugefügt

  • ID 0e5e350124f7eec8f67109fe4777bc2dae6c0ea6
  • Vorgänger 033c2bbc
  • Nachfolger 5a55ac86

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.

Unterschiede anzeigen:

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