2008年ブログ総括
今年も無事に1年が過ぎようとしています。このブログも多くの方々に暖かく見守っていただき、感謝しております。
毎年恒例の振り返りです。
1.書籍
昨年の「Movable Type WEBデザインの新しいルール」に引き続き、テクニカルライターの仕事をさせて頂きました。今年執筆した著書は次の3冊ですが、今年の初めに、こんなに書かせて頂けるとは思ってもいませんでした。
CMSとして使うMovable Typeガイドブック
![]() | CMSとして使うMovable Typeガイドブック 黒野 明子 翔泳社 2008-03-14 売り上げランキング : 30800 Amazonで詳しく見る by G-Tools |
Movable Type プロフェッショナル・スタイル MT4.1対応
![]() | Movable Type プロフェッショナル・スタイル MT4.1対応 CSS Nite 毎日コミュニケーションズ 2008-04-08 売り上げランキング : 45029 Amazonで詳しく見る by G-Tools |
Movable Type 4.2 パーフェクトガイド
![]() | Movable Type 4.2 パーフェクトガイド 荒木 勇次郎 毎日コミュニケーションズ 2008-07-31 売り上げランキング : 36872 Amazonで詳しく見る by G-Tools |
どれも無事出版にこぎつけることができ、ホットしています。また今年も、執筆中に「ブログの更新を決して滞らせず、1日1エントリーを継続する」という目標も達成できました。
2.Google PageRank
今年の8月頃、当ブログの Google PageRank が 5 から 6 に上がりました。
現在、PageRank がどの程度の重要な要素かは不明ですが、個人的にひとつの指標として大きな目標をひとつクリアできた気がします。ブログに直接関係する出来事としては、これが一番大きなニュースかもしれません。
3.BlogPeople 被リンク数
今年の11月頃、BlogPeople 被リンク数がトップになりました。
この数字に拘っている人はあまりいないかもしれませんが、個人的には大変嬉しいニュースです。
4.アクセスの多かったエントリーベスト30
Google Analytics の「タイトル別のコンテンツ」より、2008年1月1日から本日までの期間で、アクセスの多かった(トップページ等を除いた)エントリーの上位20エントリーを発表します。
- Internet Explorer 6 と Internet Explorer 7 を共存させる
- Movable Type テンプレート
- Movable Type プラグイン一覧
- Highslide JS でサムネイル画像を拡大表示する
- Movable Type プラグイン一覧(MT4対応)
- Lightbox JS で画像を表示する
- Movable Type が WordPress に負けた本当の理由
- Windows XP のバックアップ機能
- RSS Feed(フィード)を表示する
- IE7 の CSS ハック
- WordPress テーマ(テンプレート)・3カラム版
- CSSで画像に影をつける(ドロップシャドウ)
- リンク画像の枠線を消す
- Amazon アソシエイト作成支援ツール一覧
- JavaScript エラーを解消する
- Ajax 月送りカレンダー(MT4版)
- Movable Type を始める前に設定しておきたい 10 の項目
- WordPress の月および曜日を英語表記にする
- Movable Type 4 テンプレート配布再開
- MySQL + phpMyAdmin によるバックアップ
- CSS の after 擬似要素で回り込みを解除する
- Lightbox JS でブログパーツ等の Flash を PNG 背景画像の下に隠す
- Litebox 1.0 をブログに適用する
- Movable Type 4.1 カスタムフィールドの使用方法
- FC2ブログテンプレート
- Ajax 月送りカレンダー
- JavaScript カレンダー(休日表示付き)
- .htaccess によるリダイレクト
- Movable Type で再構築エラーになる場合の原因と対処
- Movable Type 4.1 テンプレートセット(スタイル対応版)
ちなみに1年間のPVは約270万でした。19位の「Movable Type 4 テンプレート配布再開」は内容のあるコンテンツではないのですが、Google で「Movable Type テンプレート」で検索したときに一時期上位にいたので、それが影響しているとおもわれます。
5.Amazon の売れ筋商品
2008年1月1日から本日までの注文ベスト20です。
1位:CMSとして使うMovable Typeガイドブック
![]() | CMSとして使うMovable Typeガイドブック 黒野 明子 翔泳社 2008-03-14 売り上げランキング : 30800 Amazonで詳しく見る by G-Tools |
2位:GriffinTechnology iTalk Pro GRI-IP-000063
![]() | GriffinTechnology iTalk Pro GRI-IP-000063 Griffin Technology 2006-11-10 売り上げランキング : 1211 Amazonで詳しく見る by G-Tools |
3位:Movable Type 4.2 パーフェクトガイド
![]() | Movable Type 4.2 パーフェクトガイド 荒木 勇次郎 毎日コミュニケーションズ 2008-07-31 売り上げランキング : 36872 Amazonで詳しく見る by G-Tools |
4位:Movable Type WEBデザインの新しいルール
![]() | Movable Type WEBデザインの新しいルール 荒木 勇次郎 翔泳社 2007-10-17 売り上げランキング : 139502 Amazonで詳しく見る by G-Tools |
5位:Movable Type プロフェッショナル・スタイル MT4.1対応
![]() | Movable Type プロフェッショナル・スタイル MT4.1対応 CSS Nite 毎日コミュニケーションズ 2008-04-08 売り上げランキング : 45029 Amazonで詳しく見る by G-Tools |
6位:Webプロフェッショナルのための黄金則 Movable Typeテンプレートタグ虎の巻 Movable Type 4.x対応
![]() | Webプロフェッショナルのための黄金則 Movable Typeテンプレートタグ虎の巻 Movable Type 4.x対応 (Web Designing BOOKS) エ・ビスコム・テック・ラボ 毎日コミュニケーションズ 2008-03-15 売り上げランキング : 56434 Amazonで詳しく見る by G-Tools |
6位:基本からしっかりわかる Movable Type 4.1 カスタマイズブック Movable Type 4.1/MTOS 4.1対応
![]() | 基本からしっかりわかる Movable Type 4.1 カスタマイズブック Movable Type 4.1/MTOS 4.1対応 (Web Designing BOOKS) 大藤 幹 毎日コミュニケーションズ 2008-05-21 売り上げランキング : 49460 Amazonで詳しく見る by G-Tools |
8位:「困った人たち」とのつきあい方 (河出文庫)
![]() | 「困った人たち」とのつきあい方 (河出文庫) Robert M. Bramson 鈴木 重吉 峠 敏之 河出書房新社 2001-01 売り上げランキング : 5292 Amazonで詳しく見る by G-Tools |
9位:本を読む本 (講談社学術文庫)
![]() | 本を読む本 (講談社学術文庫) Mortimer J. Adler Charles Van Doren 外山 滋比古 講談社 1997-10 売り上げランキング : 241 Amazonで詳しく見る by G-Tools |
9位:週刊 ダイヤモンド 2008年 2/9号 [雑誌]
![]() | 週刊 ダイヤモンド 2008年 2/9号 [雑誌] ダイヤモンド社 2008-02-04 売り上げランキング : Amazonで詳しく見る by G-Tools |
11位:Movable Type 4でつくる![最強のブログサイト]
![]() | Movable Type 4でつくる![最強のブログサイト] 小川晃夫&南大沢ブロードバンド研究会 ソーテック社 2008-05-22 売り上げランキング : 110845 Amazonで詳しく見る by G-Tools |
11位:基本からしっかりわかる Movable Type 4.2 カスタマイズブック(Web Designing Books)
![]() | 基本からしっかりわかる Movable Type 4.2 カスタマイズブック(Web Designing Books) 大藤 幹 毎日コミュニケーションズ 2008-09-20 売り上げランキング : 3255 Amazonで詳しく見る by G-Tools |
11位:第1感 「最初の2秒」の「なんとなく」が正しい (翻訳)
![]() | 第1感 「最初の2秒」の「なんとなく」が正しい (翻訳) 沢田 博 阿部 尚美 光文社 2006-02-23 売り上げランキング : 291 Amazonで詳しく見る by G-Tools |
14位:人間この信じやすきもの―迷信・誤信はどうして生まれるか (認知科学選書)
![]() | 人間この信じやすきもの―迷信・誤信はどうして生まれるか (認知科学選書) Thomas Gilovich 守 一雄 守 秀子 新曜社 1993-06 売り上げランキング : 218 Amazonで詳しく見る by G-Tools |
15位:Movable Type 4 新しいWebサイトの黄金則-MTで実現するCMSサイト構築のすべて-
![]() | Movable Type 4 新しいWebサイトの黄金則-MTで実現するCMSサイト構築のすべて- 芝 陽一郎 ソフトバンククリエイティブ 2008-04-05 売り上げランキング : 43378 Amazonで詳しく見る by G-Tools |
15位:Movable Type 4.x 本格的CMSサイトを構築するためのMTスーパーテクニック クリエイターが身につけておくべき新・100
![]() | Movable Type 4.x 本格的CMSサイトを構築するためのMTスーパーテクニック クリエイターが身につけておくべき新・100の法則。 加藤 善規 インプレスジャパン 2008-09-12 売り上げランキング : 31709 Amazonで詳しく見る by G-Tools |
17位:スーパーヴァーム (VAAM) パウダータイプ 10.5gx7包
![]() | 明治乳業 スーパーヴァーム (VAAM) パウダータイプ 10.5gx7包 ヴァーム 売り上げランキング : 252 Amazonで詳しく見る by G-Tools |
18位:さあ、才能(じぶん)に目覚めよう―あなたの5つの強みを見出し、活かす
![]() | さあ、才能(じぶん)に目覚めよう―あなたの5つの強みを見出し、活かす 田口 俊樹 日本経済新聞出版社 2001-12-01 売り上げランキング : 13 Amazonで詳しく見る by G-Tools |
19位:iPod対応 ICレコーダーアダプタ LIC-IREC01
![]() | Logitec iPod対応 ICレコーダーアダプタ LIC-IREC01 ロジテック 2008-03-18 売り上げランキング : 1619 Amazonで詳しく見る by G-Tools |
20位:TUNEWEAR Stereo Sound Recorder for iPod
![]() | TUNEWEAR Stereo Sound Recorder for iPod TUNEWEAR 2007-08-06 売り上げランキング : 8746 Amazonで詳しく見る by G-Tools |
20位:7つの習慣―成功には原則があった!
![]() | 7つの習慣―成功には原則があった! Stephen R. Covey 川西 茂 キングベアー出版 1996-12 売り上げランキング : 26 Amazonで詳しく見る by G-Tools |
20位:Movable Typeで今日から始めるカスタムブログ―4.0完全対応
![]() | Movable Typeで今日から始めるカスタムブログ 4.0完全対応 岡田 庄司 秀和システム 2007-10 売り上げランキング : 194267 Amazonで詳しく見る by G-Tools |
ダントツ1位が黒野明子さんとの共著の「CMSとして使うMovable Typeガイドブック」でした。このブログでの宣伝で購入してくださった方が大勢いらっしゃたこと、感謝しています。また3位~5位にランキングしている、その他の拙著も多く購入くださり、ありがとうございます。
6.Movable Type プラグイン
Movable Type を始めた頃は「プラグインなんて一生でひとつ作れれば御の字」と思ってましたが、なんだかんだと今年は結構作りました。人間やればできるもんですね。
今年リリースした主なプラグインを掲載しておきます。
DefaultValueSetter(ブログ記事の初期値を設定)
![]()
VisibleCustomFieldImage(当初、ブログ記事に画像用カスタムフィールドのサムネイル画像表示が目的でしたが、標準機能となったため、アイテムの情報入力画面のハンドリグのみ)

EntryCategoryID(ブログ記事のメインカテゴリのIDを出力)
LogCommentAuthors(システムログに記録されたコメントより投稿者の一覧を表示)
EntryCategory(ネイティブタグのEntryCategoryをブロックタグに変更)
SubCategoryDepth/SubFolderDepth(カテゴリー・フォルダの階層を出力)
BlogArchiveRelativeURL(アーカイブ URL を、ホストからの相対 URL で表示)
FolderLink(ウェブページのフォルダリンクを出力)

RebuildIndexFilter(インデックステンプレートの再構築トリガを制御)

TemplateSetNameViewer(Movable Type 4 で利用しているテンプレートセット名を、ブログ管理画面のテンプレート一覧画面やテンプレート編集画面に表示)

LogDeleteSelector(システムログ・ブログ別ログを選択削除できるようにする)

asciiCommentfilter(コメントスパムをフィルタリング)

PowerEdit(ブログ記事の一括編集画面のフィールドを拡張)
![]()
ArchivePathSelector(アーカイブテンプレートにアーカイブパスの適否を選択可能)

7.まとめ
昨年と同じコメントですが、とにかく無事に1年を終えることができたことが何よりの喜びです。皆様には大変お世話になりました。来年もテンプレート・カスタマイズ記事にダジャレをメインにブログを書き続ける所存ですので、ご指導・ご鞭撻の程、どうぞよろしくお願い致します。
それでは2009年もどうぞよろしくお願い致します。そして良いお年をお迎えください。
トラックバック送信テスト用エントリーが人気
ここ数日、「トラックバック送信テスト用エントリー」へのトラックバックのトラフィックがかなり多くなっています。

現在、Google で「トラックバック テスト」で検索すると、そのエントリーが1位になっているのがその要因かもしれません(Yahoo は71位...)。

ということで、このエントリーを読んでトラックバックされる方はいないと思いますが、トラックバックテストはご自由にお使いください。
「トラックバック送信テスト用エントリー」のトラックバックURLは
http://www.koikikukan.com/cgi-bin/koikikukan/mt-tb.cgi/418
です。
コメントのページ分割 for Movable Type 4
Movable Type 4 でコメントのページ分割を行うカスタマイズです。ご質問を頂きましたので本エントリーにて紹介致します。
デフォルトテンプレートへの適用例

小粋空間テンプレートへの適用例

ここでは、スカイアークシステムが配布している PageBute プラグインによるページ分割方法を紹介します。
1.注意事項
このエントリーで紹介する方法は、投稿されたコメントを指定件数ごとに分割するだけであり、分割されたブログ記事ページには同じ内容のブログ記事が表示されます。
言い換えると、SEO 的な考慮(異なるURLに同じ内容が重複していることに対する考慮)は何も行っていません。
2.PageBute プラグインのダウンロード
下記のリンクからプラグインアーカイブ(2008年12月現在は PageBute3.01.zip)をダウンロードし、任意のフォルダに保存してください。
2.インストール
プラグインアーカイブを解凍し、中にある PageBute.pl を plugins ディレクトリにアップロードしてください。
ブログ管理画面より「システム」→「プラグイン」でプラグイン一覧を表示し、次のように表示されればOKです。

3.テンプレートのカスタマイズ
3.1 デフォルトテンプレートの場合
「コメント」テンプレートモジュールに青色部分を追加します。赤色部分の MTCommentsHeader タグは削除してください。赤色の「5」は1ページに表示したい件数なので、適宜変更してください。
...前略...
<mt:Ignore>
<!-- Display comments -->
</mt:Ignore>
<h2 class="comments-header">コメント</h2>
<mt:pageContents count="5">
<mt:Comments>
<mt:CommentsHeader>
<h2 class="comments-header"><$mt:EntryCommentCount singular="コメント(1)" plural="コメント(#)" none="コメント(0)"$></h2>
<div class="comments-content">
</mt:CommentsHeader>
<div id="comment-<$mt:CommentID$>" class="comment<mt:IfCommentParent> comment-reply</mt:IfCommentParent>">
<div class="inner">
<div class="comment-header">
<div class="asset-meta">
<span class="byline">
<$mt:CommentAuthorIdentity$>
<mt:IfCommentParent>
<span class="vcard author"><$mt:CommentAuthorLink$></span>から<a href="<mt:CommentParent><$mt:CommentLink$></mt:CommentParent>"><mt:CommentParent><$mt:CommentAuthor$></mt:CommentParent></a>への返信
<mt:Else>
<span class="vcard author"><$mt:CommentAuthorLink$></span>
</mt:IfCommentParent>
| <a href="<$mt:CommentLink$>"><abbr class="published" title="<$mt:CommentDate format_name="iso8601"$>"><$mt:CommentDate$></abbr></a>
<mt:IfCommentsAccepted>
| <$mt:CommentReplyToLink$>
</mt:IfCommentsAccepted>
</span>
</div>
</div>
<div class="comment-content">
<$mt:CommentBody$>
</div>
</div>
</div>
<mt:CommentsFooter>
</div>
</mt:CommentsFooter>
<mt:pageSeparator />
</mt:Comments>
</mt:pageContents>
<div class="content-nav">
<mt:ifPageBefore>
<span><$MTPageBefore delim="<"$></span>
</mt:ifPageBefore>
<mt:pageLists />
<mt:ifPageNext>
<span><mt:pageNext delim=">" /></span>
</mt:ifPageNext>
</div>
<mt:Ignore>
<!-- Display commenting form if entry/page is accepting comments -->
</mt:Ignore>
...後略...
3.2 小粋空間テンプレートの場合
「コメント」テンプレートモジュールに青色部分を追加します。赤色部分の MTCommentsHeader タグは削除してください。赤色の「5」は1ページに表示したい件数なので、適宜変更してください。
<MTIfCommentsActive>
<div id="comments">
<MTIf name="comment_preview_template">
<$MTInclude module="コメント入力フォーム"$>
</MTIf>
<h3 class="comments-header">コメント</h3>
<mt:pageContents count="5">
<MTComments>
<MTCommentsHeader><h3 class="comments-header">コメント</h3></MTCommentsHeader>
<$MTInclude module="コメント詳細"$>
<MTCommentsFooter></MTCommentsFooter>
<mt:pageSeparator />
</MTComments>
</mt:pageContents>
<div class="content-nav">
<mt:ifPageBefore>
<span><$MTPageBefore delim="<"$></span>
</mt:ifPageBefore>
<mt:pageLists />
<mt:ifPageNext>
<span><mt:pageNext delim=">" /></span>
</mt:ifPageNext>
</div>
<MTUnless name="comment_preview_template">
<$MTInclude module="コメント入力フォーム"$>
</MTUnless>
</div>
</MTIfCommentsActive>
4.その他
同様のページ分割は Paginate プラグインでも可能です。
トナカイを
ステテコを
ブログ記事に挿入したアイテムだけのサムネイル画像一覧を表示する(その2)
以前エントリーした「ブログ記事に挿入したアイテムだけのサムネイル画像一覧を表示する」の別の方法です。
Movable Type 4.x のデフォルトテンプレートのアイテム一覧は、アップロードしたアイテムがすべて表示されます。ブログ記事に挿入した画像だけを表示したくても、ブログ記事と無関係にアップロードしたアイテムが含まれてしまいます。
ブログ記事に挿入した画像のサムネイル画像だけを表示したい場合には、次のように MTAsset タグに tag モディファイアを付与し、プライベートタグを与えます(青色部分)。
<mt:If tag="AssetCount">
<mt:Assets type="image" lastn="10" tag="@entry">
<mt:AssetsHeader>
<div class="widget-recent-assets widget">
<h3 class="widget-header">アイテム</h3>
<div class="widget-content">
<ul>
</mt:AssetsHeader>
<li class="item"><a class="asset-image" href="<$mt:AssetURL$>"><img src="<$mt:AssetThumbnailURL height="70"$>" class="asset-img-thumb" alt="<$mt:AssetLabel$>" title="<$mt:AssetLabel$>" /></a></li>
<mt:AssetsFooter>
</ul>
</div>
</div>
</mt:AssetsFooter>
</mt:Assets>
</mt:If>
あとは、ファイルのアップロード時などで、表示させたい画像のタグフィールドに「@entry」を設定すれば OK です。

「ブログ記事に挿入したアイテムだけのサムネイル画像一覧を表示する」のように全自動ではありませんが、タグを付与しない限り、間違って表示されることはありません。また、プライベートタグを使用するのでタグクラウドにも表示されません。
これからはじめる MovableTypeの本
Movable Type の入門書が1月10日に発売されます。
![]() | これからはじめる MovableTypeの本 <MovableType4.2対応版> やまもと いずみ 技術評論社 2009-01-07 売り上げランキング : 50606 Amazonで詳しく見る by G-Tools |
詳細は、執筆者であるWeb制作ユニット「#fc0(ふじかわまゆこさん・やまもといずみさん)」のブログで紹介されています。
内容は「Movable Type で制作したサイトをお客様に納品した後の(お客様への)レクチャー用」ということなので、サイト製作者向けというよりは、Movable Type を利用してサイトを運営するお客様や、初めて Movable Type に触れるユーザーに役立つ内容と思われます。
シックスアパート・上ノ郷谷太一さんが監修されています。
PowerEdit プラグイン v0.04
先日公開した「PowerEdit プラグイン」をバージョン 4.1 にも対応できるようにしました。また 0.03 でバグがひとつみつかりましたので、あわせて改修致しました。
1.改善内容
- Movable Type 4.1 に対応(4.2 にアップグレードしてもそのまま使えます)
2.問題と修正内容
0.03 の問題および修正内容は次の通りです。
- 本文・追記・キーワードの各フィールドの内容を空にできない問題を修正
3.ダウンロード
最新版のプラグインは下記のページよりダウンロードしてください。今回入れ替えるのは、5項の「PowerEdit.zip」のみです。
4.1 で利用する場合は CMSContext プラグインのインストールも忘れないでください(インストールおよび設定手順は上記の記事に掲載しています)。
メールフォームの不具合等について
当ブログからのメール送信で2点ほど不具合がありましたので、お知らせ致します。
1.メールフォームの不具合
先日の 4.22 から 4.23 へのアップグレードからメール送信ができなくなっておりました。現在は復旧しています。
2.受信メールのスパムフォルダへの振り分け
アップグレード前に、メールフォームより送信頂いたメールのいくつかが、私が利用している So-net の迷惑メールとして認識されてしまっておりました(迷惑メールはスパムフォルダに振り分けています)。このため、頂いたメールに気がつかず、一部の方への返信ができておりませんでした。申し訳ありません。
とりあえず気がついた分につきましては、先ほど返信させていただきました。
3.【お願い】メールによるご質問について
メーフォームにも記載しておりますが、基本的にメールでのご質問は受け付けておりません。不具合を確認したいURLを非公開にしたい場合は、こちらからメールでお送りするようお伝え致します。
申し訳ありませんが、最初のご質問は必ずブログのコメント欄にてお願い致します。該当の記事が見当たらない場合はどの記事にコメントして頂いても結構です。
いずれは質問用のコミュニティを立ち上げるかもしれませんが、今のところ予定はしておりません。
それではよろしくお願い致します。
筆ぐるめ Ver.16 のインストールと Ver.8 データの復元
年賀状の作成には「筆ぐるめ」を毎年使っているのですが、今年も「さあ作ろう(遅い?)」と思ったら、Windows XP を「Windows XP のバックアップ機能」で書いた通り、OS の再インストールを行ってしまって、筆ぐるめは住所録データごと消えてしまってました。
データのバックアップ(というか筆ぐるめのフォルダ構造のままのバックアップ)は一応とってあったので、上記の記事で復元しても正常には起動できず、筆ぐるめのインストールCD-ROMはかなり以前に購入したもので、すでに行方不明になってしまっているため、「今年は(住所を)手入力か...」とあきらめムードで、現バージョンの「筆ぐるめVer.16」を購入することにしました。
が、Ver.16 をダウンロード購入し、インストールしてみたところ、Ver.8.0 の住所録データが復元できることが分かりましたので、以下にその手順を紹介します。ちなみに、Ver.16 で復元が可能なのは Ver.6 以降のデータです。
余談:年賀状について
今年はセミナーなど、ブログ関係で多くの方と名刺交換させて頂きました。こちらからはお出ししないと思いますが、お渡しした名刺に書かれている住所宛に年賀状を頂ければ、(多分)年賀状のお返しはさせて頂きたいと思います。上から目線的発言ですいませんが、遠慮なくお送りください。
筆ぐるめのインストール
本題です。
「筆ぐるめ Ver.16」のセットアップファイルの解凍を開始します(まだインストールではありません)。「インストール」をクリック。
アーカイブの展開が始まります。
「筆ぐるめVer.16 インストール」をクリック。
![]()
「次へ」をクリック。
「使用許諾契約の条項に同意します。」を選択して、「次へ」をクリック。
「旧バージョン筆ぐるめ住所録・レイアウトの変換を行う」を」をチェックして、「開始」をクリック。
作業状況はこのように画面左上に表示されます。

「旧バージョン筆ぐるめ住所録・レイアウトの変換を行う」を」をチェックして、「開始」をクリックすると、このような画面に切り替わります。

「検索する場所」に、旧バージョンの筆ぐるめの最上位のフォルダを指定して、「バックアップするファイルの種類」から、住所録・レイアウトでバックアップしたいものをチェックし、「検索を開始する」をクリック。
検索を開始します。
データをバックアップします。
検索された住所録やレイアウトが表示されるので、Ver16 で利用したいデータにチェックをして、「確定する」をクリック。
これで通常のインストールウィザードが開始します。「次へ」をクリック。
ユーザー名・所属(任意)を入力して「次へ」をクリック。
「はい」をクリック。

インストール先を確認して「次へ」をクリック。
「インストール」をクリック。
インストールは結構時間がかかります。
インストールが完了したら「完了」をクリック。
すぐに起動する場合は、「筆ぐるめ Ver.16 を起動します」を選択して「確認」をクリック。
画面色数(ビット数)が少ない場合は次の画面が表示されます。
私の環境は16ビットだったので、32ビットに変更してみました。

上記とは別に、旧バージョンのデータコンバート(変換)のログ確認のダイアログが表示されます。ログを参照したい場合は「はい」をクリック。

ログが表示されます。
筆ぐるめを起動したところです。無事に住所録が復元されました。
Web Designing (ウェブデザイニング) 2009年 01月号
出遅れましたが、現在発売中の「Web Designing (ウェブデザイニング) 2009年 01月号」に Movable Type 4 の特集が掲載されています。
![]() | Web Designing (ウェブデザイニング) 2009年 01月号 [雑誌] 毎日コミュニケーションズ 2008-12-18 売り上げランキング : Amazonで詳しく見る by G-Tools |
「WebデザイナーのためのMovable Type事例&テクニック集」という特集です。約20ページにわたって、Movable Type を利用して運営されている各サイトのテクニックが紹介されています。
- Introduction
-
- 今、Movable Typeでできること
- Movable Type 事例&テクニック集
-
- MT+Flash/吉本集「螢光TOKYO」
- MT+Ajax/アライアンス・ポート「YCAM 山口情報芸術センター」
- MT+SNS/秋野琢・黒野明子「東京もつ鍋天国」
- MT+JavaScript/アグイジェ「賃貸ガレージハウス Gadget box」
- MT+WebサービスAPI/サクライワタル「つなしまインフォ(綱島マップ)」
また、コラムにはAjax検索・SEOの優位性・いくつかのプラグインが紹介されています。
- COLUMN
-
- 高速検索を可能にするAjax検索のススメ
- SEOにおけるMovable Typeの優位性とは?
- 素晴らしきプラグインの世界
MTファン必見の1冊です。発売されてからあまり日が経っていませんが、街の本屋さんでは品薄のようです。
PowerEdit プラグイン v0.03
先日公開した「PowerEdit プラグイン」0.02 でバグがありましたので改修致しました。
1.問題と修正内容
問題および修正内容は次の通りです。
- 一括編集画面での保存が反映されない問題を修正
間抜けなバグで申し訳ありません。
2.原因
バグが発生した原因は、0.01 から 0.02 の改修時に、「ブログ記事の概要」を省略形で表示されないよう、既存のコードを上書きしたのですが、上書きの初期化処理で設定不足がありました。誤った箇所を備忘録として残しておきます(赤色が不足部分)。
sub init {
my $p = shift;
$p->SUPER::init(@_);
my $core = MT->component('core');
my $r = $core->registry('applications', 'core', 'methods');
$r->{build_entry_table} = \&power_build_entry_table;
}
3.ダウンロード
最新版のプラグインは下記のページよりダウンロードしてください。今回入れ替えるのは、5項の「PowerEdit.zip」のみです。
当ブログの検索フォームへの検索文字列設定方法について(その後)
先日エントリーした「当ブログの検索フォームへの検索文字列設定方法について」で、「検索スパム」と騒いでしまいましたが、原因は検索エンジンの bot からのものでした。
ということで、誤解を招く表現であったことをお詫び致します(動作的にはスパムのようなものですが...)。
下記のトラックバックで勘違いであることが分かりました。ありがとうございました。
で、上記の記事に書かれている対処(robots.txt の設定)を行ったところ、正常な検索も含め、250件/日ほどにおさまってます。robots.txt の設定は次の通りです。
User-Agent: *
Disallow: /[ドキュメントルートからアプリケーションディレクトリまでのパス]/mt-search.cgi
Allow: /
robots.txt はドメインに対応するパス(ドキュメントルート)に配置してください。Disallow に設定する [ドキュメントルートからアプリケーションディレクトリまでのパス] は、当ブログの場合であれば、http://www.koikikukan.com/ に対応するパスなので、
Disallow: /cgi-bin/koikikukan/mt-search.cgi
としています。
同様の記事は他にも結構ありました。
そういう訳で、ブログ検索方法も元に戻しました。
Effective Time プラグイン
Movable Type で、ブログ記事が投稿されてからの経過時間を判定する Effective Time プラグインというものをみつけました。
バージョン 2.661 のときに公開されたものですが、最新のバージョン 4.23 でも動作します。
1.プラグインのダウンロード
下記のサイトにある「Effective Time Plugin」をクリックして、プラグインアーカイブをダウンロード。
HuntingGirledCollective - 経過時間で切り替えるプラグイン
2.プラグインのアップロード・インストール
プラグインアーカイブを展開し、中にある EffectiveTime.pl を Movable Type のアプリケーションディレクトリの plugins ディレクトリにアップロードします。
システム管理画面のプラグイン一覧で、「EffectiveTime.pl」が表示されればインストール完了です。

3.使用方法
このプラグインでは、MTIfEffectively ブロックタグ、MTIfInvalidity ブロックタグを提供します。またローカルモディファイアとして、hours と offset を提供します。使い方は配布元の記事をみてもらえればお分かりになると思いますが、とりあえず簡単に紹介しておきます。
- MTIfEffectively
- ブログ記事の投稿経過時刻が hours モディファイアで指定した時間内であれば、ブロック内を実行します。offset モディファイアを指定した場合はその指定時間分をシフトします。
- MTIfInvalidity
- ブログ記事の投稿経過時刻が hours モディファイアで指定した時間外であれば、ブロック内を実行します。offset モディファイアを指定した場合はその指定時間分をシフトします。
「最近のブログ記事」で24時間以内に投稿されたブログ記事に「New!」を付与するには、次のようにします。
<mt:entries lastn="10">
<mt:entriesHeader>
<div class="side">
<ul>
</mt:entriesHeader>
<li><a href="<mt:entryPermalink />" title="e<mt:entryID />"><mt:entryTitle /></a> <mt:IfEffectively hours="24">New!</mt:IfEffectively></li>
<mt:entriesFooter>
</ul>
</div>
</mt:entriesFooter>
</mt:entries>
なお、再構築を行わないと出力に反映されないので、このプラグインは頻繁に更新を行うようなブログに向いていると思います。
Movable Type 4.25(英語版ベータ)・Motion(ベータ)リリース
Six Apart から Motion のベータ版がリリースされました。Motion は、同時にリリースされた Movable Type Pro 最新版(4.25)と、プラグインおよびテンプレートセット上で動作する、ソーシャルアプリケーションです。
Movable Type をソーシャルアプリケーションに『Motion』のベータを開始
Movable Type で Twitter, Tumblr のようなマイクロブロギングや、FriendFeed のような、ライフストリーミングを行えるようにする Motion のベータテストを開始しました。Motion は、Movable Type Pro と、専用プラグイン、デザインテンプレートのセットで動作します。今回のリリースはベータとなり、英語版のみとなります。正式版の公開時には、日本語にも対応予定です。
以下、Motion の設定や機能を紹介します。
1.Movable Type Pro 4.25 のインストール
Motion のページの下の方にある、「Download Now」をクリック。
フォーマットから tar.gz または zip を選択して、「I accept the License Agreement」をチェックし、「Download Movable Type Motion Beta」をクリック。

以下、日本語化してインストールしてみました。
インストールの最後の手順で、テンプレートセットから「Motion」を選択します。余談ですが「Action Stream」テンプレートセットも追加されています。

2.Motion の機能
Motion テンプレートセットのメインページです。
ブログ記事の投稿画面にアイコンが追加されています。左から「ブログ」「写真」「リンク」「動画などのオブジェクト」「音声」となっています。

例えば、画像のアイコンをクリックすると、ブログ記事タイトル入力フィールド下に、画像アップロード用のフォームボタンが現れます。

画像をアップロードしたところです。

ブログ記事を投稿すると画像がサイドバーに表示されます。サイドバーのパーツは横スクロールボタンがついていて、クリックするとスムーズにスクロールします。

画像などのコンテンツアップロード機能はカスタムフィールドで事前に定義されていました。

これは YouTube の投稿(objectタグをテキストエリアに貼り付け)をしてみたところです。レイアウトを気にせず投稿できます。
メインページ上部にあるサインインを行えば、そのままクイックポスト画面が表示されます。

もちろん Ajax です。

クイックポストで記事が公開されました。

クイックポストにはコンテンツのアップロード機能もついてます。「more options」をクリックすればタグも設定できます。

Action Stream とも連携しています。システム管理画面のユーザ選択後、Twitter や YouTube 等のプロファイルを追加します。

Twitter のアクティビティが取得できました。
メインページにアクティビティが表示されます。

認証方式も格段に増えています。

最後に、Motion のテンプレート一覧です。

WordPress 2.7 日本語版リリースと管理画面の動作について
WordPress 2.7 日本語版がリリースされました。
2.7 について最初に目に留まるのは、新しいインターフェース画面のはずです。全体を通して皆さんの意見を聞き、デザインについてよく考えた結果、明らかにスピードアップした WordPress が完成しました。2.7 では、ほとんどすべてのブログに関わる作業が今までのバージョンより少ないクリックで素早く達成できるでしょう (ここで英語版の新バージョンをダウンロードするか、引き続きお読みください) 。
1.管理画面のインタフェース変更
WordPress ファンの方はすでにご存知と思いますが、2.7 では管理画面のインタフェースが大幅に変更されています。
ダッシュボードでは、メニューの並べ替えや、記事投稿、コメントの返信ができるようになっています。
また、記事一覧からクイック編集もできるようになっています。


2.管理画面が重い?
ということで、色々機能が拡張・改善されていますが、一点気になるのは、管理画面が重くなり、2.6.x までの軽快な操作感が環境によって若干損なわれるようです。
私の Windows のローカルPC環境では、ページ遷移が 2.6.x の半分くらいの速度しか出なくなりました。ただし、CORESERVER ではほとんど差はありません。
同様の記事が見当たらないので私だけかと思いましたが、他にも同じ感想をお持ちの方がいらっしゃいました。
ちなみに Windows のローカル環境では次のようになりました。
| 操作 | 2.6.5 | 2.7 |
|---|---|---|
| 新規投稿画面の表示 | 3s | 6s |
| テーマ選択画面の表示 | 2s | 4.5s |
| 一般設定の表示 | 2s | 4.5s |
Movable Type のアップグレードで旧アプリケーションディレクトリのプラグインを新アプリケーションディレクトリにコピーしない方法
Movable Type の最近の一般的なアップグレード手順は次のようになっています。
- 旧アプリケーションディレクトリをリネーム(mt であれば、mt-- など)
- 新アプリケーションディレクトリ mt を作成
- 新アプリケーションディレクトリに Movable Type をアップロード
- 旧アプリケーションディレクトリにある mt-config.cgi を新アプリケーションディレクトリにコピー
- 新アプリケーションディレクトリの mt.cgi にアクセスしてアップグレード開始
- アップグレード完了後、旧アプリケーションディレクトリの plugins ディレクトリにある(ユーザーが自分で追加した)プラグインを、新アプリケーションディレクトリの plugins ディレクトリにコピー(プラグインによっては旧アプリケーションディレクトリの mt-static/plugins 配下のものも新アプリケーションディレクトリの mt-static/plugins 配下にコピー)
この方法では、手順6の作業(下)が結構面倒です。

という訳でこのエントリーでは、plugins ディレクトリにある、ユーザー追加のプラグインを新アプリケーションディレクトリへコピーする手間を省く方法を紹介します。
現在運用中のアプリケーションディレクトリが存在する状態で説明します。以下の設定を行っておけば、次回以降のアップグレードではプラグインのコピーを省略できます。
1.プラグインディレクトリの作成
アプリケーションディレクトリ以外の任意のディレクトリに、plugins ディレクトリを作成します。例えば、アプリケーションディレクトリが
- /home/www/hogehoge/mt
であれば、
- /home/www/hogehoge/plugins
という風に作成します。
2.プラグインのコピー
アプリケーションディレクトリの plugins ディレクトリにある、ご自身でアップロードしたプラグインを、新しく作成した
- /home/www/hogehoge/plugins
に移動します。元のアプリケーションディレクトリには、ご自身でアップロードしたプラグインを残さないようにしてください。
Movable Type 4.2 のデフォルトプラグインは以下の通りです。これらのプラグインは既存の plugins ディレクトリに置いたままにしてください。
- Cloner
- feeds-app-lite
- Markdown
- MultiBlog
- spamlookup
- StyleCatcher
- Textile
- TypePadAntiSpam
- WidgetManager
- WXRImporter
3.mt-config.cgi の編集
アプリケーションディレクトリにある、mt-config.cgi をダウンロードして任意のエディタで開き、このエントリーのディレクトリ構成の例であれば、ファイルの最後に次の内容を追加します。
PluginPath plugins
PluginPath /home/www/hogehoge/plugins
ここで追加する環境変数 PluginPath は、プラグインディレクトリの位置を示すものです。PluginPath は何行でも記述することができます。
1行目は既存の plugins ディレクトリのパス(相対パス)、2行目に新しく作成した plugins ディレクトリのパス(絶対パス・または相対パス)を設定します。1行目を記述しておかないとデフォルトプラグインが読み込まれません。
2行目を相対パスで記述する場合、このエントリーのディレクトリ構成の例であれば、次のようにします。
PluginPath plugins
PluginPath ../plugins
修正後、元のアプリケーションディレクトリにアップロードし、ブログ管理画面の「システム」→「プラグイン」で、追加した plugins ディレクトリにあるプラグインが表示されればOKです。
以下に、このエントリーのディレクトリ構成の例で、追加した plugins ディレクトリの位置を図示しておきます。

なお、前述した通り、mt-static/plugins 配下にあるプラグインの資材は、アップグレード時に手動でコピーする必要があります(環境変数 StaticWebPath は mt-config.cgi に複数行設定することはできません)。
4.参考
参考サイトは下記です。ありがとうございました。
mt-static/plugins のコピー簡略化は無理っぽいですが、mt-config.cgi のコピー簡略化は環境変数 MT_CONFIG があるので、何とかなるかもしれません。
Movable Type 4.22 から 4.23 へのアップグレード
当ブログを、Movable Type 4.22 から 4.23 へアップグレードしました。変更されているファイルが少ない場合は特定のファイルだけを上書きするのですが、今回は変更ファイルが多かったので、通常のアップグレード手順を紹介します。

アップグレードは個人の責任で行ってください。正常にアップグレードできなかった場合、申し訳ありませんが当ブログに質問を頂いても解決するお手伝いをすることはできません。作業前には1項に示すバックアップ作業などを行い、ブログのバックアップを行ってください。
なお、4.1x から 4.23 にアップグレードされる場合、4.1x と 4.2x のバックアップファイルは互換性がありませんので、ご注意ください。
1.ブログのバックアップ
4.22 の状態でブログのバックアップを取得します。
バックアップした後、正しくバックアップされているかどうか、バックアップファイルを確認した方が良いでしょう。圧縮ファイルでバックアップした場合、バックアップファイルを解凍すれば、XMLファイルなどがテキストエディタで確認できます。
またはバックアップを2回繰り返し、同じサイズになっていれば、経験上大丈夫だと思います。
バックアップはこれ以外にも方法があります。SQLiteであれば、mt-config.cgi に指定してる DBファイルを丸ごとダウンロードしておけば良いでしょう。MySQL であれば、コマンドラインからバックアップを実行するか、phpMyAdmin によるバックアップが可能です。
バックアップはアップグレード前だけでなく、定期的に行いましょう。
2.アプリケーションディレクトリのリネーム
「アプリケーションディレクトリ」は、mt.cgi などがあるディレクトリです。このアプリケーションディレクトリ自体を FTP ツールでリネームして、プログラムを上書きしないようにしています。
例えば、アプリケーションディレクトリ名が
mt
であれば、
mt--
などに変更します。
なお、アプリケーションディレクトリ名を変更した後、一時的にブログ管理画面にアクセスできなくなりますので、注意してください。
3.アプリケーションディレクトリ作成
リネーム前と同じディレクトリを FTP ツールで(同じ位置に)作成します。上の例では、
mt
というディレクトリを作成します。
4.Movable Type 4.23 のアップロード
Movable Type 4.23 のプログラム一式を、アプリケーションディレクトリ配下にアップロードします。
スタティックディレクトリをアプリケーションディレクトリと別のディレクトリに配置している場合は、スタティックディレクトリも手順2~3と同じ要領でディレクトリを作成すると良いでしょう。
5.mt-config.cgi のコピー
旧アプリケーションディレクトリ(mt--)にある mt-config.cgi をFTPツールで一旦ローカルPCにダウンロードし、新アプリケーションディレクトリ(mt)にアップロードします。
この作業を行わずに、うっかり mt.cgi にアクセスすると、新規インストールの動作になってしまう場合があるので注意してください。間違ってアクセスしても、6項のパーミッション変更が行われていなければエラーになります。正常にアクセスできた場合も、ブラウザの操作をそれ以上行わなければ問題ありません。
6.SQLiteのデータベースをコピー(データベースにSQLite/SQLite2を使用している場合)
SQLite を使用していて、データベースファイルが旧アプリケーションディレクトリ(mt--)配下にある場合は、FTP ツールで一旦ローカル PC にダウンロードし、新アプリケーションディレクトリ(mt)配下の同じディレクトリにアップロードします。
SQLite のデータベースファイルがどれか分からない場合は、mt-config.cgi を任意のエディタで開き、Database という項目の右側に書かれている内容が SQLite のデータベースへのパスとファイル名になります。
7.CGIファイルの属性変更
5項でアップロードした、アプリケーションディレクトリ直下にある、各CGIファイル(.cgi)の属性を 644 から 755 や 705 などに変更します。属性が分からない場合は、旧アプリケーションディレクトリの CGI ファイルを参照してください。
8.ブラウザから mt.cgi にアクセス
mt.cgi にアクセスするとアップグレードのチェックが行われ、すぐに完了します。すぐに完了するのは、4.22 と 4.23 ではデータベースのスキーマに変更がないためです。これでブログ管理画面にアクセスできれば完了です。

9.プラグインファイルのコピー
旧アプリケーションディレクトリから必要なプラグインをコピーします。外部のテンプレートセットを利用していた場合は、必ず新しい plugins ディレクトリに外部テンプレートセットのディレクトリを、plugins ディレクトリにコピーしてください。場合によっては mt-static/plugins ディレクトリからのコピーも必要です。
4.1 からアップグレードした場合、下記の2つのプラグインはコア機能に統合されたので、旧ディレクトリからコピーしないでください(4.1からブログを開始した場合、Template Refresh プラグインは含まれていません)。
- Widget Manager
- Template Refresh
以上です。
出ない
はてなブックマークカウンタからブログの新着ブックマークを表示する
2008年11月にはてなブックマークがリニューアルされてから、右サイドバー下に貼り付けてある「はてなブックマークカウンター」のリンクから、このブログの「新着ブックマークのページ」に遷移しなくなり、代わりに「注目エントリー」が表示されるようになりました(「新着ブックマークのページ」が表示されていたと思うのですが、勘違いしていたらすいません)。
上の「はてなブックマークカウンター」をクリックして表示されるページです。
![]()
「新着ブックマークのページ」は、このブログの記事へのリアルタイムなブックマーク状況が確認できることや、ブックマークコメントに書かれた記事の誤りの指摘など、参考にさせてもらうことが少なくないので、新着ブックマークを表示するURLを調べ、「新着ブックマークのページ」が表示されるよう変更しました。
これが変更した「はてなブックマークカウンター」です。見た目は同じですがリンク先を変えています。
上の「はてなブックマークカウンター」をクリックして表示されるページです。
![]()
既知の技ですが、公式サイトのヘルプには掲載されていないようなので、以下に「新着ブックマークのページ」に遷移する方法を掲載しておきます。「ブログ名」「色」の部分は次のサイトを参考に適宜設定してください。
ヘルプに掲載されている「はてなブックマークカウンター」のタグ(赤色が変更対象)
<a href="http://b.hatena.ne.jp/entrylist?url=ブログのURL">
<img src="http://b.hatena.ne.jp/bc/色/ブログのURL" class="bcounter"
alt="この日記のはてなブックマーク数" title="この日記のはてなブックマーク数"></a>
「新着ブックマークのページ」に遷移するタグ(青色が変更後)
<a href="http://b.hatena.ne.jp/bookmarklist?sort=&url=ブログのURL">
<img src="http://b.hatena.ne.jp/bc/色/ブログのURL" class="bcounter"
alt="この日記のはてなブックマーク数" title="この日記のはてなブックマーク数"></a>
Movable Type で「新着ブックマークのページ」に遷移するタグ(青色が変更箇所)
<a href="http://b.hatena.ne.jp/bookmarklist?sort=&url=<mt:blogURL escape="url" />">
<img src="http://b.hatena.ne.jp/bc/色/<mt:blogURL escape="url" />" class="bcounter"
alt="この日記のはてなブックマーク数" title="この日記のはてなブックマーク数" /></a>
WordPress で「新着ブックマークのページ」に遷移するタグ(青色が変更箇所)
<a href="http://b.hatena.ne.jp/bookmarklist?sort=&url=<?php echo urlencode(get_settings('home')); ?>">
<img src="http://b.hatena.ne.jp/bc/色/<?php echo urlencode(get_settings('home')); ?>" class="bcounter"
alt="この日記のはてなブックマーク数" title="この日記のはてなブックマーク数" /></a>
Amazon 2008年11月の注文ランキング
2008 年 11 月の Amazon 注文ランキングです。 10月のランキングでGriffinTechnology iTalk Pro GRI-IP-000063 が1位だったのですが、原因は激安になっていることを書いたら、それが引き金になったのか、11月も2位とダントツの差で売れました。
現在は、定価7480円が54%オフで3,430円になっています。
1位:GriffinTechnology iTalk Pro GRI-IP-000063
![]() | GriffinTechnology iTalk Pro GRI-IP-000063 Griffin Technology 2006-11-10 売り上げランキング : 314 Amazonで詳しく見る by G-Tools |
2位:Movable Type 4.2 パーフェクトガイド
![]() | Movable Type 4.2 パーフェクトガイド 荒木 勇次郎 毎日コミュニケーションズ 2008-07-31 売り上げランキング : 1457 Amazonで詳しく見る by G-Tools |
2位:情報革命バブルの崩壊
![]() | 情報革命バブルの崩壊 (文春新書) 山本 一郎 文藝春秋 2008-11 売り上げランキング : 694 Amazonで詳しく見る by G-Tools |
4位:携帯サイト制作 WEBデザインの新しいルール
![]() | 携帯サイト制作 WEBデザインの新しいルール ファーストビット 翔泳社 2008-10-22 売り上げランキング : 655 Amazonで詳しく見る by G-Tools |
5位:Movable Typeデザインカスタマイズブック MT4.2対応 クリエイターのためのValue Design
![]() | Movable Typeデザインカスタマイズブック MT4.2対応 クリエイターのためのValue Design 下野 宏 ソフトバンククリエイティブ 2008-09-27 売り上げランキング : 3026 Amazonで詳しく見る by G-Tools |
5位:次世代マーケティングプラットフォーム 広告とマスメディアの地位を奪うもの
![]() | 次世代マーケティングプラットフォーム 広告とマスメディアの地位を奪うもの 湯川 鶴章 ソフトバンククリエイティブ 2008-09-27 売り上げランキング : 475 Amazonで詳しく見る by G-Tools |
7位:CMSとして使うMovable Typeガイドブック
![]() | CMSとして使うMovable Typeガイドブック 黒野 明子 翔泳社 2008-03-14 売り上げランキング : 6429 Amazonで詳しく見る by G-Tools |
7位:Movable Type 4.x 本格的CMSサイトを構築するためのMTスーパーテクニック クリエイターが身につけておくべき新・100
![]() | Movable Type 4.x 本格的CMSサイトを構築するためのMTスーパーテクニック クリエイターが身につけておくべき新・100の法則。 加藤 善規 インプレスジャパン 2008-09-12 売り上げランキング : 3547 Amazonで詳しく見る by G-Tools |
7位:Movable Type WEBデザインの新しいルール
![]() | Movable Type WEBデザインの新しいルール 荒木 勇次郎 翔泳社 2007-10-17 売り上げランキング : 88283 Amazonで詳しく見る by G-Tools |
7位:Safe Baby Handling Tips
![]() | Safe Baby Handling Tips David Sopp Running Pr 2005-11-07 売り上げランキング : 55452 Amazonで詳しく見る by G-Tools |
wp-title プラグイン for WordPress
WordPress で title 要素に表示する文字を最適化するプラグインを作りました。「最適化」は書きすぎですが、主観的に「こう出力したい」というのを実現してみました。
具体的には、このプラグインを適用することで、月別アーカイブページの title 要素の表示を改善できます。
デフォルトテーマの月別アーカイブのデフォルト状態のタイトル表示は次のようになります。「12」の部分には「月」が表示されますが、「2008」には「年」がついてません。またセパレータと文字の間隔もまちまちです。個人的には、年と月の間のセパレータはなくても良いと思っています。

このプラグインを利用することで次のように書き換えることができます。

テンプレートタグを少し書き換えれば、次のように年月をブログ名の前に表示することもできます。

また、適用前のように、年と月の間にセパレータを適用することもできます(この変更方法は4項参照)。

日別アーカイブも次のように表示できます。

もちろん、カテゴリーアーカイブにも同じ表示を行えます。厳密にはカテゴリーアーカイブは wp_title() で実現できるのですが、このプラグインは wp_title() の機能を流用しているので、処理を振り分ける必要はありません。
1.wp-title プラグインのダウンロード
下記の wp-title.zip をクリックして、プラグインアーカイブをダウンロード。
2008.12.10 初版
2.wp-title プラグインのアップロード・インストール
プラグインアーカイブを展開し、中にある wp-title フォルダごと、WordPress の wp-content/plugins ディレクトリにアップロード。
2.6.x であれば、管理画面の「停止中のプラグイン」にある「wp-title」の右側の「使用する」をクリックしてください。「使用中のプラグイン」に次のように表示されればインストール完了です。

3.テンプレートの修正
このプラグインでは get_title() というテンプレートタグを提供します。
ご利用のテーマのテーマエディタより、「ヘッダー」をクリックし、テキストエリアにある title 要素に使われているテンプレートタグを書き換えてください。
例えば、wp_title() が使われている場合は、単純に get_title() に書き換えます。パラメータは wp_title() と全く同じですが、月別アーカイブや日別アーカイブのみ、年と月の間(あるいは月と日の間)にセパレータが適用されません。
3.1 デフォルトテーマの場合
変更前
<title><?php bloginfo('name');
if ( is_single() ) {
_e('» Blog Archive', 'kubrick');
}
wp_title(); ?></title>
変更後
<title><?php bloginfo('name');
if ( is_single() ) {
_e('» Blog Archive', 'kubrick');
}
get_title(); ?></title>
冒頭の三つめの画像と同じ表示にする場合
<title><?php
if ( is_single() ) {
_e('» Blog Archive', 'kubrick');
}
get_title(' - ',true,'right'); bloginfo('name');?></title>
3.2 小粋空間テーマの場合
設定内容がテーマに依存するわけではありませんが、次のようにしてください。
変更後
<title>
<?php if ( is_single() ) { ?><?php wp_title(''); ?> - <?php } else { get_title(' - ',true,'right'); } ?><?php bloginfo('name'); ?></title>
4.その他
プラグインファイル wp-title.php の内容を変更すれば、年と月(あるいは月と日)の間にセパレータを適用することもできます。
プラグインファイル wp-title.php の65 行目あたりは次のようになっています。
if ( !empty($m) ) {
$my_year = substr($m, 0, 4) . __('Year','Title') . " ";
$my_month = $wp_locale->get_month(substr($m, 4, 2));
$my_day = intval(substr($m, 6, 2));
$title = "$my_year" . ($my_month ? " $my_month" : "") . ($my_day ? " $my_day" . __('Day','Title') : "");
}
// If there's a month(with separator)
// if ( !empty($m) ) {
// $my_year = substr($m, 0, 4) . __('Year','Title') . " ";
// $my_month = $wp_locale->get_month(substr($m, 4, 2));
// $my_day = intval(substr($m, 6, 2));
// $title = "$my_year" . ($my_month ? "$sep $my_month" : "") . ($my_day ? " $sep $my_day" . __('Day','Title') : "");
// }
// If there's a month(original)
// if ( !empty($m) ) {
// $my_year = substr($m, 0, 4);
// $my_month = $wp_locale->get_month(substr($m, 4, 2));
// $my_day = intval(substr($m, 6, 2));
// $title = "$my_year" . ($my_month ? "$sep $my_month" : "") . ($my_day ? "$sep $my_day" : "");
// }
年と月(あるいは月と日)の間にセパレータを適用するには、次のようにコメントアウトの位置を変更します。
// if ( !empty($m) ) {
// $my_year = substr($m, 0, 4) . __('Year','Title') . " ";
// $my_month = $wp_locale->get_month(substr($m, 4, 2));
// $my_day = intval(substr($m, 6, 2));
// $title = "$my_year" . ($my_month ? " $my_month" : "") . ($my_day ? " $my_day" . __('Day','Title') : "");
// }
// If there's a month(with separator)
if ( !empty($m) ) {
$my_year = substr($m, 0, 4) . __('Year','Title') . " ";
$my_month = $wp_locale->get_month(substr($m, 4, 2));
$my_day = intval(substr($m, 6, 2));
$title = "$my_year" . ($my_month ? "$sep $my_month" : "") . ($my_day ? " $sep $my_day" . __('Day','Title') : "");
}
// If there's a month(original)
// if ( !empty($m) ) {
// $my_year = substr($m, 0, 4);
// $my_month = $wp_locale->get_month(substr($m, 4, 2));
// $my_day = intval(substr($m, 6, 2));
// $title = "$my_year" . ($my_month ? "$sep $my_month" : "") . ($my_day ? "$sep $my_day" : "");
// }
これで次のような表示にすることができます。

次のように、一番下の6行のコメントを無効にすると、オリジナルの wp_title() と同じ振る舞いになります。
// if ( !empty($m) ) {
// $my_year = substr($m, 0, 4) . __('Year','Title') . " ";
// $my_month = $wp_locale->get_month(substr($m, 4, 2));
// $my_day = intval(substr($m, 6, 2));
// $title = "$my_year" . ($my_month ? " $my_month" : "") . ($my_day ? " $my_day" . __('Day','Title') : "");
// }
// If there's a month(with separator)
// if ( !empty($m) ) {
// $my_year = substr($m, 0, 4) . __('Year','Title') . " ";
// $my_month = $wp_locale->get_month(substr($m, 4, 2));
// $my_day = intval(substr($m, 6, 2));
// $title = "$my_year" . ($my_month ? "$sep $my_month" : "") . ($my_day ? " $sep $my_day" . __('Day','Title') : "");
// }
// If there's a month(original)
if ( !empty($m) ) {
$my_year = substr($m, 0, 4);
$my_month = $wp_locale->get_month(substr($m, 4, 2));
$my_day = intval(substr($m, 6, 2));
$title = "$my_year" . ($my_month ? "$sep $my_month" : "") . ($my_day ? "$sep $my_day" : "");
}
つまりこのプラグインは wp_title() のソースコードをほぼそのまま利用して、一部を書き換えているだけです。
5.プラグインファイルのローカライズ
このプラグインでは「年」や「日」という日本語を表示するためにプラグインでローカライズを行っています。
参考サイトは下記です。ありがとうございました。
po ファイルもプラグインに同梱しているので、このプラグインを改造して他のローカライズを行いたい場合にご利用ください。poEDIT を利用して po ファイルを編集すると mo ファイルをはきだします。
- 参考:poEDIT の使い方
Movable Type 4 スタイル用テーマ修正
当サイトで現在配布中の「Movable Type 4 スタイル用テーマ」に一部不具合があったため、修正しました。
修正内容は次の通りです。
- フッタの高さおよび、フッタに表示されていたクレジットバナーを非表示に変更
- メインページ・コメントプレビュー・検索結果でサイドメニュータイトルの内容が空のときに表示される空のタイトルを非表示に変更
- 「最近のコメント」のコメント投稿者のフォントを太字から通常の文字に変更
- RSSのアイコン左に表示されているリストマークを非表示に変更
スタイルの設定方法は元記事の「Movable Type 4 スタイル用テーマ」を参照してください。
実践 Web Standards Design ~Web標準の基本とCSSレイアウト&Tips~
九天社の倒産のため、絶版となっていた「実践Web Standards Design―Web標準の基本とCSSレイアウト&Tips」が技術評論社より再刊行されています。
![]() | 実践 Web Standards Design ~Web標準の基本とCSSレイアウト&Tips~ 市瀬 裕哉 技術評論社 2008-11-29 売り上げランキング : 4253 Amazonで詳しく見る by G-Tools |
内容は次の通りです。再刊行版は適宜加筆・修正され、目次的には「Appendix 4 - CSS3 で新たに定義されるセレクタ」が追加されています。全体の厚さは426ページから448ページになっていますが、用紙の変更で九天社版より薄くなっています。
- 1章 Web Standardsの基本
- 1-1 Web Standardsとは
- 2章 (X)HTMLの基本
- 2-1 HTMLとXHTMLに共通して覚えておくべきこと
- 2-2 HTMLとXHTMLにおける違い
- 2-3 (X)HTMLはまず文章ありき
- 3章 CSSの基本
- 3-1 これだけは守らなければならない書式
- 3-2 心がけるとメンテナンスしやすい書式
- 3-3 CSS管理のコツ
- 3-4 視覚整形フォーマット
- 4章 floatプロパティを利用したレイアウト
- 4-1 寄せと流し込み
- 4-2 重なったブロックボックスにマージン
- 4-3 複数フロートの横並び
- 4-4 ネガティブマージンを利用したレイアウト
- 4-5 floatプロパティを利用したレイアウトの使い分け
- 4-6 フロートしたボックスを含む親ボックスの高さの算出
- 5章 positionプロパティを利用したレイアウト
- 5-1 指定できる4つの配置方法
- 5-2 絶対配置を利用したレイアウト
- 5-3 固定配置を利用したレイアウト
- 6章 実践レイアウト
- 6-1 レイアウトパターン
- 6-2 複合レイアウトで情報を整理したブログページの制作
- 6-3 ボックスを自由に配置したページデザイン
- 7章 XHTML&CSS Tips
- 7-1 トピックパスのマークアップ
- 7-2 outlineプロパティによるドロップシャドウ
- 7-3 Mac OS XのDock風ナビゲーション
- 7-4 CSSによる自動番号付け(カウンタ生成)
- 7-5 CSSでフォトギャラリー
- 7-6 アイコンリモート表示メニュー
- 7-7 CSSを使って画像をポップアップ表示
- 7-8 CSSだけで動作するドロップダウンメニュー
- 7-9 背景画像を利用したロールオーバー効果
- 7-10 visibilityプロパティを利用してimg要素をロールオーバー
- 7-11 さまざまなブラウザでフォントの見栄えを揃えるCSSライブラリ
- 7-12 IE 6以下での子供セレクタの使用
- 7-13 印刷用CSSの作成
- 7-14 line-heightプロパティの指定値
- 7-15 定義リストのdtとddを横並びさせる
- 7-16 背景画像を利用して訪問済みリンクを一工夫する
- 7-17 img要素のサイズをCSSで指定
- 7-18 positionプロパティを利用して要素を画面中央に固定
- 7-19 positionプロパティでフッタを常に画面の下部に固定
- 7-20 行ボックスの高さで垂直センター配置
- 7-21 背景画像を利用した画像置換
- 7-22 リンク先のファイルタイプをCSSで明示する
- 7-23 CSSでフォームをスタイリング
- 7-24 モダンブラウザ向けのCSSハック
- Appendix
- 1 DTDの読み方ガイド
- 2 DOCTYPEスイッチの一覧表
- 3 CSS 2.1 の各プロパティリファレンス
- 4 CSS3 で新たに定義されるセレクタ
元本(下)は絶版のため定価の倍以上の高値がついていますが、コレクターでない方、最新の情報を知りたい方は技術評論社のものをお勧めします。
![]() | 実践Web Standards Design―Web標準の基本とCSSレイアウト&Tips 市瀬 裕哉 九天社 2007-02 売り上げランキング : 94997 Amazonで詳しく見る by G-Tools |
PowerEdit プラグイン v0.02
先日公開した「PowerEdit プラグイン」にバグがありましたので改修致しました。
修正内容は次の通りです。
- ブログ記事編集画面で保存後、「受信設定」のコメント・トラックバックのチェックが外れてしまう問題を修正
プラグインは下記のページよりダウンロードしてください。今回入れ替えるのは、5項の「PowerEdit.zip」のみです。
特定のカテゴリーに属するブログ記事一覧を表示する(改)
Movable Type で、特定のカテゴリーに属するブログ記事一覧を表示するカスタマイズです。
MTEntries タグに category モディファイアを適用するだけでは適正に取得できないケースを、テンプレートタグのカスタマイズによって実現します。
1.MTEntries タグの category/categories モディファイアについて
MTEntries タグには category/categories モディファイアがあり、モディファイアに指定したカテゴリーのブログ記事を取得できます。
ただし、次のようなカテゴリーで、トップカテゴリーの「お知らせ」カテゴリーだけに属するブログ記事を抽出したいと仮定します。
・お知らせ
・イベントA
└ お知らせ
・イベントB
└ お知らせ
この場合、次のテンプレートタグでは、イベントAやイベントBの「お知らせ」カテゴリーに属するブログ記事も対象になってしまいます。
<mt:entries category="お知らせ">
...中略...
</mt:entries>
具体例として、前述の各「お知らせ」カテゴリーに次のブログ記事が属しているとします(●印)。
・お知らせ
●モバイルサイトオープン
●業務提携に関するお知らせ
・イベントA
└ お知らせ
●ソリューションセミナー
●Movable Type 入門セミナー
・イベントB
└ お知らせ
●オフィシャルサイトオープン
●シンポジウム2008
●ホームページリニューアル
サイドバーに表示する「最近のブログ記事」の MTEntries タグに category モディファイアを適用して「お知らせ」を設定すると、次のように表示されます。

余談ですが、イベントAの「お知らせ」カテゴリーに属するブログ記事を抽出したい場合、次のように指定しても、適正に取得できないようです。
<mt:entries category="イベントA/お知らせ">
...中略...
</mt:entries>
2.動作確認バージョン
このカスタマイズは次のバージョンで確認しています。
- Movable Type 4.2x(~4.23)
3.カスタマイズ
サイドバーに設置する場合、次のサブテンプレートを利用してください。
デフォルトテンプレート用
<mt:setVar name="category" value="取得したいブログ記事のカテゴリ名" />
<mt:if tag="blogEntryCount">
<div class="widget-recent-entries widget-archives widget">
<h3 class="widget-header">最近のブログ記事</h3>
<div class="widget-content">
<ul>
</mt:if>
<mt:entries category="$category">
<mt:setVar name="undef(list)" />
<mt:setVar name="count" value="0" />
<mt:entryCategories>
<mt:setVarBlock name="list" index="$count"><mt:parentCategories glue="/"><mt:categoryLabel /></mt:parentCategories></mt:setVarBlock>
<mt:setVar name="count" op="++" />
</mt:entryCategories>
<mt:setVar name="category_flag" value="0" />
<mt:loop name="list">
<mt:if name="__value__" eq="$category">
<mt:setVar name="category_flag" value="1" />
</mt:if>
</mt:loop>
<mt:if name="category_flag">
<li><a href="<mt:entryPermalink escape="html" valid_html="1">"><mt:entryTitle /></a></li>
</mt:if>
</mt:entries>
<mt:if tag="blogEntryCount">
</ul>
</div>
</div>
</mt:if>
小粋空間テンプレート用
<mt:setVar name="category" value="取得したいブログ記事のカテゴリ名" />
<mt:if tag="blogEntryCount">
<dt class="sidetitle">最近のブログ記事</dt>
<dd class="side">
<ul>
</mt:if>
<mt:entries category="$category">
<mt:setVar name="undef(list)" />
<mt:setVar name="count" value="0" />
<mt:entryCategories>
<mt:setVarBlock name="list" index="$count"><mt:parentCategories glue="/"><mt:categoryLabel /></mt:parentCategories></mt:setVarBlock>
<mt:setVar name="count" op="++" />
</mt:entryCategories>
<mt:setVar name="category_flag" value="0" />
<mt:loop name="list">
<mt:if name="__value__" eq="$category">
<mt:setVar name="category_flag" value="1" />
</mt:if>
</mt:loop>
<mt:if name="category_flag">
<li><a href="<mt:entryPermalink escape="html" valid_html="1">"><mt:entryTitle /></a></li>
</mt:if>
</mt:entries>
<mt:if tag="blogEntryCount">
</ul>
</dd>
</mt:if>
このサブテンプレートを利用することで、先のサンプルを次のように表示させることができます。

4.サブテンプレートの解説
上記のサブテンプレートについて、必要な部分のみ抜粋して解説します。
01:<mt:setVar name="category" value="取得したいブログ記事のカテゴリ名" />
02:<mt:if tag="blogEntryCount">
03:<ul>
04:</mt:if>
05:<mt:entries category="$category">
06: <mt:setVar name="undef(list)" />
07: <mt:setVar name="count" value="0" />
08: <mt:entryCategories>
09: <mt:setVarBlock name="list" index="$count"><mt:parentCategories glue="/"><mt:categoryLabel /></mt:parentCategories></mt:setVarBlock>
10: <mt:setVar name="count" op="++" />
11: </mt:entryCategories>
12: <mt:setVar name="category_flag" value="0" />
13: <mt:loop name="list">
14: <mt:if name="__value__" eq="$category">
15: <mt:setVar name="category_flag" value="1" />
16: </mt:if>
17: </mt:loop>
18: <mt:if name="category_flag">
19: <li><a href="<mt:entryPermalink escape="html" valid_html="1">"><mt:entryTitle /></a></li>
20: </mt:if>
21:</mt:entries>
22:<mt:if tag="blogEntryCount">
23:</ul>
24:</mt:if>
1行目の value モディファイアの値(赤色部分)に抽出したいカテゴリー名を設定します。冒頭のカテゴリー一覧から「お知らせ」を抽出したい場合は次のように記述します。
<mt:setVar name="category" value="お知らせ" />
サブカテゴリーを指定したい場合は、カテゴリーの区切り文字を "/" にします。例えば冒頭のカテゴリー一覧からイベントAの「お知らせ」を抽出したい場合は、次のように設定します。
<mt:setVar name="category" value="イベントA/お知らせ" />
2~4行目の MTIf タグで ul 要素の開始タグを出力します。また、22~24行目の MTIf タグで ul 要素の終了タグを出力します。
<mt:if tag="blogEntryCount">
<ul>
</mt:if>
...中略...
<mt:if tag="blogEntryCount">
</ul>
</mt:if>
本来は MTEntries タグ内に MTEntriesHeader タグ・MTEntriesFooter タグを使用して、初回の繰り返しで ul 要素の開始タグ、繰り返しの最後で ul 要素の終了タグを出力するのですが、このサブテンプレートでは MTEntriesFooter タグが正常に動作せず、初回のブログ記事の処理で実行されてしまいます。原因は MTEntries タグの中で色々なテンプレートタグを使っていて、 MTEntriesFooter タグを判定するデータが上書きされてしまっていると推測します。したがってMTEntriesFooter タグは使用せず、MTEntries タグの外側でMTIf タグで ul 要素の終了タグを出力します。それに併せて、MTEntriesHeader タグも使用していない、ということです。
5行目~21行目で MTEntries タグのループがあります。category モディファイアには、1行目で設定した変数 category を設定します。
<mt:entries category="$category">
...中略...
</mt:entries>
6~7行目で利用する変数の初期化を行います。
<mt:setVar name="undef(list)" />
<mt:setVar name="count" value="0" />
配列変数 list は、ブログ記事に属するすべてのカテゴリ名を保持するもので、count は配列変数 list のインデックス用カウンタです。いずれも処理対象のブログ記事が切り替わった時点で初期化します。配列変数 list は初期化しないと、例えば前回の処理でインデックス値 3 まで設定され、今回の処理でインデックス値 2 までしか使われなかったら、前回のインデックス値 3 が処理対象となってしまいます。
なお、undef 関数の場合、MTSetVar タグでも value モディファイアの設定は不要です。
8~11行目で、あるブログ記事が属するすべてのカテゴリーを変数 list に保持します。
<mt:entryCategories>
<mt:setVarBlock name="list" index="$count"><mt:parentCategories glue="/"><mt:categoryLabel /></mt:parentCategories></mt:setVarBlock>
<mt:setVar name="count" op="++" />
</mt:entryCategories>
8行目の MTEntryCategories タグで、ブログ記事が属するすべてのカテゴリー分、繰り返し処理を行います。ブロック内でカテゴリー名を取得しますが、その時、さらに MTParentCategories タグを用いて、処理対象のカテゴリーについて、親カテゴリーからのすべてのカテゴリ名を取得します。親カテゴリーから現在のカテゴリーまでの区切り文字は glue モディファイアを使って "/" を与えます。10行目の MTSetVar タグでは、変数 count の値をインクリメントし、次のカテゴリーの処理のためにインデックス値を更新します。
12~17行目は、設定した配列変数 list に、1行目で設定したカテゴリー名と同じカテゴリー名があることをチェックします。
<mt:setVar name="category_flag" value="0" />
<mt:loop name="list">
<mt:if name="__value__" eq="$category">
<mt:setVar name="category_flag" value="1" />
</mt:if>
</mt:loop>
12行目はチェック処理で利用する変数 flag を初期化します。13~17行目の MTLoop タグで配列変数 list を指定し、14行目で配列変数の値 __value__ と変数 category を比較します。等しければ、変数 flag に 1 を設定します。
18~20行目で変数 flag を判定し、1であれば(=1行目の変数 category に設定したカテゴリーがブログ記事に設定されていれば)ブログ記事タイトルを出力します。
<mt:if name="category_flag">
<li><a href="<mt:entryPermalink escape="html" valid_html="1">"><mt:entryTitle /></a></li>
</mt:if>
当ブログの検索フォームへの検索文字列設定方法について
現在、海外からの当ブログへの検索スパムがひどい状況で、勝手ながら、ここ数日検索機能(テキスト検索・タグ検索)を停止していました。
とりあえず検索スパム対処を行ってみました。これまでと検索方法が若干異なりますので、このエントリーで周知致します。
2008.12.12:IPアドレスの規制を追加しました。タグ検索もIPアドレスで規制しています。
1.検索スパムの状況
当サイトのブログ別のログ(検索状況)は次のような状況です。

ご覧の通り、エントリーから半角英数文字列を無作為に抽出し、検索フォームに入力されています。このようなスパムと思われる検索が、800件/日のペースで、数ヶ月にわたって続いています(スパムでない検索は60件/日ほど)。
皆さんのブログにも検索スパムが飛来している可能性がありますので、ログをチェックしてみてください。
2.検索フォームの入力方法について
現在、検索機能を復旧させていますが、少し細工をしました。入力する検索文字列は下記のように設定してください。
- [検索文字列][半角スペース][このブログ名]
上記のように、検索文字列の最後に必ず「半角スペース(全角スペースでもOKです)+当サイトのブログ名(あなたのブログ名ではありません)」を入力してください。「半角スペース+ブログ名」を入力しないとエラーページに遷移します。
検索したい文字列が2つある場合は次のようになります。
- [検索文字列][半角スペース][検索文字列][半角スペース][このブログの名称]
検索文字列が3つ以上の場合も同じ要領で入力してください。
Movable Type 4.23 リリース
Movable Type 4.23 がリリースされました。セキュリティアップデートですが多くのバグフィックスも含まれています。
[重要] セキュリティアップデート Movable Type 4.23 の提供を開始
Movable Type においてクロスサイトスクリプティングによる脆弱性が確認されました。この問題に対処するため、Movable Type の修正バージョンを公開致します。脆弱性の修正バージョンとなりますので、アップデートを推奨致します。
次のバージョンが修正版としてリリースされています。
- Movable Type 4.23 (Open Source)
- Movable Type 4.23 (Professional Pack, Community Pack を同梱)
- Movable Type Commercial 4.23 (Professional Pack を同梱)
- Movable Type Enterprise 4.23
- Movable Type 3.38
- Movable Type Enterprise 1.56
それぞれの最新版は下記のリンクからダウンロードできます。
- シックス・アパート ユーザーサイト
- Movable Type 3 ユーザーサイト
- ダウンロードサイト (個人ライセンス)
- Movable Type Open Source Project (Movable Type Open Source)
Movable Type Pro の 4.22-ja と 4.23-ja の差分ファイルは次の通りです。ファイルの差し替えではなく、通常の手順にもとづいた Movable Type のアップグレードを推奨します。
- addons/Commercial.pack/templates/professional/recent_entries_expanded.mtml
- addons/Community.pack/lib/MT/App/Community.pm
- addons/Community.pack/lib/MT/Community/CMS.pm
- addons/Community.pack/templates/blog/about_this_page.mtml
- addons/Community.pack/templates/blog/comment_detail.mtml
- addons/Community.pack/templates/blog/entry_metadata.mtml
- addons/Community.pack/templates/forum/category_groups.mtml
- addons/Community.pack/templates/forum/entry_metadata.mtml
- addons/Community.pack/templates/forum/entry_popular.mtml
- addons/Community.pack/templates/forum/entry_table.mtml
- addons/Community.pack/templates/forum/search_results.mtml
- addons/Community.pack/templates/global/password_reset_form.mtml
- addons/Community.pack/templates/global/profile_view.mtml
- addons/Community.pack/tmpl/widget/recent_submissions.mtml
- default_templates/about_this_page.mtml MT-4.23-ja/default_templates/about_this_page.mtml
- default_templates/commenter_confirm.mtml
- default_templates/current_author_monthly_archive_list.mtml
- lib/MT/App/Comments.pm MT-4.23-ja/lib/MT/App/Comments.pm
- lib/MT/App/Search.pm
- lib/MT/App.pm
- lib/MT/ArchiveType/Author.pm
- lib/MT/ArchiveType/Category.pm
- lib/MT/ArchiveType/Individual.pm
- lib/MT/Bootstrap.pm
- lib/MT/CMS/User.pm
- lib/MT/DefaultTemplates.pm
- lib/MT/L10N/ja.pm
- lib/MT/Template/ContextHandlers.pm
- lib/MT/Util.pm
- lib/MT.pm
- mt-check.cgi
- php/lib/archive_lib.php
- php/lib/function.mtcommentauthorlink.php
- php/lib/function.mtcommentreplytolink.php
- php/lib/function.mtentryauthorlink.php
- php/lib/modifier.sanitize.php
- php/lib/MTUtil.php
- php/mt.php
- search_templates/comments.tmpl
- search_templates/default.tmpl
- search_templates/results_feed.tmpl
- search_templates/results_feed_rss2.tmpl
- tmpl/cms/edit_author.tmpl
- tmpl/cms/edit_entry.tmpl
- tmpl/cms/include/header.tmpl
- tmpl/cms/include/list_associations/table_role_view.tmpl
- tmpl/cms/include/list_associations/table_user_view.tmpl
- tmpl/cms/include/users_content_nav.tmpl
- tmpl/cms/widget/blog_stats_comment.tmpl
- tmpl/cms/widget/blog_stats_entry.tmpl
- tmpl/cms/widget/blog_stats_recent_entries.tmpl
- tmpl/comment/profile.tmpl
Movable Type 検索の全角スペースを半角スペースと同じ振る舞いにする(MT4版)
Movable Type の検索フォームで検索文字列を複数入力して、区切り文字に全角スペース(空白)を使用すると、全角スペースは検索文字として認識され、期待しない結果(おそらく検索結果として何もヒットしない)になってしまいます。
この全角スペースを半角スペースと同じ扱いにするためのカスタマイズを紹介します。
このカスタマイズは、Movable Type 3.x でエントリーした「Movable Type 検索の全角スペースを半角スペースと同じ振る舞いにする」を、Movable Type 4 用に調べなおしたものです。ただし、4.22 が最新版の記事のため、4.3 以降では適用されない可能性があります。
1.Search.pm の修正
Movable Type 4 では、~4.1x と 4.2x で修正方法が異なります。ご利用のバージョンを確認して1.1項または1.2項のいずれかを適用してください。
1.1 MT4.0x/MT4.1x の場合
まず、lib/MT/App/Search.pm に下記のパッチを適用してください。
--- lib/MT/App/Search.pm.bak Tue Dec 02 23:56:46 2008
+++ lib/MT/App/Search.pm Tue Dec 02 23:59:17 2008
@@ -149,6 +149,10 @@
|| ( $app->{searchparam}{Type} eq 'tag' ) ) {
if ($q->param('search')) {
$app->{search_string} = $q->param('search');
+ if (($app->{searchparam}{Type} eq 'straight')) {
+ my $delimiter = $app->translate("delimiter");
+ $app->{search_string} =~ s/$delimiter/ /g;
+ }
$app->{search_string_decoded} = MT::I18N::decode(
$app->config->PublishCharset,
$app->{search_string}
パッチが分からない方は lib/MT/App/Search.pm を任意のエディタで開き、下記の青色の4行を追加してください。
...前略...
sub init_request{
my $app = shift;
$app->SUPER::init_request(@_);
...中略...
## Set search_string (for display only)
if ( ( $app->{searchparam}{Type} eq 'straight' )
|| ( $app->{searchparam}{Type} eq 'tag' ) ) {
if ($q->param('search')) {
$app->{search_string} = $q->param('search');
if (($app->{searchparam}{Type} eq 'straight')) {
my $delimiter = $app->translate("delimiter");
$app->{search_string} =~ s/$delimiter/ /g;
}
$app->{search_string_decoded} = MT::I18N::decode(
$app->config->PublishCharset,
$app->{search_string}
);
} else {
$app->{search_string} = $app->{search_string_decoded} = q();
}
}
...後略...
1.2 MT4.2x の場合
まず、lib/MT/App/Search.pm に下記のパッチを適用してください。
--- lib/MT/App/Search.pm.bak Tue Dec 02 23:51:51 2008
+++ lib/MT/App/Search.pm Tue Dec 02 23:52:23 2008
@@ -347,6 +347,8 @@
my $search_string = $q->param('searchTerms') || $q->param('search')
or return $app->errtrans('No search term was specified.');
$app->{search_string} = $search_string;
+ my $delimiter = $app->translate("delimiter");
+ $app->{search_string} =~ s/$delimiter/ /g;
my $offset = $q->param('startIndex') || $q->param('offset') || 0;
return $app->errtrans( 'Invalid value: [_1]', encode_html($offset) )
if $offset && $offset !~ /^\d+$/;
パッチが分からない方は lib/MT/App/Search.pm を任意のエディタで開き、下記の青色の2行を追加してください。
...前略...
sub search_terms {
my $app = shift;
my $q = $app->param;
my $search_string = $q->param('searchTerms') || $q->param('search')
or return $app->errtrans('No search term was specified.');
$app->{search_string} = $search_string;
my $delimiter = $app->translate("delimiter");
$app->{search_string} =~ s/$delimiter/ /g;
my $offset = $q->param('startIndex') || $q->param('offset') || 0;
...後略...
2.ja.pm の修正
lib/MT/L10N/ja.pm を任意のエディタで開き、下記の1行を追加してください。
'delimiter' => ' ',
追加する場所は、似たような記述の近辺であればどこでも構いませんが、とりあえず下から4行目にいれましょう。
...前略...
'Invalid blog_id' => '不正なブログID',
'Clone Blog' => 'ブログの複製',
'delimiter' => ' ',
);
1;
お分かりの通り、検索フォームのクエリーから全角文字を半角文字に直しているだけです。もう少しエレガントな方法がありましたら情報お待ちしております。
2009.10.03
ファイルのパスが誤っていたので修正しました。
チャレンジ! Movable TypeをCMSとして使ってみよう!(第6回 グローバルナビゲーションを仕上げる/トップページに最新ブログ記事一覧を表示させる・第7回 トップページを仕上げる)
またまた遅くなりましたが、フリーランスWebデザイナー・黒野明子さんの gihyo.jp で Movable Type の連載第6回および第7回が公開されています。
チャレンジ! Movable TypeをCMSとして使ってみよう!- 第6回 グローバルナビゲーションを仕上げる/トップページに最新ブログ記事一覧を表示させる
第6回の「グローバルナビゲーションを仕上げる/トップページに最新ブログ記事一覧を表示させる」は、The blog of H.Fujimotoさんの「カテゴリーとフォルダを並べ替えるプラグイン」を利用した、グローバルナビゲーションの表示順序の入れ替え、また、画像つきの6件のリストと、MultiBlog プラグインを利用した、他のブログの最新6件のブログ記事タイトルをトップページに表示するための、プラグインの設定およびサブテンプレートが紹介されています。
チャレンジ! Movable TypeをCMSとして使ってみよう!- 第7回 トップページを仕上げる
第7回の「トップページを仕上げる」は、第6回の画像つきリストをCSSで横並びにする方法、ウィジェットを利用したバナーとタグクラウドの表示を解説されています。CSSの設定は図を使って詳しく解説されているので、同じようなレイアウトを実現したい方は参考になると思います。
私も参考になりました。ありがとうございました。
で、いつものように、「ほげ山くん」と「くれま先輩」が会話形式で進めます。
ブログ記事に挿入したアイテムだけのサムネイル画像一覧を表示する
Movable Type 4.x のデフォルトテンプレートのアイテム一覧は、アップロードしたアイテムがすべて表示されます。ブログ記事に挿入した画像だけを表示したくても、ブログ記事と無関係にアップロードしたアイテムが含まれてしまいます。
ブログ記事に挿入した画像のサムネイル画像だけを表示したい場合には、次のように「アイテム」ウィジェットを改変する必要があります。
<mt:ignore>ブログにアイテムがあれば実行</mt:ignore>
<mt:if tag="AssetCount">
<mt:ignore>変数初期化</mt:ignore>
<mt:setVar name="counter" value="0" />
<mt:setVar name="flag" value="0" />
<mt:blogEntryCount setvar="entry_count" />
<mt:entries lastn="$entry_count">
<mt:entryAssets type="image">
<mt:assetsHeader>
<mt:ignore>フラグが設定されていなければヘッダーを出力</mt:ignore>
<mt:unless name="flag">
<div class="widget-recent-assets widget">
<h3 class="widget-header">アイテム</h3>
<div class="widget-content">
<ul class="widget-list">
<mt:ignore>フラグ設定してこのunless文が実行されないようにする</mt:ignore>
<mt:setVar name="flag" value="1" />
</mt:unless>
</mt:assetsHeader>
<mt:ignore>10アイテムまで表示</mt:ignore>
<mt:if name="counter" lt="10">
<li class="item"><a class="asset-image" href="<$mt:assetURL$>"><img src="<$mt:assetThumbnailURL height="70"$>" class="asset-img-thumb" alt="<$mt:assetLabel$>" title="<$mt:assetLabel$>" /></a></li>
<mt:ignore>カウンタインクリメント</mt:ignore>
<mt:setVar name="counter" op="++" />
</mt:if>
</mt:entryAssets>
</mt:entries>
<mt:ignore>フラグが立っていたらフッターを出力</mt:ignore>
<mt:if name="flag">
</ul>
</div>
</div>
</mt:if>
</mt:if>
赤色部分の数字を変更すれば、表示件数を変更することができます。
2009.08.20
サブテンプレートを一部修正しました。









![週刊 ダイヤモンド 2008年 2/9号 [雑誌]](http://ecx.images-amazon.com/images/I/618AQ1Gth5L._SL160_.jpg)
![Movable Type 4でつくる![最強のブログサイト]](http://ecx.images-amazon.com/images/I/51ZmY72JOZL._SL160_.jpg)












![Web Designing (ウェブデザイニング) 2009年 01月号 [雑誌]](http://ecx.images-amazon.com/images/I/51SZuBcGssL._SL160_.jpg)







