日付に曜日を出すようにしてみた

MTでテンプレートいじって日付の横に曜日を出すようにしてみました。マニュアルを見ると、

<$MTEntryDate format="%x"(%a)>

とすればよさげなんですが、&#2;とか妙な文字が入ってどうにもうまくいきません。で、さっそくソースを見る羽目に。

問題点はUtil.pmの72行目あたりの

$f{a} = substr $L->[0][$f{w}] || '', 0, 3

というところ。ようするに曜日の文字列の先頭3文字を取ってくるとここでコーディングされているわけです。でもって曜日の文字列は同じファイルの852行目あたりで直接Unicodeで

'jp' => [
[ '&#26085;&#26332;&#26085;', '&#26376;&#26332;&#26085;',
'&#28779;&#26332;&#26085;', '&#26408;&#26332;&#26085;',
'&#27700;&#26332;&#26085;', '&#37329;&#26332;&#26085;',
'&#22303;&#26332;&#26085;'],

とかかれているわけで、これでは最初の3文字はたしかに&#2なりますな・・トホホというわけです。

ちゅうわけで省略形を意味する%aではなく、略さない%Aを使うことしました。
ただ%Aを使うと「日曜日」とかなって気持ち悪いので、Util.pmをextlibにコピーして雛型とし、モジュールを書き換えることに。

まぁ作業といっても、とりあえず「曜日」という言葉をあらわした[
「&#26332;&#26085;」を削除するだけですから簡単です、リビルドしてスッキリ解決、ズバット終了。

とおもったんですが、水曜日と木曜日が逆に表示されるやんけ~ オリジナルの曜日の文字列が水と木逆なってますがな。 というわけで、3番目と4番目の要素を入れ替えて、本当に終了。 以外と苦労しました。 これだけMTは日本に普及してるのに誰もこの機能つかってないんかな? (追記) すでに同様の問題にぶちあたっていて、解決されている方を発見しました。さすがにいないってことはないか(笑)

Listing Trackbacks

日付フォーマット:%a(省略表記)の文字化け

日付に曜日を出すようにしてみたにて 問題点はUtil.pmの72行目あたりの $f{a} = substr $L->[0][$f{w}] || '', 0, 3 との解説を発見〜! $f{a} = substr $L->[0][$f{w}] || '', 0, 8 というわけで、予測に従って取得文字数の変更。 一応解決と思われ。 どこかで弊害でたら...

独白