MT4.0の最近のブログ記事

月送りカレンダーがエントリーのない月も表示できるようになったらしい。MT5にしたら乗り換えよう。
まぁ、今のところエントリーのない月って過去にないからうちのblogにはあまり影響ないと思うんだけども。

Movable Type 4 以降のバージョンで、ブログ記事が投稿されていない月のカレンダーも含めて月送りができるカレンダーです。リアルタイムカレンダー(本日の日付の装飾)および土・日・休日表示も盛り込まれています。
このカスタマイズは下記のサイトで紹介されています。これまで月送りカレンダーのカスタマイズは色々行なってきましたが、ブログ記事が投稿されていない月のカレンダーの表示方法が思いつきませんでした。このアイデアは素晴らしいと思います。
ブロッけんJr - Movable Type カレンダー

小粋空間さんに出てたのでメモ。やっぱりモジュール化とかキャッシュの活用あたりがキーワードですかね。

Movable Type 4 の再構築負荷を軽減する方法をまとめました。Movable Type を運用していて、「再構築に時間がかかるな」と思い始めたときに参考になれば幸いです。

MT4を始める前と言わず、テンプレートを変更する時など、運用中にも確認しておいた方が良い項目も含まれていますね。とりあえずTipsということで。

このエントリーは、バージョン3 の時代に投稿した「Movable Type を始める前に設定しておきたい 10 の項目」のMovable Type 4 版です。今でもそちらのエントリーにトラックバックやブックマークが寄せられ、大変嬉しいのですが、バージョン3 から Movable Type の機能が大幅に拡張・改善され、画面構成も変更されており、以前の記事では対応できなくなってしまったので、全ての記述をこのエントリーで見直すことにしました。Movable Type 4 を利用する場合の参考になれば幸いです。

小粋空間さんのblogでカテゴリー別にアーカイブのデザインを切り替える方法が載っていました。

小粋空間: Movable Type 4 でカテゴリー別にブログ記事ページのデザインを切り替える方法(その1)

HatenaBookmarkerプラグイン、MT4対応、というかMT4専用だそうです。
で、MT4.1で動くかなぁと思いつつインストールしてみましたが、うまく動きませんでした・・・orz
単にこのblogの環境が変なのか、はたまたMT4.1だとダメなのか。。。

Movable Typeのブログ記事やウェブページをはてなブックマークにポストするプラグイン。MT4専用。はてなのアカウントが必要です。

年末年始にテンプレートをMT3.x時代のものからMT4.0流のものに入れ替えたのですが、MT4.0のテンプレートではデフォルトでMT3.xとエントリーアーカイブのファイル名が異なるように設定されてしまいます。
具体的には、MT3.xで「xx_yy_zz.html」となっていたファイル名が、MT4.0では「xx-yy-zz.html」となります。
※要するにファイル名の「_」が「-」に入れ替わってしまうということです。

で、それは設定で変えることができて、ブログ記事のアーカイブパスを「yyyy/mm/entry-basename.html」ではなくて、「yyyy/mm/entry_basename.html」の指定にすれば良いのですが、そんなことに気がついたのも後の祭りで新しいブログ記事名に対してトラックバックが付いている状態。
当然以前のブログ記事名のものにもトラックバックとかリンクとかが張られているものがあるはずで、どっちも置いておかないといけない状態になってしまいました。

仕方ないので古いファイル名でアクセスされたら新しいファイル名にリダイレクトするようにhtmlをしこしこ作ることにしました。数えてみたら1158件あってかなりめんどくさい・・・
まぁファイル名に「_」が付いているより、「-」の方がgoogleにちゃんと拾われる傾向にあるらしいので、よしとすることにします。

昨日、古ーいファイルで"_"つきファイルがあるのに気づきました。
MT3.xのどこかのバージョンアップ時に、ファイル名中"_"が"-"になった模様。

MT3.xからMT4.0にアップグレードすると、MT3.xのテンプレートがそのまま引き継がれます。
これを、「テンプレートの初期化」(Template Backup and Refresh)でMT4.0のものに初期化しようとしても、
『カスタムテンプレートと思われるため、?をスキップします』なんて出て初期化されないテンプレートが出てくるのでちょっと工夫をする必要がある。
このblogをMT4.0のテンプレートに切り替える際にやったのは、新規にテンプレートを追加し、中身は空で良いのでデフォルトテンプレートと同じ名前で保存してテンプレートの初期化を行う、というものです。
そうすると /default_templates に保存されているデフォルトテンプレートのファイルからデータがコピーされます。

例えばスタイルシートであれば、インデックステンプレートを作成で新規テンプレートを作成し、テンプレート名を「スタイルシート(メイン)」、出力ファイル名を「styles-site.css」として保存し、テンプレートの初期化を行うわけです。

デフォルトのテンプレート名一覧は下記を参考にしてください。

インデックステンプレート

テンプレート名出力ファイル名
Atomatom.xml
JavaScriptmt.js
RSDrsd.xml
RSSrss.xml
アーカイブインデックスarchives.html
スタイルシート(ベーステーマ)base_theme.css
スタイルシート(メイン)styles.css
メインページindex.html

アーカイブテンプレート

テンプレート名出力ファイル名
ウェブページ-
ブログ記事-
ブログ記事リスト-

モジュールテンプレート

テンプレート名出力ファイル名
ウェブページの詳細-
カテゴリ-
コメント-
コメント入力フォーム-
コメント詳細-
サイドバー (2カラム)-
サイドバー (3カラム)-
タグ-
トラックバック-
フッター-
ブログ記事のメタデータ-
ブログ記事の概要-
ブログ記事の詳細-
ヘッダー-

これ以外にもMT4.0だと以下のシステムテンプレートがありますが、システムテンプレートは新規作成ができません。
MT3.xのテンプレートでも、テンプレート名は違うものの同じ役割のテンプレートがありますので、/default_templates にあるファイルをエディタで開いて貼り付け、保存すれば良いのだと思います。

  • コメントプレビュー

  • コメント完了

  • ダイナミックパブリッシングエラー

  • ポップアップ画像

  • 検索結果

Etentriesでallとかlastn=9999とかの指定をする裏技的なやり方ではなく、正当派で攻めるなら以下のように書けば良いそうです。

MT4より実装されたMTSetVarBlockタグを利用し、「entrycount」と言う変数を宣言します。変数「entrycount」に、ブログ内の公開記事数を出力するMTBlogEntryCountタグを宣言すれば、変数「entrycount」に公開記事数が代入されるという仕組みです。

実装すると以下のようになります。

<MTSetVarBlock name="entrycount"><$MTBlogEntryCount$></MTSetVarBlock><MTEntries lastn="$entrycount">?</MTEntries>

なにげに実用性たっぷりのMTSetVar系タグは今まで無かったのが不思議ですなw

このblogは定期的にタスクが実行されるわけではないのでプラグインを組み込んでみました。
注)MT4専用だそうです。

MT4からエントリーのプレビューにテンプレートのデザインが適用されるようになった。「確認」ボタンをクリックすると一時的にプレビュー用のファイルを構築した後管理画面内の iframeで表示させるようになっている。 一時ファイルはエントリーを「保存」した際に削除される。
タスクを定期的に実行するように設定されている環境では、remove_temporary_files (Core.pm) というルーチンが定期的に実行されて、一時ファイルは削除される(のだと思う)。
ということは「タスクが定期的に実行されない環境」で、且つ「プレビュー時にボタンクリックで遷移しないでウィンドウを閉じてしまった場合(あるいはバックボタンをクリックしたり他のページへ移動してしまった場合とか、極端な話ブラウザがクラッシュしたとか等)」は、一時ファイルは残るということ。実際にそこそこのボリュームのサイト制作後にディレクトリの中を見ると、結構残ってる。使い方が悪い? って言えばそうなのかもしれないけど「一時ファイル残るかもしれないから気をつけろよ」ってのも何だか違う気がする。

以前、MT3.xの時のテンプレートでは、カレンダーのhtmlを生成してiframeで呼び出して表示するようなことをしていましたが、サイドバーパーツと同じく小粋空間でajaxで処理する方法が紹介されていたので取り入れることにしました。
以前と違って祝日が赤で表示されたり、webを見ている当日の日付が四角で囲まれたりして結構分かりやすいです。
で、このblogではスタイルシートでエントリーの投稿があった日はボールドで表示し、そこにマウスカーソルを合わせると日付の文字サイズが大きくなるように細工してみました。

cf)スタイルシートに以下を追加する。
#calendar td a {
font-weight: bold;
}
#calendar td a:hover {
font-size: 150%;
}

Ajax 月送りカレンダーMovable Type 4 版の Ajax 月送りカレンダーのカスタマイズです。リアルタイムカレンダー(本日の日付の装飾)および土・日・休日表示も盛り込まれています。 MT4 では、MT3 で@紹介した「Ajax 月送りカレンダー」とは、アーカイブマッピングの方法が異なっており、「MT4でのカスタマイズ方法が分かりません」というリクエストを頂きましたので、本エントリーにて説明致します。
Ajax 月送りカレンダーの概要は割愛します(「Ajax 月送りカレンダー」をご覧ください)。

ウェブページ

Powered by Movable Type 5.2.8

このアーカイブについて

このページには、過去に書かれたブログ記事のうちMT4.0カテゴリに属しているものが含まれています。

前のカテゴリはMTです。

次のカテゴリはMT4.1です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。