印刷用表示へ切り替え 通常表示へ切り替え 更新履歴を表示 更新履歴を隠す
MovableType 3月32日ネタのプラグインを書きはじめたが怖くなってやめた

1年に1度くらい Movable Type のジョークプラグインを書いてもいいんじゃないかと思って書き始めたが,途中で怖くなってやめた話。

■ ■ ■

Movable Type のプラグインを書かなくなってしまって久しいが,今年はひとつ4月1日エイプリルフール恒例のジョークプラグイン (2008年2009年2010年2011年) でも投入してみようかと思って書き始めた。

#!/usr/bin/perl

use strict;
use warnings;
use DateTime;
my $dt = DateTime->now;
my $this_day = $dt->day;

my $dt_last_day_of_previous_month = $dt->subtract(days => $this_day);
my $p_day = $dt_last_day_of_previous_month->day;
my $p_month = $dt_last_day_of_previous_month->month;
my $p_year = $dt_last_day_of_previous_month->year;
print  $p_year . "-" . sprintf("%02d", $p_month) . "-" . ($p_day+$this_day) . "\n";

$dt_last_day_of_previous_month という非常に長い名前の変数がカギを握っていて,これは前月の末日を表す DateTime のオブジェクトである。つまり,今日が2013年4月1日だったら,日付の表示を 2013-03-32 にし,今日が2013年1月31日だったら,2012-12-62 にするプログラムである。「これをプラグイン化して,このブログのすべての記事に適用したら面白そうじゃないか。地味なのがさらにいい」などと思って喜んでいた。

Movable Type の日付は,lib/MT/Template/Context.pm にある _hdlr_date がコントロールしている。しかし…

_hdlr_date ルーチンをプラグインでオーバーライドしてやればすべての日付が変わってウハウハだ!

でも,RSS の日付もこれになっちゃう!

(Google Reader はなくなっちゃうけど) 外部の RSS アグリゲータに不正な日付をおくってしまう

変態サイトだと認定されて,バンされるのでは!?

ということが分かり,予想以上に深い傷となりそうなので,怖くなってドキドキしてやめた。

捨て身の姿勢をとれなくなってしまった。守りに入ったな (→自分)。

Posted by n at 2013-04-02 23:34 | Edit | Comments (0) | Trackback(0)
Trackbacks

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


(必須, 表示されます)


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


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


Confirmation Code (必須)


Remember info (R)?