mtde.info

Movable Type Developers Express

このカテゴリでは、コメントの取り扱いに関するサンプルを紹介します。

『コメント関連サンプル』カテゴリ内のエントリ一覧

コメント関連テンプレートタグ

2008年2月13日 23:46 | Writer: apstar | 記事本文

以下は、コメントに関するさまざまな情報をテンプレートタグで取得するためのコードサンプルです。

コメント関連のテンプレートタグは、エントリページ・ウェブページどちらも、書き方や再構築時の挙動は同じです。

1.ブログ内総コメント数を取得する

ブログ内の総コメント数を取得するには、以下のようにします。

<p>ブログ内総コメント数=<MTBlogCommentCount></p>

2.コメント情報を取得する

エントリ・ウェブページにつけられたコメント情報を取得するサンプルコードです。

<h3>エントリでの情報(ウェブページでも同様)</h3>
<MTEntries lastn="10">
<MTComments>
<ul>
   <li>MTCommentAuthor =<MTCommentAuthor></li>
   <li>MTCommentAuthorIdentity =<MTCommentAuthorIdentity></li>
   <li>MTCommentAuthorLink =<MTCommentAuthorLink ></li>
   <li>(New)MTCommentBlogID =<MTCommentBlogID></li>
   <li>MTCommentBody =<MTCommentBody></li>
   <li>MTCommentDate =<MTCommentDate></li>
   <li>MTCommentEmail =<MTCommentEmail></li>
   <li>MTCommentEntryID =<MTCommentEntryID></li>
   <li>(New)MTCommenterAuthIconURL =<MTCommenterAuthIconURL></li>
   <li>(New)MTCommenterAuthType =<MTCommenterAuthType></li>
   <li>MTCommenterEmail =<MTCommenterEmail></li>
   <li>MTCommenterName =<MTCommenterName></li>
   <li>MTCommenterNameThunk =<MTCommenterNameThunk></li>
   <li>MTCommentID =<MTCommentID></li>
   <li>MTCommentIP =<MTCommentIP></li>
   <li>MTCommentName =<MTCommentName></li>
   <li>MTCommentOrderNumber =<MTCommentOrderNumber></li>
   <li>MTCommentPreviewAuthor =<MTCommentPreviewAuthor></li>
   <li>MTCommentPreviewAuthorLink =<MTCommentPreviewAuthorLink></li>
   <li>MTCommentPreviewBody =<MTCommentPreviewBody></li>
   <li>MTCommentPreviewDate =<MTCommentPreviewDate></li>
   <li>MTCommentPreviewEmail =<MTCommentPreviewEmail></li>
   <li>MTCommentPreviewIP =<MTCommentPreviewIP></li>
   <li>MTCommentPreviewIsStatic =<MTCommentPreviewIsStatic></li>
   <li>MTCommentPreviewURL =<MTCommentPreviewURL></li>
   <li>(New)MTCommentRank =<MTCommentRank></li>
   <li>(New)MTCommentRepliesRecurse =<MTCommentRepliesRecurse></li>
   <li>(New)MTCommentScore =<MTCommentScore></li>
   <li>(New)MTCommentScoreAvg =<MTCommentScoreAvg></li>
   <li>(New)MTCommentScoreCount =<MTCommentScoreCount></li>
   <li>(New)MTCommentScoreHigh =<MTCommentScoreHigh></li>
   <li>(New)MTCommentScoreLow =<MTCommentScoreLow></li>
   <li>MTCommentScript =<MTCommentScript></li>
   <li>MTCommentURL =<MTCommentURL></li>
</ul>
</MTComments>
</MTEntries>
MTCommentAuthor
コメントの投稿時に入力されたコメント投稿者の名前を表示します。モディファイア default を指定することで、コメント者が名前欄未入力のときに表示する名前を指定可能です。
MTCommentAuthorIdentity
TypeKey 認証サービスに登録しているプロフィール・ページへのリンクを表示します。
MTCommentAuthorLink
コメントの投稿時に入力されたコメント投稿者の名前をリンク付きで出力します。モディファイア default_name で、コメント者が名前欄未入力のときに表示する名前を指定可能です。show_url="0"(URLを出力しない)、show_email(Eメールアドレスを出力する)、spam_protect(メールアドレス部分を数値文字参照の形式にエンコード)、no_redirect(Movable Type のリダイレクト機能を有効にして、リンク先が直接表示されない)などのモデファイアもあります。
MTCommentBlogID
コメントが投稿されたブログの ID 番号を表示します。
MTCommentBody
コメントの内容を表示します。
MTCommentDate
コメントが投稿された日時を出力します。モディファイア format と language を指定して、日時の表示方法を変更可能です。なおモデファイア無しでは"2007年10月20日 00:25"というふうに出力されます。
MTCommentEmail
コメントの投稿時に入力されたコメント投稿者のメールアドレスを出力します。リンクは生成されません。モディファイア spam_protect を指定することで、メールアドレス部分を数値文字参照の形式にエンコードすることができます。
MTCommentEntryID
コメントを受け付けたエントリのID番号を出力します。
(New)MTCommenterAuthIconURL
コメントした登録ユーザーがどのサービスのアカウントでログインしてコメントしたのかを示すアイコンの絶対URLを出力します。例えば、/cgiフォルダ/mt4のインストールフォルダ/mt-static/images/comment/mt_logo.pngなどとなります。ユーザー登録を行っていない一般の方のコメントの場合は空白となります。
(New)MTCommenterAuthType
コメントした登録ユーザーがどのアカウントでログインしたのかを出力します。例えば Vox アカウントでログインしてコメントを投稿したユーザーの場合 Vox と出力されます。Movable TypeでログインしてのコメントではMTとなります。ユーザー登録を行っていない一般の方のコメントの場合は空白となります。
MTCommenterEmail
コメント投稿者のメールアドレスを表示します。登録ユーザーのコメントではプロフィール登録のメールアドレスが出力されます。ユーザー登録を行っていない一般の方のコメントの場合は空白となります。
MTCommenterName
コメント投稿者の表示名を表示します。登録ユーザーのコメントではプロフィール登録の表示名となった。ユーザー登録を行っていない一般の方のコメントの場合は空白となります。
MTCommenterNameThunk
コメント投稿者名を JavaScript の変数として設定します。記事執筆中のテストでは空白となりました。
MTCommentID
コメントの ID 番号を出力します。主に、コメントへのアンカーリンクを作成するときに使用します。
MTCommentIP
コメントを投稿したホストの IP アドレスを出力します。
MTCommentName
コメントを投稿した投稿者名を出力します。Movable Type 3.2 以降では、MTCommentAuthorファンクションタグの利用を推奨するそうです。
MTCommentOrderNumber
コメントの順番(No)を、1から始まる数字で出力します。
MTCommentPreviewAuthor
コメントのプレビュー画面で、コメント投稿者の名前のみを出力します。コメント投稿者へのリンクは生成されません。
MTCommentPreviewAuthorLink
コメントのプレビュー画面で、コメント投稿者の名前をリンク付きで出力します。
MTCommentPreviewBody
コメントのプレビュー画面で、コメントの内容を出力します。
MTCommentPreviewDate
コメントのプレビュー画面で、コメントが投稿された日時を生成します。動作やモデファイアの種類は、MTCommentDateファンクションタグに準じます。
MTCommentPreviewEmail
コメントのプレビュー画面で、コメント投稿者のメールアドレスを出力します。登録ユーザの場合プロフィール登録のメールアドレス(リンクなし)、ユーザー登録を行っていない一般の方のコメントの場合は空白となります。
MTCommentPreviewIP
コメントのプレビュー画面で、コメントを投稿したホストのIPアドレスを出力します。
MTCommentPreviewIsStatic
システムが参照する特殊なタグです。
MTCommentPreviewURL
コメントのプレビュー画面で、入力されたURLを出力します。
(New)MTCommentRank
プラグインが必要とのことです。そのままでは空白となります。
(New)MTCommentRepliesRecurse
MTCommentRepliesブロックタグの内容を再帰的に表示します。
(New)MTCommentScore
プラグインが必要とのことです。そのままでは空白となります。
(New)MTCommentScoreAvg
プラグインが必要とのことです。そのままでは空白となります。
(New)MTCommentScoreCount
プラグインが必要とのことです。そのままでは空白となります。
(New)MTCommentScoreHigh
プラグインが必要とのことです。そのままでは空白となります。
(New)MTCommentScoreLow
プラグインが必要とのことです。そのままでは空白となります。
MTCommentScript
コメントを処理する CGI プログラムのファイル名を出力します。
MTCommentURL
コメントの投稿時に入力されたURLを表示します。

コメントリストのサンプル

2008年2月15日 22:07 | Writer: apstar | 記事本文

以下は、エントリにつけられたコメントリストを取得するためのごく簡単なコードサンプルです。

コード

コメントのついたエントリを最大5件、ひとつのエントリについたコメントを最大5件まで表示するオーソドックスなコメントリストです。

<ul>
   <MTEntries recently_commented_on="5">
   <li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a>
   <ul>
      <MTComments lastn="5">
      <li>by <a href="<$MTEntryPermalink$>#c<$MTCommentID$>"><$MTCommentAuthor$></a> <$MTCommentDate format="%m月%d日"$></li>
      </MTComments>
   </ul>
   </li>
   </MTEntries>
</ul>

名無しコメントに対処する(1)

2008年2月16日 22:11 | Writer: apstar | 記事本文

エントリへブログ観覧者がコメントをつける際、コメントの投稿者欄に名前が入力されていない状態でコメントの投稿を行うと、コメントリストを作成した際にその部分が空欄となります。

まず、MTCommentAuthorテンプレートタグで取得したコメント投稿者をそのままComenterName変数に代入します。次に、もしコメント投稿者が空白であった場合は"名無し"という文字列をComenterName変数に上書き代入します。

<ul>
   <MTEntries recently_commented_on="5">
   <li><a href="<MTEntryPermalink>"><MTEntryTitle></a>
   <ul>
      <MTComments lastn="5">
      <MTSetvarBlock name="ComenterName"><MTCommentAuthor></MTSetvarBlock>
      <MTIf name="ComenterName" le="">
         <MTSetvar name="ComenterName" value="名無し">
      </MTIf>
      <li>by <a href="<MTEntryPermalink>#c<MTCommentID>"><MTGetVar name="ComenterName"></a> <MTCommentDate format="%m月%d日"></li>
      </MTComments>
   </ul>
   </li>
   </MTEntries>
</ul>

名無しコメントに対処する(2)

2008年2月16日 22:35 | Writer: apstar | 記事本文

エントリへブログ観覧者がコメントをつける際、コメントの投稿者欄に名前が入力されていない状態でコメントの投稿を行うと、コメントリストを作成した際にその部分が空欄となります。

MTCommentAuthorテンプレートタグでコメント投稿者を記述していた部分を、MTCommentAuthorLinkテンプレートタグに置き換えるという方法があります。

MTCommentAuthorLinkテンプレートタグは、コメントの投稿時に入力されたコメント投稿者の名前を、URL欄へ入力したURLリンク付きで出力します。モディファイア default_name で、名無しのときに表示する名前を指定可能です。show_url="0"(URLを出力しない)、show_email(Eメールアドレスを出力する)、 spam_protect(メールアドレス部分を数値文字参照の形式にエンコード)、no_redirect(Movable Type のリダイレクト機能を有効にして、リンク先が直接表示されない)などのモデファイアもあります。

<ul>
   <MTEntries recently_commented_on="5">
   <li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a>
   <ul>
      <MTComments lastn="5">
      <li>by <a href="<$MTEntryPermalink$>#c<$MTCommentID$>"><$MTCommentAuthorLink default_name="名無し" show_email="0"$></a> <$MTCommentDate format="%m月%d日"$></li>
      </MTComments>
   </ul>
   </li>
   </MTEntries>
</ul>
エントリ
タグ
はじめに
導入編
ローカル環境
変数
サンプル
その他
トラブル集
2008 mtde.info