2005年05月15日 (日)

HaloScan テンプレートは進化しています

HaloScan のコメントの HTML テンプレートや CSS をカスタマイズして使用している方、もう最新のデフォルト HTML テンプレートはチェックしましたか? もの凄く機能が豊富になってますよ。特に条件によって出力する内容を変えることができたりアバターアイコンを表示できたりするところは要チェックですね。

イントロ

.Mac のように web スペースで CGI が使えないブログにコメントやトラックバック機能を提供する HaloScan は iBlog ユーザの助けの神みたいなものです。自分のブログのスタイルに合わせてテンプレートをカスタマイズしている方も沢山見かけます。

一度意図通りに改造してほったらかしになっていませんか? そのままでもちゃんと使えているから問題があるわけではありませんが、より機能が豊富になっています。これらを活用してみるのも一興です。そこで HaloScan のテンプレート編集ページに解説されていない機能をいくつか紹介してみます。

アバターアイコン

見た目で楽しいのがアバターアイコンです。試しにこのコメントスレッドを見てください。現時点で t0mori さんと私の投稿にアイコンが付いていますよね。私のコメントの投稿フォームのところに短い説明がありますが、Gravatar にメールアドレスとアイコンを登録しておくと、HaloScan コメントの投稿でメールアドレスを入力することによってアイコンが付けられるんです。

このためにテンプレートに使用するテンプレートタグは次の通りです。

{HSifCommentGravatar} 〜 {/HSifCommentGravatar}
β段階の機能設定をするページEnable Gravatars という項目を Yes に設定するとこの {HSifCommentGravatar} から {/HSifCommentGravatar} の間の内容がコメントページに出力されるようになります。No のときはその部分は出力されません。
{HSCommentGravatar}
投稿者のアバターアイコンへの URL に置き換えられます。

これらを例えば次のように使います。

{HSifCommentGravatar} <img src="{HSCommentGravatar}" alt="" title="{HSCommentName} の化身" class="gravatar" width="28" height="28" /> {/HSifCommentGravatar}
設定で Gravatars を有効に設定しておくとこれを埋め込んだところに投稿者のアバターアイコンが表示されます。アバターアイコンを持っていなかったりメールアドレスを記入しなかった投稿者にはデフォルトのアイコンが使用されます。初期状態ではデフォルトのアイコンは大きさが 0 の見えないアイコンですが、自分で URL を設定して独自のデフォルトアイコンを指定できます。私の場合はsilver の背景に白いはてなマークをデフォルトアイコンに指定しています。

管理者専用コード

アバターアイコンは投稿者がメールアドレスを記入しないとその人のアバターを表示できません。ですから、なるべくメールアドレスを入れてもらいたいところです。それにコメントを通して仲良くなったあの人に、オフ会のお誘いとかで連絡をしたいがメールアドレスがわからない。相手のサイトに BBS もない。相手のエントリのコメントで連絡するのもエントリと関係ない、あるいはそもそもコメントが用意されていない。そんなことありませんか? だからできればコメントをするときに連絡手段としてメールアドレスを入れてもらいたいものです。しかしながらメールアドレスが表示されてしまうとスパムの機械的なメールアドレス収集に拾われてしまうかもしれないのでなるべくメールアドレスが誰でも見られるところに表示させたくないという人も沢山います。

こんなときは自分(管理者)のみにメールアドレスが見えて他の人には見えなくすることができます。このために使用するテンプレートタグは次の通りです。

{HSifLoggedIn} 〜 {/HSifLoggedIn}
HaloScan にログインしておくと、そのログインをしたアカウントのコメントページでは {HSifLoggedIn} と {/HSifLoggedIn} で囲まれた部分が出力され、ログインしていなかったり他のアカウントのコメントページでは表示されません。

例えば次のようにして使用します。

{HSifCommentEmail} <div class="attribute"> <span class="name">メール</span> <span class="value"><_a href="mailto:{HSCommentEmail}">EMail</a></span> </div> {/HSifCommentEmail}

投稿状況を表示

β段階の機能設定をするページでは投稿されたコメントを審査した上で表示させる機能を ON にすることもできます。Enable Moderation という項目を Yes に設定するのです。最近ときどきスパムコメントが来るので場合によってはこの機能も必要かもしれません。

ところがこの審査機能を ON にしていると投稿した内容がすぐに表示に反映されるわけではなくなるので、投稿した人は「あれ? なんか入らなかった。もう一回投稿してみよう。」と思って多重投稿してしまう恐れがあります。投稿が成功したのか承認待ちなのか失敗なのかを表示すると親切です。これの表示に使えるテンプレートタグは以下のとおりです。

{HSifModeration} 〜 {/HSifModeration}
投稿したコメントが承認待ちになったときのコメントページにこれで挟まれた部分が出力されます。
{HSifErrorMessage} 〜 {/HSifErrorMessage}
投稿にエラーが発生してエラーメッセージがあるときのコメントページにこれで挟まれた部分が出力されます。
{HSErrorMessage}
投稿にエラーが発生したときのエラーメッセージです。

例えば次のようにして使います。

{HSifSubmit} <p> <em> 投稿は成功しました。 {HSifModeration} しかし承認待ちです。 {/HSifModeration} </em> </p> {/HSifSubmit} {HSifErrorMessage} <p> <strong>{HSErrorMessage}</strong> </p> {/HSifErrorMessage}

記入項目の省略への対応

投稿には投稿者の名前、投稿者のサイトのURL、投稿者のメールアドレスがコメント共に記入することができますが、これらは任意項目です。ですから必ずしも記入されるとは限りません。ですから投稿者のサイトの URL を表す {HSCommentUrl} を使って単純なリンクを書いておくと、URL が省略されるとリンク先が空っぽのタグになってしまいます。

このようなときにも対処できるように、その項目が与えられている場合というのを指定できます。そのために次のようなテンプレートタグが用意されています。

{HSifCommentName} 〜 {/HSifCommentName}
投稿者の名前が与えられているコメントの表示でこれらに挟まれた部分が出力されます。
{HSifCommentUrl} 〜 {/HSifCommentUrl}
投稿者のサイトの URL が与えられているコメントの表示でこれらに挟まれた部分が出力されます。
{HSifCommentEmail} 〜 {/HSifCommentEmail}
投稿者のメールアドレスが与えられているコメントの表示でこれらに挟まれた部分が出力されます。

例えば次のようにして使用します。この例では管理者にのみメールアドレスがわかるようにしてあります。

{HSifCommentName}{HSCommentName}{/HSifCommentName} {HSifCommentUrl}| <_a href="{HSCommentUrl}">サイト</a>{/HSifCommentUrl} {HSifLoggedIn}{HSifCommentEmail}| <_a href="{HSCommentEmail}">メール</a>{/HSifCommentEmail}{/HSifLoggedIn}

その他

主だったものを挙げてみましたが、これら以外にもいろいろあります。まだ(私のアカウントでは)使用できないβ機能を設定したら意味がある機能やプレビュー用の機能などがあります。解説はどこにもないようですが、テンプレート編集ページReset to Default template 》 とラベルされたリンクを辿るとそのページにデフォルトのテンプレートが表示されます。これで他にどんなテンプレートタグがあってどう使えるかを調べることができます。一つ試しに見てみてください。

ただしデフォルトのテンプレートをそのまま使用するのはお薦めしません。というのは管理者がログインした状態でコメントページを表示するとスパムコメントにチェックを入れて削除したりできますが、そのための form タグの入れ方がどうしようもなく間違っているからです。デフォルトのテンプレートでは

<tr> <td> … <form …> … </td> </tr> … <tr> <td …> </form>
というように開始タグと終了タグが交差しているからです。少なくともこれは解消しておきましょう。

テンプレートの中に日本語やバックスラッシュのような特殊な文字を使いたい場合は、ブラウザの機能で表示中のページのエンコードを UTF-8 や Shift_JIS など設定ページCharactor Encoding で指定した文字コードに指定してからテンプレート欄に書いてください。さもないと文字化けします。またそうしたときは、その設定ページに表示される内容は既に文字化けしているので、ローカルにテンプレートをファイルにして保存しておくことをお勧めします。


Posted: 03:27    | Comment | Trackback


以下、類似エントリです。