印刷用表示へ切り替え 通常表示へ切り替え 更新履歴を表示 更新履歴を隠す
MovableType <$MTEntryModifiedDate$> が正しく動作しない

Movable Type 2.661 では、最終更新日を表示するための <$MTEntryModifiedDate$> タグが個別アーカイブでうまく動かない。The Tweezer's Edge v3: MTEntryModifiedDate tag bug によれば、これはバグで、MT.pm と Context.pm を修正する必要があるとのこと。

■ ■ ■

<$MTEntryModifiedDate$> は MT 2.65 で追加されたタグである。しかし、MT 2.661 でも正しく動作しない。投稿した日付と同じになってしまうのである。

正しく動作させるには、2つのファイルを修正する必要がある。

MTPath/lib/MT.pm を修正する(317行目付近)。赤色部分を追加する。個別アーカイブで正しく動作させるにはこれが必要。

    if ($at eq 'Individual') {
        $ctx->stash('entry', $entry);
        $ctx->{current_timestamp} = $entry->created_on;
        $ctx->{modification_timestamp} = $entry->modified_on;
        $cond{EntryIfAllowComments} = $entry->allow_comments;

MTPath/lib/MT/Template/Context.pm を修正する。_hdlr_entry_mod_date サブルーチンを見つける(782行目付近)。

sub _hdlr_entry_mod_date {
    my $args = $_[1];
    $args->{ts} = $args->{modification_timestamp};
    _hdlr_date($_[0], $args);
}

赤色部分を以下のように書き換える。

sub _hdlr_entry_mod_date {
    my $args = $_[1];
    $args->{ts} = $_[0]->{modification_timestamp};
    _hdlr_date($_[0], $args);
}

以上は MT 2.661 の場合である。MT 3.0D では、MT.pm の修正だけでよいようだ。

Posted by n at 2004-07-29 01:12 | Edit | Comments (0) | Trackback(0)
Trackbacks

  • 「手違いで複数トラックバックを送ってしまった!」という場合でも気にしないでください (重複分はこちらで勝手に削除させていただきます)
  • タイムアウトエラーは,こちらのサーバの処理能力不足が原因です (詳細は トラックバック送信時のエラー をご覧ください)
  • トラックバックする記事には,この記事へのリンクを含めてください(詳細は 迷惑トラックバック対策 をご覧ください)
Comments
Post a comment
  • 電子メールアドレスは必須ですが,表示されません (気になる場合は「メールアドレスのような」文字列でもOKです)
  • URL を入力した場合はリンクが張られます
  • コメント欄内ではタグは使えません
  • コメント欄内に URL を記入した場合は自動的にリンクに変換されます
  • コメント欄内の改行はそのまま改行となります
  • 「Confirmation Code」に表示されている数字を入力してください (迷惑コメント対策です)


(必須, 表示されます)


(必須, 表示されません)


(任意, リンクされます)


Confirmation Code (必須)


Remember info (R)?