| 1 | #!/usr/bin/perl -w |
|---|
| 2 | |
|---|
| 3 | use strict; |
|---|
| 4 | |
|---|
| 5 | # establish blog id for cases where we process |
|---|
| 6 | # a template from a file... |
|---|
| 7 | my $blog_id = $ENV{MT_BLOG}; |
|---|
| 8 | if (!$blog_id) { |
|---|
| 9 | die "Please specify a MT_BLOG shell parameter."; |
|---|
| 10 | } |
|---|
| 11 | |
|---|
| 12 | use lib 'lib'; |
|---|
| 13 | use MT::Bootstrap; |
|---|
| 14 | use MT; |
|---|
| 15 | use MT::Template::Context; |
|---|
| 16 | use MT::Builder; |
|---|
| 17 | use MT::Util; |
|---|
| 18 | use MT::Template; |
|---|
| 19 | use MT::Entry; |
|---|
| 20 | |
|---|
| 21 | $SIG{__WARN__} = sub {}; |
|---|
| 22 | |
|---|
| 23 | my $mt = MT->new(); |
|---|
| 24 | |
|---|
| 25 | my $template = ''; |
|---|
| 26 | while (<STDIN>) { |
|---|
| 27 | $template .= $_; |
|---|
| 28 | } |
|---|
| 29 | |
|---|
| 30 | if ($template =~ m/<MT_TRANS/) { |
|---|
| 31 | $template = MT->translate_templatized($template); |
|---|
| 32 | } |
|---|
| 33 | |
|---|
| 34 | require MT::Blog; |
|---|
| 35 | my $blog = MT::Blog->load($blog_id); |
|---|
| 36 | |
|---|
| 37 | if (!$blog) { |
|---|
| 38 | print STDERR "failed to load blog $blog_id\n"; |
|---|
| 39 | exit 1; |
|---|
| 40 | } |
|---|
| 41 | |
|---|
| 42 | my $ctx = MT::Template::Context->new; |
|---|
| 43 | my $builder = MT::Builder->new; |
|---|
| 44 | my $tokens = $builder->compile($ctx, $template); |
|---|
| 45 | $ctx->{archive_type} = 'Individual'; |
|---|
| 46 | $ctx->stash('blog',$blog); |
|---|
| 47 | $ctx->stash('blog_id',$blog->id); |
|---|
| 48 | my @lt = localtime; |
|---|
| 49 | my $ts = sprintf("%04d%02d%02d%02d%02d%02d", $lt[5]+1900,$lt[4]+1,$lt[3],$lt[2],$lt[1],$lt[0]); |
|---|
| 50 | $ctx->{current_timestamp} = $ts; |
|---|
| 51 | |
|---|
| 52 | my $out = $builder->build($ctx, $tokens, {}); |
|---|
| 53 | |
|---|
| 54 | warn "Builder error: ".$builder->errstr if $builder->errstr; |
|---|
| 55 | warn "Context error: ".$ctx->errstr if $ctx->errstr; |
|---|
| 56 | |
|---|
| 57 | if ($out =~ m!</head>!) { |
|---|
| 58 | my $site_url = $blog->site_url; |
|---|
| 59 | if ($out !~ m/<base /) { |
|---|
| 60 | $out =~ s!</head>!<base href="$site_url" /></head>!; |
|---|
| 61 | } |
|---|
| 62 | } |
|---|
| 63 | |
|---|
| 64 | print $out if defined $out; |
|---|