2004年12月31日
●2004年ウェブログ総括
総括なしで突っ走ろうとも思いましたが、一応区切りということで。
今年の5月頃からウェブログを自宅サーバで立ち上げ、最初はちまちまとくだらないダジャレを備忘録的に残していくという予定で始めました。ところがアクセスやリンクが今まで経験したこともない桁になり、自分で言うのもなんですがここまで活発なサイトになるとは思いもよりませんでした。まさに青天の霹靂です。
そうなると人間変わるもので、当初は適当に書いていたエントリーも日を追うごとに密度の濃い内容になってまいりまして、サイトのカスタマイズも始めた頃には考えられないほど充実したものになりました。
ということで、多くのテンプレートユーザの皆様、カスタマイズご利用の皆様、テンプレート&カスタマイズ引用元の皆様、コメント・トラックバックをくださった皆様、そしてアクセスくださった皆様、大変お世話になりました。本当にありがとうございます!自身としては半年余りしかやっていないまだまだかけだしのブロガーですので、今後ともご指導・ご鞭撻の程、どうぞよろしくお願い致します。
2005年もどうぞよろしくお願い致します。そして良いお年をお迎えください。
(書き逃げですのでコメントご返事遅くなります)
●おじゃる丸ストラップ(その2)
このフィギュア、ファミリーマート限定ということでしたが、さらに調査の結果(飲料棚に張ってあるステッカー読んだだけ)、期間は「12月20日~27日(なくなり次第終了)」ということが判明し、その1を投稿した時にはすでに終了していました(陳謝)。以降、投稿にかなり時差がありますのでお許しください。
で、2回目の結果です。果たして「キスケ」は出るのか?↓
2004年12月30日
●ポップアップ画面を用いたコメント投稿(その3:公開テンプレート修正方法)
このシリーズの(多分)最後は、公開テンプレートの修正方法についての説明です。
2004年12月30日、本エントリー投稿に伴いまして公開テンプレートにもポップアップ機能を追加致しました。そのためテンプレート取得日によってカスタマイズ方法が若干異なります。これにつきましては各項目の右側に対応するテンプレートを記しましたので必要な方を適宜参照ください。念のため
- 2004年12月30日以前に取得された方:1、2、3、4.2、5、6
2004年12月30日以降に取得された方:1、2、3、4.1
Movable Type 3.121を新規インストール、公開テンプレートの内容に差し替えた後、下記の手順を実施して動作確認しています。その中で個別エントリーアーカイブよりコメント・プレビューまたはコメント・エラー画面にジャンプした後でTypeKeyサインインした場合、個別エントリーアーカイブにリダイレクトされずにコメント・リストにリダイレクトされるという事象が発生しています。この点につきましては予めご容赦ください。また日本語のTypeKeyニックネームでサイン・インした場合、どの画面からのサイン・インも文字化けしないことを確認しておりますが、文字化けする場合はご連絡ください。
1.ポップアップ用テンプレート設定(必須)
- コメント・リスト(ポップアップ用)
コメント・プレビュー(ポップアップ用)
コメント・エラー(ポップアップ用)
コメント・保留(ポップアップ用)
なお、コメント・プレビュー/コメント・エラー/コメント・保留テンプレートについては現在お使いのテンプレートを上書き致しますので、予め任意のファイル名でバックアップされることをお勧め致します。
2.Context.pm修正・その1(必須)
Ogawa::Memorandaさんの提供のパッチを
- lib/MT/Template/Context.pm
my $allow_comment_html_note = (($blog->allow_comment_html)
? ($args->{html_ok_msg} ||
MT->translate("(You may use HTML tags for style)")) : "");
my $lang = ($cfg->DefaultLanguage eq 'ja') ? "&lang=ja" : '';
my $needs_email = $blog->require_comment_emails ? "&need_email=1" : "";
my $registration_required = ($blog->allow_reg_comments
&& !$blog->allow_unreg_comments);
my $registration_allowed = $blog->allow_reg_comments;
my $unregistered_allowed = $blog->allow_unreg_comments;my $static_arg = $args->{static} ? "static=1" : "static=0";
my $static_field = ($args->{static} || !defined($args->{static}))
my ($static_arg, $static_field);
if (defined($args->{static})) {
$static_arg = $args->{static} ? "static=1" : "static=0";
$static_field = $args->{static}
? (q{<input type="hidden" name="static" value="1" />})
: (q{<input type="hidden" name="static" value="0" />});
} else {
$static_arg = $ctx->stash('comment_is_static') ? "static=1" : "static=0";
$static_field = $ctx->stash('comment_is_static')
? (q{<input type="hidden" name="static" value="1" />})
: (q{<input type="hidden" name="static" value="0" />});
}
my $typekey_version = $cfg->TypeKeyVersion;
このパッチはコメント・プレビュー/コメント・エラーテンプレートの MTCommentField タグに static属性が指定されていない場合、個別エントリーアーカイブまたは3項のコメントリストに設定した static 属性値を自動的に取得してくれるもので、投稿後の画面遷移がその1の通りになります。
3.Context.pm修正・その2(必須)
MTCommentField タグを利用する場合、展開されるソースに getCookie 関数が含まれます。実はコメント用各テンプレートの「Remember Me」またはHTMLの head タグ内にも同じ関数が存在しており、同一名称の関数が重複する場合は後方に定義されたもの(つまり MTCommentField での getCookie)が有効になります。
これにより、ポップアップ画面で日本語のTypeKeyニックネームが文字化けする場合等は
- lib/MT/Template/Context.pm
if ($registration_allowed || $unregistered_allowed) {
$javascript = <<JAVASCRIPT;
<script language="javascript">
//function getCookie (name) {
// var prefix = name + \'=\';
// var c = document.cookie;
// var nullstring = \'\';
// var cookieStartIndex = c.indexOf(prefix);
// if (cookieStartIndex == -1)
// return nullstring;
// var cookieEndIndex = c.indexOf(";", cookieStartIndex + prefix.length);
// if (cookieEndIndex == -1)
// cookieEndIndex = c.length;
// return unescape(c.substring(cookieStartIndex + prefix.length, cookieEndIndex));
//}
</script>
JAVASCRIPT
}
テンプレートモジュール「Remember Me」の有無は設定環境によって異なります。修正しても文字化けが解消しない場合は cookie を一旦削除(IEであれば「ツール」→「インターネットオプション」→「Cookieの削除」)してみてください。
4.各アーカイブテンプレート変更(その1:リンク先変更)
ポップアップしたい各アーカイブテンプレート(メインページ/カテゴリー・アーカイブ/日付アーカイブ等)の個別エントリーアーカイブへのリンクを、ポップアップ画面へのリンクに変更します。
4.1 2004年12月30日以降にテンプレートを取得された場合
赤色部分を削除(非ポップアップへのリンクをコメントアウト)して青色部分を追加(ポップアップへのリンクを有効化)してください。よく分からない場合は「ポップアップ用」という行のコメントに括られた部分だけを残して、他(「ポップアップ用」という行も含めて)はごっそり削除してください。
<MTEntryIfAllowComments>
<!-- コメント・非ポップアップ用 -->
| <a href="<$MTEntryPermalink archive_type="Individual"$>#comments">Comments</a> [<$MTEntryCommentCount$>]
<!-- コメント・非ポップアップ用 -->
<!-- コメント・ポップアップ用 -->
| <a href="<$MTCGIPath$><$MTCommentScript$>?entry_id=<$MTEntryID$>" onclick="OpenComments(this.href); return false">Comments</a> [<$MTEntryCommentCount$>]
<-- コメント・ポップアップ用 -->
</MTEntryIfAllowComments>
<MTEntryIfAllowPings>
<!-- トラックバック・非ポップアップ用 -->
| <a href="<$MTEntryPermalink archive_type="Individual"$>#trackbacks">Trackbacks</a> [<$MTEntryTrackbackCount$>]
<!-- トラックバック・非ポップアップ用 -->
<!-- トラックバック・ポップアップ用 -->
| <a href="<$MTCGIPath$><$MTTrackbackScript$>?__mode=view&entry_id=<$MTEntryID$>" onclick="OpenTrackback(this.href); return false">Trackbacks</a> [<$MTEntryTrackbackCount$>]
<-- トラックバック・ポップアップ用 -->
</MTEntryIfAllowPings>
4.2 2004年12月30日以前にテンプレートを取得された場合
赤色部分を青色部分の内容に修正してください。よく分からない場合は青色のリストを丸ごとコピーして赤色のリストと入れ替えてやってください。
<MTEntryIfAllowComments>
| <a href="<$MTEntryPermalink archive_type="Individual"$>#comments">Comments (<$MTEntryCommentCount$>)</a>
</MTEntryIfAllowComments>
<MTEntryIfAllowPings>
| <a href="<$MTEntryPermalink archive_type="Individual"$>#trackbacks">Trackbacks (<$MTEntryTrackbackCount$>)</a>
</MTEntryIfAllowPings>
<MTEntryIfAllowComments>
| <a href="<$MTCGIPath$><$MTCommentScript$>?entry_id=<$MTEntryID$>" onclick="OpenComments(this.href); return false">Comments (<$MTEntryCommentCount$>)</a>
</MTEntryIfAllowComments>
<MTEntryIfAllowPings>
| <a href="<$MTCGIPath$><$MTTrackbackScript$>?__mode=view&entry_id=<$MTEntryID$>" onclick="OpenTrackback(this.href); return false">Trackbacks (<$MTEntryTrackbackCount$>)</a>
</MTEntryIfAllowPings>
各リストの
<MTEntryIfAllowComments>~</MTEntryIfAllowComments>
で括られた部分がコメント、
<MTEntryIfAllowPings>~</MTEntryIfAllowPings>
で括られた部分がトラックバックに該当します。
5.各アーカイブテンプレート変更(その2:JavaScript追加)(2004.12.30以前にテンプレート取得された場合)
ポップアップを利用したいテンプレートの <head> ~ </head> の間(</head> の直前がいいです)に下記のスクリプトを追加します。先のリンクがクリックされるとこの JavaScript が起動し、ポップアップ画面を表示します。width(画面の幅) および height(画面の高さ) は任意の値を指定できます。OpenComments はコメントポップアップ用、OpenTrackback はトラックバックポップアップ用です。
<script language="javascript" type="text/javascript">
<!--
// コメント・リスト用
function OpenComments (c) {
window.open(c, 'comments', 'width=480,height=480,scrollbars=yes,status=yes');
}// トラックバック・リスト用
function OpenTrackback (c) {
window.open(c, 'trackback', 'width=480,height=480,scrollbars=yes,status=yes');
}
//-->
</script>
6.スタイルシート修正(2004.12.30以前にテンプレート取得された場合)
スタイルシートに下記の青色部分を追加または修正してください(現状のスタイルシートはポップアップ用の設定を行っていましたが、見直したところ一部不具合がありましたので、その修正です)。なお現在ご使用のタイプが固定/可変で設定内容が若干異なりますのでご注意ください。また設定内容はデフォルト状態のものですので、デザインにあわせて適宜修正してくださって結構です。
可変3カラム/固定3カラム共通
/* ポップアップウインドウのタイトル部分 */
#banner-commentspop {
z-index: 1;
color:#999999;
background:#ffffe0;
background-position:right top;
background-repeat:repeat-y;
background-repeat:no-repeat;
background-image: url("画像を置くURl/ファイル名.gif");
padding-left:10px;
padding-top:10px;
padding-bottom:10px;
text-align: left;
border: 1px solid #666699;
}#banner-commentspop h1 {
color: #999999;
font-family: "MSゴシック", Arial, sans-serif;
font-weight: normal;
font-size: 32px;
}
固定3カラムご使用の場合は上記の設定の直前にさらに下記を追加
#box-commentspop {
width: auto;
border-bottom: 1px solid #666699;
border-left: 1px solid #666699;
border-right: 1px solid #666699;
background-color: #FFFFFF;
}
| その1:基本動作 |
| その2:カスタマイズ |
| その3:公開テンプレート修正方法 |
| その4:コメントフォームのカスタマイズ |
| その5:その4の補足 |
2004.12.30 追記
2項のパッチ表示が誤っておりました。本日10:05に修正致しましたので、それ以前に本画面より直接コピーされた方は差し替えくださいますようお願い致します。またコメント・プレビュー/コメント・エラーでサイン・インしても問題ないことを確認しましたので記述を削除しました。
2004.12.31 追記
投稿後に日本語全角の名前が文字化けする問題が解消されていなかったため3項を追加しました。それに伴い以降の項番をシフトしました。
2004年12月29日
●コメント投稿者の情報表示をカスタマイズする
コメント投稿者の情報表示のカスタマイズについてご説明致します。
表示に使用される変数タグは MTCommentAuthorLink / MTCommentPreviewAuthorLink の2種類で、表示方法の詳細設定にタグアトリビュート(属性)を用います。これによりコメントに入力されたコメント投稿者の情報(URL・メールアドレス等)の表示・非表示やを表示方法等をコントロールすることができます。
カスタマイズ方法です。まず MTCommentAuthorLink / MTCommentPreviewAuthorLink は、下記の各テンプレートの赤色部分に存在します(デフォルトテンプレートで示しています)。カスタマイズされる場合はこれらが一律対象となります。
個別エントリーアーカイブ
<MTComments>
<div id="c<$MTCommentID$>">
<$MTCommentBody$>
</div>
<p class="posted">投稿者 <$MTCommentAuthorLink default_name="Anonymous" spam_protect="1"$> <MTCommentAuthorIdentity> : <$MTCommentDate$></p>
</MTComments>
コメント・プレビュー
<$MTCommentPreviewBody$>
<p class="posted">投稿者 <$MTCommentPreviewAuthorLink spam_protect="1"$> : <$MTCommentPreviewDate$></p>
:
<MTComments>
<$MTCommentBody$>
<p class="posted">投稿者 <$MTCommentAuthorLink default_name="Anonymous" spam_protect="1"$> : <$MTCommentDate$></p>
</MTComments>
コメント・リスト(本テンプレートを使用している場合)
<MTComments>
<$MTCommentBody$>
<p class="posted">投稿者 <$MTCommentAuthorLink default_name="Anonymous" spam_protect="1"$> : <$MTCommentDate$></p>
</MTComments>
次にタグアトリビュート一覧を示します。
名前の入力がない場合のデフォルト名を設定する
default_name="Anonymous"
これは管理メニュー左の「ウェブログの設定」をクリック→次ページ右上の「設定」をクリック→次ページ下の方にある「コメント」の「名前とURLを必須にする」にチェックがついていない場合に有効になります。デフォルトテンプレートではこの属性が付与されていますが、先のチェックがついていれば気にする必要はありません。この属性の設定がなく「名前とURLを必須にする」チェックがついていない状態で名前なしのコメントが投稿されると、コメント欄に投稿者名が表示されません。
なお設定した場合(および無効にした場合)は以前の名無しコメント全てに適用されます。
メールアドレスにリンクしない
show_email="0"
コメントのメールアドレス欄にメールアドレスが入力されてもリンクしません。デフォルトテンプレートではリンクする状態になっています。
URLにリンクしない
show_url="0"
コメントのURL欄にURLが入力されてもリンクしません。デフォルトテンプレートではリンクする状態になっています。
URLをリダイレクトしない
no_redirect="1"
コメントスパムの目的は、リンクがクリックされることにより検索エンジンのランクを向上させることです。この部分でURLをリダイレクトする意味は、コメント投稿者のURLを検索エンジンから直接見えないようにするためです。そうすることでコメント・スパムの検索エンジンでのランク向上を抑制する効果があります。
デフォルト状態ではこのリダイレクト機能を有効にしていますが、リダイレクトを使いたくない場合は上記の設定を追加してください。
メールアドレスをスパム・ボット対策されたアドレスに変更する
spam_protect="1"
スパマーはHTMLソースに記述されるメールアドレスのフォーマットを見つけてスパムメールを送ります。
spam_protect アトリビュートを設定すればメールアドレスのリンクは表示されますが、スパム・ボット対策されたアドレスに変更されます。つまりブラウザ上では正しいメールアドレスとして表示され、実際のHTMLソースには「@」や「.」を含みません。例えばメールアドレスが
- foo@bar.com
- foo@bar.com
デフォルトテンプレートではこの設定になっていますが、先の show_email="0" を指定した場合はメールアドレスにリンクしなくなるため冗長な設定となります。ただし設定が残っていても問題はありません。
下記に設定例を示します。最もポピュラーと思われるケースで「メールアドレスをリンクしない&メールアドレスをスパム・ボット対策されたアドレスに変更する」の設定は、
<$MTCommentAuthorLink show_email="0" spam_protect="1"$>
または
<$MTCommentPreviewAuthorLink show_email="0" spam_protect="1"$>
となります。
属性を記述する場合はその前後に半角空白を挿入します(変数タグの終了を示す"$"との間はなくても大丈夫です)。属性の記述順序に制約はありません。
●おじゃる丸ストラップ(その1)
ゆるいネタです。
コンビにでよく買って飲んでいる「爽健美茶」の500mlボトルに「おじゃる丸フィギュアマスコットストラップ」がおまけでついていました。ついてないコンビニもあったのでファミリーマート限定かも知れません。この番組に登場する「キスケ」というキャラクターが好きな友人がいるので、もし出たら5000円くらいで売ろうと思います(冗)。
で、とりあえず1回目の結果↓
2004年12月28日
●ユーザー・マニュアルのテンプレート
たいしたものではありませんが、以前投稿したサイドメニュー用「Movable Type ユーザー・マニュアル」のテンプレートを公開します。利用方法は、本テンプレートを貼り付けたいテンプレートのサイドメニュー部分の任意の位置にコピー&ペーストしてください。メニュータイトルもセットになっています。公開テンプレートのスタイルシートをお使いの方は(多分)そのまま使えます。それ以外の方や変更されている方はクラス名等を適宜修正してください。また <$MTBlogURL$> の部分は docs の配置先によって適宜変更してください。
またサイドメニューの折りたたみおよび、サブカテゴリーの折りたたみもデフォルトで設定していますので、折りたたみを利用されている方は(これも多分)折りたたみ状態になります。折りたたみ用の id 属性名は「manual」にしています。折りたたみを利用されていない方も既に使用中の id 属性名と重複していないか確認してください。
ユーザー・マニュアル
各サブメニューはトップページと同じインデントにしています。トップページのサブカテゴリーに変更したい場合は赤色部分のコメントマークを全て削除してください。
:
<li><!--<div class="subcategories" id="subcategories100name">--><a href="<$MTBlogURL$>docs/mtmanual.html" target="_blank">トップ</a> <!--</div>-->
<!--<div id="subcategories100list">-->
<!--<ul>-->
<li><a href="<$MTBlogURL$>docs/mtmanual_about.html" target="_blank">Movable Type について</a></li>
:
<li><a href="<$MTBlogURL$>docs/mtmanual_configuration.html" target="_blank">mt.cfg 設定ガイド</a></li>
<!--</ul>-->
<!--</div>-->
:
2004.12.28 追記
タグ内の id 属性が公開テンプレートにないものを指定していましたので修正しました。すいません。またパスの設定について補足を追記しました。
あ、出ちゃいました(笑)
おぉ!いきなり「おじゃる丸」が!(って番組見たことないんですが)

