2004年10月14日

エントリー編集画面内にプレビュー表示

大量のエントリーを次々に編集するときなど、プレビューを見ながら作業したいことがある。
そこで以下のようにしてみた。

lib/MT/App/CMS.pm 509行目

$param{can_view_log} = $app->{author}->can_view_log; } elsif ($type eq 'category') {
$param{can_view_log} = $app->{author}->can_view_log; require MT::Builder; require MT::Template::Context; require MT::Blog; my $blog = MT::Blog->load($blog_id); my $ctx = MT::Template::Context->new; $ctx->stash('entry', $obj); $ctx->stash('blog', $blog); my $build = MT::Builder->new; my $preview_code = <<'HTML'; <p><b><$MTEntryTitle$></b></p> <$MTEntryBody$> <$MTEntryMore$> HTML my $tokens = $build->compile($ctx, $preview_code) or return $app->error($app->translate( "Parse error: [_1]", $build->errstr)); defined(my $html = $build->build($ctx, $tokens)) or return $app->error($app->translate( "Build error: [_1]", $build->errstr)); $param{preview_body} = $html; } elsif ($type eq 'category') {
に変更。そして tmpl/cms/edit_entry.tmpl の好きなところに<TMPL_VAR NAME=PREVIEW_BODY>を追加。つまりEntry編集画面のテンプレートにプレビュー画面と同じ変数が渡るようにして、それを表示するようにした。 Posted by jiro at 2004年10月14日 05:54 | トラックバック (0)
コメント
コメントする









名前、アドレスを登録しますか?