-
-
Notifications
You must be signed in to change notification settings - Fork 235
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This puts all static pages under /about, and lets you add new static pages by placing new HTML in your about template directory.
- Loading branch information
Showing
39 changed files
with
85 additions
and
42 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
package FixMyStreet::App::Controller::About; | ||
use Moose; | ||
use namespace::autoclean; | ||
|
||
BEGIN { extends 'Catalyst::Controller'; } | ||
|
||
=head1 NAME | ||
FixMyStreet::App::Controller::About - Catalyst Controller | ||
=head1 DESCRIPTION | ||
About pages Catalyst Controller. | ||
=head1 METHODS | ||
=cut | ||
|
||
my %found; | ||
|
||
sub page : Path("/about") : Args(1) { | ||
my ( $self, $c, $page ) = @_; | ||
my $template = $c->forward('find_template'); | ||
$c->detach('/page_error_404_not_found', []) unless $template; | ||
$c->stash->{template} = $template; | ||
} | ||
|
||
sub index : Path("/about") : Args(0) { | ||
my ( $self, $c ) = @_; | ||
$c->forward('page', [ 'about' ]); | ||
} | ||
|
||
# We have multiple possibilities to try, and we want to cache where we find it | ||
sub find_template : Private { | ||
my ( $self, $c, $page ) = @_; | ||
|
||
return $found{$page} if !FixMyStreet->config('STAGING_SITE') && exists $found{$page}; | ||
|
||
my $lang_code = $c->stash->{lang_code}; | ||
foreach my $dir_templates (@{$c->stash->{additional_template_paths}}, @{$c->view('Web')->paths}) { | ||
foreach my $dir_static (static_dirs($page, $dir_templates)) { | ||
foreach my $file ("$page-$lang_code.html", "$page.html") { | ||
if (-e "$dir_templates/$dir_static/$file") { | ||
$found{$page} = "$dir_static/$file"; | ||
return $found{$page}; | ||
} | ||
} | ||
} | ||
} | ||
# Cache that the page does not exist, so we don't look next time | ||
$found{$page} = undef; | ||
return $found{$page}; | ||
} | ||
|
||
sub static_dirs { | ||
my ($page, $dir_templates) = @_; | ||
my @v = ("about"); | ||
# If legacy directories exist, check for templates there too; | ||
# The FAQ page used to be in its own directory | ||
push @v, "static" if -d "$dir_templates/static"; | ||
push @v, "faq" if -d "$dir_templates/faq" && $page =~ /faq/; | ||
return @v; | ||
} | ||
|
||
__PACKAGE__->meta->make_immutable; | ||
|
||
1; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.