diff options
-rw-r--r-- | lib/Reaction/UI/ViewPort/SiteLayout.pm | 5 | ||||
-rw-r--r-- | lib/Reaction/UI/Widget/SiteLayout.pm | 9 | ||||
-rw-r--r-- | share/skin/default/layout/site_layout.tt | 9 |
3 files changed, 23 insertions, 0 deletions
diff --git a/lib/Reaction/UI/ViewPort/SiteLayout.pm b/lib/Reaction/UI/ViewPort/SiteLayout.pm index 4560dc6..a8ee133 100644 --- a/lib/Reaction/UI/ViewPort/SiteLayout.pm +++ b/lib/Reaction/UI/ViewPort/SiteLayout.pm @@ -9,6 +9,11 @@ class SiteLayout is ViewPort, which { has 'static_base_uri' => (isa => 'Str', is => 'rw', lazy_fail => 1); + has 'meta_info' => ( + is => 'rw', isa => 'HashRef', + required => '1', default => sub { {} } + ); + }; 1; diff --git a/lib/Reaction/UI/Widget/SiteLayout.pm b/lib/Reaction/UI/Widget/SiteLayout.pm index 73406a9..dc9574a 100644 --- a/lib/Reaction/UI/Widget/SiteLayout.pm +++ b/lib/Reaction/UI/Widget/SiteLayout.pm @@ -10,6 +10,15 @@ class SiteLayout is Container, which { arg title => $_{viewport}->title; }; + implements fragment meta_info { + render meta_member => over [keys %{$_{viewport}->meta_info}]; + }; + + implements fragment meta_member { + arg 'meta_name' => $_; + arg 'meta_value' => $_{viewport}->meta_info->{$_}; + }; + }; 1; diff --git a/share/skin/default/layout/site_layout.tt b/share/skin/default/layout/site_layout.tt index 1e7afa1..e9b70ca 100644 --- a/share/skin/default/layout/site_layout.tt +++ b/share/skin/default/layout/site_layout.tt @@ -24,6 +24,15 @@ =for layout head_meta <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> + [% meta_info %] + +=for layout meta_info + +[% call_next %] + +=for layout meta_member + +<meta name="[% meta_name %]" content="[% meta_value %]" />[% "\n" %] =for layout head_style |