Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 1260ff14

Von Moritz Bunkus vor etwa 12 Jahren hinzugefügt

  • ID 1260ff14707708ae886d5054d74e6eeff484b5d3
  • Vorgänger 4bcb4508
  • Nachfolger 3ce13f69

Sorted-Controller-Helper: Spaltentitle nicht direkt in make_sorted() übersetzen

Hintergrund ist der, dass ansonsten die Übersetzung nur einmal
passiert, nämlich dann, wenn das Modul compiliert wird. Für normales
CGI funktioniert das:

- Zuerst wird der Dispatcher geladen und ausgeführt. Der analysiert
zur Laufzeit die GET-/POST-Parameter und lädt erst dann den
erforderlichen Controller mittels "require".
- Sprich Dispatcher hat schon das für den Benutzer notwendige
$::locale-Objekt angelegt, und die Compilezeit des Controller-Moduls
liegt danach.

Für FastCGI würde das kaputt gehen:

- Zuerst wird der Dispatcher geladen und ausgeführt. Der analysiert
zur Laufzeit die GET-/POST-Parameter und lädt erst dann den
erforderlichen Controller mittels "require".
- Nach Beenden des Requests bleibt das Modul aber im Speicher.
- Beim nächsten Request auf denselben Controller wurde dieser bereits
compiliert, und die Titel wären bereits übersetzt -- in der Sprache
des Benutzers, der den Controller seit Start des FastCGI-Prozesses
das erste Mal aufgerufen hat.

Unterschiede anzeigen:

SL/Template/Plugin/L.pm
591 591
  my $by_spec             = $sort_spec->{$by};
592 592
  my %current_sort_params = $controller->get_current_sort_params;
593 593
  my ($image, $new_dir)   = ('', $current_sort_params{dir});
594
  my $title               = delete($params{title}) || $by_spec->{title};
594
  my $title               = delete($params{title}) || $::locale->text($by_spec->{title});
595 595

  
596 596
  if ($current_sort_params{by} eq $by) {
597 597
    my $current_dir = $current_sort_params{dir} ? 'up' : 'down';

Auch abrufbar als: Unified diff