Voxで今日から始めるSNSブログ―vox公式ガイド
Six Apart のサービスのひとつ「Vox」の公式ガイドブックが発売されました。Vox の書籍はおそらくこれが初出版です。
![]() | Voxで今日から始めるSNSブログ―vox公式ガイド シックス・アパート 秀和システム 2007-04 売り上げランキング : Amazonで詳しく見る by G-Tools |
Vox は初心者でも簡単に利用できる無料ブログ・サービスで、「自分の記事や写真・音楽・ムービーを誰に見せるかをコントロールできます。また、ブログデザインは Vox が提供する百種類以上のデザインからお好みのデザインを数クリックで選択でき、すぐに素敵なブログを作れます。さらに、Amazon・YouTube・Flickr, Photobucket, IFilm など各種ウェブサービスと連携し、簡単にその情報を利用できます。*1」
特にプライバシーコントロールは他のブログにない機能で、記事単位だけでなく、写真・音楽・ムービー単位に公開範囲を「インターネット全体」「近所」「友人」「家族」「友人・家族」のいずれかに設定することができます。
つまり他人に読まれたくない記事やデータは公開範囲をコントロールすればいい訳です(その逆もあると面白いかも)し、ストレージサービスを利用しなくても、グループ内で大容量の添付ファイルをやりとりをするというような使い方もできます(1ファイルあたりの上限は画像:10MB、音声:25MB、動画:50MB、1ヶ月のアップロード上限は2GB/月まで)。
そういう訳で、個人的には Vox はブログとSNSの長所を併せた新しいサービスという印象です。この書籍では Vox の基本的な操作方法やデザイン変更、携帯からのアクセス等、利用方法全般について分かりやすく解説されています(下記は目次一覧)。
巻末にはシックス・アパートスタッフのインタビューも掲載されています。
- Chapter 1 Voxを始めよう
- 1-1 ユーザー登録とは
- 1-2 ユーザー登録の手順
- 1-3 ログイン・ログアウト
- 1-4 プロフィールとアカウント情報を編集する
- 1-5 メンバーフォトの追加
- 1-6 招待状を発送する
- 1-7 近所・友だち・家族に追加する
- Chapter 2 ブログを書いてみよう
- 2-1 「今日の質問(QotD)」・「Vox Hunt」とは
- 2-2 ブログに記事を投稿する
- 2-3 文字サイズ、色などのレイアウトを変更するには
- 2-4 記事にアイテムを挿入するには
- 2-6 アイテムを管理する
- 2-7 タグについて
- 2-8 コメントを付けるには
- 2-9 「お気に入り」で気になるアイテムを集めよう
- 2-10 記事の投稿日時を変更するには
- Chapter 3 ブログ画面をデザインしよう
- 3-1 ブログのタイトルとサブタイトル
- 3-2 ブログ画面のコンテンツとデザイン
- Chapter 4 グループを使ってみよう
- 4-1 Voxグループを利用するには
- 4-2 グループを作成する
- 4-3 グループに招待する
- 4-4 グループに記事を投稿する
- 4-5 グループに投稿された最新アイテムをまとめて読む
- Chapter 5 携帯電話でVoxを楽しもう
- 5-1 携帯電話でVoxを使うには
- 5-2 モバイル版Voxにログインするには
- 5-3 モバイル版Voxの概要
- 5-4 モバイル版Voxで投稿する
- 5-5 モバイル設定を行う
- Chapter 6 その他の機能と他社サービスとの連携
- 6-1 メッセージ
- 6-2 VoxWatch
- 6-3 他サービスとの連携
- 6-4 チームVox
- Interview with シックス・アパート
これからブログを始めてみたいと思っている方、Vox の機能を利用して何かやってみたいという方にお勧めの1冊です。
*1:http://www.sixapart.jp/vox/index.html より引用
345万6789アクセス特別企画
このサイトの右下に表示しているカウンタがまもなく 3456789 に到達します。現在のアクセスからするとあと5?6日で超えそうです(3333333 の時はお知らせが間際になってしまったので、今回は早めにお知らせします)。2007/5/5 夜に越えました。
このカウンタはサイト開設当初の2004年5月から設置しているもので、その値はいわゆる「ページビュー」と、隣りに設置している「ビジット」カウンタの中間くらいの粒度で更新されているようです(IPチェックは行っている筈なのでやや閾値が低いビジットと言えるでしょう)。
ということで、3456789 のキリ番をゲットされた方は、カウンタおよびブラウザ内の他の部分を含んだキャプチャ画面をメールでお送り頂ければ、貴サイトを当サイトのエントリーにて紹介させて頂きます。*1
*1:サイト内容によってはお断りする場合があります。予めご了承ください。
リドゥして
「サイドメニューの折りたたみ」でメニューリスト別に状態保持を設定する
「メニューリスト別に折りたたみ状態の保持を設定できないでしょうか」というご要望を頂きましたので、折りたたみスクリプトを修正し、メニューリスト別に状態保持を設定できる(厳密には無効化する)ようにしました。
1.概要
改めて説明致しますと、当サイトで配布しているメニューリストの折りたたみスクリプト menufolder.js には、リストの開閉状態をクッキーを利用して保持し、ブラウザ再起動・ページリロードや他のページにジャンプした際に同じメニューリストがある場合等、前回と同じ状態で表示するという機能があります。
これまでも menufolder.js の設定をカスタマイズすることで状態保持を無効にすることができましたが、スクリプト単位でしか有効・無効を設定できなかったため、今回の改修によりメニューリスト単位で設定できるようにしました。
新しいスクリプトをご利用になる場合、下記の download のリンクよりスクリプトのページにジャンプし、最新版の menufolder.js をダウンロードしてください。
2.メニューリストの状態保持を無効にする
ここではエントリーリストを例にします。下のリストはこれまでの設定内容です。
<div class="sidetitle" id="entryname">
Recent Entries
</div>
<div class="side" id="entrylist">
<MTEntries lastn="10">
<a href="<$MTEntryPermalink$>" title="e<$MTEntryID$>"><$MTEntryTitle$></a><br />
</MTEntries>
</div>
<script type="text/javascript">
FoldNavigation('entry','on',false);
</script>
このリストの折りたたみ状態を保持したくない場合は、起動部分のスクリプト(赤色)の FoldNavigation の部分を FoldNavigationStateless(青色部分) に書き換えてください。
<div class="sidetitle" id="entryname">
Recent Entries
</div>
<div class="side" id="entrylist">
<MTEntries lastn="10">
<a href="<$MTEntryPermalink$>" title="e<$MTEntryID$>"><$MTEntryTitle$></a><br />
</MTEntries>
</div>
<script type="text/javascript">
FoldNavigationStateless('entry','on',false);
</script>
状態を保持する場合はこれまでの設定と変わりません。
3.全てのメニューリストの状態保持をまとめて無効にする
既存機能ですが、全てのメニューリストの状態保持を無効にしたい場合は menufolder.js の中ほどにある
//--------------------------------------------------------
// 状態保持用設定データ
//--------------------------------------------------------
// 状態保持フラグ
// 有効にする:true
// 無効にする:false
var holdState = true;
の赤色部分を
var holdState = false;
に変更してください。
起動関数は FoldNavigation で構いません。
Movable Type のテンプレートを1クリックで切り替えるカスタマイズ(その3:テンプレートを切り替える)
「Movable Type のテンプレートを1クリックで切り替えるカスタマイズ」の3回目は、配布テンプレートを利用するにあたっての事前準備、およびテンプレート切り替えについて記します。
このエントリーを投稿するために、実際に当サイトおよび他サイトで配布されているテンプレートを拝借してテンプレート切り替えを行ってみました。で、手前味噌ですが、
- 「これはいい!」
の一言です。
準備さえ整えばテンプレートをわずか数秒で切り替えられます。再構築の手間を差し引いても、適用するテンプレートが一斉に切り替わるのは爽快です。
下記に当サイトのテンプレートを用意しましたので、もしよろしければ試してみてください。
アーカイブ(利用方法は2項参照)
URL(利用方法は4項参照)
http://www.koikikukan.com/styles/library/
なお動作は Movable Type 3.3x で行っています。3.2x については未確認ですので予めご容赦ください。またいくつかの制約がありますので、ご利用になる前に必ず5項「注意事項」をご覧ください。
1.事前準備
テンプレート切り替えを実現するにあたっての準備です。少し面倒な作業ですが、一度設定してしまえばあとは簡単ですので、是非トライしてみてください。
1.1 StyleCatcher ソースコード修正
まず、StyleCatcher プラグインでスタイルシート以外のテンプレートを読み込めるようにするため、下記のパッチをダウンロードし、plugins/StyleCatcher/lib/StyleCatcher.pm に適用します。パッチについては「パッチをあてる(その1:適用方法)」をご覧ください。
パッチがお分かりにならない場合は、plugins/StyleCatcher/lib/StyleCatcher.pm をダウンロードし、任意のエディタで開いて下記の赤色部分を修正、および青色部分を追加し、保存後、元のディレクトリにアップロードしてください。念のため、ファイルのバックアップ(StyleCatcher.pm.bak がいいです)はとっておきましょう。
# Replacing the theme import or adding a new one at the beginning
my $template_text = $tmpl->text();
my @template_lines = split(/\r?\n/, $template_text);
my $replaced = 1;
my $header = '/* This is the StyleCatcher theme addition. Do not remove this block. */';
:
(中略)
:
# Putting the stylesheet back together again
$tmpl->text(join("\n", @template_lines));
$tmpl->save or return $app->json_error($tmpl->errstr);
my %templates = ($basename . '.css' => "stylesheet",
'main_index.tmpl' => "index",
'master_archive_index.tmpl' => "index",
'individual_entry_archive.tmpl' => "individual",
'category_archive.tmpl' => "category",
'datebased_archive.tmpl' => "archive",
'comment_preview_template.tmpl' => "comment_preview",
'comment_error_template.tmpl' => "comment_error",
'comment_pending_template.tmpl' => "comment_pending",
'search_results_template.tmpl' => "search_template");
require MT::Template;
$url = $app->param('url');
my $user_agent = $app->new_ua;
for my $name (keys %templates) {
$url = $new_url . $name;
my $request = HTTP::Request->new(GET => $url);
my $response = $user_agent->request($request);
next unless $response->is_success;
$tmpl = $templates{$name} eq 'stylesheet' ?
$app->load_style_template($blog_id) :
MT::Template->load({ blog_id => $blog_id, type => $templates{$name} });
$tmpl = MT::Template->load({ blog_id => $blog_id, outfile => 'archives.html' })
if $name eq 'master_archive_index.tmpl';
$tmpl->text($response->content);
my $saveroot = $blog_themeroot ? $blog_themeroot : $sys_themeroot;
$tmpl->linked_file(File::Spec->catfile($saveroot, $basename, $name));
$tmpl->save or return $app->json_error($tmpl->errstr);
}
# Store our current theme information
$app->plugin->set_config_value("current_theme_$blog_id", $basename);
1.2 StyleCatcher 設定
管理画面の「メイン・メニュー > システム・メニュー > プラグイン」 のページで、StyleCatcher と表示された右側にある「設定を表示」をクリック。
中央に設定画面が開くので下記の内容を設定し、「変更を保存」をクリック。
- テーマのルートURL:(修正しない)
- テーマのルートパス:(修正しない)
- Style Library へのURL:「テーマのルートURL(一番上の内容)」を設定
ここでは自サイトにテンプレートセットをアップロードする設定を前提に書いていますが、外部URLを設定して取得する場合は、4項「外部URLを指定してテンプレートセットを取得する方法」を参照ください。
1.3 スタイルライブラリページ作成
アップロードしたテンプレートを StyleCatcher で表示させるために「スタイルライブラリページ」をインデックステンプレートとして作成します。ここでは予めサンプルである当サイトのテンプレートを読み込む設定(link 要素)を加えています。
[テンプレート]-[インデックス]タブのページ右上の[テンプレートを新規作成]をクリックし、次のページで下記を設定。
- テンプレート名:StyleCatcher(←何でもいいです)
- 出力ファイル名:mt-static/themes/index.html
- テンプレートの内容:下記
<?xml version="1.0" encoding="<$MTPublishCharset$>"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<$MTDefaultLanguage$>" lang="<$MTDefaultLanguage$>">
<head profile="http://www.w3.org/2003/g/data-view">
<meta http-equiv="Content-Type" content="text/html; charset=<$MTPublishCharset$>" />
<link rel="theme" type="text/x-theme" href="<$MTStaticWebPath$>themes/koikikukan3/koikikukan3.css" />
<title>Theme Repository</title>
</head>
<body>
</body>
</html>
設定後、保存・再構築します。これで mt-static/themes 配下に index.html が生成されます。
また、新しいテンプレートをアップロードした場合は、このテンプレートに link タグを追加します。例えば hogehoge というテンプレートをアップロードしたら、このテンプレートに、
:
<head profile="http://www.w3.org/2003/g/data-view">
<meta http-equiv="Content-Type" content="text/html; charset=<$MTPublishCharset$>" />
<link rel="theme" type="text/x-theme" href="<$MTStaticWebPath$>themes/koikikukan3/koikikukan3.css" />
<link rel="theme" type="text/x-theme" href="<$MTStaticWebPath$>themes/hogehoge/hogehoge.css" />
<title>Theme Repository</title>
</head>
:
と、青色の行を追加し、保存・再構築します。
2.配布テンプレートのダウンロードとアップロード
ここではサンプルとして下記のテンプレートセットをダウンロードしてください。
ダウンロードしたアーカイブを解凍し、次のディレクトリ構成(青色)になるように mt-static/themes 配下にアップロードします。
mt-static/
themes/
index.html
koikikukan3/
archive.tmpl
category.tmpl
comment_error.tmpl
comment_pending.tmpl
comment_preview.tmpl
index.tmpl
individual.tmpl
master_archive_index.tmpl
search_template.tmpl
koikikukan3.css
3.テンプレート切り替え
いよいよテンプレート切り替えを実行します。
まず StyleCatcher を起動します。管理画面の[テンプレート]で次のページ下に表示された「StyleCatcherでデザインを選ぶ」をクリックします。

(サンプル通りであれば)左ペインに「Theme Repository」が表示されますので、選択状態にすると右ペインにサンプルテンプレート(koikikukan 3 column for changing template)が表示されます。

その画像をクリックし、右下の「デザインを適用」をクリックします。システムメニューから StyleCatcher を起動するとボタン左にブログ選択用のセレクトボックスが表示されますので、テンプレートを切り替えたいブログを選択してから「デザインを適用」をクリックしてください。

「新しいテーマを適用しました」というダイアログが表示されれば完了です。

これで該当ブログのテンプレートが入れ替わっていればOKです。さくらのブログ(スタンダードプラン) + SQLite で試したところ、ボタンをクリックして1秒でダイアログが表示、つまりテンプレートが切り替わりました。
4.外部URLを指定してテンプレートセットを取得する方法
2項は、一旦ダウンロードしたテンプレートを読み込む方法を紹介しましたが、配布サイトのURLを指定することで切り替えることも可能です。ただし、切り替え後のテンプレート修正履歴は再切り替え後には反映されません。
管理画面の「メイン・メニュー > システム・メニュー > プラグイン」 のページで、StyleCatcher と表示された右側にある「設定を表示」をクリック。
中央に設定画面が開くので下記の内容を設定し(3番目の項目が外部URLになります)、「変更を保存」をクリック。
- テーマのルートURL:(修正しない)
- テーマのルートパス:(修正しない)
- Style Library へのURL:外部URLを設定
外部URLには、冒頭に記した当サイトの配布URL
http://www.koikikukan.com/styles/library/
を指定してみてください。通常の StyleCatcher 用のテーマ(KOIKIKUKAN Classic)も表示されますが、「koikikukan 3 column for changing template」を選択してください。
5.注意事項
- 本カスタマイズ前にご利用になっているテンプレートは、テンプレート切り替えにより消去されます。カスタマイズしていないデフォルトテンプレートであればバックアップされているので問題ありませんが、それ以外の場合は、切り替える前に必ずテンプレートのバックアップをとり、保存してください(「その2:テンプレート配布方法」にしたがって保存するのが一番お勧めです)。
- ダウンロードするテンプレートに日本語が含まれている場合、ブログの文字コードが一致している必要があります。当サイトで配布しているテンプレートは utf-8 のみ対応しています。
- 複数ブログを利用している場合も、1.2項の Style Library へのURL は同一です。つまりブログ単位で異なる Style Library へのURLは設定できません(プログラム内部で mt-static のパスを参照している模様)。言い換えると、「1.3 スタイルライブラリページ」も含め、いずれかひとつのブログで設定されていればOKです。
- 1.2項で「テーマのルートURL」「テーマのルートパス」が ?mt-static/themes でない場合は ?mt-static/themes に修正してください(インストールしてから StyleCatcher の設定を触っていなければ心配ありません)。
- その1:概要
- その2:テンプレート配布方法
- その3:配布テンプレート利用方法
Movable Type のテンプレートを1クリックで切り替えるカスタマイズ(その2:テンプレート配布方法)
「Movable Type のテンプレートを1クリックで切り替えるカスタマイズ」の2回目は、テンプレートの配布方法を記します。
「その1:概要」でも書いた通り、テンプレート切り替え機能を実現するにあたって、例えば TemplateCatcher や ThemeChanger といったプラグインを作り、それらで同様の機能を実現しても良い訳です。ただし実装に依存する配布形態・配布方法が複数存在するのは配布サイト・利用ユーザともに好ましくないので、インタフェース部分はできるだけ規定しておきたいという思いがあります。流行らない可能性大ですが。
おおまかな方針としては、StyleCatcher を利用している経緯があるので、配布側の稼動を考慮し、StyleCatcher の方式を踏襲し、既存のテーマ変更との互換性を保つようにしています。
1.配布条件
- URLアクセスまたはアーカイブ形式で配布
- スタイルシートは必須
- テンプレートを全て揃える必要はない
- サムネイルを同梱(StyleCatcher に準ずる)
2.ファイル名付与規則
本機能でサポートするテンプレートおよびテンプレートの各ファイル名は下記の通りです。Movable Type の default_templates 配下のファイル名と同一にしていますが、スタイルシートのみ StyleCatcher のお作法にしたがい、名称が[テーマ名]になります。
| テンプレート名 | ファイル名 |
|---|---|
| メインページ | main_index.tmpl |
| スタイルシート | [テーマ名].css |
| アーカイブページ | master_archive_index.tmpl |
| エントリー・アーカイブ | individual_entry_archive.tmpl |
| カテゴリー・アーカイブ | category_archive.tmpl |
| 日付アーカイブ | datebased_archive.tmpl |
| コメント・プレビュー | comment_preview_template.tmpl |
| コメント・保留 | comment_pending_template.tmpl |
| コメント・エラー | comment_error_template.tmpl |
| 検索結果 | search_results_template.tmpl |
3.ファイル・ディレクトリ構成
下記のファイル・ディレクトリ構成でテンプレートセットを配布します。
[テーマ名]/
[テーマ名].css
archive.tmpl
category.tmpl
comment_error.tmpl
comment_pending.tmpl
comment_preview.tmpl
index.tmpl
individual.tmpl
master_archive_index.tmpl
search_template.tmpl
thumbnail.gif
thumbnail-large.gif
ここで挙げているテンプレートはフルセットの場合であり、前述した配布条件の通り、全てのテンプレートを用意する必要はありません。例えばコメントエラー・コメント保留等を省きたい場合は、それらのファイルがない状態でファイルを配置してください。
また、[テーマ名]ディレクトリの上位のディレクトリに index.html を置けば、通常の StyleCatcher 用リポジトリとしての互換性を保つことができます。要するに、StyleCatcher 用テーマを配布されているのであれば、テーマディレクトリに .tmpl ファイルが追加になるだけという訳です。
さらにこのディレクトリをアーカイブしてユーザに配布することで、ユーザにとっては機能の選択肢がより広がることになります。
4.制限事項
配布テンプレートに全角文字が含まれる場合、ブログの文字コードと一致している必要があります。
2007.04.26 追記
4項を追記しました。
Movable Type のテンプレートを1クリックで切り替えるカスタマイズ(その1:概要)
Category:[リポジトリ]
Tag:[Customize, MovableType, StyleCatcher, Template]
Permalink
各サイトで配布されている Movable Type テンプレートを入れ替えるのは結構面倒ですが、メインページ・スタイルシート・各アーカイブテンプレートおよびシステムテンプレート等、主要なテンプレートを1クリックで切り替えられるようにするカスタマイズをご紹介します。
注:この情報は Movable Type 4.0 まで有効です。4.1 以降は標準機能でテンプレートを切り替えることが可能です。
カスタマイズ記事はできるだけ1エントリーで完結するようにこころがけていますが、長文であることと、配布サイト/利用ユーザのいずれかによって知るべき内容が異なるので、久々にシリーズものとしてエントリーします。
以下の3回に分けて解説します。
- その1:概要
- その2:テンプレート配布方法
- その3:配布テンプレートの取得とテンプレート切り替え
私の勝手な思いでこのカスタマイズを説明していきますが、配布方法に依存する箇所があるため、賛同頂けるテンプレート配布サイトの方々のご協力を頂ければ幸いです(実装はどうにでもなりますが仕様が大事だと思ってます)。
また、記事内容についてのご意見も併せてお待ちしております。
1.現状の Movable Type でのテンプレート入れ替えについて
現在、Movable Type のデフォルトプラグイン StyleCatcher を用いることでスタイルシートの切替が可能ですが、「スタイルシートだけでなく、他のテンプレートも入れ替えられる仕組みはないだろうか?」とお考えになったことはないでしょうか。
StyleCatcher ではテーマ(デザイン)の変更が簡単にできる反面、下記の制約があります。
- (X)HTMLマークアップが固定であるため、カラム増減やナビゲーション、メニューリスト等の追加はユーザ依存
- ベースCSS(
base-weblog.css)との共存 *これはメリットでもありますが - 配布された CSS を変更する場合はテンプレート編集画面ではなく、theme ディレクトリにある外部 CSS を修正
つまり、StyleCatcher のそもそものスタンスが「カスタマイズをせずにブログのデザインを手軽に変更する」ためのもので、そのニーズに合ったユーザには便利な機能です。が、独自のマークアップや異なるカラムレイアウトでテンプレートを提供したいというケースでは、このプラグインの恩恵に預かることができません。
したがって独自にマークアップされた配布テンプレートを利用する場合、ユーザは編集画面を開いてテンプレートをひとつずつコピー&ペーストで入れ替えるか、default_templates 配下のファイルを入れ替えるのが現状と思われます。
また、WordPress や Serene Bach のテンプレート(テーマ)切替機能のように、複数のテンプレートセットを保持・あるいは瞬時に切り替えられる仕組みがないことは、テンプレート入れ替えを躊躇う要因のひとつになっているかもしれません。
2.主な機能
本シリーズのカスタマイズを行うことで下記が可能になります。
- 複数のテンプレートセットをご自身のサイトに保持できます
- テンプレートを簡単に切り替えることができるようになります
- 利用したテンプレートをカスタマイズし、途中で他のテンプレートに切り替えても、それまでにカスタマイズした履歴は保存されるので、再読み込みした時に復活できます
3.仕組み
このカスタマイズでは StyleCatcher を利用します。StyleCatcher ではテーマを配布している外部のURLを指定してテーマを取得しますが、ここではご自身で利用している Movable Type の URL(mt-static/theme)を指定します。
下は従来の StyleCatcher 利用時の動作です。
配布サイトのURLを指定して(?)、表示されたテーマ(?)を選択(?)することで該当のスタイルシートがダウンロードされ、ファイルとして保存されます(?)。テーマファイル(CSS)はテンプレートに直接書き込まれず、@import 文で base-weblog.css とともに外部ファイルとして読み込まれます。

こちらがカスタマイズ後の動作です。
ディレクトリ構成・ファイル名付与規則にしたがったテンプレートを配布サイトからダウンロードし、自サイトにアップロードします(?)。StyleCatcher にはテンプレートをアップロードしたURLを指定し(?)、そこで表示されたテーマ(?)を選択(?)することで、全てのテンプレートをデータベースに読み込み、切り替えます(?)。もちろんテーマファイル(CSS)もテンプレートとして書き込まれます(base-weblog.css へのリンクはありません)。

また、自サイトにアップロードしたファイルをそのままテンプレートの外部ファイルとして関連付けをします。こうすることで、例えば取得したテンプレートAをカスタマイズして、その後他のテンプレートBに切り替えても、テンプレートAのカスタマイズ内容は外部ファイルに残りますので、 StyleCatcher でテンプレートAに再び切り替えた時、以前のカスタマイズ内容を復活させることができます。
なお、図は省略していますが、従来の StyleCatcher 利用と同じように、配布サイトのリポジトリにアクセスしてテンプレートを切り替えることも可能です。ただし常に配布サイトからテンプレートを取得するので、アクセスするURLを切り替えないとカスタマイズ履歴が消滅します(詳細は後述します)。
ダイナミックパブリッシングと併用すれば、まさにデザインをダイナミックに変更することが可能になり、利便性が向上することでしょう。
RSSリーダー比較(ウェブ版)
RSSリーダー(ウェブ版)を比較してみました。このエントリーは下記の記事に触発されて書いたものです。大変参考になり、ありがとうございました。
このエントリーでは上記サイトおよび feedburner の解析結果より、次の4つの RSS リーダーを対象としています。
feedburner の解析結果では、feedpath Rabbit の利用数は他の3サービスに比べ大きく引き離されていますが、個人的に使用していること・リニューアル後の「未読記事一括表示」機能復活で以前より順位が上がったこと等で比較対象に加えています。
評価の○/△/×は機能の有無または使用感等で主観的に判断したものです。評価項目は他にも色々あると思いますので、気がついたところは適宜追加したいと思います。また動作や機能把握に誤りがありましたらご指摘ください。
| 項目 | livedoor Reader | Bloglines | Google Reader | feedpath Rabbit |
|---|---|---|---|---|
| トップページ表示速度 | ○ | △遅い | ○ | ○ |
| 操作感 (折りたたみ・スクロール等) | ○ | ○ | △やや重い | ○ |
| 一覧表示 | △ *1 | △ *2 | ○ | ○ |
| 一覧⇔本文切替 | △ *3 | ○ *4 | ○ *5 | ○*6 |
| 記事スペース | ○ *7 | ◎ *8 | ○ *9 | ○ *10 |
| 未読記事一括表示 | × | ○ *11 | ○ *12 | ○ *13 |
| 過去記事表示 | △ *14 | ◎ *15 | △ *16 | △ *16 |
| OPML インポート/エクスポート | ○ *17 | ○ *18 | ○ *19 | ○ *20 |
- *1:タイトル下に補助情報が表示されるので未読が多いと要スクロール。
- *2:サイト別。上下マージンやや多。
- *3:「c」キー、または上部メニューの「その他」で切り替え。記事単位の折りたたみはできない。ただし動作は速い。
- *4:折りたたみマークやや小。
- *5:タイトルバー部分がクリック可+折りたたみ履歴が分かる。
- *6:タイトル名をクリック
- *7:右ペイン全体
- *8:サイドメニュー非表示可
- *9:右ペイン(上部はタブあり)
- *10:右ペイン(上部にタブ・補助情報あり)・サイドメニュー非表示可
- *11:サイト別表示
- *12:All Itemsクリック
- *13:フォルダ右の[全未読]クリック
- *14:サイト別表示、時間指定不可
- *15:サイト別表示、時間指定可
- *16:一括表示/サイト別表示可、時間指定不可
- *17:[設定変更]-[データのインポート / エクスポート]
- *18:[編集]-[その他]
- *19:[Settings]-[Import/Export]
- *20:インポート:[Feed追加]-OPMLファイル/エクスポート:[環境設定]-[OPMLファイルの出力]
その他、比較対象外の項目です。
| livedoor Reader | Bloglines | Google Reader | feedpath Rabbit | |
|---|---|---|---|---|
| 表示切替方法 | 「c」キー | 表示する記事の長さ:記事全体を表示/要約を表示/ヘッドラインだけを表示 | Expand view/List view | 環境設定:閉じて表示する(見出しのみ)/開いて表示する(見出し + 本文) |
| 未読記事一覧からサイトへのリンク位置 | タイトルまたは「元記事」リンク | タイトル | タイトル右のアイコンまたは本文タイトル | タイトル左のアイコンまたは本文タイトル |
ということで上記のまとめです。どれも一長一短です。
- 快適な操作感:livedoor Reader または feedpath Rabbit
- 広い記事スペース:Bloglines
- 過去記事表示:Bloglines
- 未読記事一括表示:Google Reader または feedpath Rabbit
JavaScript カレンダー修正(春分の日・秋分の日の振替休日対応)
現在公開中の JavaScript カレンダーで「春分の日と秋分の日の振替休日が有効になりません」というご指摘を頂き、スクリプトを修正致しました。
不具合についてこの場をお借りしてお詫び申し上げるとともに、お手数ですが、2007年4月21日以前に当サイトで公開している休日表示付きの各カレンダーカスタマイズをご利用の方は JavaScript カレンダー(dayChecker.js)を差し替えくださいますよう、お願い致します。
ご利用のブログによって修正方法が異なりますので、修正方法につきましては下記の該当部分をご覧ください。
ちなみに、春分の日・秋分の日の直近の振替休日は、2007年9月23日(日)です。休日の状況は下記のページで確認できます。
Movable Type をご利用の場合
JavaScript カレンダー(休日表示付き)の「2.ダウンロード」より dayChecker.js のリンクをクリックしてダウンロードし、現在お使いの dayChecker.js と差し替えてください。
該当記事は下記です。
- Ajax 月送りカレンダー(縦型)
- Ajax 月送りカレンダー(横型)
- Ajax 月送りカレンダー
- 月送りカレンダー(簡易版・横型・休日表示付き)
- 月送りカレンダー(簡易版・休日表示付き)
- 休日表示付きリアルタイムカレンダー(月送り・横型) for Movable Type
- 休日表示付リアルタイムカレンダー for Movable Type
Serene Bach をご利用の場合
JavaScript カレンダー(休日表示付き)の「2.ダウンロード」より dayChecker.js のリンクをクリックしてダウンロードし、現在お使いの dayChecker.js と差し替えてください。
該当記事は下記です。
WordPress をご利用の場合
下記の記事よりプラグインを再ダウンロードして入れ替えるか、JavaScript カレンダー(休日表示付き)の「2.ダウンロード」より dayChecker.js のリンクをクリックしてダウンロードし、/plugins/realtime-calendar 配下にある dayChecker.js と差し替えてください。
FC2 ブログをご利用の場合
下記の記事の「1.休日表示用カレンダースクリプトのダウンロード」より download のリンクをクリックして dayChecker.js をダウンロードし、現在お使いの dayChecker.js と差し替えてください。
livedoor ブログをご利用の場合
livedoor ブログの場合、スクリプトに下記の青色部分を追加してください。
:
case 3:
if(year > 1979 && year < 2100) {
if (day == parseInt(20.8431 + 0.242194 * (year - 1980) - parseInt((year - 1980) / 4))) {
return true;
}
if (day == (parseInt(20.8431 + 0.242194 * (year - 1980) - parseInt((year - 1980) / 4)) + 1) && isSunday(year, month, day - 1)) {
return true;
}
}
break;
:
case 9:
if (day == (getFirstMonday(year, month) + 14)) {
return true;
}
if(year > 1979 && year < 2100) {
if (day == parseInt(23.2488 + 0.242194 * (year - 1980) - parseInt((year - 1980) / 4))) {
return true;
}
if (day == (parseInt(23.2488 + 0.242194 * (year - 1980) - parseInt((year - 1980) / 4)) + 1) && isSunday(year, month, day - 1)) {
return true;
}
}
break;
:
該当記事は下記です。
アンドゥする
feedpath Rabbit の「未読一括表示機能」復活
先日エントリーした「feedpath リニューアル」で
feedpath をご利用の方はご存知と思いますが、リニューアルされた feedpath Rabbit では私が唯一使っていたこの「未読記事を一括で一覧表示」機能が廃止されました。
と書きましたが、小川さんはじめ feedpath ファンの皆様の声が届いたようで、復活しました。
Feedリーダー・Blogエディタの改修と新機能追加を行いました。
フォルダ単位(タグ単位)での未読一覧表示の機能を追加しました。 サイドバーのフォルダ名(タグ名)の横にあります |全未読| リンクをクリックすると購読サイトフォルダ(タグ)に登録されているサイトの新着一覧を表示します。
上の引用にも書かれている通り、フォルダ右に新しく表示された | 全未読 | というリンクをクリックすると、以前のバージョンと同じようにフォルダ配下の未読記事がまとめて表示されます。
feedpath Rabbit を使う理由
feedpath Rabbit リニューアル後、他の RSS リーダーをいくつか試してみましたが、結局そのまま feedpath Rabbit を継続して使っています。理由は feedpath Rabbit の表示が快適、タイトルのみの一覧表示が他の Web 型 RSS リーダーと比較して一番見やすい、等です。
できればサイト単位で「何時間前まで記事を読む」というセレクトボックスも復活して頂ければ最高なのですが(これは操作を誤って未読履歴を消してしまった時に大変重宝していました)、まずはユーザの声に耳を傾け、リニューアルから1週間で機能復活くださったフィードパス社のスタッフの皆様に感謝致します。
そういう訳で feedpath Rabbit と、一度失って改めて便利だったことが分かった「未読一括表示機能」を強くお勧めします。
WordPress テーマ(テンプレート)のパンくずリスト修正
当サイトで配布中の WordPresss テーマ(テンプレート)のパンくずリストに不具合がありましたので、本エントリーで適正に表示するための修正方法を紹介します。なお配布テーマの方は修正済です。
2007年4月20日以前にテーマをダウンロードされた方は、下記の対処を実施することで正常に表示されるようになります。
1.問題点
エントリーに複数のカテゴリーを割り当てている状態でカテゴリーアーカイブを表示させると、パンくずリストの表示内容が、ページの最初に表示されたエントリーの1つ目のカテゴリー名が一律表示されてしまいます。
たとえばある記事に「A」と「B」と言うカテゴリーを割り当て、「B」のカテゴリーアーカイブを表示させると、パンくずリストは
Home > A
と表示されてしまいます。また、カテゴリー数が 0 の親カテゴリーの表示も正常ではありません。
2.原因
カテゴリー情報を取得するための起動関数誤り(というか知識不足)。
3.対処方法
管理ページの [表示] - [テーマエディタ] で右側のリンクより「アーカイブ」を選択し、下記の赤色部分を青色の内容に入れ替えてください。
変更前
<?php /* If this is a category archive */ if (is_category()) { ?>
<div class="crumbs"><a href="<?php echo get_settings('home'); ?>/">Home</a> >
<?php $cat = get_the_category(); $cat = $cat[0];
if($cat->category_parent) { echo (get_category_parents($cat->category_parent, true, ' > ', false)); }
echo $cat->cat_name; ?>
変更後
<?php /* If this is a category archive */ if (is_category()) { ?>
<div class="crumbs"><a href="<?php echo get_settings('home'); ?>/">Home</a> >
<?php $cat = $wp_query->get_queried_object();
if($cat->category_parent) { echo (get_category_parents($cat->category_parent, true, ' > ', false)); }
echo $cat->cat_name; ?>
</div>
4.プラグイン
有名な「パンくずリストプラグイン」もあります。
「追記文章の折りたたみ 2.0」でIE7の不具合を解消する
Category:[CSS, 折りたたみ, 折りたたみ, 追記]
Tag:[CSS, JavaScript, scriptaculous]
Permalink
「追記文章の折りたたみ 2.0」というカスタマイズで scriptaculous の Effect.BlindDown および Effect.BlindUp を利用していますが、「IE7.0では追記部分がずれて表示される」という情報を頂きました。また、折りたたみリンクにある実体参照していない文字「«」「»」の文字化けも同時に確認されていますので、このエントリーで解消方法を示します。
とりあえず IE7 をお持ちの方はサンプルの修正前後の折りたたみ動作をご確認ください。
ここでは Movable Type をサンプルにしていますが、FC2 ブログ版の「追記文章の折りたたみ 2.0 for FC2 ブログ」も同様の対処が必要と思われます。
1.表示がずれる不具合の解消
確認したところ、Effect する対象のオブジェクト(この場合は追記部分全体)を括る要素や親要素に margin が指定されている場合、IE7では margin 指定が無効になるケースがあるようです。
Movable Type のデフォルトテンプレートではこの事象が発生しなかったので、CSS の差分を確認したところ、公開テンプレートについては下記のように青色の width プロパティを設定することで回避できました(WindowsXP + IE7/Firefox2/Opera9 で確認しています)。XML宣言の有無は関係ありません。
/* エントリー */
.entry {
width: auto;
margin: 0 5px 15px;
color: #36414d;
background: #ffffff;
font-size: 12px;
line-height:150%;
word-break: break-all;
}
.entry-content {
width: 100%;
}
注:.entry の width プロパティに 100% を与えると他の不具合が生じます。
2.文字化けの解消
折りたたみリンクにある「«」や「»」は実体参照しないと IE7 では文字化けが発生します。それぞれ「«」および「»」に修正してください。
以上です。
なおすべてのケースを調査している訳ではないので、適用しているテンプレートの CSS によって事象や対処が異なるかもしれません。
Web Designing 2007年5月号(記事執筆)
Category:[書籍]
Tag:[Amazon, Book, MovableType, WebDesigning, Writing]
Permalink
本日(4月18日)発売の Web Designing 2007年5月号での特集「Movable Type カスタマイズガイド」の中で、8ページにわたって Movable Type のカスタマイズ記事を執筆させて頂きました。
![]() | Web Designing (ウェブデザイニング) 2007年 05月号 [雑誌] 毎日コミュニケーションズ 2007-04-18 売り上げランキング : 1104 Amazonで詳しく見る by G-Tools |
特集内容は次の通りです。
- Movable Typeのテンプレートの仕組みを知る/主要テンプレートタグ一覧
- スタイルサンプルに学ぶCSSカスタマイズテクニック
- デフォルトテンプレートをWeb標準に準拠させるには?
- 他と差をつけるためのMovable Typeカスタマイズ術
- Movable Typeでここまでできる、デザインアイデアが光るサイト
ちなみに、Web Designing 誌としては意外にも、Movable Type の特集を組んだ号はこれが初めてらしいです。私は4番目の「他と差をつけるためのMovable Type カスタマイズ術」というコーナーで、MTタグやCSS・JavaScript を組み合わせた4つのカスタマイズ記事を担当させて頂きました。
ネットで調べたところ、@Style さんが「デフォルトテンプレートをWeb標準に準拠させるには?」に寄稿されていました。
また、特集とは別に「Movable Type Step by Step」という新連載も始まっており、Movable Type ファンや MT でサイトを構築されている方にとっては必読ではないでしょうか。
この企画に声をかけて頂け、大変光栄です。Web Designing 編集長の馬場様、夜中のメールにいつも速やかに対応くださり、また素敵な画像を提供してくださった編集部・山本様、そしてスタッフの皆様、この場をお借りしてお礼申し上げます。ありがとうございました。
333万3333アクセス特別企画
このサイトの右下に表示しているカウンタがまもなく 3333333 に到達します。現在のアクセスからすると今週末辺りに超えそうです。気がつくのが遅くなりましたが、本日未明から午前中に超えそうです。4/18 朝に超えました
このカウンタはサイト開設当初の2004年5月から設置しているもので、その値はいわゆる「ページビュー」と、隣りに設置している「ビジット」カウンタの中間くらいの粒度で更新されているようです(IPチェックは行っている筈なのでやや閾値が低いビジットと言えるでしょう)。
ということで、3333333 のキリ番をゲットされた方は、カウンタおよびブラウザ内の他の部分を含んだキャプチャ画面をメールでお送り頂ければ、貴サイトを当サイトのエントリーにて紹介させて頂きます。*1
*1:サイト内容によってはお断りする場合があります。予めご了承ください。
Movable Type 3.35 日本語版リリースと 3.34 日本語版との差分
Movable Type 3.35 日本語版がリリースされました。
本日より、Movable Type 3.35日本語版 (以下3.35-ja) の提供を開始いたします。 3.35-jaの主な修正点は、3.34以降に発見されたセキュリティ上の不具合への対策と、インストールの簡略化です。 既存のユーザーの皆さまは、アップグレード後に手作業が必要になります。詳細は下記をご参照ください。
同時に Movable Type Enterprise 1.53日本語版もリリースされています。
Movable Type Enterprise 1.53日本語版の提供を開始
1.Movable Type 3.35-ja の変更点
Movable Type 3.34-ja から Movable Type 3.35-ja の変更点は次の通りです。
- インストール作業の簡略化
- コメント・プレビューでクロスサイトスクリプティングを許す脆弱性の不具合修正
- convert-dbおよびmt-db2sql.cgiで文字化けする可能性の不具合修正
- MTDateタグでutc属性を利用すると夏時間の間に不正な日付が出力される不具合修正
- テンプレートの名前カラムのサイズを拡張(そういえばこれ不便でした)
2.アップグレード後の手修正
なお、今回のアップグレードでは手作業による修正が必要です。
今回のスクリプト実行を許す脆弱性の修正は、テンプレートに対して行われています。そのため、ソフトウェアをアップデートするだけでは、修正が適用されません。お客様の環境で、以下の手順でテンプレートを手動修正していただく必要があります。
詳細は元記事にもありますが、こちらでもざっくり紹介しておきます。
修正箇所は、コメント・プレビューテンプレートにあるコメント投稿フォーム部分の下記の input 要素の MTCommentPreview●●タグ(赤色)、
<input id="comment-author" name="author" size="30" value="<$MTCommentPreviewAuthor$>" />
<input id="comment-email" name="email" size="30" value="<$MTCommentPreviewEmail$>" />
<input id="comment-url" name="url" size="30" value="<$MTCommentPreviewURL$>" />
に青色の encode_html 属性を追加します。
<input id="comment-author" name="author" size="30" value="<$MTCommentPreviewAuthor encode_html="1"$>" />
<input id="comment-email" name="email" size="30" value="<$MTCommentPreviewEmail encode_html="1"$>" />
<input id="comment-url" name="url" size="30" value="<$MTCommentPreviewURL encode_html="1"$>" />
当サイトのテンプレートをご利用の場合、コメント・エラーテンプレートにも同様の修正を行ってください。
3.Movable Type 3.34 日本語版との差分
アップグレードで「全ファイル上書きは面倒」という方のための差分情報です。
Movable Type 3.34-ja と Movable Type 3.35-ja のファイルを比較したところ、129の差分ファイルと、4つの新規ファイルがありました(削除されたファイルは0)。差分ファイルについては前回同様、ほとんどバージョン管理システムに記録されるタイムスタンプ情報の変更のみでした。
ということで目視確認したところ、下記の差分24ファイル + 新規4ファイルを上書きアップロードすれば 3.35 へのアップグレードが可能と思われます(多分)。個人的には日本語版として利用するのであればローカライズ機能の多言語用ファイルと新規インストールを簡単に実行する Wizard 機能を除いた、青色のファイルのみでいいと思います(間違ってたらご指摘ください)。
変更分
default_templates/comment_preview_template.tmpl
index.html
lib/MT/App/Wizard.pm
lib/MT/App.pm
lib/MT/Bootstrap.pm
lib/MT/L10N/de.pm
lib/MT/L10N/es.pm
lib/MT/L10N/fr.pm
lib/MT/L10N/nl.pm
lib/MT/Template/ContextHandlers.pm
lib/MT/Template.pm
lib/MT.pm
mt-db2sql.cgi
mt-wizard.cgi
php/lib/MTViewer.php
php/lib/function.MTDate.php
php/mt.php
tmpl/wizard/complete.tmpl
tmpl/wizard/configure.tmpl
tmpl/wizard/mt-config.tmpl
tmpl/wizard/optional.tmpl
tmpl/wizard/packages.tmpl
tmpl/wizard/start.tmpl
tools/convert-db
新規追加分
php/lib/l10n_de.php
php/lib/l10n_es.php
php/lib/l10n_fr.php
php/lib/l10n_nl.php
上記の全ファイルを Movable Type 3.34-ja に上書きし、正常なアップグレードと全再構築およびテストページが表示されるところまでは確認しましたが、差分ファイルのみによるアップグレードはご自身の責任で行ってください。
OA チェア(サンワサプライ SNC-L8)購入
先週末、狭い部屋にもかかわらず念願の OA チェアを購入しました。品名は SANWA SNC-L8 です。
![]() | OAチェア SNC-L8 サンワサプライ 売り上げランキング : Amazonで詳しく見る by G-Tools |
1.OAチェア購入のきっかけ
以前は自分で座る椅子のことなど全く興味がなかったのですが、次のようなことをきっかけにして次第に購入意欲が湧いてきました。
1.1 インターネットカフェ利用
少し前、外出先で時間をもてあました時にインターネットカフェを初めて利用しました。その時はインターネットさえ利用できれば良かったので、正直なところそれ以外のことでネットカフェに何か期待している訳ではありませんでした。
ところがいざ入ってみると、個室の静かな空間に低座面で後傾のいわゆる「リラックスチェア」でゆったりくつろげる空間を堪能。で、あまりの心地良さに「自宅でもゆったりした状態でネットしてみたい!」と思った次第です。
1.2 椅子に座る時間が長くなった
ブログを始めてからネットライフが大きく変化し、ディスプレイに向かう時間が格段に増えました。またデスクトップPCとディスプレイはOAラック(というかパイプラック)に据え置いており、基本的に椅子に座った状態でネットしています。
これまで使ってた椅子はインテリアショップで購入した、背もたれつきのちょっと小粋(笑)な木製。これも座りやすくて結構気に入っているのですが、ネットカフェで味わった、あの「だらーっ」とした姿勢でディスプレイを眺めることはできませんし、カスタマイズやご質問の回答で煮詰まった時に手を上に伸ばして後ろに反り返ることもできません。やや緊張した状態が持続してしまう訳です。
つまり、ちょっと大袈裟ですが、ネットライフの変化で「座る」時間が日常生活の中で多くを占めるようになり、その時間を少しでも快適な状態で過ごすのは大事ではないか、と感じ始めたのがもうひとつの大きな理由です。
2.購入するOAチェアの条件
ネットカフェに置かれていたリラックスチェアは大型で移動ができないタイプなので、次のような条件で選ぶことにしました。
- キャスターつき
- 頭部まであるハイバックの背もたれ
- 深いリクライニングが可能
当初はメッシュタイプやエルゴノミクス系がいいかなと思ってました。またネットで調べているとハーマンミラーのアーロンチェアも相当良さそうだったのですが、ビジネスユースらしく条件から外れるため、見送りました。
という訳で大型家電量販店に足を運び、実際に座って確認した結果、SANWA の「SNC-L8」になりました。
3.SNC-L8 を選んだ理由
大きな理由は次の3つです。
- 最初の条件を全て満たしている
- 座り心地が良い
- 肘掛けを折りたたむことができる
2点目の座り心地や体にフィットする感じは個人的に大変気に入ったのですが、それに加え3つめの「肘掛けが折りたためる」が購入の決め手になりました。具体的には肘掛がそのまま後方に倒れるようになっており(写真下)、折りたためることでOAラックに収納しやすくなるのはもちろん、あぐらをかきやすい・横向きに座れる等、座り方のバリエーションが倍増します。
通常の状態
![]()
折りたたんだ状態
![]()
全ての製品を調べた訳ではないのですが、量販店のOAチェアコーナーで肘掛が折りたためたのはこの製品だけでした(他にもあったらすいません)。
また最近一般的になっている「背面・座面シンクロロッキング」も装備されています。これはリクライニングに併せて座面も傾く、という機構です。背面・座面は同じ角度で傾くのではないので、深くリクライニングすると肘掛けが背面からちょっと遠くなってしまいますが、肘掛を折りたたむ途中で止める(カチッと止まる訳ではありませんが適度な重みがある)ことで、深いリクライニングでも結構いい具合に肘をのせることができます。
肘掛は上下の微調整が可能。角度の調整まではできませんが、ネジで取り付ける際に位置を調整すれば僅かながら幅を調整することもできます。
「腰の負担を和らげるランバーサポート機能」も装備されており、腰の位置にあわせた上下の可動が可能です(背面に隠れる形て装備されてまして、購入した後で気がつきました)。
張地/本革張り(裏面・側面は合成皮革)で、背面にもたれた時のほのかな皮の香りもなかなかいい感じです。
定価52500円。実勢価格は27000円程度なので個人的には良い買い物だったと思います。
4.不満
基本的には申し分ない製品なのですが、肘掛けを折りたたむ時に押し込むボタンがたまに押し込めなくなります。これが唯一の不満です。ボタンを何回か押すか、やや強めに押すと大丈夫のようですが、この点については是非改善して頂きたいところです。
5.OAチェア購入で気をつけること
と色々書きましたがそれほど念入りに調べた訳ではなく、半ば衝動買いでした。それでも購入する際には次の点には気をつけた方がいいかな、と思いましたのでメモ。
- どこかどれだけ調節できるか
- 販売されているOAチェアは、ものによってはかなり細かい部分まで(特に肘掛)微調整できるようですので、気になる方は色々調べると良いでしょう。
- どのくらい座るか
- 店頭等で座った瞬間は良く思えても、長時間座ると腰が痛くなる等、経過時間で印象が変わる可能性もあります。ネットで注文するにしても、まずは実物に座ってみることが大事です。
- どこで使うか
- 部屋の中で使うのであれば素足やスリッパだと思いますので、店頭で座った時にも同じ状態になるよう、靴を脱ぐといいかもしれません。
6.製品リンク
WordPress に Movable Type 風の「Syndicate this site」を表示する
WordPress に、Movable Type の以前のバージョンで表示されていた RSS フィードのリンク「Syndicate this site」を表示する方法です。ご質問を頂きましたので、大変遅くなりましたが本エントリーにて紹介致します。
スクリーンショットは WordPress Default テーマへの設定例です。
1.サイドバーの修正
1.1 WordPress Default テーマの場合
テーマエディタでサイドバーの編集画面を開き、最後の方に下記の青色部分を追加します。
<?php } ?>
<li class="syndicate"><a href="<?php bloginfo('rss2_url'); ?>">Syndicate this site (XML)</a></li>
</ul>
</div>
1.2 当サイト配布テーマの場合
テーマエディタでサイドバーの編集画面を開き、最後の方に下記の青色部分を追加します。
</li>
<li style="margin-top:25px"><a href="<?php bloginfo('rss2_url'); ?>">Syndicate this site (XML)</a></li>
<li><a href="http://www.koikikukan.com/"><img src="<?php echo get_settings('home'); ?>/wp-content/themes/koikikukan3/images/koikikukan.gif" alt="koikikukan" title="koikikukan" width="128" height="22" /></a></li>
</ul>
</div>
</div>
2.スタイルシートの設定
WordPress Default テーマの場合、テーマエディタでスタイルシート編集画面を開き、最後の方に下記のスタイルを設定します。
.syndicate {
margin-top: 25px;
}
雨天試合で
エントリー・アーカイブの一部が表示されない不具合のお詫び
先日、ニュース欄にて「2007/04/07のエントリーが正常に表示されないため現在削除しています。」というお知らせを致しましたが、調査したところ、ダジャレカテゴリーのエントリー・アーカイブの直近20エントリー位が全て真っ白になる状態が数日続いておりました。
原因は、最近エントリー・アーカイブ本文下に「関連記事」という一覧を新たに掲載したのですが、その中で利用しているPHPスクリプトのエスケープ処理に不具合があったため、一覧にエスケープが必要なタイトルが表示されているとPHPが正常に処理されず、結果的に真っ白なページが表示される状態になっていました(メインページやカテゴリー・アーカイブでは問題なく表示されます)。
RSS リーダーで購読されている方でアンカーを辿ってこられた場合、直接エントリー・アーカイブにジャンプするため、そこで真っ白なページに遭遇してしまうことになります。大変ご迷惑をおかけ致しました。
現在は回復しています。関連記事一覧も正常に表示されるようになりましたが現在は削除しています。
他のサイトを訪問して、ページが 404 ではなく単に真っ白になるようであれば、そのページはPHPエラーが発生している可能性があります。特に個人サイトの場合、運営者本人がエントリー投稿後すべての関連ページを確認する可能性は低く、要するに「気がついていない状態」が少なくないのではないかと思われます。
今回のPHPエラーでページが真っ白になるという事象は、コンテンツ自体も空の head 要素と body 要素、そして一部の要素しか存在しません。
具体的には下記のようなマークアップになります。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=shift_jis"></HEAD>
<BODY></BODY></HTML>
それでいてメインページや他のアーカイブページからはリンクが設定されているので、検索エンジンからインデクシングの対象とみなされます(Sitemap も同様)。
Yahoo! 検索では404/503 エラー含め、こういったページのチェックがかなり厳しい(=SEOに影響する)ように思われます。Google Analytics を確認したところ、この不具合が発生した少し後から Yahoo! 検索からのアクセスが若干下がったように感じました。
という訳で、カスタマイズされている方は今回のように真っ白になるページがないよう気をつけましょう(自戒の念を込めて)。
feedpath リニューアル
4月9日、feedpath が feedpath Rabbit としてリニューアルしました。
feedpath は当サイトのフィード購読者では livedoor Reader/Bloglines/Google Feedfetcher/Firefox Live Bookmarks/FreshReader に続く、第6位の RSSリーダー(Web型)です。
これまでの購読スタイル
私がたまたま RSS リーダーを使い始めたのがこの feedpath でして、以前のバージョンの feedpath では次のような方法で購読していました。
- デフォルトに用意された「未分類」フォルダに購読したいサイトのURLをどんどん登録(自分で作成したフォルダもありましたがほとんどはこのフォルダに登録)
- 未読記事が検出されると「未分類」フォルダの右側に未読記事数が表示されるので、そのフォルダをクリック
- クリックするとフォルダ内に登録されているサイトの未読記事のタイトルが右ペインに一覧表示
- 読みたい記事のタイトルをクリックして折りたたまれた本文を表示させ、それを直接読むか、あるいはサイトの記事ページへジャンプ
ほとんどのサイトをひとつのフォルダにまとめていたので、1クリックで未読記事がずらりと表示され、その中から気になるタイトルの記事だけを素早く拾い読みできます。
この簡単明瞭な「まとめて読む」という方法が自分に一番合っていたようで、「これが当たり前」という感覚で快適なネットライフを送ってました。
「未読記事を一括で一覧表示」機能の廃止
2007.04.20 「未読記事を一括で一覧表示」機能が復活しました。(関連記事)
feedpath をご利用の方はご存知と思いますが、リニューアルされた feedpath Rabbit では私が唯一使っていたこの「未読記事を一括で一覧表示」機能が廃止されました。
新しいバージョンにも以前と同じように「未分類」フォルダがありますが、以前と異なり、このフォルダをクリックするとフォルダに登録しているサイトの一覧が表示され、サイトをクリックすることで右側に記事一覧が表示されるという、livedoor Reader などと同じ方式に変更されています。
後で気がつきましたが、フィードパス社のサイトで下記のようなお知らせがあり、その中で該当機能廃止(3項)の記述がありました。
【メンテナンス】本日(4月9日)、feedpath Rabbit(フィードパス・ラビット)をリリースいたしました。
旧 feedpath からの仕様変更点 1.未読から既読になるタイミングの変更 2.スマートサイドバー機能の一部変更 3.フォルダ内の購読サイトの未読記事を一括で一覧表示する機能の廃止 4.feedpathウィジェットで通知しているフォルダ名をクリックするとFeedリーダートップページに遷移
大変便利な機能だったのですが、そう思っているのは私だけかと思ったら、この変更に関して同じ思いの方が大勢いらっしゃいました。
執筆者の小川浩さんはフィードパス株式会社の元COOで、記事本文では feedpath 全体について言及されたものですが、コメント・トラックバック欄を読まれればこの「未読記事を一括で一覧表示」機能がどれだけ多くの人に活用されていたかを改めて知ることができました。
そういう訳で、フォルダ内にあるサイト別にクリックしなければ RSS を購読できなくなってしまいましたが、
- 未読記事サイトはフォルダ内の先頭に移動して表示
- 未読記事一覧表示はタイトルのみ
という2点があることは助かりました。
理想の RSS リーダー
初期の feedpath そのもので、それに慣れてしまったというのもありますが、私自身が一番便利だと思う理想の RSS リーダーは次のような条件を全て満たしているものです。
- Web型(どこからでも使える&既読状況が反映される)
- フォルダに登録したサイトの未読記事を1クリックで一括表示(楽)
- 表示された一覧はタイトルのみ表示する(スクロール量が少なく、読みたい記事だけを素早くみつけられる)
- タイトルをクリックすると本文が表示される(サイトにジャンプする必要がない)
- レスポンスが良い(スクロールが軽い等)
- 「×時間前」「×日前」という選択で既読したものを再度読むことができる *サイト別にこれができればなお良し
前出の小川さんの記事で「残念」「他のRSSリーダーに移行します」という反応が数多くあったということは、同じ思いの隠れたユーザはさらに多く存在するのではないかと思われます。
言い換えれば、こういう RSS リーダーがローンチされれば大きなシェアを獲得できるかもしれません。
feedpath がリニューアルされたことでユーザビリティが色々と向上した面もあると思われます。そういう点に言及しないまま特定の機能のみについて一方的に要望することは身勝手な行為と思いますが、リニューアルされた feedpath Rabbit に「未読記事を一括で一覧表示する機能」が復活することを願い、このエントリーを投稿致しました。
2007.04.13 追記
「理想の RSS リーダー」の条件に6項目目を追加しました。
2007.04.20 追記
「未読記事を一括で一覧表示」機能復活について記述を追加しました。
コメントとトラックバックを分けて表示する for WordPress(その2:タイトルを非表示にする方法)
前回エントリーした「コメントとトラックバックを分けて表示する for WordPress(その1)」では、記事に対しコメント・トラックバックがない場合でも「コメント」および「トラックバック」のタイトルを非表示にすることができません。
ということで本エントリーでタイトルを非表示にする方法を紹介します。このカスタマイズで下記のような動作になります。
- コメント・トラックバックとも0件の場合、コメントタイトル・トラックバックタイトルを非表示
- コメントが0件の場合:コメントタイトルを非表示
- トラックバックが0件の場合、トラックバックタイトルを非表示
下記は当サイト配布のテンプレートでのカスタマイズ例です。シングルポスト本文下のトラックバックURL・トラックバック・コメント・コメントフォームが上記のそれぞれのケースでどのように表示されるか参考にしてください。
本エントリーでは公開テンプレートをサンプルにして説明しておりますが、非表示にする仕組みを3項で説明していますので、他のテンプレートでも同様の機能を実装することが可能です。
なお本エントリーのカスタマイズを実施する前に「コメントとトラックバックを分けて表示する for WordPress(その1)」の3.1項までの作業は完了させておいてください。
このエントリーは元記事の3.2項の表示方法を変更する説明のみです。
1.プラグインの修正
WordPress の管理画面にログインし、[プラグイン] - [プラグインエディタ] をクリックし、右側にある「プラグインファイル」より「Trackping Separator」をクリックします。
そして下記の青色部分を追加します。
//This function has the same effect as template function comments_number(), but it return only the number of comments. Track/Ping backs are not included.
function comments_only_number($no='', $one='', $many='') {
global $wpdb, $tablecomments, $post;
$comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE comment_post_ID = $post->ID AND comment_type = '' AND comment_approved = '1'");
$cnt = count($comments);
if (!$cnt)
echo $no;
elseif ($cnt == 1)
echo $one;
else
echo str_replace("%", $cnt, $many);
}
function get_comments_only_number($no='', $one='', $many='') {
global $wpdb, $tablecomments, $post;
$comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE comment_post_ID = $post->ID AND comment_type = '' AND comment_approved = '1'");
$cnt = count($comments);
if (!$cnt)
return $no;
elseif ($cnt == 1)
return $one;
else
return str_replace("%", $cnt, $many);
}
2.コメントテンプレートの入れ替え
ここでは公開テンプレート用の comment.php を丸ごと入れ替える手順で説明します。下記のいずれかのリンクをクリックしてコメント用テンプレートをダウンロードします。
解凍した中にある comments.php を任意のエディタで開きます。
そして WordPress の管理画面にログインし、[表示] - [テーマエディタ]で「コメント」を選択、comments.php の内容を丸ごとテキストエリアの内容と入れ替え、保存してください。
3.非表示にする方法
下記のそれぞれのPHPソースのように、0件の時に非表示にしたい部分を青色部分のコードで括ります。
3.1 コメントが0件の時に非表示にする
<?php if (get_comments_only_number('0', '1', '%') != '0') { ?>
:
<? } ?>
3.2 トラックバックが0件の時に非表示にする
<?php if (trackpings('count') != '(0)') { ?>
:
<? } ?>
トラックバック件数取得はプラグインの実装をそのまま利用できるのですが、コメント件数の取得ができなかったため、1項でソースコードを追加しています。
もう少し適切な実装があるかもしれませんがとりあえず。
コメントとトラックバックを分けて表示する for WordPress(その1)
WordPress デフォルト状態では、投稿情報や個別記事でのコメントとトラックバックが別々に表示されない仕様になっています。別々に表示されるブログツールやブログサービスを利用された方が WordPress に移行されると、この表示に違和感があるかもしれません(逆に便利と感じるかもしれません)。
このエントリーでは他のサイトでも数多く紹介されている、コメントとトラックバックを独立して表示させるカスタマイズを紹介します。
2009.08.13 追記
本記事には一部不具合があるため、「コメントとトラックバックを分けて表示する for WordPress(改)」をご覧ください。
1.プラグインのダウンロード
下記のサイトよりの「Download」にある Trackping Separator. を右クリックしてプラグインファイルを trackpings.php という名前でダウンロードします。

2.プラグインのアップロード・有効化
ダウンロードした trackpings.php を /wp-content/plugins 配下にアップロードします。その後、WordPress の管理画面にログインし、[プラグイン] で Trackping Separator が表示されていると思いますので、一番右にある「有効化」のリンクをクリックし、緑色の表示になればOKです。

3.テンプレートの修正
WordPress の管理画面にログインし、[表示] - [テーマエディタ]で以下の各テンプレートを修正します。
3.1 インデックス/アーカイブ/検索結果/シングルポスト
インデックス/アーカイブ/検索結果/シングルポストの各テンプレートに投稿者情報(投稿時間・カテゴリー等)がある場合は、 comments_popup_link で検索し、
<?php comments_popup_link('No Comments', '1 Comment', '% Comments'); ?>
というタグを見つけ、下記のように変更します。変更前のタグの内容はご利用のテンプレートによって若干異なりますのでご注意ください。
WordPress 2.5 以上 + プラグインバージョン 2.0 以上の場合
<?php comments_popup_link('Comments (0)', 'Comments (1)', 'Comments (%)'); ?> | <a href="<?php the_permalink() ?>#trackback" title="Trackback" class="trackacklink">Trackbacks (<?php echo trackpings('count'); ?>)</a>
WordPress 2.4 以前 + プラグインバージョン1.1.1の場合
<?php comments_only_popup_link('Comments (0)', 'Comments (1)', 'Comments (%)'); ?> | <a href="<?php the_permalink() ?>#trackback" title="Trackback" class="trackacklink">Trackbacks (<?php echo trackpings('count'); ?>)</a>
なお、シングルポストではコメント数の表示の正常性が確認できておりません。シングルポストで動作を有効にする場合、プラグインバージョン1.1.1であれば、下記(抜粋)の赤色部分、
function comments_only_popup_link($zero='No Comments', $one='1 Comment', $more='% Comments', $CSSclass='', $none='Comments Off') {
global $id, $wpcommentspopupfile, $wpcommentsjavascript, $post, $wpdb;
global $comment_count_cache;
if (! is_single() && ! is_page()) {
if ( !isset($comment_count_cache[$id]))
:
(略)
:
echo '</a>';
}
}
}
を削除またはコメントアウトすれば動作するようです。ただしあえてこのような実装になっているので、コメントアウトまたは削除することでシングルポストやゲストブックの他の部分に何らかの影響があるかもしれません(この点につきましては未確認です)。
またシングルポスト自体にはコメント本文とトラックバック本文が表示されるので、当サイトでの配布テンプレートのように投稿者情報を本文下に表示している場合は、投稿者情報からコメント・トラックバックの表示自体を削除しても良いかもしれません。
3.2 コメント
ここでは公開テンプレート用の comment.php を丸ごと入れ替える手順で説明します。下記のいずれかのリンクをクリックしてコメント用テンプレートをダウンロードします。
解凍した中にある comments.php を任意のエディタで開きます。
そして WordPress の管理画面にログインし、[表示] - [テーマエディタ]で「コメント」を選択、comments.php の内容を丸ごとテキストエリアの内容と入れ替え、保存してください。
4.参考・関連リンク
2007.04.11 追記
Trickster さんより頂いたコメントを元に、3.1項のシングルポストの記述を修正しました。
2008.08.03 追記
プラグインバージョン 2.0 以上の変更方法を追加しました。
Flash カレンダープラグイン(3.00 対応版) for Serene Bach
当サイトで公開中の「Flash カレンダープラグイン for Serene Bach」をバージョンアップ致しました。
このプラグインは、Serene Bach で、Kinarie&May さんが配布されている Movable Type 用の Flash カレンダーを使えるようにするためのプラグインですが、配布元の Kinarie&May さんが Movable Type 用の Flash カレンダーをバージョンアップされ、「MT用横型フラッシュカレンダー3.00」を公開されていました(トラックバックで知りました)。
頂いたトラックバックでも「これまでのプラグインでは正常に動作しない」ということが書かれてましたので、早速試してみたところ、バージョンアップされた Flash カレンダーは読み込むためのXMLファイルのフォーマットが大幅に変更されてました。したがって、以前のFlash カレンダープラグインでは フラッシュカレンダー3.00 は利用することができません。
ということで、今回バージョンアップに対応したプラグインを新たに作成しました。Kinarie&May さんは以前のカレンダーもそのまま配布されているようですので、お好きな方をお選びください。
当サイトのテンプレートではどのブログツールか分かりづらいので、Serene Bach テンプレート配布サイトとして有名な宵闇書房さんの「grayish」をサンプルにさせて頂きました。
左は Flash カレンダー適用前のスクリーンショットです(クリックすると全体が表示されます)。
1.プラグインのダウンロード
下記のリンク先にある FlashCalendarHandler.zip または FlashCalendarHandler.lzh をクリックして、プラグインのアーカイブをダウンロードしてください。
FlashCalendarHandler.zip / FlashCalendarHandler.lzh
2007.04.10 Ver 2.00 公開
2007.04.18 Ver 2.01 XMLファイルが正常に生成されない不具合を修正
2007.05.28 Ver 2.02 EUC-JP版でXMLファイルが正常に生成されない不具合を修正
2007.05.28 Ver 2.03 本文・追記のCDATA化・タイムゾーンが適正に収集されない不具合を修正
2007.06.04 Ver 2.04 channel 要素が付与されない不具合を修正
2.プラグインのアップロード
ダウンロードしたアーカイブを解凍し、中にある FlashCalendarHandler.pm を plugins ディレクトリ直下に、resource/ja/flashcalendarhandler.txt を、同じディレクトリの構成があると思いますので、flashcalendarhandler.txt のみを ja 配下にアップロードしてください。
アップロードの後、Serene Bach の管理画面を起動し、「環境設定」→「プラグイン」をクリックし、プラグイン一覧に FlashCalendarHandler.pm が表示されていることを確認し、一番右のチェックボックスをチェックして右下の「利用する」をクリックしてください。
3.テンプレートの設定
3.1 フラッシュカレンダー表示用 object タグの作成
Kinarie&May さんのサイトにある「MT用横型フラッシュカレンダー3.00」のページを参考に、フラッシュカレンダー表示用 object タグを下記の手順で作成します。
- swf ファイルのダウンロード(設置方法1)
- swf ファイルのアップロード(設置方法2)
- ソース(Object タグ)の作成(設置方法4)
「設置方法3」は Movable Type のための説明ですのでスキップしてください。
そして作成した object タグを、HTMLテンプレートのカレンダーを表示したい部分に貼り付けてください。
最後の「Object タグの作成」で、「XMLフォルダアドレス」を入力する項目があります。このアドレスには index.html までのURL(例:http://user-domain/)と
http://user-domain/xml/
と、青色で示したファイル名 xml ディレクトリを加えた内容を入力してください。最後の"/"をお忘れなく。
このディレクトリはFlash が読む込むためのXMLファイルを保存するディレクトリで、プラグインが自動生成します。
以前のバージョンでは calendar.xml というファイルをひとつだけ生成していましたが、3.00 対応では年月分のXMLファイル(yyyy_mm.xml)を生成する必要があります(2007年4月のエントリー情報が含まれるファイル名は "2007_04.xml" となります)。
そのため、xml ディレクトリを作成し、メインページがあるディレクトりが煩雑にならないようにしています。
設定画面の「設置場所」は「通常使用」を選択してください。デザイン・カラーはお好みに合わせて修正してください。
3.2 フラッシュカレンダー用XML出力の独自ブロック
下記の独自ブロック(青色)をベースHTMLテンプレートの任意の位置に貼り付けてください。例は </body> の直前に設定した場合です。
注:個別記事用HTMLテンプレートを利用されている場合も、ベースHTMLテンプレートのみに設定してください。
<!-- BEGIN flash_calendar -->
<!-- END flash_calendar -->
</body>
</html>
これは、3.1項で設定した XML ファイルを出力するためのタグです。このファイルは swf ファイルが読み込む XML ファイルで、ページ上には何も表示されません。
4.ページの再構築
タグを貼り付けた後、インデックス(または全体)のページ再構築を行います。ブログに Flash カレンダーが表示されればOKです。スタイルは適宜設定してください。
表示されない場合、index.html があるディレクトリに xml ディレクトリおよびその配下に yyyy_mm.xml という年月別のファイルが作成されていることを確認してください。ファイルの有無で下記のいずれかの原因が考えられます。
- 作成されている場合:3.1項の「ソース(Object タグ)の作成」で設定内容に誤りがある可能性があります。
- 作成されていない場合:プラグインの設定または独自ブロックの設定に誤りがある可能性があります。
yyyy_mm.xml というファイルがひとつでも生成されていれば、Object タグで swf ファイルおよび yyyy_mm.xml を読み込む動作はブログの動作と関係ありませんので、簡素な HTMLページ を作り、そこに Object タグを貼り付けて Flash が表示されるかどうか確認してみてください。
5.swf ファイルのキャッシュについて
エントリー投稿や再構築によって yyyy_mm.xml が更新されることは確認済ですが、ブラウザを更新してもカレンダー表示が更新されない場合があります。この原因は、yyyy_mm.xml を取得する swf ファイル自体がキャッシュから取得されてしまうようです。
これは利用しているレンタルサーバやブラウザの設定に依存するようです。
毎回最新の情報を取得するのであれば「ブラウザのキャッシュをクリアする」を参考にしてみてください。
6.参考:動作の仕組み
Flashカレンダーは、記事タイトル一覧と投稿日が記述された XML を Flash が読み込む元データとしてカレンダーを表示します。
Movable Type ではカレンダー表示用のタグとユーザが作成できるテンプレートを利用すればXMLを簡単に出力できますが、Serene Bach にはユーザがテンプレートやXMLファイルを出力する機能がないためプラグインで実現しました。
2007.04.18
バグ修正に伴い 2.01 をリリースしました。
2007.05.28
バグ修正に伴い 2.02 をリリースしました。
Fast Search でカテゴリーの絞込み検索をする
Category:[ダイナミックパブリッシング, 検索]
Tag:[Customize, MovableType, Plugin, Search]
Permalink
先週紹介した「Movable Type で高速検索を実現する Fast Search プラグイン」ではオプションとしてカテゴリーの絞込み検索を行うことができます。
このエントリーでは Fast Search の検索フォームにカテゴリー選択のプルダウンメニューを追加する方法をご紹介します。
プラグイン配布元ではカテゴリーで絞込みを行う場合は、検索フォームに、
<input type="hidden" name="category" value="5" />
というような input 属性を追加する説明がありますが、カテゴリー ID はプルダウンメニューから設定できるようにします。
1.デフォルトテンプレートの場合
リストの青色部分が Fast Search の検索フォームに追加した箇所です。
<div class="module-search module">
<h2 class="module-header">検索</h2>
<div class="module-content">
<form method="get" action="<$MTBlogURL$><$MTFastSearchScript>">
<input type="hidden" name="IncludeBlogs" value="<$MTBlogID$>" />
<label for="search" accesskey="4">ブログを検索: </label><br />
<input id="query" name="query" size="20" />
<select name="category">
<option value="0">全カテゴリーを検索</option>
<MTCategories>
<option value="<$MTCategoryID$>"><MTParentCategories glue=" > "><$MTCategoryLabel$></MTParentCategories></option>
</MTCategories>
</select>
<input type="submit" value="検索" />
</form>
</div>
</div>
2.公開テンプレートの場合
<div class="side">
<form method="get" action="<$MTBlogURL$><$MTFastSearchScript>">
<input type="hidden" name="IncludeBlogs" value="<$MTBlogID$>" />
<label for="search" accesskey="4">ブログを検索: </label><br />
<input id="query" tabindex="5" accesskey="t" name="query" size="20" value="" /><br />
<select name="category">
<option value="0">全カテゴリーを検索</option>
<MTCategories>
<option value="<$MTCategoryID$>"><MTParentCategories glue=" > "><$MTCategoryLabel$></MTParentCategories></option>
</MTCategories>
</select>
<input type="submit" tabindex="6" accesskey="s" value="Search" />
</form>
</div>
3.注意事項
サンプルで追加したプルダウンメニューは、サブカテゴリーの左側に、">" をセパレータとして親カテゴリーを表示していますが、現実的にはカテゴリー名全体が横に長くなる場合が少なくないと思われます。横に長くなり過ぎると、プルダウンメニューがサイドメニューからはみ出す可能性があります。
カテゴリー名がはみ出さないようにするには、サブカテゴリーのみ表示するように、
<option value="<$MTCategoryID$>"><MTParentCategories glue=" > "><$MTCategoryLabel$></MTParentCategories></option>
の部分を
<option value="<$MTCategoryID$>"><$MTCategoryLabel$></option>
に変更してください。
次世代ウェブ グーグルの次のモデル
ITmedia に掲載された、佐々木俊尚氏の「ネットベンチャー3.0」全20回の連載が書籍化されたものです(厳密には、連載が書籍化に至るまでのワンクッション)。
![]() | 次世代ウェブ グーグルの次のモデル 佐々木 俊尚 光文社 2007-01-17 売り上げランキング : 22085 Amazonで詳しく見る by G-Tools |
内容は、ブロードバンドによりネット利用スタイルやインターネットにおけるビジネスモデルが劇的に変化し、その結果 Web2.0 という潮流が生まれ、それが今後どのように進化していくのか。ロングテール・SNSの新たなフェーズ、膨大なデータの海から必要な情報を巧みにすくい上げる技術、Web1.0 の時代を牽引してきた企業の今後、そして Web2.0 を牽引するネットベンチャーの動向等が記されています。
以下、いつものように登場サイトのリンクと、サイトの特徴となる文言をピックアップしておきます。
- 第2章 進化 - 復古運動としての Web2.0
- 第3章 変化 - 「地主制度 2.0」と楽天の岐路
- 楽天市場:巨大ポータル企業の Web2.0 への転換
- 第6章 鉱脈 - 「リアル世界」に進出する日本の検索エンジン
- like:画像による静止画像検索
- 第7章 進出 - 「無料経済」下の収益モデル
- mF247:アテンションエコノミーの世界で新たなビジネスモデルを目指す音楽配信サイト
- 第8章 打破 - キーワードは「リスペクト」
- プレスブログ:ブロゴスフィアにおけるバイラルマーケティング
アーカイブ分の
Movable Type で高速検索を実現する Fast Search プラグイン
Category:[ダイナミックパブリッシング, 検索]
Tag:[Customize, DynamicPublishing, MovableType, Plugin, Search]
Permalink
ダイナミック・パブリッシングを利用して Movable Type の高速検索を実現する Fast Search プラグインを紹介します。
このプラグインは、3.2x および 3.3x の検索結果テンプレートで利用している MT タグを php で利用可能にしたもので、テキスト検索、3.3x ではタグ検索も可能になっています。実験した感想としては検索レスポンスが数倍向上します。
なおプラグイン適用条件として、下記を満たしている必要があります。
- Movable Type 3.2 or 3.3
- MySQL 4.0.1 以上
1.プラグインのダウンロード
下記のサイトにある「Dowmload Now」のリンクをクリックして、プラグインをダウンロード。非商用サイトは無償で寄付を受け付けています。商用サイトは $97.00 です。
2.プラグインのアップロード
まず解凍した時のディレクトリ構造は下の通りです。
/FastSearch
/php
/plugins
block.MTBlogResultFooter.php
:
modifier.google_highlight.php
/plugins
/FastSearch
/tmpl
fast_search.tmpl
widget_fast_search.tmpl
FastSearch.pl
/PluginNetwork
PluginNetwork.pl
これを次の通りにアップロードします。
- FastSearch/php/plugins 配下のファイルをインストールディレクトリの mt-dir/php/plugins に全てアップロード
- FastSearch/plugins をインストールディレクトリの mt-dir/plugins にフォルダごと全てアップロード。mt/plugins の下に FastSearch および PluginNetwork ディレクトリが配置されるようにしてください。
3.アップグレード
プラグインをアップロード後、管理ページにログインするとアップグレード画面が表示されます。
驚かずに粛々と作業を進めてください。
アップグレード完了後、管理ページに再度ログインします。
4.ダイナミックパブリッシングの設定
Fast Search プラグインを利用にするために、ダイナミックパブリッシングの設定を行います。ダイナミックパブリッシングをご利用でない(各ページをスタティックに出力している場合)、メインページや他のアーカイブページをダイナミックパブリッシングに変更する必要はありません。
ブログ別管理画面の[設定] - [公開]を選択し、「再構築オプション」を「テンプレート別に、スタティックHTMLもしくはダイナミック・パブリッシングを選択します」を選択します。これで「変更を保存」をクリックします。
この時、メインページのあるディレクトリにダイナミックパブリッシングを有効にするための .htaccess および templates_c ディレクトリが自動生成されます。
5.Fast Search 設定1(初期設定)
ブログ別管理画面の[設定] - [プラグイン]を選択し、一覧に表示されている「Fast Search」の右側にある「設定を表示」をクリックします。これで設定画面(下)が開きます。
まず「Enable Fast Search」をチェックしてプラグインを有効にしてください。
「Search Results Per Page」および「Enable Logging」の設定もこの時に同時に設定することができます。
設定後、「変更を保存」をクリックします。
6.Fast Search 設定2(検索結果表示用テンプレート生成)
再度、 プラグイン一覧に表示されている「Fast Search」の右側にある「設定を表示」をクリックします。そして「Click here to install the default Fast Search Template.」のリンクをクリックしてください。
これで Fast Search 検索結果表示用の特殊なインデックステンプレートが生成され、その画面に遷移します(すでに保存されているので「保存」をクリックする必要はありません)。
また前段の作業でダイナミックパブリッシングの設定をしているので、再構築オプション自動的に「このテンプレートをダイナミック・ページにする」にチェックがつきます。もし後からダイナミックパブリッシングの設定を行なった場合は、このテンプレートに対しダイナミックパブリッシングで動作する設定(=チェックボックスのチェック)を行なってください。
これがプラグインで用意されている検索結果画面テンプレートですが、3.3x の検索結果画面デフォルトテンプレート、あるいは当サイトで配布している検索結果画面テンプレートに丸ごと入れ替えても正常に動作します。
7.Fast Search 設定3(検索フォーム)
Fast Search 用のフォームは、既存の
<form method="post" action="<$MTCGIPath$><$MTSearchScript$>"
を
<form method="post" action="<$MTBlogURL><$MTFastSearchScript>"
に変更すればOKです。
またはプラグインから Widget を生成することもできます。その場合は先のプラグイン設定画面にある、「Click here to install the Fast Search Widget.」のリンクをクリックします。これでテンプレートモジュールとしての検索フォーム「Widget: Fast Search」が生成されます。

このテンプレートモジュールを Widget ではなく、MTInclude タグで引き込むこともできます。その場合は検索フォームを表示させたいテンプレートのサイドバー部分に下記の1行を追加します。
<$MTInclude module="Widget: Fast Search"$>
8.Fast Search 設定4(FastSearch Method)
プラグインの設定画面で、もうひとつ「FastSearch Method」というプルダウンメニューの選択による設定項目があり、それぞれ下記のような意味があります。
- FullText:MySQLに標準搭載されている全文検索インデックス
- Non-FullText:上記以外
- Fallback:FullText を試行し、NGであれば Non-FullText で実行
FullText が一番良さそうなのですが、環境によってはエラーが発生します(実験サイトで試したところ、正常に動作する時とそうでない時がありました)。
調べてみたところ、FullText での日本語の全文検索については制約があるようです(詳細は9項の関連記事参照)。また Fallback では FullText を試みますが、失敗した場合は FullText のエラーが画面に表示されてしまうので、FullText を選択してエラーが解消しない場合は Non-FullText を選択するのが無難でしょう(FullText の適切な設定方法があればご教示ください)。
これで Fast Search の検索フォームより検索を実行し、検索結果が正常に表示されれば完了です。
9.ダイナミック・パブリッシングのチューニング
これで検索処理は高速になりますが、Movable Type デフォルトの検索機能の「連続実行抑止時間」の設定はありません。その結果サーバへの負荷拡大が予想されます。モジュール版PHPであればまだ良いのですがCGI版PHPの場合はプログラム実行とみなされます(参考:PHP における「モジュール版」と「CGI 版」の比較 + WordPress の適用例)。
したがって、「Movable Type の再構築を不要にする「ダイナミック・パブリッシング」(その2:設定方法)」の3項で解説しているように、ページレベルのキャッシングや条件付きGETの設定し、サーバの負荷を少しでも軽減することをお勧めします。
なおタグ検索は有効と思われますが、テキスト検索では検索文字列が不定なため、どれほどの効果があるかは分かりません。
10.関連記事
世界中のウェブサイト情報を集める「AboutUs」
世界中のウェブサイトの情報が集められた「AboutUs」をみつけました。Google、Yahoo、Amazon はじめ、現在300万以上のサイト情報が登録されているようです。
サイトを検索するには、ページ上部にあるフィールドにURLを入力し、「Find」をクリック。ヒットすると該当のサイト情報(タイトル・説明・言語・付加情報・関連ドメイン・カテゴリー)とサイトのスクリーンショットや Google マップが表示されます。
ちなみに私のサイト情報は左のようなものです。Description の記載内容は「このサイトについて」の内容を AboutUs Bot が自動的に収集しているようです。
類似サイトが複数みつかった場合は候補先の情報およびリンクが表示されます。下のスクリーンショットは「hatena」という文字列で検索した場合の結果画面です。

検索は日本語も認識してくれます。下のスクリーンショットは「小粋空間」という文字列で検索した結果です。AboutUs の検索結果(上)にはヒットしませんでしたが、その場合は Google Search Results が表示され、AboutUs へのリンクが生成されます。

要するに、大抵のサイトは AboutUs に表示される仕組みになっており *1、すでに登録されているサイトは即座に表示され、未登録サイトも検索結果次第でダイナミックにサイト情報を収集する動作になっているようです。
MedeaWiki、つまり Wiki ベースのサイトなので、Wiki フォーマットにしたがって編集することも可能です。
下記のような情報もありました。
Snail Blog (beta):Wikiベースのウェブサイト名簿『AboutUs』
SnapNamesの元ファウンダーでありCEOだったRay Kingが『AboutUs』のファウンダーを勤めている。『AboutUs』のアドバイザーボードには、wikiの先人Ward CunninghamやEndeavour CapitalのStephen Babson、EdgeioのKeith Teareらが参加。
aboutUs のバナーも用意されています。ページを AboutUs のクロール対象から外したい場合は他の検索エンジンと同様の処置を行います。
関連ページ
TechCrunch:AboutUs: A Wiki About Every Website
*1:全てのサイトが表示される保証はありません。
最新のエントリーに投稿日付を表示する for WordPress
WordPress の「最近のエントリー」に投稿日付を表示するカスタマイズです。ここではプラグインを利用した設定方法をご紹介します。
1.プラグインのインストール
下記のサイトより [ zip ] または [ view source (.phps) ] のいずれかをクリックして、プラグインをダウンロードします。
このサイトでは WordPress の色々なプラグインが配布されています。
zip の場合は解凍して、中にある customizable-post-listings.php を wp-content/plugins 配下にアップロード。view source の場合はそのままwp-content/plugins 配下にアップロードします。
2.「最近のエントリー」リストの設定
下記のタグをサイドバーの任意の位置に設定します。
<?php if (function_exists('c2c_get_recent_posts')) { ?>
<li><h2>Recent Posts</h2>
<ul>
<?php c2c_get_recent_posts(5,"<li>%post_URL% %post_date%</li>",'','date','DESC',0,'n/j'); ?>
</ul>
</li>
<?php } ?>
これで投稿日付(月日)が表示されます。
3.設定パラメータ
このプラグインでは他に様々な設定が可能です。以下に設定パラメータを示します。
| パラメータ | 意味 | デフォルト値 | 設定例 |
|---|---|---|---|
| $num_posts | 表示件数 | 5件 | |
| $format | 1件ごとのフォーマット | <li>%post_date%: %post_URL%</li> | |
| $categories | 対象カテゴリー | 全カテゴリー | |
| $orderby | ソート方法 | 投稿日 | 'date' |
| $order | 表示順序(昇順/降順) | 降順 | 'DESC'または'ASC' |
| $offset | オフセット | 0 | |
| $date_format | 日付のフォーマット | m/d/Y | |
| $authors | 対象とする author ID | 全 author | |
| $include_passworded_posts | パスワードのかかった投稿を含む/含まない | 含まない | true または false |
4.参考・関連
中央カラムに「ニュース」「お知らせ」を表示する
公開テンプレートの中央カラムの先頭に「ニュース」「お知らせ」等の、エントリーとは別のちょっとした情報を表示させる方法です。ご質問を頂きましたので本エントリーにて紹介致します。
ここでは Movable Type をサンプルに説明していますが、公開テンプレートであればどれも大体同じカスタマイズで実現可能です。
1.テンプレートの修正
基本は下記のように、テンプレートの中にあるエントリー表示開始位置の少し前に、表示したい情報(青色)を埋め込みます。ここではエントリーと同じスタイルになるようにタイトルと本文を表示しています。
:
<!-- 中央カラム開始 -->
<div id="content">
<div class="blog">
<div class="entry">
<p class="news-header">●お知らせ</p>
<p class="news-content">ブログを始めました。よろしくお願い致します。</p>
</div>
<MTEntries>
<$MTEntryTrackbackData$>
<!-- エントリー日付開始 -->
<MTDateHeader>
<div class="date"><$MTEntryDate format="%x"$></div>
</MTDateHeader>
<!-- エントリー日付終了 -->
:
追加部分全体を div 要素で括り、エントリーと同じ class="entry" を与えています。これで全体のスタイルがエントリーと同じものになります。
その下のタイトルは class="news-header" という新しい class 属性を与え、表示位置を整えています。また本文の p 要素にも class="news-content" を与えています。
2.スタイルシートの修正
下記の内容をスタイルシートに追加します。
.news-header {
margin: 5px 0;
color: #444444;
font-size: 12px;
font-weight: bold;
}
.news-content {
margin-top: 5px;
}
設定は以上です、あとは表示したいタイトルと本文をお好きな内容に書き換えてください。
ただしこの方法では、メインページやアーカイブページに同じ情報を表示したい場合、各テンプレート全てを修正する必要があります。次項ではもう少し変更時の手間が省ける方法を紹介します。
3.テンプレートモジュールにする
お知らせ部分を「テンプレートモジュール」として登録すれば、モジュールの中身を書き換えるだけで、他のテンプレートに同じ内容を反映させることができます。
3.1 新しいテンプレートモジュールの作成
管理メニューより[テンプレート] - [モジュール] - [モジュールを新規作成] の順にクリックし、下記の内容を設定します。
テンプレート名:news
モジュールの内容:下記をコピー
<div class="entry">
<p class="news-header">●お知らせ</p>
<p class="news-content">ブログを始めました。よろしくお願い致します。</p>
</div>
3.2 テンプレートの修正
テンプレートモジュールの内容を表示させたい位置に MTInclude タグを設定します。
:
<!-- 中央カラム開始 -->
<div id="content">
<div class="blog">
<$MTInclude module="news"$>
<MTEntries>
<$MTEntryTrackbackData$>
<!-- エントリー日付開始 -->
<MTDateHeader>
<div class="date"><$MTEntryDate format="%x"$></div>
</MTDateHeader>
<!-- エントリー日付終了 -->
:
スタイルシートは2項の内容をそのままお使いください。
なおこの方法を利用した場合、テンプレートモジュールの内容を変更・保存しただけではメインページや他のアーカイブページに反映されません。
必ず再構築を実施してください。
カテゴリーのプルダウン化プラグイン・バージョンアップ
当サイトで配布中の Serene Bach 「カテゴリーのプルダウン化プラグイン」をバージョンアップしました。主な変更点は下記の通りです。
- 親カテゴリーにサブカテゴリーの記事数を合計して表示
- 記事数の表示・非表示の切り替えが可能
- 記事数を括るマークに好きな文字列を設定可能
「親カテゴリーにサブカテゴリーの記事数を合計して表示」は以前ご要望を頂いていたもので、現状の実装では親カテゴリーの記事数を表示してからサブカテゴリーの情報を取得しているため無理かと思いましたが、処理順序を変更することでなんとか表示できるようになりました。
下は親カテゴリー数にサブカテゴリー数を合計しない場合の例です。

こちらが親カテゴリー数にサブカテゴリー数を合計した場合の表示例です。管理画面の設定により切替可能です。

また上記のカスタマイズを行えるようにプルダウン化プラグインの管理メニューを追加しました。プラグインをインストールすると、管理メニュー下にプルダウン化プラグインのリンクが表示されます。

「カテゴリーのプルダウン化」のリンクをクリックすると各種設定画面にジャンプしますので、そこで設定を行ってください。

「記事数を表示する」をチェックすると他の選択項目が表示されます。

記事数括り文字はデフォルトで "[...]" が表示されます。カテゴリー名や折りたたみマークと間隔を空けたい場合は括り文字の左右に半角空白をいれて調整してください。
何も設定しないとデフォルト文字が表示されますので、括り文字を表示したくない場合は半角空白を設定してください。
引越し中のため記事内容を清書する暇がありませんが(さすがに限界です...)、とりあえず下記のページよりダウンロードしてお試しください。
設定方法につきましても「カテゴリーのプルダウン化プラグイン for Serene Bach」を参照願います。
また、旧バージョンよりアップロードするファイルがひとつ増えてます、アーカイブに含まれている foldcategory.html を resource/ja 配下に必ずアップロードしてください。
アップロードしていない状態でプラグイン管理画面を起動すると、下記のエラーが表示されます。
Need to set template at ./plugin/FoldCategory.pm line 350
2007.05.24
アップロードファイルおよびエラーメッセージについて記述を追加しました。
2008.08.24
プラグインのリンク先を変更しました。
引越し中
レンタルサーバではなくリアルの方です。その関係でバタバタしており、最近頂いたコメントの返事がほとんどできておりません。自分のエントリーも書けていない状態です。
コメントのご返事は落ち着いたら致しますので、大変申し訳ございませんがもうしばらくお待ちください。
余談ですが最近の不動産関連サイトも Ajax + マッシュアップされていてかなり使いやすくなっています。

![Web Designing (ウェブデザイニング) 2007年 05月号 [雑誌]](http://ec2.images-amazon.com/images/P/B000P0I3ZY.01._SCMZZZZZZZ_V23964777_.jpg)


