KES777 / mojo

Mojolicious - Perl real-time web framework
http://mojolicio.us
Artistic License 2.0
0 stars 0 forks source link

нельзя использовать варианты для handler'less шаблонов #60

Open KES777 opened 5 years ago

KES777 commented 5 years ago
  my $handler = $options->{handler};
  if (defined(my $variant = $options->{variant})) {
    $variant = "$template+$variant";
    my $handlers = $self->{templates}{$variant} // [];
    $template = $variant
      if @$handlers && !defined $handler || grep { $_ eq $handler } @$handlers;
  }

  return defined $handler ? "$template.$handler" : $template;

Если нет хендлера, то можно получить 'templ' -> 'templ' Но есди задали вариант, то нельзя получить 'templ+my_variant' без хендлера

      if @$handlers && !defined $handler || grep { $_ eq $handler } @$handlers;

Если нет хендлеров, то всё равно работает grep

Похоже нужно переписать его так:

      if !defined $handler || @$handlers &&  grep { $_ eq $handler } @$handlers;
KES777 commented 5 years ago

Это сделано из-за того, что варианты не поддерживают фолбэки

и нужно найти место, где заполняется $self->{ templates }