Changeset 182
- Timestamp:
- 03/08/07 10:16:57 (1 year ago)
- Files:
-
- trunk/lib/Kwiki/Template (deleted)
- trunk/lib/Kwiki/Template.pm (deleted)
- trunk/lib/Spoon/Template (deleted)
- trunk/src/core/Kwiki/lib/Kwiki/Boot/V1.pm (modified) (1 diff)
- trunk/src/core/Kwiki/lib/Kwiki/Boot/V2.pm (modified) (1 diff)
- trunk/src/core/Kwiki/lib/Kwiki/Template (deleted)
- trunk/src/core/Kwiki/lib/Kwiki/Template.pm (deleted)
- trunk/src/core/Spoon/lib/Spoon/Template (deleted)
- trunk/src/core/Spoon/lib/Spoon/Template.pm (modified) (3 diffs)
- trunk/src/plugins/gugod/Kwiki-Template-TT2-UTF8 (deleted)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/core/Kwiki/lib/Kwiki/Boot/V1.pm
r178 r182 27 27 preferences_class => 'Kwiki::Preferences', 28 28 registry_class => 'Kwiki::Registry', 29 template_class => ' Kwiki::Template::TT2',29 template_class => 'Spoon::Template', 30 30 users_class => 'Kwiki::Users', 31 31 }; trunk/src/core/Kwiki/lib/Kwiki/Boot/V2.pm
r178 r182 28 28 preferences_class => 'Kwiki::Preferences', 29 29 registry_class => 'Kwiki::Registry', 30 template_class => ' Kwiki::Template::TT2',30 template_class => 'Spoon::Template', 31 31 users_class => 'Kwiki::Users', 32 32 }; trunk/src/core/Spoon/lib/Spoon/Template.pm
r87 r182 1 1 package Spoon::Template; 2 use Spoon::Base -Base; 2 use Spoon::Base -Base, 'conf'; 3 # use Spoon::Base 'conf'; 3 4 use Template; 4 5 … … 6 7 const template_path => [ './template' ]; 7 8 field path => []; 8 stub 'render';9 9 field config => -init => '$self->hub->config'; 10 10 field cgi => -init => '$self->hub->cgi'; 11 field template_object => 12 -init => '$self->create_template_object'; 13 conf template_path => [ './template/tt2' ]; 11 14 12 15 sub init { … … 50 53 } @templates; 51 54 } 55 56 sub compile_dir { 57 my $dir = $self->plugin_directory . '/ttc'; 58 mkdir $dir unless -d $dir; 59 return $dir; 60 } 61 62 sub create_template_object { 63 require Template; 64 # XXX Make template caching a configurable option 65 Template->new({ 66 LOAD_TEMPLATES => [ 67 Kwiki::Template::TT2::UTF8::Provider->new({ 68 INCLUDE_PATH => $self->path, 69 })], 70 # INCLUDE_PATH => $self->path, 71 TOLERANT => 0, 72 COMPILE_DIR => $self->compile_dir, 73 COMPILE_EXT => '.ttc', 74 }); 75 } 76 77 sub render { 78 my $template = shift; 79 80 my $output; 81 my $t = $self->template_object; 82 eval { 83 $t->process($template, {@_}, \$output) or die $t->error; 84 }; 85 die "Template Toolkit error:\n$@" if $@; 86 return $output; 87 } 88 89 package Kwiki::Template::TT2::UTF8::Provider; 90 use base 'Template::Provider'; 91 92 sub utf8_upgrade { 93 my @list = map pack('U*', unpack 'U0U*', $_), @_; 94 return wantarray ? @list : $list[0]; 95 } 96 97 sub _load { 98 my ($data, $error) = $self->SUPER::_load(@_); 99 if (defined $data) { 100 $data->{text} = $self->utf8_upgrade($data->{text}); 101 } 102 return ($data, $error); 103 }
