[Jifty-commit] r3339 - jifty/trunk/lib/Jifty/View/Declare

jifty-commit at lists.jifty.org jifty-commit at lists.jifty.org
Sun Jun 3 19:28:43 EDT 2007


Author: clkao
Date: Sun Jun  3 19:28:43 2007
New Revision: 3339

Modified:
   jifty/trunk/lib/Jifty/View/Declare/Helpers.pm
   jifty/trunk/lib/Jifty/View/Declare/Page.pm

Log:
Fix title handling.

Modified: jifty/trunk/lib/Jifty/View/Declare/Helpers.pm
==============================================================================
--- jifty/trunk/lib/Jifty/View/Declare/Helpers.pm	(original)
+++ jifty/trunk/lib/Jifty/View/Declare/Helpers.pm	Sun Jun  3 19:28:43 2007
@@ -315,31 +315,16 @@
 	    $page->render_footer;
         } else {
 	    $page->done_header(1);
-	    $page->render_page;
+	    $page->render_page->();
         }
     }
     else {
-	$page->render_header;
 	$page->render_body( sub { $page->render_page->() });
 	$page->render_footer;
     }
 }
 
 
-=head2 render_header $title
-
-Renders an HTML "doctype", <head> and the first part of a page body. This bit isn't terribly well thought out and we're not happy with it.
-
-=cut
-
-sub render_header { 
-    my $title = shift || '';
-    $title =~ s/<.*?>//g;    # remove html
-    HTML::Entities::decode_entities($title);
-    with( title => $title ), show('header');
-}               
-                    
-
 
 
 1;

Modified: jifty/trunk/lib/Jifty/View/Declare/Page.pm
==============================================================================
--- jifty/trunk/lib/Jifty/View/Declare/Page.pm	(original)
+++ jifty/trunk/lib/Jifty/View/Declare/Page.pm	Sun Jun  3 19:28:43 2007
@@ -32,6 +32,12 @@
     return $self;
 }
 
+=head2 render_header $title
+
+Renders an HTML "doctype", <head> and the first part of a page body. This bit isn't terribly well thought out and we're not happy with it.
+
+=cut
+
 sub render_header {
     my $self = shift;
     return if $self->done_header;
@@ -40,7 +46,8 @@
     outs_raw(
         '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'
       . '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">' );
-    Jifty::View::Declare::Helpers::render_header($self->_title || Jifty->config->framework('ApplicationName'));
+
+    $self->_render_header($self->_title || Jifty->config->framework('ApplicationName'));
 
     $self->done_header(Template::Declare->buffer->data);
     Template::Declare->end_buffer_frame;
@@ -65,7 +72,7 @@
             attr { id is 'content' };
             div {
                 {
-                    no warnings qw( uninitialized redefine once );
+                    no warnings qw( redefine once );
 
                     local *is::title = $self->mk_title_handler();
                     $self->render_pre_content_hook();
@@ -83,18 +90,28 @@
 }
 
 sub mk_title_handler {
-    my $self = shift; shift;
-    for (@_) {
-        if ( ref($_) eq 'CODE' ) {
-            Template::Declare->new_buffer_frame;
-            $_->();
-            $self->_title( $self->_title . Template::Declare->buffer->data );
-            Template::Declare->end_buffer_frame;
-        } else {
-            $self->_title( $self->_title . Jifty->web->escape($_) );
+    my $self = shift;
+    return sub {
+        shift;
+        for (@_) {
+	    no warnings qw( uninitialized );
+            if ( ref($_) eq 'CODE' ) {
+                Template::Declare->new_buffer_frame;
+                $_->();
+                $self->_title(
+                    $self->_title . Template::Declare->buffer->data );
+                Template::Declare->end_buffer_frame;
+            } else {
+                $self->_title( $self->_title . Jifty->web->escape($_) );
+            }
         }
-    }
-    $self->render_header;
+        $self->render_header;
+	$self->render_title();
+    };
+}
+
+sub render_title {
+    my $self = shift;
     my $oldt = get('title');
     set( title => $self->_title );
     show 'heading_in_wrapper';
@@ -136,5 +153,12 @@
     }
 }
 
+sub _render_header { 
+    my $self = shift;
+    my $title = shift || '';
+    $title =~ s/<.*?>//g;    # remove html
+    HTML::Entities::decode_entities($title);
+    with( title => $title ), show('header');
+}
 
 1;


More information about the Jifty-commit mailing list