aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/Reaction/UI/Widget/SiteLayout.pm18
-rw-r--r--share/skin/base/layout/site_layout.tt15
-rw-r--r--share/skin/default/layout/site_layout.tt8
3 files changed, 33 insertions, 8 deletions
diff --git a/lib/Reaction/UI/Widget/SiteLayout.pm b/lib/Reaction/UI/Widget/SiteLayout.pm
index dc9574a..fce46e2 100644
--- a/lib/Reaction/UI/Widget/SiteLayout.pm
+++ b/lib/Reaction/UI/Widget/SiteLayout.pm
@@ -2,16 +2,32 @@ package Reaction::UI::Widget::SiteLayout;
use Reaction::UI::WidgetClass;
use aliased 'Reaction::UI::Widget::Container';
+use MooseX::Types::Moose 'HashRef';
class SiteLayout is Container, which {
+ has 'http_header' => (
+ isa => HashRef, is => 'rw',
+ default => sub { {} }
+ );
+
after fragment widget {
arg static_base => $_{viewport}->static_base_uri;
arg title => $_{viewport}->title;
};
implements fragment meta_info {
- render meta_member => over [keys %{$_{viewport}->meta_info}];
+ my $self = shift;
+ if ( $_{viewport}->meta_info->{'http_header'} ) {
+ $self->http_header( delete $_{viewport}->meta_info->{'http_header'} );
+ render 'meta_http_header' => over [keys %{$self->http_header}];
+ }
+ render 'meta_member' => over [keys %{$_{viewport}->meta_info}];
+ };
+
+ implements fragment meta_http_header {
+ arg 'meta_name' => $_;
+ arg 'meta_value' => shift->http_header->{$_};
};
implements fragment meta_member {
diff --git a/share/skin/base/layout/site_layout.tt b/share/skin/base/layout/site_layout.tt
index 3a0e1c6..332c058 100644
--- a/share/skin/base/layout/site_layout.tt
+++ b/share/skin/base/layout/site_layout.tt
@@ -17,25 +17,30 @@
<title>[% title %]</title>
[% head_meta %]
+[% head_scripts %]
[% head_style %]
+[% rss_links %]
=for layout head_meta
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
[% meta_info %]
+=for layout meta_http_header
+
+<meta http-equiv="[% meta_name %]" content="[% meta_value %]" />[% "\n" %]
+
=for layout meta_member
<meta name="[% meta_name %]" content="[% meta_value %]" />[% "\n" %]
+=for layout head_scripts
+
=for layout head_style
+=for layout rss_links
+
=for layout body
[% inner %]
-=for layout header
-
-<span class="site_layout_title">[% title %]</span>
-
=cut
diff --git a/share/skin/default/layout/site_layout.tt b/share/skin/default/layout/site_layout.tt
index 810960e..7cfcc5d 100644
--- a/share/skin/default/layout/site_layout.tt
+++ b/share/skin/default/layout/site_layout.tt
@@ -2,8 +2,7 @@
=for layout widget
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+[% doctype %]
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
@@ -17,4 +16,9 @@
</html>
+=for layout doctype
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
=cut