Movable Type 3.3(英語版)リリース延期
日本語版がリリースされ、興味が薄れつつある英語版のリリースが延期になりました。
Where in the world is MT 3.3?!
?略? It is for all of those good reasons that we've decided to postpone the final release for an unspecified amount of time in order to make sure that we and, in turn, your experience with the whole product, are solid on all fronts. ?略?
開発体制は不明ですが、場合によっては日本語版のマイナーバージョンアップが行われる可能性もありそうです。
Movable Type 3.3 エントリー・タグ詳説
Movable Type 3.3 から追加されたタグ機能の利用方法が下記のページに掲載されています。
Movable Type Beta Weblog:Everybody loves tags!
以下、元記事で紹介されているタグの機能や利用方法について超意訳で紹介します。
1.タグとは?
タグは、項目の特定の一部分を説明するための簡単な単語、あるいは語句です。例えば、私は(私自身に)
human, male, guy, sailor, product manager, san franciscan, shaved head, tall, joke-cracking, six apartisan, stressed-out, geek
というタグ付けをするかもしれません。それらのタグの全てが、私が誰であるかに関して、より良い情報を与えてくれます。
Movable Type ではエントリーにタグを与える機能を提供します。例えば、あなたはこの記事に関するエントリーを書き、エントリーに、
movable type 3.3, movable type, new release, beta, feature, tagging, entry tags
というタグを付与することができます。
そして後でこのエントリー(や他のエントリー)を見つけるのに使用することができる、特別なメタデータ(MTタグ)を提供します。
Movable Type 3.3 では「自動同義語」をサポートしています。例えば "Movable Type" は "movabletype" と同等であるとみなします。特定のタグを共有するエントリーは、自動的に関連づけられます。これで Movable Typeインタフェース、またはあなたの公開ブログから関連する内容を見つけることが簡単になります。
タグのデフォルト区切り文字はカンマですが、
メイン・メニュー > システム・メニュー > 投稿者 > [投稿者名]
の「タグ区切り」でスペース文字に変更することもできます。
エントリー編集画面のタグ・フィールドでは、使用済みのタグを利用した自動補完機能があります。
2.キーワードとの違い
キーワードはエントリーに括りつけられた、MTEntryKeywords によって出力される文字列で、検索することも可能ですが、エントリー・タグは強力かつ洗練されたタグのセットで、「タグサーチ」という機能で特定のタグが与えられたエントリーを検索します。
将来は XML-RPC API でエントリー・タグがサポートされる予定です。
3.カテゴリーとの違い
タグは関連するエントリーを分類・組織化し、検索を助けるという点においてはカテゴリーと同様ですが、下記の点に相違があります。
- Model:
- カテゴリは目次のようにトップダウン的な設定ですが、タグは本のインデックスのようにボトムアップで設定されます。
- Specificity:
- カテゴリは汎用的で、エントリーを副カテゴリに分配することで特性を獲得する場合に適しています。タグは限定的で、タグの組み合わせで(エントリーの)特性を獲得する場合に適しています。
- Planning:
- カテゴリは少ない数で計画性があり、時間の経過によって一貫性のあるものとなります。タグは計画性がなく、各項目の細部に基づいたものになります。
- Archiving vs searching:
- カテゴリーは「アーカイブ」として異なるページに各カテゴリーに関連するエントリーを静的に格納します。タグも1ページに特定のタグによるエントリーを表示しますが、それらのページはダイナミック(再構築不要)に表示されます。
4.エントリー・タグの追加と削除
タグを利用するには、エントリー編集画面の下にある「画面の表示設定を変更」をクリックして、ダイアログの「エディター・フィールド」欄の左側にあるラジオボタンが「基本」になっているので「すべて」または「カスタム」を選択します。
「すべて」を選んだ場合はそのまま右下の「保存」をクリックします。「カスタム」を選んだ場合は、「タグ」というチェックボックスにチェックをしてください。
追記:左下にある「アクション・バー」で「両方」を選択しておくと「保存」「確認」ボタンがエントリー上部にも表示されて便利です。
エントリー・タグフィールドについて
エントリー・タグフィールドにタグを設定します。タグを複数記述する場合はカンマで区切ってください。タグはカンマ以外のどのような文字列も許容しますが、
@ ! ` \ < > * & # / ~ ? ' " . , = ( ) $ { } [ ] ; : <space> + -
以外の文字列を入力することで正常に動作します。入力した英文字は最終的に小文字として扱われます。
例外的な利用方法として、タグに "@" を付加することでタグは「プライベート・モード」として機能します。プライベート・モードのタグはブログ上で表示されることはありませんが、検索インタフェースや管理インタフェースで使用することができます。
エントリー・タグの自動補完
エントリー・タグを入力フィールドにタイプした時、使用済みのエントリー・タグと一致する文字列で始まるのであれば、それらが候補としてドロップダウンリストで表示されます。リストを直接クリックするか上下キーで選択した後 Tab キーを押すと、エントリー・タグの入力が補完されます。
5.エントリー・タグの管理
エントリー・タグはブログ全体およびブログ単位のどちらでも管理可能です。それぞれの管理画面のサイドバーにある「タグ」をクリックすると管理画面に遷移します。
削除
削除したいタグの左側にあるチェックボックスをチェックして、削除ボタンをクリックします。
タグ名の変更
タグ名のリンクをクリックするとテキストボックスに切り替わるので、任意の名称を入力して「名前の変更」をクリックします。
タグのマージ
前記の「タグ名の変更」で、すでに存在するタグ名を設定すると「マージ(合体)しますか?」という旨のダイアログが表示されます。「OK」をクリックするとマージされます。
6.エントリー・タグの表示
Movable Type 3.3 ではエントリー・タグ表示のために、次のMTタグを提供します。
- MTTags
- MTTagName
- MTTagID
- MTTagCount
- MTTagRank
- MTTagSearchLink
- MTEntryTags
- MTEntryIfTagged
以下、テンプレートに対するエントリー・タグの設定方法です。関連タグを青色で示しています。
エントリーにタグを表示
<MTEntries>
The entry "<$MTEntryTitle$>" is tagged:
<MTEntryTags glue=", "><$MTTagName$></MTEntryTags>
</MTEntries>
エントリーにタグを表示(タグの有無判定あり)
<MTEntries>
The entry "<$MTEntryTitle$>"
<MTEntryIfTagged>
is tagged: <MTEntryTags glue=", "><$MTTagName$></MTEntryTags>
<MTElse>
has no entry tags.
</MTElse>
</MTEntryIfTagged>
</MTEntries>
タグ検索用リンクを表示
<MTEntryTags glue=", ">
<a href="<$MTTagSearchLink$>"><$MTTagName$></a></MTEntryTags>
tag 属性で指定したタグの有無で表示を制御
<MTEntries>
[...MTEntry data...]
<MTEntryIfTagged tag="important">
<p><img src="/movabletype/docs/3.2/images/gold_star.gif"
alt="This is important!" /></p>
</MTEntryIfTagged>
</MTEntries>
ブログで使用されるすべてのタグを表示
<ul>
<MTTags>
<li>
<a href="<$MTTagSearchLink$>"><$MTTagName$></a>
</li>
</MTTags>
</ul>
ブログで使用されるすべてのタグを表示(タグカウントつき)
<ul>
<MTTags>
<li>
<a href="<$MTTagSearchLink$>"><$MTTagName$> (<$MTTagCount$>)</a>
</li>
</MTTags>
</ul>
タグクラウド(タグを雲のように表示)
<div class="module-tagcloud module">
<h2 class="module-header">Tag cloud</h2>
<div class="module-content">
<ul class="module-list">
<MTTags>
<li class="module-list-item taglevel<$MTTagRank$>">
<a href="<$MTTagSearchLink$>"><$MTTagName$></a>
</li>
</MTTags>
</ul>
</div>
</div>
- タグクラウドは下記のCSSが必要です。
.module-tagcloud .module-content {text-align: center; }
.module-tagcloud .module-content .module-list { list-style: none; }
.module-tagcloud .module-content .module-list .module-list-item { display: inline; }
.module-tagcloud .module-content .module-list li.taglevel1 { font-size: 19px; }
.module-tagcloud .module-content .module-list li.taglevel2 { font-size: 17px; }
.module-tagcloud .module-content .module-list li.taglevel3 { font-size: 15px; }
.module-tagcloud .module-content .module-list li.taglevel4 { font-size: 13px; }
.module-tagcloud .module-content .module-list li.taglevel5 { font-size: 11px; }
.module-tagcloud .module-content .module-list li.taglevel6 { font-size: 9px; }
特定のタグが与えられたエントリーのみ表示
<MTEntries tag="TAGNAME">
[...]
</MTEntries>
特定のタグが与えられたエントリー最新1件をトップに表示
<!-- The "banner" entry -->
<MTEntries tag="Important" lastn="1">
[...]
</MTEntries>
<!-- All other recent entries -->
<MTEntries>
[...]
</MTEntries>
注目して欲しいエントリー("notable" というタグを付与)をサイドバーに表示
<div class="module-archives module">
<h2 class="module-header">Notable entries</h2>
<div class="module-content">
<ul class="module-list">
<MTEntries lastn="5" tag="notable">
<li class="module-list-item">
<a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a>
</li>
</MTEntries>
</ul>
</div>
</div>
tag 属性にNOTオペレータが付与されたタグを用いてエントリーの公開を抑止する
<MTEntries tag="NOT noindex">
[...]
</MTEntries>
アーカイブページでのタグクラウドのインクルード
再構築時のパフォーマンスの問題を回避するため、タグクラウドをアーカイブページに含める場合は、PHPによるモジュール化またはSSIを用いてください。
Movable Type 3.3-ja リリース
Movable Type 3.3-ja が正式リリースされました。
Movable Type 3.3の正式リリースをお知らせします。
まずはご期待いただいていた多くの皆さまをお待たせすることになってしまい、申し訳ありませんでした。また、多くの皆さまにベータ版をテストしていただき、日本語ではもちろん、英語でも多くのフィードバックを日本の皆さまからいただきました。
日本語版プラグインディレクトリも同時公開されています。なお当サイトでもプラグイン一覧を提供中です。どうぞごひいきに。
2006.06.29 追記:
Movable Type 3.3 マニュアルも公開されています。
3.3-ja 用テンプレートはベータ版ですでに作成しておりますので、正式版で動作が確認でき次第公開したいと思います。
Movable Type 3.3(英語版)28日リリース
公式サイトのニュースでは、Movable Type 3.3(英語版)が28日にリリースされるようです。
Movable Type 3.3: Ready for release!
Well, it's been months of long, hard work by us and weeks of dedicated beta testing by you all, so it naturally makes me very happy to say that, at long last, Movable Type 3.3 has been frozen and is ready for release! ?(略)? So, look for the release tomorrow and, in the meantime, go tell the world (or at least the very geeky, digerati portion of it) how much you love Movable Type!
Movable Type 3.3 リリース延期
27日リリース予定の Movable Type 3.3 が延期になりました。
本日リリースを予定しておりました、Movable Type 3.3 ですが、商品の最終確認が継続中のため、6/27のリリースを延期させていただくことといたしました。
上記の記事と関連はないと思いますが、ベータ1(日本語版含む) から 3.3b3-20060626 まで 「コメントの一覧」テンプレート(の中身)がありません。全く気がついていませんでした。
2006.06.28 追記:中身がないのは製品の仕様だそうです。
コメントを新着順に並べ替える
Movable Type のデフォルトテンプレートや公開テンプレートのエントリー・アーカイブでは、コメントリストは過去のコメントから順番に表示されるようになっています。「新着順にコメント表示するにはどうすれば良いですか」というご質問を頂きましたので、本エントリーにてご紹介します。
または、エントリー・アーカイブ(およびコメント・プレビュー)テンプレートの編集画面で MTComments タグに対し、下記のように sort_order 属性を追加します。 |
<MTComments sort_order="descend">
変更時の注意点としては、コメント投稿フォームをコメントリストの前、つまり新着コメント側へ移動した方がサイト管理者はコメントの返事を書きやすいと思います。
また、MTタグを修正する場合、コメント・プレビューでもコメントリストを表示しているのであれば、エントリー・アーカイブと表示順序を統一するようにしましょう。
サイドバーの折りたたみ
Category:[JavaScript, テンプレート, テンプレート, テンプレート, テンプレート]
Tag:[Customize, JavaScript, Sidebar]
Permalink
マルチカラムレイアウトでサイドバーを丸ごと折りたたむカスタマイズを紹介します。動作は Windows XP+IE6.0/Firefox1.5/Opera8.0 で確認しています。
下記にサンプルを用意しましたのでお試しください。
タイトル下の両端にあるリンクをクリックすると、サイドバーの表示・非表示が切り替わります。また折りたたみ時にリンクの内容を変更することができます。サンプルは3カラムですが、2カラムレイアウトでの折りたたみも可能です。
1.動作条件
下記の条件で動作します。
- cookieが有効であること
- 固定レイアウト(3カラムおよび2カラム)であること
また公開テンプレートで動作するように設定していますので、公開テンプレート以外でご利用になる場合はスクリプトを修正する必要があります。
2.機能概要
下記のような動作でサイドバーを折りたたみます。
- 折りたたみ用リンクをクリック
- JavaScript起動
- cookieより現在のレイアウト名を取得
- クリックされたリンク位置(右または左)と現在のレイアウトを判定し、新しいレイアウトに変更
- カラム幅がどのレイアウトでも同一になるように、レイアウトに応じて中央カラム幅を変更
- 変更したレイアウトに応じてクリックされたテキストリンクを変更
- 変更したレイアウト名をcookieに保持
3.ドネーション
カスタマイズ内容のご利用および質問に対する回答等について、ご支援・ご賛同くださる方からの寄付をお待ち申し上げます。
将来に向けてのご寄付(例:ドネーションによる機能追加や改善要望)は、それらが実現しない可能性があるため、ご遠慮ください。
- 現状のコンテンツで役立った
- 質問の回答で疑問や不具合が解消された
- エントリーの修正等で要望内容が満たされた
等の後に判断して頂ければ結構です。
参考:Web投げ銭
上記の「Make a Donation」のリンクをクリックすると Paypal によるお支払いページにジャンプします。
4.スクリプトのダウンロード・アップロード
下記のリンクより sidebarfolder.js をダウンロードし、ご利用のブログのディレクトリにアップロードしててください(ブログツール・ブログサービスによってアップロード先は若干異なります)。
なお、このスクリプトの先頭に使用するレイアウトを設定する行があります。
var layout = 'layout-three-column';
デフォルトは3カラムになっていますので、2カラムで利用する場合は下記のように変更してください。
2カラム(左サイドバー)
var layout = 'layout-two-column-left';
2カラム(右サイドバー)
var layout = 'layout-two-column-right';
5.テンプレートの修正(スクリプトのインクルード)
サイドバーの折りたたみを設定するテンプレートの <head> ? </head> の部分に下記を追加します。
Movable Type の場合
<script type="text/javascript" src="<$MTBlogURL$>sidebarfolder.js"></script>
Serene Bach の場合
<script type="text/javascript" src="{site_top}sidebarfolder.js"></script>
FC2ブログの場合
<script type="text/javascript" src="<%url>file/sidebarfolder.js"></script>
6.テンプレートの修正(折りたたみ用ナビゲーション追加)
6.1 3カラムレイアウトの場合
:
<!-- タイトル -->
<div id="banner">
<h1 id="banner-header"><a href="<$MTBlogURL$>" accesskey="1"><$MTBlogName encode_html="1"$></a></h1>
<h2 id="banner-description"><$MTBlogDescription$></h2>
</div>
<div id="navi">
<ul><li id="leftmark"><a href="javascript:void(0);" onclick="changeSidebar('left');"><</a></li></ul>
<ul><li id="rightmark"><a href="javascript:void(0);" onclick="changeSidebar('right');">></a></li></ul>
</div>
<!-- 左カラム開始 -->
<div id="links-left-box">
<div id="links-left">
:
6.2 2カラムレイアウト(左サイドバー)
下記を追加してください(6.1の追加部分を変更)。
<div id="navi">
<ul><li id="leftmark"><a href="javascript:void(0);" onclick="changeSidebar('left');"><</a></li></ul>
</div>
6.3 2カラムレイアウト(右サイドバー)
下記を追加してください(6.1の追加部分を変更)。
<div id="navi">
<ul><li id="rightmark"><a href="javascript:void(0);" onclick="changeSidebar('right');">></a></li></ul>
</div>
7.テンプレートの修正(JavaScript 追加)
サイドバーの折りたたみを設定するテンプレートの <head> ? </head> の部分に、A List Apart: Articles: Alternative Style: Working With Alternate Style Sheetsの一部を追加します。すでにご利用になっている場合は不要です。
<script type="text/javascript">
<!--
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
//-->
</script>
8.スタイルシート修正
スタイルシートに下記を追加します。
#navi {
padding: 3px;
border-bottom: 1px solid #666699;
text-align:center;
font-size: 12px;
}
#navi ul {
margin: 0;
padding: 0;
display: inline;
}
#navi ul li {
display: inline;
}
#leftmark {
margin-right: 395px;
}
#rightmark {
margin-left: 395px;
}
Movable Type 3.2-ja-2 再構築のパフォーマンス
以前エントリーした Movable Type 3.3b1-ja 再構築のパフォーマンスの後、「3.2の測定もして欲しい」というリクエストがありました。遅くなりましたが本エントリーで測定結果をお知らせします。相変わらず目分量です。
実行環境等は下記の通りです。
- OS:Windows XP Service Pack 2(Pen4 2.8GHz メモリ1.5GBで700MBほど使用中)。自宅サーバです。
- Perl:5.6.1
- DB:MySQL/SQLite
- 再構築対象:エントリー・アーカイブ
- 利用テンプレート:小粋空間3.2テンプレートのエントリー・アーカイブテンプレートを用い、再構築時間に影響があると思われる「最近のコメント *1」「カテゴリーリスト」「サブカテゴリーリスト」をいずれかひとつ設定。その他(カレンダー・最近のエントリー・最近のトラックバック・月別アーカイブ)のリストは常に設定。
- エントリー:約1000
- コメント:約7000
- トラックバック:約2500
- カテゴリー:103
以下、測定結果です。
1.エントリー・アーカイブの再構築時間
数値は最初の120エントリー(40エントリー×3)の平均を元に算出しています。
| MySQL | SQLite | |
|---|---|---|
| 最近のコメント | 18s/40エントリー | 22s/40エントリー |
| カテゴリーリスト | 24s/40エントリー | 124s/40エントリー |
| サブカテゴリーリスト | 33s/40エントリー | 227s/40エントリー |
| 上記リストなし | 18s/40エントリー | 22s/40エントリー |
2.CPU使用率
再構築中は常にほぼ100%。ただし「SQLite+リストなし」のみ96?97%でした。
3.メモリ使用率
再構築時間に比例して増加することはありませんでした(再構築単位でリソースが解放されている模様)。
*1 MTEntries に lastn属性値5を追加しています。lastn 属性を設定しない場合、1エントリーの再構築に30s以上かかるようです(MySQL・SQLiteとも)。
画像のポップアップウィンドウをカスタマイズする
このエントリーでは、ディスプレイより大きなサイズの画像を全部閲覧できるようにするためのカスタマイズを2つ紹介します。いずれかお好きな方をお選びください。これらは通常のポップアップのカスタマイズとしても利用することができます。
1.ポップアップウィンドウのスクロールやリサイズを有効にする方法
CMS.pm を任意のエディタで開き、「window.open」で検索すると下記の行がみつかります。
ちなみに、3.2 では3600行目あたり、3.3b2 では4700行目辺りです。
<a href="$url" onclick="window.open('$url','popup','width=$width,height=$height,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false">$link</a>
この中の window.open? のカッコの部分がポップアップウィンドウの詳細設定になります。
赤色の部分を下記のように yes に修正します。
<a href="$url" onclick="window.open('$url','popup','width=$width,height=$height,scrollbars=yes,resizable=yes,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false">$link</a>
- scrollbars=yes
は、画面サイズにスクロールバーが表示する設定です。
- resizable=yes
は、表示されたポップアップウィンドウのリサイズを可能にします。
なお、スクロールバーを表示する設定にした場合、スクロールバーが画像にやや被ってしまうので、下記のリストのように先程修正した行の少し上に青色の行を追加してください。
:
}
$width += 17;
my $link = $thumb ? qq(<img src="$thumb" width="$thumb_width" height="$thumb_height" alt="" />) : q{<MT_TRANS phrase="View image">};
return $app->translate_templatized(<<"HTML");
<a href="$url" onclick="window.open('$url','popup','width=$width,height=$height,scrollbars=yes,resizable=yes,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false">$link</a>
:
これでポップアップウィンドウの横幅がやや広くなります。17 という数値は場合は自分で試した結果ですので、修正してもらっても構いません。
高さをひろげたい場合は
$height += xx;
を同じように追加してください(xx には任意の値を設定します)。
2.ポップアップウィンドウに画像を縮小して表示する方法
画像サイズを自動的に縮小するカスタマイズが下記のサイトで紹介されています。
以上です。「見れればいい(というのは語弊がありますが)」という場合は2項、原寸で閲覧させたい場合は1項をお勧めします。
ファンコミュニケーションズが「MT-Mobile」と「Affiliate for A8」の提供開始
A8.net で有名なファンコミュニケーションズが、Movable Type 用プラグイン「MT-Mobile」を発表しました。
「MT-Mobile」はウェブログ・システムとして広く利用されているシックス・アパートの「Movable Type(ムーバブル・タイプ)」で作成されたBlogを携帯電話から閲覧可能にするものです。 Movable Typeユーザーがこのプラグインを導入することによって、これまでWEB上でしか閲覧できなかったBlogを、簡単に携帯電話向けとして公開できるようになるため、PC向けのサイト運営者にとって、モバイル向けサイトを容易に立ち上げることが可能になります。
同時に「Affiliate for A8」も発表されています。
プラグインソフト(Affiliate for A8)はウェブログ・システムとして広く利用されているシックス・アパートの「Movable Type(ムーバブル・タイプ)」にA8.netを利用したアフィリエイトが簡単に行える環境を提供するものです。 Movable Typeユーザーがこのプラグインを導入することによって、Movable Typeのエントリー投稿画面から直接A8.netのプログラムの広告素材を呼び出すことができ、そのままBlogに貼り付けることが可能になります。また、Movable Typeのエントリー投稿画面の操作により、複数の広告素材をBlog上でランダムに表示させることも可能になります。
利用に際しては A8.net に会員登録していることが必要です。またプラグイン申請時には ASID が必要です。
早速 MT-Mobile を試してみました。特に設定はなく、ダウンロードしたアーカイブを解凍して、plugins ディレクトリに配置し、あとは mtm.cgi をURLで指定するだけです。が、Windows 自宅サーバではトップページが表示された後、ブログを選択すると「指定されたサイトは存在しません。(DNS)」というエラーになります。PCブラウザからは読めました。
とりあえずご報告まで。
サーバ不具合について
ページ上部でお知らせしているように、2日前から下記のような 503 エラー(Service Temporarily Unavailable)が発生しており、特にアクセスの多い時間帯はサイトへほとんどつながらない状態が続いています。訪問くださっている皆様には大変ご迷惑をおかけして申し訳ございません。
![]()
かく言う私も管理画面で 503 エラーが多発するため、更新がままならない状態です。
503 エラーは「一時的にアクセスが集中している」か「CGIプログラムが誤作動を起こしている」場合に発生するようです。私の方で特にCGIに対して手を加えた記憶はないのですが、念のためページ表示で動作するCGIの一部を停止しています。
それとは別に、先程 top コマンドで確認したところ、異常なプロセスが動作していました。
該当のCGIはファイル名を変更して動作しないようにしました。ちなみにこのプロセスを kill しても 503 は解消していません。
ということで、さくらインターネットに問い合わせ中です。
最近のコメントのツールチップにコメント内容を表示する(MTCollate版)
以前公開した、「最近のコメントのツールチップにコメント内容を表示する」は、デフォルトのMTタグを使用した方法でしたが、本エントリーでは MTCollate プラグインで「最近のコメント」を表示している場合で、さらにコメントのツールチップにコメント内容を表示するカスタマイズを紹介します。

ここでは「MTCollate を使って「最近のコメント」を表示する」の3.1および3.2のリストを用いて、「最近のコメントのツールチップにコメント内容を表示する」との差分のみを掲載しています。
デフォルトのMTタグを用いたツールチップ表示は、a 要素に
title="<$MTCommentBody remove_html="1" encode_html="1" strip_linefeeds="1" trimj2_to="100">"
という title 属性を与えていますが、MTCollate の場合は
<MTCollateSetField name="comment_body"><$MTCommentBody remove_html="1" encode_html="1" strip_linefeeds="1" trimj2_to="100"$></MTCollateSetField>
という風に、コメント本文を取得する MTCollateSetField を追加し、
title="<$MTCollateField name="comment_body"$>"
をコメントリンクの a 要素に与えています。
以下、上記の内容を加えたリストを掲載しますので、そのままお使いになるか、現在使用されている「最近のコメント」に適宜修正を加えてください。
1.br 要素と "└" でツリー表示している場合
MTCollate を使って「最近のコメント」を表示するの3.1項からの追加部分を青色で示しています。<MTCollateCollect>
<MTComments lastn="10">
<MTCollateRecord>
<MTCollateSetField name="comment_id"><$MTCommentID$></MTCollateSetField>
<MTCollateSetField name="comment_author"><$MTCommentAuthor encode_html="1"$></MTCollateSetField>
<MTCollateSetField name="comment_date"><$MTCommentDate format="%m/%d"$></MTCollateSetField>
<MTCollateSetField name="comment_body"><$MTCommentBody remove_html="1" encode_html="1" strip_linefeeds="1" trimj2_to="100"$></MTCollateSetField>
<MTCommentEntry>
<MTCollateSetField name="entry_key"><MTComments lastn="1"><$MTCommentDate format="%y%m%d%H%M%S"$></MTComments></MTCollateSetField>
<MTCollateSetField name="entry_link"><$MTEntryPermalink$></MTCollateSetField>
<MTCollateSetField name="entry_title"><$MTEntryTitle encode_html="1"$></MTCollateSetField>
</MTCommentEntry>
</MTCollateRecord>
</MTComments>
</MTCollateCollect>
<div class="sidetitle">
Recent Comments
</div>
<div class="side">
<MTCollateList sort="entry_key:#:- comment_id:#:+">
<MTCollateIfHeader name="entry_key">
<a href="<$MTCollateField name="entry_link"$>" title="<$MTCollateField name="entry_title"$>"><$MTCollateField name="entry_title"$></a><br /></MTCollateIfHeader>
└ <a href="<$MTCollateField name="entry_link"$>#<$MTCollateField name="comment_id"$>" title="<$MTCollateField name="comment_body"$>"><$MTCollateField name="comment_author"$></a> <$MTCollateField name="comment_date"$><br />
</MTCollateList>
</div>
2.リスト要素(ul -li)で表示している場合
MTCollate を使って「最近のコメント」を表示するの3.2項からの追加部分を青色で示しています。<MTCollateCollect>
<MTComments lastn="10">
<MTCollateRecord>
<MTCollateSetField name="comment_id"><$MTCommentID$></MTCollateSetField>
<MTCollateSetField name="comment_author"><$MTCommentAuthor encode_html="1"$></MTCollateSetField>
<MTCollateSetField name="comment_date"><$MTCommentDate format="%m/%d"$></MTCollateSetField>
<MTCollateSetField name="comment_body"><$MTCommentBody remove_html="1" encode_html="1" strip_linefeeds="1" trimj2_to="100"$></MTCollateSetField>
<MTCommentEntry>
<MTCollateSetField name="entry_key"><MTComments lastn="1"><$MTCommentDate format="%y%m%d%H%M%S"$></MTComments></MTCollateSetField>
<MTCollateSetField name="entry_link"><$MTEntryPermalink$></MTCollateSetField>
<MTCollateSetField name="entry_title"><$MTEntryTitle encode_html="1"$></MTCollateSetField>
</MTCommentEntry>
</MTCollateRecord>
</MTComments>
</MTCollateCollect>
<div class="sidetitle">
Recent Comments
</div>
<div class="side">
<MTCollateList sort="entry_key:#:- comment_id:#:+">
<MTCollateIfHeader name="entry_key">
<a href="<$MTCollateField name="entry_link"$>" title="<$MTCollateField name="entry_title"$>"><$MTCollateField name="entry_title"$></a><ul></MTCollateIfHeader>
<li><a href="<$MTCollateField name="entry_link"$>#<$MTCollateField name="comment_id"$>" title="<$MTCollateField name="comment_body"$>"><$MTCollateField name="comment_author"$></a> <$MTCollateField name="comment_date"$></li>
<MTCollateIfFooter name="entry_key"></ul></MTCollateIfFooter>
</MTCollateList>
</div>
WEB+DB PRESS Vol.32
もうすぐ最新号の Vol.33 が発売されますが、現在発売中の「WEB+DB PRESS Vol.32」には「Web2.0 実践テクニック」ということで、
- 使い倒し Google Homepage API
- Yahoo! Web サービス活用ガイド
- RESTアーキテクチャスタイル入門
の3本が掲載されています。
![]() | WEB+DB PRESS Vol.32 WEB+DB PRESS編集部 技術評論社 2006-04-25 売り上げランキング : 2730 Amazonで詳しく見る by G-Tools |
Google Personalized Homepage を利用されている方は少なくないと思いますが、Google Homepage API はそこに独自のモジュールを表示させるための API です。記事にはモジュールの基本的な作成方法や、プログラム実行可能なサーバ環境を利用してマイミクシィの最新日記一覧表示取得方法等が掲載されています。
Yahoo! Web サービスは、Yahoo! が提供している検索機能を利用して、例えば検索結果を自サイトに表示させることができるというもの。記事では「ウェブ検索 Web サービス」「画像検索 Web サービス」「動画検索 Web サービス」「カテゴリ Web サービス」「RSS配信サービス」についての利用方法が解説されています。
「RESTアーキテクチャスタイル入門」は、RESTの具体的な利用方法ではなく、基本的な事項について記されたものです。HTTPのPOSTメソッドとGETメソッドの使い分け、リソースおよびHTTPとURIによる統一インタフェースの説明、Cookie と REST の関係、AtomPPプロトコル(GET、POSTにPUTメソッドとDELETEメソッドを加えたものを利用したプロトコル)の解説等、RESTの思想や正しい利用方法が理解できる内容になっており、勉強になりました。
また、404 Blog Not Found でお馴染みの小飼弾さんの「Alpha Geek に逢いたい」という連載も始まっています。
月別アーカイブリストのツリー化 for Movable Type
ArchiveDateHeader プラグインおよび、昨日公開した ArchiveDateFooter プラグインを利用した、月別アーカイブリストのツリー化カスタマイズを紹介します。 |
ツリー化にあたっては、公開テンプレートをサンプルに用いて
- 各年の月をツリー化
- 年と各年の月をツリー化
の2通りの方法を説明しています。いずれかお好きな方を選択してください。またデフォルトテンプレート等、他のテンプレートでも利用可能ですが、ツリー表示についてはスタイルシートの設定を適宜修正して調整してください。
なおツリー化の基本的なカスタマイズについてはサイドメニューのツリー化スクリプト(改)を参照してください。ここでは差分のみを記し、スクリプトおよびツリー画像の設定等については割愛しています。
さらにツリー表示を年毎に折りたたむこともできます。その場合は「月別アーカイブリストの年毎の折りたたみ for Movable Type」をご覧ください。
1.各年の月をツリー化
1項では、左のスクリーンショットのように各年の月をツリー化する方法を紹介します。 |
1.1 テンプレートの修正
月別アーカイブリスト表示したいテンプレートに、下記のタグを設定します。<div class="side" id="archives">
<MTArchiveList archive_type="Monthly">
<MTArchiveDateHeader><span><$MTArchiveDate format="%Y年"$></span><ul></MTArchiveDateHeader>
<li><a href="<$MTArchiveLink$>"><$MTArchiveDate format="%B月"$></a> [<$MTArchiveCount$>]</li>
<MTArchiveDateFooter></ul></MTArchiveDateFooter>
</MTArchiveList>
</div>
<script type="text/javascript">
<!--
generateNormalTree('archives');
//-->
</script>
1.2 スタイルシートの修正
下記のスタイルを styles-site.css に追加します。ul.tree {
margin: 0 0 0 15px!important;
padding: 0px!important;
font-size: 9px;
list-style: none!important;
}
ul.tree ul {
margin: 0!important;
padding: 0!important;
margin-left: 10px!important;
}
ul.tree li {
margin: 0!important;
padding: 0 0 0 11px!important;
background-image: url(tree_lst.gif);
background-repeat: no-repeat!important;
list-style: none!important;
}
ul.tree li.end {
background-image: url(tree_end.gif);
list-style: none;
}
2.年と各年の月をツリー化
2項は各年の月のツリー化だけでなく、年表示部分もツリー化する方法を紹介します。 |
2.1 テンプレートの修正
月別アーカイブリスト表示したいテンプレートに、下記のタグを設定します。<div class="side" id="archives">
<ul>
<MTArchiveList archive_type="Monthly">
<MTArchiveDateHeader><li><$MTArchiveDate format="%Y年"$><ul></MTArchiveDateHeader>
<li><a href="<$MTArchiveLink$>"><$MTArchiveDate format="%B月"$></a> [<$MTArchiveCount$>]</li>
<MTArchiveDateFooter></ul></li></MTArchiveDateFooter>
</MTArchiveList>
</ul>
</div>
<script type="text/javascript">
<!--
generateTreeForTreeStructure('archives');
//-->
</script>
2.2 スタイルシートの修正
下記のスタイルを styles-site.css に追加します。ul.tree {
margin: 0 0 0 5px!important;
padding: 0px!important;
font-size: 9px;
list-style: none!important;
}
ul.tree ul {
margin: 0!important;
padding: 0!important;
margin-left: 10px!important;
}
ul.tree li {
margin: 0!important;
padding: 0 0 0 11px!important;
background-image: url(tree_lst.gif);
background-repeat: no-repeat!important;
list-style: none!important;
}
ul.tree li.end {
background-image: url(tree_end.gif);
list-style: none;
}
3.その他
すでに他でツリーの設定を行っている場合は、同じ設定を利用するか、#archives ul.tree {
:
という具合に、スタイルシートの該当部分に id 属性を追加して、他の設定と干渉しないようにしてください。
ArchiveDateFooter プラグイン
ツリー表示にする場合は、本カスタマイズを実施した後、「月別アーカイブリストの年毎の折りたたみ for Movable Type」を行ってください。 |
1.機能
このプラグインは、MTArchiveList コンテナ・タグ(archive_type 属性が Monthly/Weekly)の中で、次に表示されるアーカイブと比較し、異なる年あるいは月であったときだけ内容を表示するコンテナ・タグを提供します。
このコンテナ・タグは archive_type 属性が Monthly および Weekly の場合のみ有効です。
2.作成の経緯
既存の ArchiveDateHeader プラグインを用いて、
<MTArchiveList archive_type="Monthly">
<MTArchiveDateHeader>
<p><MTArchiveDate format="%Y"></p>
</MTArchiveDateHeader>
<a href="<$MTArchiveLink$>"><MTArchiveDate format="%B"></a>
</MTArchiveList>
というリストを設置することで、例えば下記のような月別アーカイブリストを作成できます。
2006
6 5 4 3 2 1
2005
12 11 10 ...
しかしながら、このプラグインがサポートしているのは MTArchiveHeader タグのみのため、例えば月別アーカイブの場合、最後の表示月(上記の場合であれば2006年1月)の後に任意のタグを与えることができません。
したがって ArchiveDateHeader だけではリスト形式(ul -li)のマークアップを行うことができません。
ネットを検索すると、Movable Type Community Forum:ArchiveDateFooter? に、MTPerlScriptを使ってフッタを生成する記事がありましたが、勉強もかねて今回自作してみました。
3.ダウンロード
下記のリンクより ArchiveDateFooter プラグインアーカイブをダウンロードしてください。
2006.06.19 初版 2007.01.20 MTArchiveList の sort_order="ascend" に対応 2007.03.19 週別アーカイブでの不具合修正(「ダイナミック・パブリッシング対応 ArchiveDateFooter プラグイン」での指摘を反映)
4.インストール
ダウンロードしたアーカイブを解凍し、ArchiveDateFooter を plugins ディレクトリにアップロードしてください。下記の構成になればOKです。
- plugins/ArchiveDateFooter/ArchiveDateFooter.pl
- plugins/ArchiveDateFooter/tmpl/config.tmpl
メイン・メニュー > システム・メニュー > プラグイン で ArchiveDateFooter Plugin が表示されていればOKです。特に設定する項目はありません。
MT3.x 版でプラグインを使用したくない場合は、各ブログの管理メニューより、「設定」→「プラグイン」→「ArchiveDateFooter Plugin」の右側にある「設定を表示」をクリックして「Configuration」のチェックを外し、「変更を保存」をクリックしてください。
MT4.x 版では「設定を表示」のリンクはありませんので、プラグインを利用しない場合は、システムメニューのプラグイン一覧で ArchiveDateFooter 自体を無効にしてください。
5.使用例
冒頭のスクリーンショットのようなリスト形式の月別アーカイブリスト(年月表示)は、下記のように設定します(サンプルリストはエントリー件数も表示するようにしています)。<MTArchiveList archive_type="Monthly">
<MTArchiveDateHeader><$MTArchiveDate format="%Y年"$><ul></MTArchiveDateHeader>
<li><a href="<$MTArchiveLink$>"><$MTArchiveDate format="%B月"$></a> [<$MTArchiveCount$>]</li>
<MTArchiveDateFooter></ul></MTArchiveDateFooter>
</MTArchiveList>
月を英語表記にする場合は language属性を追加します。
<MTArchiveList archive_type="Monthly">
<MTArchiveDateHeader><$MTArchiveDate format="%Y"$><ul></MTArchiveDateHeader>
<li><a href="<$MTArchiveLink$>"><$MTArchiveDate format="%B" language="en"$></a> [<$MTArchiveCount$>]</li>
<MTArchiveDateFooter></ul></MTArchiveDateFooter>
</MTArchiveList>
ラップするコンテナタグ MTArchiveList タグで sort_order 属性に acend を設定した場合には MTArchiveDateFooter タグにも同じ属性・属性値を設定してください。
<MTArchiveList archive_type="Monthly" sort_order="ascend">
<MTArchiveDateHeader><$MTArchiveDate format="%Y年"$><ul></MTArchiveDateHeader>
<li><a href="<$MTArchiveLink$>"><$MTArchiveDate format="%B月"$></a> [<$MTArchiveCount$>]</li>
<MTArchiveDateFooter sort_order="ascend"></ul></MTArchiveDateFooter>
</MTArchiveList>
2007.01.20 追記
MTArchiveList の sort_order 属性で ascend が設定された場合に対応しました。
2007.03.19 追記
週別アーカイブでの不具合を修正しました。
2007.07.08 追記
MT4 対応をリリースしました。
日本ミルクコミュニティ・とろける杏仁豆腐
日本ミルクコミュニティは「メグミルク」で有名な会社です。この会社が出している「とろける杏仁豆腐」を先日、何気なく購入したところ、かなりの美味でしたので紹介したいと思います。
実はこういった廉価版のデザート類は普段それほど食べませんし、食べたとしても感動を覚えることはまずありません。が、このデザートは一口食べて「美味しい!」と直感的に思った、私にとって久々のヒット商品です。
杏仁豆腐といえばやや弾力のある、プルンとした食感を思い出しますが、この商品はヨーグルトのような柔らかさで、名前の通りとろけるような舌触りが特徴です。そして130円とは思えない本格的な杏仁の味わい。程よい甘さで後味もすっきりしています。
「他社の杏仁豆腐も美味しいのでは?」と思っていくつか試してみましたが(笑)、会社によってそれぞれ味の特徴があり、個人的にはこの「とろける杏仁豆腐」がイチオシです。ネットで調べたところ、この商品は「バニラフレーバーを隠し味に使用」しているようで、これが上品な美味しさ引き立てているのではないでしょうか。
ということで、機会があれば是非一度お試しください。コンビニではミニストップで扱っていました(他のコンビニやスーパーではほとんどみかけませんでした)。


1項では、左のスクリーンショットのように各年の月をツリー化する方法を紹介します。
2項は各年の月のツリー化だけでなく、年表示部分もツリー化する方法を紹介します。
Movable Type のプラグインを久しぶりに作成しました。このプラグインを利用することで、月別アーカイブを年別にリスト表示することができます。スクリーンショットはデフォルトテンプレートに適用した例です。